벡터 합계의 최대 성분 최소화


11

주어진 음이 아닌 정수의 경우 :이 최적화 문제에 대해 뭔가 알아 보려면 함수를 찾을 수 발현을 최소화 fai,j,kf

maxkiai,f(i),k

다른 공식을 사용하는 예가 더 명확해질 수 있습니다.

{
    {(3, 0, 0, 0, 0), (1, 0, 2, 0, 0)},
    {(0, 1, 0, 0, 0), (0, 0, 0, 1, 0)},
    {(0, 0, 0, 2, 0), (0, 1, 0, 1, 0)}
}

합계의 최대 성분이 최소가되도록 각 세트에서 하나의 벡터를 선택하십시오. 예를 들어,

(1, 0, 2, 0, 0) + (0, 1, 0, 0, 0) + (0, 1, 0, 1, 0) = (1, 1, 2, 1, 0)

최대 구성 요소는 2와 같으며 여기에서 분명히 최적입니다.

이것이 잘 알려진 문제인지, 어떤 문제 별 근사 솔루션 방법이 있는지 궁금합니다. 프로그래밍이 빠르고 쉬워야합니다 ( ILP 솔버 등 없음). 실제 문제의 근사치 일 뿐이므로 정확한 솔루션이 필요하지 않습니다.


관심있는 문제 인스턴스에 대한 세부 정보를 추가해야합니다.

  • i{0,1,,63} 즉, 항상 64 개의 행이 있습니다 (위의 예에서와 같이 쓸 때).
  • j{0,1} 즉, 행당 2 개의 벡터 만 있습니다.
  • Nk{0,1,,N1} 여기서 (벡터 길이)은 10과 1000 사이입니다.N

또한, 각 행에서 모든 벡터의 요소의 합은 동일합니다. 즉

i,j,j:kai,j,k=kai,j,k

합 벡터의 요소들의 합은 길이보다 작다. 즉,

kiai,f(i),k<N

4
3 파티션 문제문제 로 줄이는 것은 어렵지 않습니다 . 이것은 숫자가 단항으로 제공 되더라도 문제가 NP 완료됨을 의미하며 근사 알고리즘에 대한 일반적인 접근 방법 중 하나를 배제합니다.
이토 쓰요시

수정 해 주셔서 감사하며 통찰력을 얻은 @Tsuyoshi Ito에게 감사드립니다. 올바르게 이해하면 한 줄에 두 개의 벡터로 제한하면 (상태를 잊어 버린) 축소가 무효화되고 문제가 훨씬 쉬워 질 수 있습니다.
maaartinus

당신이 옳습니다. 행당 두 개의 벡터 만 있으면 내가 생각했던 3 파티션 문제의 감소가 작동하지 않습니다.
이토 츠요시

그래서 거기에 비교 개 조합? ji
Jason Kleban

@ uosɐſ : 정확하게 말하면, 가능한 조합이 있습니다. 여기서 는 대한 가능성의 수 이고 는 대한 가능성의 수입니다 . JJI=264j I = 64 iJ=2jI=64i
maaartinus

답변:


7

3SAT에서 두 벡터 버전 절감 주어진 수식은하자 인덱스 변수 및 인덱스 조항. 하자 시간 변수의 숫자 긍정적으로 나타나면 (만약 ) 또는 음 (만약 ) 절에 . OPT는 공식이 만족스러운 경우 보다 작습니다 (사전이 분명함).j { 0 , 1 } k a i , j , k i j = 0 j = 1 k 3ij{0,1}kai,j,kij=0j=1k3

이 문제를 어떻게 공격 할 것인가 : 큰 이웃 검색. 모든 솔루션으로 시작하십시오. 무작위로 개의 행을 선택하십시오 . 무차별 대입을 사용하여 가 해당 행에서만 바뀔 수있는 최상의 솔루션을 찾으십시오 . 문제의 크기가 행인 경우 중간 정도의 에서도 가능 합니다. 반복.f k 64rfk64


1
이것은 아름다운 감소입니다. 왜 투표가 없는지 잘 모르겠습니다. 어쨌든, 여기에 내 +1이 있습니다.
이토 쓰요시

1
감축에 대해 좀 더 자세히 설명해야한다고 생각합니다. 특히, 당신은 그것을보고 약간 하드 전단 사 함수를 만들면서, 어쩌면 너무 잘 잘 숨겨져. f
Raphael

7

우리는 문제의 크기가 일정하게 고정 될 때 문제의 복잡성을 논의 할 수 없다. 왜냐하면 복잡도 이론의 대부분은 문제의 크기가 무한대가되기 때문에 문제의 복잡성의 점근 적 행동을 다루기 때문이다. 여기서는 행 수와 벡터의 치수를 변수로 간주합니다.

입력의 숫자가 단항으로 제공 되더라도 문제는 NP- 완료입니다. 근사에 대해 묻는 것이기 때문에 귀하의 질문에 대한 답변은 아니지만 무언가입니다.

엄격하게 문제를 정의하십시오.

인스턴스 : n 쌍의 벡터 a i , b i ∈ ℕ m ( i ∈ {1,…, n }) 및 K ∈ ℕ은 모두 단항입니다.
질문 : 우리가 선택할 수 있습니다 또는 B 내가내가 그래서이의 합 것을 n 개의 벡터가 가장에가 K 의 각 좌표?

다음은 3- 파티션 이라는 알려진 NP 완료 문제입니다 .

3 분할
인스턴스 : B ∈ ℕ, 3 K 의 정수 (C) (1) , ..., C (3) KB / 4, B / 2 전용 등 Σ 것을 내가 1 개 = 3 (k)를 c를 = 킬로바이트 단항에서 모든.
질문 : 다중 집합 { c 1 ,…, c 3 k }를 k 다중 집합 S 1 ,…, S k 로 분할하여 각 S j 의 합 이 같도록 할 수 있습니까B ?

3- 파티션 문제 의 예 ( B ; c 1 ,…, c 3 k )가 주어지면 다음과 같이 위 문제의 예를 구성하십시오. 각 i = 1,…, 3 kj = 1,…, k 에 대해 c iS j에 속 하는지 여부에 대한 선택을 나타내는 한 쌍의 4 k 차원 벡터를 구성합니다 .

  • 선택 " c iS j "를 나타내는 벡터는 0이 아닌 하나의 항목 만 가지고 있는데, 이는 j 번째 좌표 에서 ( k -1) c i 입니다.
  • 선택 " c iS j "를 나타내는 벡터 에는 0이 아닌 하나의 항목 만 있으며, 이는 ( k + i ) 번째 좌표 에서 B 입니다.

(이는 예를 볼 어렵지 않다 B , C 1 , ..., C (3) K 3의 각각으로부터 벡터를 선택하는 방법이 경우만 3 분할 문제의)의 용액을 보유 K 2 구성은 이들 벡터의 합의 모든 좌표가 최대 ( k -1) B 가되도록 쌍을 이룬다 . (실제로 이런 일이 발생하면 합계의 모든 좌표는 ( k -1) B와 같습니다 .) 따라서 이것은 3- 분할 문제에서 위의 문제로 축소됩니다.

지금까지 질문 끝에 언급 된 두 가지 추가 제약 조건을 무시했지만이 축소를 약간 수정하여 쉽게 적용 할 수 있습니다. 각 벡터 요소의 합이 동일한 조건은 0 또는 1 만 포함하는 더미 좌표를 추가하여 시행 할 수 있습니다.이 합이 차원보다 작은 조건은 0 만 포함하는 더미 좌표를 추가하여 시행 할 수 있습니다.


N
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.