Skript zur Vorlesung Komplexitätstheorie im SS 1996
Skript zur Vorlesung Komplexitätstheorie im SS 1996
Skript zur Vorlesung Komplexitätstheorie im SS 1996
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
4 REDUKTIONEN UND VOLLSTÄNDIGKEIT 43<br />
Phase 2:<br />
• Band 3: Zähler i, j, k, k + 1. Systematisches Erzeugen aller Klauseln<br />
(xki∨xk+1,j) nacheinander. Nachdem eine Klausel erzeugt ist,<br />
nachprüfen (auf Band 1), ob (i, j) ∈ E. Falls (i, j) ∈ E, Klausel<br />
löschen; andernfalls Ausgabe der Klausel auf Band 4 und Klausel<br />
auf Band 3 löschen. Platzbedarf hier: 8 log n + c ∈ O(log n). (c<br />
sind Trennsymbole, Klammern)<br />
SAT ist ein Problem aus der Logik. Wie kann man nun bei gegebenen Ausdruck<br />
Φ und gegebener Wahrheitsbelegung T den Wert T (Φ) berechnen?<br />
Eine Möglichkeit ist die Benutzung von logischen Schaltkreisen (Gates), etwa<br />
für den Ausdruck Φ = ((x1 ∨ x2) ∧ x3) folgendermaßen:<br />
❧<br />
x1<br />
x2 ❧ x3 ❧<br />
❄<br />
❥¬<br />
❄<br />
∨❥<br />
❄<br />
∧❥<br />
Definition 4.3 (Boole’scher Schaltkreis) Ein Boole’scher Schaltkreis<br />
(sogenannter Boolean Circuit) ist ein Graph C = (V, E) mit V = {1, . . . , n}.<br />
Ein Knoten g aus V heißt auch Gate.<br />
Jeder Knoten g ∈ V hat einen Eingangsgrad 0, 1, oder 2.<br />
Die Sorte des Knotens s(g) ∈ {true, false, ∨, ∧, ¬}∪{x1, x2, . . . } . Die Sorten<br />
<br />
Variablen<br />
true, false, xi haben den Eingangsgrad 0, ¬ hat den Eingangsgrad 1 und ∨, ∧<br />
haben den Eingangsgrad 2.<br />
Der letzte Knoten n ist der Ausgabeknoten; dieser hat keine ausgehenden<br />
Kanten (kann auf mehrere Knoten erweitert werden. Der Ausgangsgrad ist<br />
für alle anderen Knoten beliebig.<br />
Definition 4.4 (Wahrheitsbelegung) Eine Wahrheitsbelegung T zu einem<br />
Boole’schen Schaltkreis C = (V, E) ist eine Abbildung von V in die<br />
Menge {true, false}, für die folgendes gilt (g, g1, g2 ∈ V ):<br />
1. T (g) = true, falls s(g) = true<br />
2. T (g) = false, falls s(g) = false<br />
3. T (g) ∈ {true, false}, falls g eine Variable ist (also s(g) ∈ {x1, x2, . . . })<br />
4. T (g) = T (g1)XT (g2), falls s(g) = X ∈ {∨, ∧}, (g1, g) ∈ E und<br />
(g2, g) ∈ E<br />
5. T (g) = ¬T (g1), falls s(g) ∈ {¬} und (g1, g) ∈ E