P에서 2SAT는 왜?


55

2SAT를 해결하는 다항식 알고리즘을 보았습니다. SAT 인스턴스의 모든 (또는 다른 많은) 인스턴스가 NP-Complete 인 곳에서 2SAT가 P에 있음을 알게되었습니다. 이 문제가 다른 이유는 무엇입니까? 그렇게 쉬운 이유는 무엇입니까 (NL- 완료-P보다 훨씬 쉬움)?


18
사람들은 왜 이것이 나쁜 질문이라고 생각합니까?
피터 쇼어

12
한 가지 흥미로운 측면은 2SAT 표현식에서 동시에 만족할 수있는 최대 절 수를 알고 싶다면 (즉, Max2SAT) 다시 NP-complete로 돌아 간다는 것입니다.
Shaun Harker

11
유용한 답변이 없기 때문에 이것은 끔찍한 질문이거나, 유일한 정답은 "아무도 모르는"것이므로 환상적인 질문입니다.
Jeffε

12
"만족도 문제의 복잡성 : 정련 셰이퍼 정리"논문을 읽으십시오.
Diego de Estrada

3
친애하는 Guy, 2SAT가 P에 있다는 사실은 거의 모든 표준 복잡성 교과서에 포함되어 있으므로,이 사실을 발견했을 때 표준 교과서를 복잡하게 읽지 않은 것처럼 보이는 것처럼 보입니다.
Kaveh

답변:


88

다음은 MGwynne의 답변에 따른 직관적이고 소박한 설명입니다.

SAT를 사용하면 a b 형식 의미 만 표현할 수 있습니다 . 여기서 ab 는 리터럴입니다. 보다 구체적으로, 각 2 -clause의 L 1L 2 : 함의 쌍으로 이해 될 수 ¬의 L (1 개) ⇒의 L 2¬ L 2 ⇒의 L (1) . a 를 true로 설정 하면 b 도 true 여야합니다. b 를 false로 설정하면 a2abab2l1l2¬l1l2¬l21에이에이거짓이어야합니다. 이러한 의미는 간단합니다 : 선택의 여지가 없다, 당신은 단지이 가능성을 대소 곱셈의 여지가 없습니다. 당신은 가능한 모든 의미 체인을 따르고, 당신이 이제까지 유도하면 모두가 볼 수있는 ¬ 리터를 에서 LL 에서 ¬의 L : 당신은 어떤을 위해 할 경우 L1¬¬ , 그렇지 않으면 만족할 수있다, 다음, 2-SAT의 공식 시켰음입니다. 가능한 연쇄 사슬의 수는 입력 공식의 크기에서 다항식으로 묶인 경우입니다.

SAT를 사용하면 a b c 형식 의미를 나타낼 수 있습니다 . 여기서 a , bc 는 리터럴입니다. 이제 문제가 있습니다. a 를 true로 설정 하면 b 또는 c 가 true 여야하지만 어느 것입니까? 선택해야합니다 : 2 가지 가능성이 있습니다. 여기에서 대소 곱셈이 가능 해지고 조합 폭발이 일어나는 곳입니다.에이에이에이

다시 말해, SAT는 하나 이상의 가능성을 표현할 수 있지만 2- SAT는 그러한 능력을 갖지 못합니다. 이것은 정확하게 두 개 이상의 가능성 (존재의 예이다 (2) 의 경우에 가능성 3 -sat, K - 1 의 경우 가능성 유전율 NP 완전 문제의 전형적인 조합 폭발을 일으키는 -sat).22케이1케이


6
나는 이것을 더 공표 할 수 있으면 좋겠다! 훨씬 더 나은 답변!
MGwynne

5
@ MGwynne : 당신의 친절한 의견에 감사드립니다. 천만에요. 정말 답이 좋습니다!
Giorgio Camerani

8
이것은 좋은 질문 (IMHO)에 대한 좋은 답변입니다. 맥 레인 (Mc Lane)은 다음과 같이 썼다. "의도적 인 아이디어를 가지고있는 수학자들은 효과적이고 까다로운 공식적인 조작을 소개합니다.하지만 아이디어를 말로 표현하는 것보다 조작을 진술하는 것이 더 쉽습니다. ... "수학의 표시를 통해 아이디어가 빛을 발하게합니다." 이 특정한 질문과 대답은 "아이디어가 빛을 발하는"데 도움이되었습니다. 감사! :)
John Sidles

4
@ 존 : 천만에요! ;-) 귀하의 위대하고 관대 한 의견에 감사드립니다. 정말 감사합니다. 나는 맥 레인 단어에 더 동의 할 수 없었다.
Giorgio Camerani 2016 년

조르지오 Camerani의 대답에 따르면이있다 하지 당신이 더 더미 부울 변수를 소개가 더 절을하고있는 경우 3SAT 모든 NP 문제를 줄이기 위해 가치 이득 이나 이익을하지만, CNF SAT 또는 부울 satisfiability 또는 중 하나에 감소하는 것이 더 바람직하다 대신 회로 SAT는 이러한 문제에서 부울 변수가 적고 절이 적기 때문에 무차별 순진 알고리즘, karnaugh 맵 및 Quine-McClusky 알고리즘이 더 복잡합니다 .D.
작별 스택 교환

31

2-SAT 공식에 대한 해결책을 고려하십시오. 상관 용해제 (즉 유의 크기는 최대 2이며 의 경우 N , m의 2 길이의 조항에 대한 Nm의 RESP). 크기 2의 절 수는 변수 수에서 2 차입니다. 따라서 분해능 알고리즘은 P입니다.+22,2

3-SAT에 도달하면 더 크고 더 큰 결심을 얻을 수 있으므로 모두 배 모양이됩니다. :).

문제를 2-SAT로 변환 해보십시오. 크기 3의 절을 가질 수 없으므로 3 개의 변수 이상과 관련된 의미를 일반적으로 인코딩 할 수 없습니다. 예를 들어 하나의 변수는 다른 두 변수에 대한 이진 연산의 결과입니다. 이것은 큰 제한입니다.


3
"당신은 암시와 같은 것을 인코딩 할 수 없습니다"-IMP-SAT도 P에 있습니다 (그리고 NL이라고 생각합니다)
Max

8
는 단지 ¬ p q 입니다. ¬
Kaveh

1
Kaveh, 좋은 지적, 지금 고쳤다.
MGwynne

당신은 부울 Satisfiability 또는 회로 SAT 또는 CNF SAT 중 하나에 임의의 NP 문제를 감소 할 때 이미 말했듯이, 않습니다 하지 문제가 더 열심히하고 더 부울 변수와 절 복잡한되기 때문에, 3SAT에 문제를 줄일 수 있습니다. 새로운 문제에서 해결 알고리즘조차 덜 효율적입니다!
작별 스택 교환

20

월터가 말했듯이 2-SAT의 절은 특별한 형식을 가지고 있습니다. 솔루션을 빠르게 찾기 위해 활용 될 수 있습니다.

실제로 다항식 시간으로 결정될 수있는 여러 클래스의 SAT 인스턴스가 있으며 2-SAT는 이러한 다루기 쉬운 클래스 중 하나 일뿐 입니다. 다루기 쉬운 이유에는 세 가지가 있습니다.

  1. (구조적 다루기 쉬움) 변수가 나무와 같은 방식으로 상호 작용하는 모든 종류의 SAT 인스턴스는 다항식 시간에 풀 수 있습니다. 다항식의 정도는 클래스에서 인스턴스 의 최대 너비 에 따라 달라지며 , 너비는 인스턴스가 트리에서 얼마나 떨어져 있는지 측정합니다. 더 정확하게 말해서, 마르크스는 실체가 서브 모듈 식 너비에 한정된 경우, 분할 및 정복 방식을 사용하여 다항식 시간으로 클래스를 결정할 수 있음을 보여 주었다.

  2. (언어 다루기 쉬움) 참 거짓 변수의 패턴이 "좋은"모든 SAT 인스턴스 클래스는 다항식 시간으로 해결할 수 있습니다. 보다 정확하게 말하면 리터럴 패턴은 관계 언어를 정의하고 Schaefer는 각각 자체 알고리즘으로 다루기 쉬운 6 가지 언어를 분류했습니다. 2-SAT는 6 개의 쉐퍼 클래스 중 하나를 형성합니다.

  3. (하이브리드 수축성) 다른 두 가지 범주에 속하지 않지만 다른 이유로 다항식 시간으로 해결할 수있는 인스턴스 클래스도 있습니다.

    • STOC 2010 , Dániel Marx, 구속 조건 만족 및 결합 쿼리 를위한 Tractable 하이퍼 그래프 속성 . ( doi , preprint )
    • Thomas J. Schaefer, 만족도 문제의 복잡성 , STOC 1978. ( doi )

2
차이를 설명하는 데 사용할 수있는 랜덤 k-SAT 문헌의 솔루션 공간 구조를 기반으로하는 논증도 있습니다.
Kaveh

3
@Kaveh : 하이브리드 다루기 쉬움에 대한 나의 설명은 그러한 것들을 포괄 할 정도로 모호한 것으로 생각되었습니다. 예를 들어, 매우 특별한 종류의 경우 Lovász Local Lemma를 기반으로 만족도를 주장 할 수 있습니다. 피어슨과 Jeavons에 의해 1997 년 설문 조사를 참조하십시오 cs.ox.ac.uk/publications/publication1610-abstract.html
안드라스 살 라몬에게

3
또한 SAT는 모든 변수가 2 개의 값을 가질 수있는 제약 조건 만족 문제의 특별한 경우입니다. 변수는 3 개 값을 사용할 수 있습니다 때, 안드레이 불라 톱 분류 (10 개) 다루기 쉬운 언어 클래스를,있다 : cs.sfu.ca/~abulatov/papers/3-el-journal.ps 하이브리드 클래스도 큰 도메인에 대해 더 흥미 롭다.
András Salamon

10

2SAT에 대한 알고리즘을 이해했다면 이미 P에있는 이유를 알고 있습니다. 이것이 바로 알고리즘이 보여주는 것입니다. 내 생각 이 만화는 내 지점을 보여줍니다. 2SAT가 P에있는 이유를 이미 알고 있듯이 2SAT가 NP-hard가 아닌 이유를 알고 싶을 것입니다.

2SAT가 NP-hard가 아닌 이유를 이해하려면 NP의 다른 문제를 줄이는 것이 얼마나 쉬운 지 고려해야합니다. 이것을 직관적으로 이해하려면 SAT를 3SAT로 줄이는 방법을 살펴보고 동일한 기술을 적용하여 SAT를 2SAT로 줄이십시오. 2SAT는 3SAT 및 기타 SAT 변형만큼 표현 적이 지 않습니다.

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