Ich bin auf den Polynomalgorithmus gestoßen, der 2SAT löst. Ich fand es verblüffend, dass 2SAT in P ist, wo alle (oder viele andere) der SAT-Instanzen NP-Complete sind. Was unterscheidet dieses Problem? Was macht es so einfach (NL-Complete - noch einfacher als P)?
55
Antworten:
Hier ist eine weitere intuitive und unprätentiöse Erklärung in Anlehnung an MGwynnes Antwort.
Mit -SAT können Sie nur Implikationen der Form ausdrücken , wobei und Literale sind. Genauer gesagt kann jeder Satz als ein Paar von Implikationen verstanden werden: und . Wenn Sie auf true setzen, muss auch true sein. Wenn Sie setzen auf false, muss auch falsch sein. Solche Implikationen sind einfach: Es gibt keine Wahl, Sie haben nur2 a⇒b a b 2 l1∨l2 ¬l1⇒l2 ¬l2⇒l1 a b b a 1 Möglicherweise gibt es keinen Raum für die Multiplikation von Groß- und Kleinschreibung. Sie können einfach jede mögliche Verwicklung Kette folgen und sehen , ob Sie jemals beide ableiten von und von : wenn Sie für einige tun , dann ist die 2-SAT Formel unerfüllbar ist, sonst ist es erfüllbar ist. Es ist der Fall, dass die Anzahl der möglichen Implikationsketten in der Größe der Eingabeformel polynomiell begrenzt ist.¬l l l ¬l l
Mit -SAT können Sie Implikationen der Form ausdrücken , wobei , und Literale sind. Jetzt stecken Sie in Schwierigkeiten: Wenn Sie auf true setzen, muss entweder oder true sein, aber welches? Sie müssen eine Wahl treffen: Sie haben 2 Möglichkeiten. Hier wird die Multiplikation von Groß- und Kleinschreibung möglich, und hier entsteht die kombinatorische Explosion.3 a⇒b∨c a b c a b c
Mit anderen Worten, SAT kann das Vorhandensein von mehr als einer Möglichkeit ausdrücken, während SAT nicht über diese Fähigkeit verfügt. Gerade das Vorhandensein von mehr als einer Möglichkeit ( Möglichkeiten bei SAT, Möglichkeiten bei SAT) verursacht die typische kombinatorische Explosion von NP-vollständigen Problemen.3 2 2 3 k−1 k
quelle
Betrachten Sie die Auflösung einer 2-SAT-Formel. Jedes Resolvent hat eine Größe von höchstens 2 (beachten Sie, dass wenn für Klauseln der Länge und resp). Die Anzahl der Klauseln der Größe 2 ist in der Anzahl der Variablen quadratisch. Daher ist der Auflösungsalgorithmus in P.n , m ≤ 2 n mn+m−2≤2 n,m≤2 n m
Sobald Sie 3-SAT erreicht haben, können Sie immer größere Auflösungen erhalten, so dass alles birnenförmig wird :).
Versuchen Sie, ein Problem in 2-SAT zu übersetzen. Da Sie keine Klauseln der Größe 3 haben können, können Sie (im Allgemeinen) keine Implikationen codieren, die drei oder mehr Variablen betreffen, zum Beispiel, dass eine Variable das Ergebnis einer Binäroperation für zwei andere ist. Dies ist eine enorme Einschränkung.
quelle
Wie Walter sagt, haben 2-SAT-Klauseln eine besondere Form. Dies kann ausgenutzt werden, um schnell Lösungen zu finden.
Es gibt tatsächlich mehrere Klassen von SAT-Instanzen, die in Polynomialzeit entschieden werden können, und 2-SAT ist nur eine dieser verfolgbaren Klassen . Es gibt drei Hauptgründe für die Rückverfolgbarkeit:
(Strukturelle Traktierbarkeit) Jede Klasse von SAT-Instanzen, in denen die Variablen baumartig interagieren, kann in Polynomzeit gelöst werden. Der Grad des Polynoms hängt von der maximalen Breite der Instanzen in der Klasse ab, wobei die Breite misst, wie weit eine Instanz von einem Baum entfernt ist. Genauer gesagt zeigte Marx, dass, wenn die Instanzen eine begrenzte submodulare Breite haben, die Klasse in Polynomzeit unter Verwendung eines Divide-and-Conquer-Ansatzes bestimmt werden kann.
(Sprachverfolgbarkeit) Jede Klasse von SAT-Fällen, in denen das Muster von wahr-falsch-Variablen "schön" ist, kann in Polynomzeit gelöst werden. Genauer gesagt definiert das Muster der Literale eine Sprache der Beziehungen, und Schäfer klassifizierte die sechs Sprachen, die zur Nachvollziehbarkeit führen, jeweils mit einem eigenen Algorithmus. 2-SAT bildet eine der sechs Schaefer-Klassen.
(Hybrid Tractability) Es gibt auch einige Klassen von Instanzen, die nicht in die anderen beiden Kategorien fallen, die jedoch aus anderen Gründen in Polynomialzeit gelöst werden können.
quelle
Wenn Sie den Algorithmus für 2SAT verstehen, wissen Sie bereits, warum er in P ist - genau das demonstriert der Algorithmus. Ich denke, dieser Comic illustriert meinen Standpunkt. Da Sie bereits wissen, warum 2SAT in P enthalten ist, möchten Sie wahrscheinlich wissen, warum 2SAT nicht NP-hart ist.
Um zu verstehen, warum 2SAT nicht NP-schwer ist, müssen Sie überlegen, wie einfach es ist, andere NP-Probleme darauf zu reduzieren. Um dies intuitiv zu verstehen, schauen Sie sich an, wie SAT auf 3SAT reduziert werden kann, und versuchen Sie, die gleichen Techniken anzuwenden, um SAT auf 2SAT zu reduzieren. 2SAT ist einfach nicht so ausdrucksstark wie 3SAT und andere SAT-Varianten.
quelle