29.10.2013 Aufrufe

Skript zur Vorlesung Komplexitätstheorie im SS 1996

Skript zur Vorlesung Komplexitätstheorie im SS 1996

Skript zur Vorlesung Komplexitätstheorie im SS 1996

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!