2SAT를 해결하는 다항식 알고리즘을 보았습니다. SAT 인스턴스의 모든 (또는 다른 많은) 인스턴스가 NP-Complete 인 곳에서 2SAT가 P에 있음을 알게되었습니다. 이 문제가 다른 이유는 무엇입니까? 그렇게 쉬운 이유는 무엇입니까 (NL- 완료-P보다 훨씬 쉬움)?
2SAT를 해결하는 다항식 알고리즘을 보았습니다. SAT 인스턴스의 모든 (또는 다른 많은) 인스턴스가 NP-Complete 인 곳에서 2SAT가 P에 있음을 알게되었습니다. 이 문제가 다른 이유는 무엇입니까? 그렇게 쉬운 이유는 무엇입니까 (NL- 완료-P보다 훨씬 쉬움)?
답변:
다음은 MGwynne의 답변에 따른 직관적이고 소박한 설명입니다.
SAT를 사용하면 a ⇒ b 형식 의 의미 만 표현할 수 있습니다 . 여기서 a 및 b 는 리터럴입니다. 보다 구체적으로, 각 2 -clause의 L 1 ∨ L 2 : 함의 쌍으로 이해 될 수 ¬의 L (1 개) ⇒의 L 2 및 ¬ L 2 ⇒의 L (1) . a 를 true로 설정 하면 b 도 true 여야합니다. b 를 false로 설정하면 a거짓이어야합니다. 이러한 의미는 간단합니다 : 선택의 여지가 없다, 당신은 단지이 가능성을 대소 곱셈의 여지가 없습니다. 당신은 가능한 모든 의미 체인을 따르고, 당신이 이제까지 유도하면 모두가 볼 수있는 ¬ 리터를 에서 L 과 L 에서 ¬의 L : 당신은 어떤을 위해 할 경우 L , 그렇지 않으면 만족할 수있다, 다음, 2-SAT의 공식 시켰음입니다. 가능한 연쇄 사슬의 수는 입력 공식의 크기에서 다항식으로 묶인 경우입니다.
SAT를 사용하면 a ⇒ b ∨ c 형식 의 의미를 나타낼 수 있습니다 . 여기서 a , b 및 c 는 리터럴입니다. 이제 문제가 있습니다. a 를 true로 설정 하면 b 또는 c 가 true 여야하지만 어느 것입니까? 선택해야합니다 : 2 가지 가능성이 있습니다. 여기에서 대소 곱셈이 가능 해지고 조합 폭발이 일어나는 곳입니다.
다시 말해, SAT는 하나 이상의 가능성을 표현할 수 있지만 2- SAT는 그러한 능력을 갖지 못합니다. 이것은 정확하게 두 개 이상의 가능성 (존재의 예이다 (2) 의 경우에 가능성 3 -sat, K - 1 의 경우 가능성 유전율 NP 완전 문제의 전형적인 조합 폭발을 일으키는 -sat).
2-SAT 공식에 대한 해결책을 고려하십시오. 상관 용해제 (즉 유의 크기는 최대 2이며 의 경우 N , m의 ≤ 2 길이의 조항에 대한 N 과 m의 RESP). 크기 2의 절 수는 변수 수에서 2 차입니다. 따라서 분해능 알고리즘은 P입니다.
3-SAT에 도달하면 더 크고 더 큰 결심을 얻을 수 있으므로 모두 배 모양이됩니다. :).
문제를 2-SAT로 변환 해보십시오. 크기 3의 절을 가질 수 없으므로 3 개의 변수 이상과 관련된 의미를 일반적으로 인코딩 할 수 없습니다. 예를 들어 하나의 변수는 다른 두 변수에 대한 이진 연산의 결과입니다. 이것은 큰 제한입니다.
월터가 말했듯이 2-SAT의 절은 특별한 형식을 가지고 있습니다. 솔루션을 빠르게 찾기 위해 활용 될 수 있습니다.
실제로 다항식 시간으로 결정될 수있는 여러 클래스의 SAT 인스턴스가 있으며 2-SAT는 이러한 다루기 쉬운 클래스 중 하나 일뿐 입니다. 다루기 쉬운 이유에는 세 가지가 있습니다.
(구조적 다루기 쉬움) 변수가 나무와 같은 방식으로 상호 작용하는 모든 종류의 SAT 인스턴스는 다항식 시간에 풀 수 있습니다. 다항식의 정도는 클래스에서 인스턴스 의 최대 너비 에 따라 달라지며 , 너비는 인스턴스가 트리에서 얼마나 떨어져 있는지 측정합니다. 더 정확하게 말해서, 마르크스는 실체가 서브 모듈 식 너비에 한정된 경우, 분할 및 정복 방식을 사용하여 다항식 시간으로 클래스를 결정할 수 있음을 보여 주었다.
(언어 다루기 쉬움) 참 거짓 변수의 패턴이 "좋은"모든 SAT 인스턴스 클래스는 다항식 시간으로 해결할 수 있습니다. 보다 정확하게 말하면 리터럴 패턴은 관계 언어를 정의하고 Schaefer는 각각 자체 알고리즘으로 다루기 쉬운 6 가지 언어를 분류했습니다. 2-SAT는 6 개의 쉐퍼 클래스 중 하나를 형성합니다.
(하이브리드 수축성) 다른 두 가지 범주에 속하지 않지만 다른 이유로 다항식 시간으로 해결할 수있는 인스턴스 클래스도 있습니다.
2SAT에 대한 알고리즘을 이해했다면 이미 P에있는 이유를 알고 있습니다. 이것이 바로 알고리즘이 보여주는 것입니다. 내 생각 이 만화는 내 지점을 보여줍니다. 2SAT가 P에있는 이유를 이미 알고 있듯이 2SAT가 NP-hard가 아닌 이유를 알고 싶을 것입니다.
2SAT가 NP-hard가 아닌 이유를 이해하려면 NP의 다른 문제를 줄이는 것이 얼마나 쉬운 지 고려해야합니다. 이것을 직관적으로 이해하려면 SAT를 3SAT로 줄이는 방법을 살펴보고 동일한 기술을 적용하여 SAT를 2SAT로 줄이십시오. 2SAT는 3SAT 및 기타 SAT 변형만큼 표현 적이 지 않습니다.