3-SAT
# 3-SAT

3-SAT ist eine Variante des Erfüllbarkeitsproblems der Aussagenlogik (von englisch satisfiability ‚Erfüllbarkeit‘, kurz SAT).

Es beschäftigt sich mit der Frage, ob eine in konjunktiver Normalform vorliegende aussagenlogische Formel $F$, die höchstens 3 Literale pro Klausel enthält, erfüllbar ist. Ein Beispiel für eine solche Formel:

    $F=({\overline {x_{1}}}\vee x_{2}\vee x_{3})\wedge (x_{2}\vee {\overline {x_{3}}}\vee x_{4})\wedge (x_{1}\vee {\overline {x_{2}}})$

Gesucht ist nun eine Belegung der Variablen $x_{1}$ bis $x_{4}$ mit 0 oder 1, für die F den Wert 1 (wahr) annimmt. Falls es eine solche Belegung gibt, ist F erfüllbar, sonst nicht. Wie bei allen NP-vollständigen Problemen ist es „einfach“, einen Lösungskandidaten auf seine Gültigkeit zu überprüfen, hier also festzustellen, ob eine vorgegebene Belegung der Variablen die Formel erfüllt. Das Auffinden eines gültigen Lösungskandidaten ist jedoch im Allgemeinen „schwierig“, da heute keine Methode bekannt ist, eine erfüllende Belegung in polynomieller Zeit zu finden.

Allgemeiner definiert man das k-SAT-Problem als die Frage, ob eine beliebige ausslagenlogische Formel, die in konjunktiver Normalform mit k Literalen pro Klausel vorliegt, erfüllbar ist. Das k-SAT-Problem für $k>3$ lässt sich auf 3-SAT zurückführen, damit gilt: Alle k-SAT-Probleme für $k\geq 3$ sind NP-vollständig. 2-SAT liegt in der Komplexitätsklasse NL, 1-SAT liegt in der Komplexitätsklasse L.

Das allgemeine Erfüllbarkeitsproblem der Aussagenlogik (SAT) lässt sich auf 3-SAT polynomiell reduzieren, und somit ist 3-SAT nach dem Satz von Cook NP-vollständig.

3-SAT lässt sich wiederum u. a. auf das Cliquenproblem, das Rucksackproblem und auf den gerichteten Hamiltonkreis (DHC) polynomiell reduzieren, wodurch auch diese Probleme als NP-schwer nachgewiesen sind.

## Varianten

### Exakt-3-SAT

Wenn jede Klausel der Formel genau drei bzw k Literale enthält, spricht man von Exakt-3-SAT bzw. Exakt-k-SAT. Manchmal wird schon in der Definition von 3-SAT verlangt, dass alle Klauseln genau drei Literale enthalten. Auch diese Variante des Problems ist NP-vollständig, selbst dann, wenn man zusätzlich auch noch verlangt, dass alle Literale in einer Klausel verschieden sind.

### Max-3-SAT

Hier wird nicht verlangt, dass jede Klausel wahr wird, sondern möglichst viele davon. Bereits eine zufällige Belegung der Variablen liefert im Erwartungswert, dass 7/8 der Klauseln erfüllt sind (denn die Wahrscheinlichkeit, dass eine bestimmte Klausel nicht erfüllt ist, ist lediglich (1/2)^3 – vorausgesetzt, dass Literale nicht mehrfach in einer Klausel auftreten). Die Folge daraus ist auch, dass jedes derartige 3-SAT-Problem mit weniger als 8 Klauseln erfüllbar ist.

Max-3-SAT ist ebenfalls NP-vollständig, da die Reduktion zum normalen 3-SAT nur darin besteht zu fragen, ob die Gesamtanzahl der Klauseln erfüllt werden kann.

### Not-All-Equal-3-SAT

Es handelt sich um 3-SAT, wobei aber nur eine Belegung akzeptiert wird, die in jeder Klausel mindestens ein falsches und ein wahres Literal bewirkt. Not-All-Equal-3-SAT ist ebenfalls NP-vollständig.

