Handout - Institut für Theoretische Informatik - Technische ...

Handout - Institut für Theoretische Informatik - Technische ... Handout - Institut für Theoretische Informatik - Technische ...

iti.cs.tu.bs.de
von iti.cs.tu.bs.de Mehr von diesem Publisher
05.11.2013 Aufrufe

6. Komplexität von Algorithmen 6.4 FP - Reduzierbarkeit Auf welches Problem habe wir 2-Sat eigentlich reduziert? Definition SinvKomp hat als Eingabe einen gerichteten Graphen G = 〈V , E〉 und eine selbstinverse Abbildung V f V ohne Fixpunkte. Zu entscheiden ist, ob für jedes u ∈ V die Knoten u und f (u) in verschiedenen starken Komponenten von G liegen. Offenbar gehört SinvKomp zu P , da die Berechnung der starken Komponenten in polynomialer Zeitkomplexität erfolgen kann, wie auch die Überprüfung, ob a und f (a) zu derselben starken Komponente gehören. Es bleibt nachzuweisen, daß unsere Reduktion ϕ ↦→ G(ϕ) zu FP gehört. Als Maß m für die Größe der Eingabe ϕ bietet sich die Länge des Strings an, einschließlich Klammern bei Infix-Notation. Die Ermittlung der Variablen in ϕ und somit der Knoten von G(ϕ) erfordert lineare Zeit, ebenso wie das Eintragen der zwei Kanten pro Klausel. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS 2012 140 / 215

6. Komplexität von Algorithmen 6.4 FP - Reduzierbarkeit Beispiel Die obige Formel ϕ = (x ∨ y) ∧ (¬x ∨ z) ∧ (¬z ∨ ¬y) ist erfüllbar, da sich die positiven und negativen Varianten der Variablen x , y und z auf die beiden starken Komponenten des zugehörigen Graphen G(ϕ) verteilen. Die Belegung x = z = true und y = false und ihre Negation liefern beide den Wert true für ϕ . Andererseits ist ψ = (y ∨ x) ∧ (¬y ∨ z) ∧ (¬z ∨ x) ∧ (¬x ∨ ¬t) ∧ (t ∨ ¬x) nicht erfüllbar, da G(ψ) nur eine starke Komponente besitzt: x y z t ¬x ¬y ¬z ¬t Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS 2012 141 / 215

6. Komplexität von Algorithmen 6.4 FP - Reduzierbarkeit<br />

Beispiel<br />

Die obige Formel ϕ = (x ∨ y) ∧ (¬x ∨ z) ∧ (¬z ∨ ¬y) ist erfüllbar, da sich<br />

die positiven und negativen Varianten der Variablen x , y und z auf die<br />

beiden starken Komponenten des zugehörigen Graphen G(ϕ) verteilen.<br />

Die Belegung x = z = true und y = false und ihre Negation liefern<br />

beide den Wert true <strong>für</strong> ϕ .<br />

Andererseits ist ψ = (y ∨ x) ∧ (¬y ∨ z) ∧ (¬z ∨ x) ∧ (¬x ∨ ¬t) ∧ (t ∨ ¬x)<br />

nicht erfüllbar, da G(ψ) nur eine starke Komponente besitzt:<br />

x<br />

y<br />

z<br />

t<br />

¬x ¬y<br />

¬z<br />

¬t<br />

Jürgen Koslowski (TU-BS) <strong>Theoretische</strong> <strong>Informatik</strong> 2 SS 2012 141 / 215

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!