0-1 프로그래밍을위한 정확한 지수 시간 알고리즘


10

순진 알고리즘을 능가하는 다음 문제에 대한 알려진 알고리즘이 있습니까?

입력 : A 시스템 m 선형 불평등.Axbm

출력 : 실행 가능한 솔루션 경우).x{0,1}n

b 에 정수 항목이 있다고 가정하십시오 . 최악의 상황에 관심이 있습니다.Ab

답변:


14

경우 superlinear이며, 이러한 알고리즘은 논리 곱 표준형의 공식 0-1 프로그래밍의 특별한 경우와 Sparsification 보조 정리 때문에 우리가 줄일 수 있습니다 강한 지수 시간 가설을 반증하는 것 k 개의 선형 많은 조항에 CNF-SAT에 -sat을 .mk

그러나 Impagliazzo, Paturi 및 나 자신 때문에 와이어 수, 즉 의 0이 아닌 계수의 수가 선형 인 경우 이러한 불평등 시스템을 해결할 수 있는 알고리즘 이 있습니다 . 특히, 와이어 수가 c n 인 경우 알고리즘은 시간 2 ( 1 - s ) n 에서 실행됩니다. 여기서 s = 1Acn2(1s)n .s=1cO(c2)


1

경우 정도로 작은이, 당신은, 즉, 순진 알고리즘보다 더 나은 것보다 할 수있는 2 N 시간. 여기서 "충분히 작다"는 mn / lg n 과 같은 것보다 작다는 것을 의미합니다 . 실행 시간은 여전히 ​​기하 급수적이지만 (예 : 2 n / 2 시간 일 수 있음) 순진 알고리즘보다 빠릅니다.m2nmn/lgn2n/2

또한, 이것이 행렬 A 가 초 선형 수의 엔트리를 갖는 일부 경우에 대해 시간 보다 빠르게 문제를 해결할 수있게하는 것으로 보인다 . 나는 여기에 제공된 다른 대답으로 그것을 제곱하는 방법을 모른다. 결과적으로, 당신은 나의 대답을주의 깊게 점검해야합니다.2nA


기본적인 방법 : 라이트 , X 0 제 보유 N / 2 의 성분 XX 1이 마지막 보유 N / 2 구성 요소; 마찬가지로 = ( 0 , 1 ) , 0 왼쪽 갖는 N / 2 의 열 및 1 오른쪽 N을x=(x0,x1)x0n/2xx1n/2A=(A0,A1)A0n/2AA1 열. 이제 A x b 형식으로 다시 쓸 수 있습니다n/2Axb

A0x0+A1x1b,

또는 동등하게

A0x0bA1x1.

A 0 x 0에 대한 가능성을 모두 열거 하고 S 가 가능한 값 세트를 나타냅니다. 즉,2n/2A0x0S

S={A0x0:x0{0,1}n/2}.

T2n/2bA1x1

T={bA1x1:x1{0,1}n/2}.

이제 문제는

S,TZm2n/2sStTst

sitii

O(2n/2(n/2)m1)mn/lgn2n


m=1m=1xi=1A1,i0xi=0x


1
내 답변의 알고리즘은 동일한 방법을 사용하여 답변에 설명 된 벡터 문제로 축소합니다. 즉 변수를 분할하고 모든 할당을 나열합니다.
Stefan Schneider

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