ILP에서 SAT 로의 폴리 타임 감소?


14

따라서 알려진 바와 같이 ILP의 0-1 결정 문제는 NP- 완료입니다. NP로 표시하는 것은 쉽지만 원래 감소는 SAT에서 나왔습니다. 그 이후로, 많은 다른 NP-Complete 문제는 ILP 공식화 (그러한 문제에서 ILP 로의 감소로 기능 함)를 갖는 것으로 나타났습니다. 왜냐하면 ILP는 매우 유용하기 때문입니다.

인하 에서 ILP는 더 힘들어 자신을하거나 추적 중 하나에 보인다.

따라서 제 질문은 누구나 ILP에서 SAT 로의 폴리 타임 감소를 알고 있습니까? 즉, SAT를 사용하여 0-1 ILP 결정 문제를 해결하는 방법을 보여줍니다.

답변:


12

0-1 ILP는 다음과 같이 공식화되었습니다.

제약 조건에 따라 벡터 가 있습니까?x

a11x1+a12x2...+a1nxnb1a21x1+a22x2...+a2nxnb2...am1x1+am2x2...+amnxnbm

x의 도메인 :xjxxj{0,1}

k- 토로 감소 :

먼저 회로 토로 줄이십시오.

첫 번째 행부터 시작하여 각 비트를 나타내는 부울 변수와 부울 변수를 만듭니다. 그런 다음 변수를 만드십시오 . 행을 추가하여 추가 회로를 만듭니다 (좋아하는 항목 선택).a1jxjb1

그런 다음 합계를 미만으로 선언하여 비교 회로를 만듭니다 .b1

이 두 회로를 CNF로 변환하여 주어진 변수와 채 웁니다 .a1jb1

모든 행에 대해 반복하지만 변수를 다시 사용하십시오 .xj

최종 CNF에는 모든 제약 조건이 포함됩니다.


아, 나는 지금 본다 ... 나는 어떻게 든 회로를 통과하는 옵션을 잊었다. .. 당신의 도움에 대해 대단히 감사합니다.
codetaku

0

이미 대답하고 받아 들인 질문에 대한 일종의 괴상한 답변이지만 실제로는 더 쉬운 방법이 있습니다.

다음과 같은 불평등이 있다고 가정하십시오.

5x1+2x2+3x36

, 및 등의 불평등에 대한 모든 벡터가없는 벡터를 쉽게 테스트 할 수 있습니다 .(1,1,1)(1,1,0)(1,0,1)

첫 번째 벡터 는 을 모두 참을 수 없음을 의미 분리형 으로 다시 쓸 수 있습니다. .(1,1,1)¬(x1x2x3)(¬x1¬x2¬x3)

이렇게하면 벡터가없는 벡터에서 3 개의 절을 구성 할 수 있습니다 : , 및(¬x1¬x2¬x3)(¬x1¬x2x3)(¬x1x2¬x3)

모든 불평등을 극복하고 조항을 수집하면 결국 cnf를 얻게됩니다. 이 cnf는 종종 WAY SIMPLER가되며, 그 중 하나는 허용되는 답변의 결과입니다. 하지만 전처리는 비용이 더 많이 듭니다.

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