Berechenbarkeit und Komplexität Vorlesung 16 Prof. Dr. Wolfgang Thomas Lehrstuhl Informatik 7 RWTH Aachen 12. Januar 2015 Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 12. Januar 2015 1 / 17 Alternative Charakterisierung der Klasse NP Satz Eine Sprache L ⊆ Σ∗ ist genau dann in NP, wenn es einen Polynomialzeitalgorithmus V (einen sogenannten Verifizierer) und ein Polynom p mit der folgenden Eigenschaft gibt: x ∈ L ⇔ ∃y ∈ {0, 1}∗ , |y | ≤ p(|x|) : V akzeptiert y #x. Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 12. Januar 2015 2 / 17 Beweis: Von der NTM zu Zertifikat & Verifizierer Gegeben: Sei M eine NTM, die L ∈ NP in polynomieller Zeit erkennt. M’s Laufzeit sei beschränkt durch ein Polynom q. O.B.d.A. sehe die Überführungsrelation von δ immer genau zwei Übergänge vor, die wir mit 0 und 1 bezeichnen. Konstruktion von Zertifikat und Verifizierer: Für die Eingabe x ∈ L beschreibe y ∈ {0, 1}q(n) den Pfad von M auf einem akzeptierenden Rechenweg. Wir verwenden y als Zertifikat. Der Verifizierer V erhält als Eingabe y #x und simuliert einen Rechenweg der NTM M für die Eingabe x. Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 12. Januar 2015 3 / 17 Beweis: Von der NTM zu Zertifikat & Verifizierer Korrektheit der Konstruktion: Gemäß Konstruktion gilt x ∈ L ⇔ M akzeptiert x ⇔ ∃y ∈ {0, 1}q(n) : V akzeptiert y #x. Der Verifizierer kann die durch das Zertifikat y beschriebene Rechnung mit polynomiellem Zeitverlust simulieren. Somit erfüllen y und V die im Satz geforderten Eigenschaften. Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 12. Januar 2015 4 / 17 Beweis: Von Zertifikat & Verifizierer zur NTM Gegeben: Verifizierer V mit polynomieller Laufzeitschranke und Polynom p mit der Eigenschaft: x ∈ L ⇔ ∃y ∈ {0, 1}∗ , |y | ≤ p(|x|) : V akzeptiert y #x. Konstruktion der NTM: 1 M rät das Zertifikat y ∈ {0, 1}∗ , |y | ≤ p(n). 2 M führt V auf y #x aus und akzeptiert, falls V akzeptiert. Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 12. Januar 2015 5 / 17 Beweis: Von Zertifikat & Verifizierer zur NTM Korrektheit der Konstruktion: M erkennt die Sprache L, weil gilt x ∈ L ⇔ ∃y ∈ {0, 1}∗ , |y | ≤ p(n) : V akzeptiert y #x ⇔ Es gibt einen akzeptierenden Rechenweg für M ⇔ M akzeptiert x. Die Laufzeit von M ist polynmiell beschränkt, denn die Laufzeit von Schritt 1 entspricht der Länge des Zertifikats, und die Laufzeit von Schritt 2 entspricht der Laufzeit des Verizierers. Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 12. Januar 2015 6 / 17 Die Komplexitätsklasse EXPTIME Definition (Komplexitätsklasse EXPTIME) EXPTIME ist die Klasse der Probleme, die sich auf einer DTM mit Laufzeitschranke 2q(n) berechnen lassen, wobei q ein geeignetes Polynom ist. Wie verhält sich NP zu P und EXPTIME? Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 12. Januar 2015 7 / 17 Wie verhält sich NP zu P und EXPTIME? Im Folgenden schränken wir die Klassen P und EXPTIME auf Entscheidungsprobleme ein, um sie mit der Klasse NP in Beziehung setzen zu können. Satz P ⊆ NP ⊆ EXPTIME Beweis: Offensichtlich gilt P ⊆ NP, weil eine DTM als eine spezielle NTM aufgefasst werden kann. Wir müssen noch zeigen NP ⊆ EXPTIME. Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 12. Januar 2015 8 / 17 Exponentielle Laufzeitschranke für Probleme aus NP Sei L ∈ NP. Die Länge der Zertifikate für L sei p(n). Wir beschreiben einen det. Algorithmus A mit exponentieller Laufzeitschranke, der L entscheidet: Bei Eingabe x ∈ {0, 1}n startet A den Verifizierer V mit y #x für jedes Zertifikat y ∈ {0, 1}p(n) . A akzeptiert, falls V eines der generierten Zertifikate akzeptiert. Laufzeitanalyse: Sei p ′ eine polynomielle Laufzeitschranke für V . Die Laufzeit unseres Algorithmus ist dann höchstens ′ 2p(n) · p ′ (p(n) + 1 + n) ≤ 2p(n) · 2p (p(n)+1+n) ′ ≤ 2p(n)+p (p(n)+1+n) = 2q(n) für das Polynom q(n) = p(n) + p ′ (p(n) + 1 + n). Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 12. Januar 2015 9 / 17 Die große offene Frage der Informatik lautet P = NP? Diese Frage ist so bedeutend, weil sehr viele wichtige Probleme in NP enthalten sind, für die kein Polynomialzeitalgorithmus bekannt ist. Immerhin gibt es tiefliegende Erkenntnisse zu dieser Fragestellung. Die wichtigste Erkenntnis: Man kann die Frage auf konkrete Entscheidungsprobleme L reduzieren und weiß: Wenn es einen Unterschied zwischen P und NP gibt, dann gehört L dazu. Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 12. Januar 2015 10 / 17 Klassische Problemreduktion Erinnerung: Für Sprachen K ⊆ Σ∗1 , L ⊆ Σ∗2 wurde definiert K ≤ L gdw. es gibt f : Σ∗1 → Σ∗2 berechenbar mit w ∈ K ⇔ f (w ) ∈ L Anschaulich: “L ist mindestens so schwierig wie K ” Genauer wissen wir: Wenn K ≤ L und K unentscheidbar, dann L unentscheidbar. Wir übertragen diese Definition nun auf den Fall, dass wir statt Berechenbarkeit und Entscheidbarkeit mit Berechenbarkeit in Polynomzeit und Entscheidbarkeit in Polynomzeit arbeiten. Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 12. Januar 2015 11 / 17 Problemreduktion in Polynomzeit Definition (Polynomzeitreduktion) Für Sprachen K ⊆ Σ∗1 , L ⊆ Σ∗2 gelte K ≤p L :gdw. es gibt f : Σ∗1 → Σ∗2 polynomzeitberechenbar mit w ∈ K ⇔ f (w ) ∈ L Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 12. Januar 2015 12 / 17 Eine Bemerkung Lemma Wenn K ≤p L und L ∈ P, dann K ∈ P. Äquivalent dazu: Wenn K ≤p L und K 6∈ P, dann L 6∈ P. Der Beweis ist einfach: Sei Mf eine TM, die f in Polynomzeit p(n) berechnet, mit w ∈ K ⇔ f (w ) ∈ L, o.B.d.A. so, dass für Eingabe w bei Termination nur f (w ) auf dem Band steht; die Länge von f (w ) ist dann ≤ p(|w |). Sei ML eine TM, die L in Polynomzeit q(n) entscheidet. M arbeite zuerst wie Mf und dann wie ML . M entscheidet dann K und ist q(p(n))-zeitbeschränkt, also ist K ∈ P. Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 12. Januar 2015 13 / 17 NP-Vollständigkeit Definition Eine Sprache L0 heißt NP-vollständig, wenn L0 zu NP gehört für jede Sprache L aus NP gilt: L ≤p L0 Die zweite Bedingung hat zur Konsequenz: Kann man L0 in Polynomzeit entscheiden, dann auch L. Dann sehen wir, dass sich die offene Frage, ob NP mehr Sprachen enthält als P, reduzieren lässt auf die Frage, ob L0 ∈ P: Bemerkung Wenn P6=NP und L0 NP-vollständig, dann L0 ∈ NP \ P. Hierzu betrachte L ∈ NP \ P. Wegen L ∈ NP gilt dann L ≤p L0 , Wegen L 6∈ P also L0 6∈ P, ferner L0 ∈ NP nach Voraussetzung, dass L0 NP-vollständig ist. Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 12. Januar 2015 14 / 17 Zum Problem SAT Die Definition “L0 NP-vollständig” garantiert natürlich noch nicht, dass es solche Sprachen L0 gibt. Wir stellen nun ein erstes Beispiel vor: “SAT” Definition (Boolesche Logik / KNF) Formeln der Booleschen Logik werden aus Aussagevariablen x1 , x2 , . . . durch Anwendung von “und” (∧), “oder” (∨) und “nicht” (¬, Überstrich) aufgebaut. Wir betrachten hier Formeln in konjunktiver Normalform (KNF). Dies sind Konjunktionen aus Disjunktionen (Klauseln). Diese sind aus “Literalen” aufgebaut: Variablen xi und ihre Negate xi . Beispiele Boolescher Formeln: ϕ1 : (x1 ∨ x2 ) ∧ x2 ∧ (x1 ∨ x3 ) ϕ2 : (x1 ∨ x2 ) ∧ x2 ∧ (x1 ∨ x2 ) Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 12. Januar 2015 15 / 17 Belegungen, Erfüllbarkeit Eine Belegung ist eine Funktion β, die jeder Variablen einer Formel einen der Werte 0 oder 1 zuordnet. Beispiel: β1 : x1 7→ 1, x2 7→ 0, x3 7→ 1 Eine Belegung β erfüllt eine Formel ϕ, wenn die Ersetzung von xi durch das Bit β(xi ) in ϕ den Wert 1 liefert (mit den üblichen Auswertungsregeln). Beispiel: Die Belegung β1 : x1 → 7 1, x2 7→ 0, x3 7→ 1 erfüllt ϕ1 : (x1 ∨ x2 ) ∧ x2 ∧ (x1 ∨ x3 ) Die Formel ϕ heißt erfüllbar, wenn es dafür eine erfüllende Belegung gibt. Wie oben gezeigt: ϕ1 ist erfüllbar. ϕ2 : (x1 ∨ x2 ) ∧ x2 ∧ (x1 ∨ x2 ) ist nicht erfüllbar. Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 12. Januar 2015 16 / 17 SAT Problem (SAT) Gegeben: Boolesche Formel ϕ in KNF. Frage: Ist ϕ erfüllbar? Es gibt eine einfache Lösung durch einen Probieralgorithmus: Teste bei n vorkommenden Variablen x1 , . . . , xn alle 2n möglichen Belegungen von x1 , . . . , xn durch und prüfe jeweils, ob sich bei Auswertung der Wert 1 ergibt. Unser nächstes Ziel ist der Nachweis, dass wir mit SAT ein erstes NP-vollständiges Problem haben. Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 12. Januar 2015 17 / 17