Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Komplexitätsklassen NP-Vollständigkeit Reduzierbarkeit Vorlesung “Berechenbarkeit und Komplexität” alias “Theoretische Informatik: Komplexitätstheorie und effiziente Algorithmen” Wie bei der Berechenbarkeitstheorie beschäftigen wir uns auch hier mit dem Konzept der Reduzierbarkeit. Damit wollen wir Aussagen folgender Form ableiten: Wenn B lösbar ist, dann ist auch A lösbar und man benötigt nur einen polynomial großen zusätzlichen Zeitaufwand. (A ist auf B polynomial reduzierbar.) Wintersemester 2011/12 Damit haben wir auch die Möglichkeit, die “schwersten” Probleme der Komplexitätsklasse NP (sogenannte NP-vollständige Probleme) zu definieren. Das sind Probleme in NP, auf die alle anderen NP-Probleme polynomial reduzierbar sind. Prof. Barbara König Übungsleitung: Henning Kerstan & Jan Stückrath Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie BeKo/TI 1 Komplexitätsklassen NP-Vollständigkeit Reduzierbarkeit Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie BeKo/TI 257 Komplexitätsklassen NP-Vollständigkeit Reduzierbarkeit Analog zum Begriff der Reduzierbarkeit in der Berechenbarkeitstheorie definieren wir nun den Begriff der polynomialen Reduzierbarkeit. Polynomiale Reduzierbarkeit (Lemma) Polynomiale Reduzierbarkeit (Definition) Σ∗ , Falls A ≤p B, so gilt: Γ∗ . Gegeben seien Sprachen A ⊆ B⊆ Dann heißt A auf B polynomial reduzierbar (in Zeichen A ≤p B), falls es eine totale und mit polynomialer Laufzeit (deterministisch) berechenbare Funktion f : Σ∗ → Γ∗ gibt, so dass für alle x ∈ Σ∗ gilt: Aus B ∈ P folgt A ∈ P. Aus B ∈ NP folgt A ∈ NP. x ∈ A ⇐⇒ f (x) ∈ B. Barbara König BeKo/TI 258 Barbara König BeKo/TI 259 Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Komplexitätsklassen NP-Vollständigkeit Reduzierbarkeit Komplexitätsklassen NP-Vollständigkeit NP-Vollständigkeit Begründung für: (A ≤p B und B ∈ P) ⇒ A ∈ P MA x f f (x) Laufzeit p(|x|) MB NP-hart, NP-vollständig (Definition) Ja Eine Sprache A heißt NP-hart, falls für alle Sprachen L ∈ NP gilt: L ≤p A. Eine Sprache A heißt NP-vollständig, falls A NP-hart ist und A ∈ NP gilt. Nein Laufzeit q(|f (x)|) Außerdem: |f (x)| ≤ p(|x|) Das bedeutet: eine NP-vollständige Sprache ist mindestens so schwierig wie jedes andere Problem in NP. In polynomialer Laufzeit kann f höchstens eine polynomial große Ausgabe f (x) produzieren. Dann gilt für die Gesamtlaufzeit: p(|x|) + q(|f (x)|) ≤ p(|x|) + q(p(|x|)), und das ist wiederum ein Polynom Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie BeKo/TI 260 Komplexitätsklassen NP-Vollständigkeit NP-Vollständigkeit Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie BeKo/TI 261 Komplexitätsklassen NP-Vollständigkeit NP-Vollständigkeit Sobald man von einer NP-vollständigen Sprache zeigen könnte, dass sie in P (nicht) enthalten ist, wäre das P 6= NP-Problem gelöst. Bemerkung: Sobald man von einer Sprache A nachgewiesen hat, dass sie NP-hart ist, kann man dieses Resultat nutzen, um die NP-Härte einer anderen Sprache B zu beweisen. NP-Vollständigkeit und P Sei A NP-vollständig. Dann gilt Es reicht in diesem Fall aus zu zeigen, dass A ≤p B gilt. Aufgrund der Transitivität von ≤p folgt dann auch L ≤p B für alle L ∈ NP. A ∈ P ⇐⇒ P = NP Bemerkung: Daraus folgt unmittelbar, dass auch A 6∈ P ⇐⇒ P 6= NP für jedes NP-vollständige Problem A gilt. Barbara König BeKo/TI 262 Barbara König BeKo/TI 263 Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Komplexitätsklassen NP-Vollständigkeit NP-Vollständigkeit Komplexitätsklassen NP-Vollständigkeit NP-Vollständigkeit Dazu nochmal ein Comic (aus Garey/Johnson: Computers and Intractability): Nicht so gut . . . Bedeutung des Konzepts der NP-Vollständigkeit Klassifizierung von Problemen: viele in der Praxis relevanten Probleme sind NP-vollständig. Das bedeutet, dass es für diese Probleme aufwändig ist, exakte Lösungen zu finden und man in den meisten Fällen Heuristiken einsetzen muss, die annähernde Lösungen liefern. Strukturtheorie für die Komplexitätstheorie Hoffnung für das P 6= NP-Problem? “I can’t find an efficient algorithm. I guess I’m just too dumb.” Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie BeKo/TI 264 Komplexitätsklassen NP-Vollständigkeit NP-Vollständigkeit Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie BeKo/TI 265 Komplexitätsklassen NP-Vollständigkeit SAT ist NP-vollständig Besser . . . Wir zeigen nun, dass das Erfüllbarkeitsproblem SAT für aussagenlogische Formeln NP-vollständig ist. Dazu nehmen wir an, dass aussagenlogische Formeln geeignet kodiert einer Turingmaschine als Eingabe übergeben werden können. NP-Vollständigkeit von SAT (Satz von Cook) Das Erfüllbarkeitsproblem der Aussagenlogik SAT ist NP-vollständig. “I can’t find an efficient algorithm, but neither can all these famous people.” Barbara König BeKo/TI 266 Barbara König BeKo/TI 267 Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Komplexitätsklassen NP-Vollständigkeit SAT ist NP-vollständig Komplexitätsklassen NP-Vollständigkeit SAT ist NP-vollständig 1. Schritt: Man muss zeigen, dass SAT in NP liegt. Das folgt unmittelbar aus den Überlegungen im vorherigen Abschnitt (Belegung raten und überprüfen, ob sie die Formel erfüllt). 2. Schritt: Wir müssen zeigen, dass SAT NP-hart ist, das heißt, dass L ≤p SAT für alle L ∈ NP gilt. Jedes Problem L ∈ NP wird durch eine nicht-deterministische polynomzeitbeschränkte Turingmaschine M akzeptiert. Gegeben sei ein beliebiges Problem L ∈ NP. Zeige, dass es zu jedem Wort x = x0 . . . xn−1 eine aussagenlogische Formel F gibt mit: Sei also M eine solche Turingmaschine für L. Wir nehmen an, dass Γ = {a1 , . . . , a` } das Bandalphabet und Z = {z0 , z1 , . . . , zk } die Zustandsmenge bezeichnen. x ∈ L ⇐⇒ F ist erfüllbar Die Kodierung von F ist immer kürzer als (oder gleich) q(n), wobei q ein Polynom ist, d.h., F ist polynomial durch die Größe von x beschränkt (wg. polynomialer Reduzierbarkeit) und die Berechnung von F erfordert weniger als q(n) Schritte. Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie BeKo/TI 268 Komplexitätsklassen NP-Vollständigkeit SAT ist NP-vollständig BeKo/TI 269 Komplexitätsklassen NP-Vollständigkeit SAT ist NP-vollständig Position: Idee: Jede Berechnung von M auf x kann man als Tableau darstellen, bei dem die Bandinhalte in den aufeinanderfolgenden Schritten untereinandergeschrieben werden. Beobachtungen: M akzeptiert x, wenn es ein Tableau gibt, das mit Bandinhalt x und Anfangszustand z0 beginnt und mit einem beliebigen Bandinhalt und einem Endzustand endet. Da die Rechenzeit von M polynomial beschränkt ist (durch ein Polynom p), reicht es aus, Tableaus zu mit folgenden Schritten und Positionen zu betrachten: Schritte: 0, . . . , p(n) Positionen: −p(n), . . . , −1, 0, 1, . . . , p(n) (an andere Positionen kann der Kopf in p(n) Schritten nicht gelangen) Barbara König Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie BeKo/TI . . . −1 0 1 2 3 4 5 ... Schritte: Zustand: z0 1 0 1 1 1 0 z0 1 0 1 1 1 1 z0 1 0 1 1 1 2 z0 1 0 1 1 1 3 z0 1 0 1 1 1 4 z0 1 0 1 1 1 5 z1 1 0 1 1 1 6 z1 1 0 1 1 0 7 ... 270 Barbara König BeKo/TI 271 Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Komplexitätsklassen NP-Vollständigkeit SAT ist NP-vollständig SAT ist NP-vollständig Position: Wir bestimmen nun die atomaren Aussagen (Variablen) der aussagenlogischen Formel. Diese beschreiben vollständig den Inhalt eines Tableaus: Atomare Aussage zust t,z pos t,i band t,i,a Indizes t = 0, . . . , p(n) z ∈Z Bedeutung zust t,z = 1 ⇐⇒ nach t Schritten befindet sich M im Zustand z pos t,i = 1 ⇐⇒ der Kopf von M befindet sich nach t Schritten auf Position i band t,i,a = 1 ⇐⇒ nach t Schritten befindet sich auf Position i das Zeichen a t = 0, . . . , p(n) i = −p(n), . . . , p(n) t = 0, . . . , p(n) i = −p(n), . . . , p(n) a∈Γ Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie BeKo/TI 272 Komplexitätsklassen NP-Vollständigkeit SAT ist NP-vollständig Position: pos 6,4 = 1 Komplexitätsklassen NP-Vollständigkeit zust 2,z0 = 1 . . . −1 0 1 2 3 4 5 ... Schritte: Zustand: z0 1 0 1 1 1 0 z0 1 0 1 1 1 1 z0 1 0 1 1 1 2 z0 1 0 1 1 1 3 z0 1 0 1 1 1 4 z0 1 0 1 1 1 5 z1 1 0 1 1 1 6 z1 1 0 1 1 0 7 ... Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie BeKo/TI 273 Komplexitätsklassen NP-Vollständigkeit SAT ist NP-vollständig . . . −1 0 1 2 3 4 5 ... Schritte: Zustand: z0 1 0 1 1 1 0 z0 1 0 1 1 1 z0 1 0 1 1 1 z0 1 0 1 1 z0 1 0 1 z0 1 0 z1 1 z1 1 Position: . . . −1 0 1 2 3 4 5 ... Zustand: z0 1 0 1 1 1 0 1 z0 1 0 1 1 1 1 2 z0 1 0 1 1 1 2 1 3 z0 1 0 1 1 1 3 1 1 3 z0 1 0 1 1 1 4 1 1 1 5 z0 1 0 1 1 1 5 0 1 1 1 6 z1 1 0 1 1 1 6 0 1 1 0 7 z1 1 0 1 1 0 7 band 5,−1, = 1 ... Barbara König BeKo/TI Schritte: ... 273 Barbara König BeKo/TI 273 Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Komplexitätsklassen NP-Vollständigkeit SAT ist NP-vollständig Komplexitätsklassen NP-Vollständigkeit SAT ist NP-vollständig Wir geben nun eine aussagenlogische Formel F mit folgendem Inhalt an: (Anfang) Die erste Zeile des Tableaus enspricht der Anfangskonfiguration mit x auf dem Band (Randbedingungen) Die Formel ist in sich konsistent, insbesondere befindet sich zu jedem Zeitpunkt die Turingmaschine in genau einem Zustand der Kopf an genau einer Position genau ein Zeichen in jedem Feld (Übergang 1) Jede nachfolgende Zeile folgt aus der vorhergehenden Zeile, wobei sich der Zustand, die Kopfposition und der Bandinhalt ändert, so wie dies durch die Überführungsfunktion δ beschrieben wird. (Übergang 2) Alle Bandfelder, die nicht vom Übergang betroffen sind, behalten ihren Inhalt. (Ende) In der letzten Zeile des Tableaus wird ein Endzustand erreicht. Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie BeKo/TI 274 Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Komplexitätsklassen NP-Vollständigkeit SAT ist NP-vollständig BeKo/TI 275 Komplexitätsklassen NP-Vollständigkeit SAT ist NP-vollständig Die erste Zeile des Tableaus enspricht der Anfangskonfiguration mit x auf dem Band. Dann gilt: die akzeptierenden Berechnungen der Turingmaschine entsprechen genau den erfüllenden Belegungen der Formel. (Anfang) Wir beschreiben nun die fünf Bedingungen (Anfang), (Übergang 1), (Übergang 2), (Ende) und (Randbedingungen) als aussagenlogische Formeln. Die Formel F ergibt sich dann durch Konjunktion (UND-Verknüpfung) dieser fünf Formeln. Formel A A = zust 0,z0 ∧ pos 0,0 ∧ n−1 ^ band 0,j,xj ∧ j=0 −1 ^ band 0,j, j=−p(n) p(n) ∧ ^ band 0,j, j=n Barbara König BeKo/TI 276 Barbara König BeKo/TI 277 Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Komplexitätsklassen NP-Vollständigkeit SAT ist NP-vollständig SAT ist NP-vollständig Jede Zeile folgt aus der vorhergehenden Zeile, wobei sich der Zustand, die Kopfposition und der Bandinhalt ändert, so wie dies durch die Überführungsfunktion δ beschrieben wird. (Übergang 1) U1 = ^ (zust t,z ∧ pos t,i ∧ band t,i,a ) t,z,i,a → Alle Bandfelder, die nicht vom Übergang betroffen sind, behalten ihren Inhalt. Formel U1 _ Komplexitätsklassen NP-Vollständigkeit (zust t+1,z 0 (Übergang 2) ∧ pos t+1,i+d(y ) ∧ band t+1,i,a0 ) U2 = Formel U2 ^ (¬pos t,i ∧ band t,i,a ) → band t+1,i,a t,i,a z 0 , a0 , y mit 0 (z , a0 , y ) ∈ δ(z, a) −1 falls y = L 0 falls y = N wobei d(y ) = 1 falls y = R Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie BeKo/TI 278 Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Komplexitätsklassen NP-Vollständigkeit SAT ist NP-vollständig BeKo/TI 279 Komplexitätsklassen NP-Vollständigkeit SAT ist NP-vollständig Für die Beschreibung der Randbedingung benötigen wir eine Hilfsformel G mit In der letzten Zeile des Tableaus wird ein Endzustand erreicht. (Ende) G (x1 , . . . , xm ) = 1 ⇐⇒ für genau ein i ist xi = 1 Formel E E = _ G kann beispielsweise folgende Form haben: zust p(n),z z∈E G= _ m xi ∧ m−1 m ^ ^ ¬(xj ∧ x` ) j=1 `=j+1 | i=1 {z } | {z } mindestens ein xi = 1 falls j = 6 ` ⇒ ¬(xj = 1 ∧ x` = 1) Barbara König BeKo/TI 280 Barbara König BeKo/TI 281 Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Komplexitätsklassen NP-Vollständigkeit SAT ist NP-vollständig SAT ist NP-vollständig Die Formel ist in sich konsistent, insbesondere befindet sich zu jedem Zeitpunkt Die Formel F sieht dann wie folgt aus: die Turingmaschine in genau einem Zustand der Kopf an genau einer Position F = A ∧ U1 ∧ U2 ∧ E ∧ R genau ein Zeichen in jedem Feld (Randbedingungen) Bei genauerer Betrachtung stellt man auch fest, dass die Größe von F durch q(|x|) beschränkt ist, wobei x die Eingabe und q ein Polynom ist. Formel R ^ R = G (zust t,z1 , . . . , zust t,zk ) ∧ G (pos t,−p(n) , . . . , pos t,p(n) ) t ∧ ^ Komplexitätsklassen NP-Vollständigkeit Da x in der entsprechenden Sprache enthalten ist, genau dann, wenn F erfüllbar ist, folgt daraus die Existenz einer polynomialen Reduktion von L nach SAT, was zu beweisen war. G (band t,i,a1 , . . . , band t,i,a` ) i Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie BeKo/TI 282 Komplexitätsklassen NP-Vollständigkeit SAT ist NP-vollständig BeKo/TI 283 Komplexitätsklassen NP-Vollständigkeit Weitere NP-vollständige Probleme Konsequenzen aus dem Satz von Cook: Wir betrachten nun folgende Reduktionskette und weisen dadurch nach, dass alle diese Probleme NP-vollständig sind. Da SAT in exponentieller Zeit 2O(n) entscheidbar ist (Wahrheitstafel, alle Belegungen durchprobieren) und alle NP-Probleme polynomial auf SAT reduzierbar sind, sind damit auf jeden Fall alle NP-Probleme in exponentieller Zeit entscheidbar. SAT ≤p 3KNF-SAT ≤p GER.HAM.KREIS ≤p UNGER.HAM.KREIS ≤p TSP 3KNF-SAT: Erfüllbarkeit von aussagenlogischen Formeln in konjunktiver Normalform mit höchstens drei Literalen pro Klausel. Es gibt Erfüllbarkeits-Checker für aussagenlogische Formeln in konjunktiver Normalform (sogenannte SAT-Solver), die in der Praxis gut funktionieren. GER.HAM.KREIS: Enthält ein Graph einen gerichteten Hamiltonkreis? Für bestimmte Formeln zeigen sie jedoch ein schlechtes Laufzeitverhalten. UNGER.HAM.KREIS: Enthält ein Graph einen ungerichteten Hamiltonkreis? Diese SAT-Solver kann man über Reduktionen nutzen, um damit auch andere NP-vollständige Probleme in der Praxis zu lösen. Barbara König Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie BeKo/TI TSP: Travelling Salesman Problem 284 Barbara König BeKo/TI 285 Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Komplexitätsklassen NP-Vollständigkeit 3KNF-SAT ist NP-vollständig 3KNF-SAT ist NP-vollständig NP-Vollständigkeit von 3KNF-SAT (Satz) Erfüllbarkeitsproblem 3KNF-SAT Eingabe: eine aussagenlogische Formel F in konjunktiver Normalform mit höchstens drei Literalen pro Klausel. Das Problem 3KNF-SAT ist NP-vollständig. Beweis: Wir bestimmen eine Reduktionsfunktion für SAT ≤p 3KNF-SAT wie folgt: sei F eine beliebige aussagenlogische Formel. Wir müssen eine Formel F 0 in konjunktiver Normalform mit maximal drei Literalen pro Klausel bestimmen, so dass Ausgabe: Hat F eine erfüllende Belegung? Beispiel: Die Formel F = (x1 ∨ ¬x2 ) ∧ (x1 ∨ x2 ∨ x3 ) ∧ ¬x1 ∧ ¬x3 ist in der geforderten Form und hat keine erfüllende Belegung. Das heißt F 6∈ 3KNF-SAT. Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Komplexitätsklassen NP-Vollständigkeit BeKo/TI F erfüllbar ⇐⇒ F 0 erfüllbar 286 Komplexitätsklassen NP-Vollständigkeit 3KNF-SAT ist NP-vollständig Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie BeKo/TI 287 Komplexitätsklassen NP-Vollständigkeit 3KNF-SAT ist NP-vollständig 1. Schritt: Stelle alle Operatoren durch ∨, ∧ und ¬ dar. 3. Schritt: Betrachte die so entstandene Formel als binären Baum, bei dem an den inneren Knoten die Operatoren ∧, ∨ stehen und die Blätter mit xi bzw. ¬xi beschriftet sind. F1 → F2 ≡ ¬F1 ∨ F2 F1 ↔ F2 ≡ (F1 → F2 ) ∧ (F2 → F1 ) ≡ (¬F1 ∨ F2 ) ∧ (¬F2 ∨ F1 ) ∨ 2. Schritt: Bringe alle Negationen ¬ zu den atomaren Aussagen, durch Anwendung der Regeln von de Morgan und einer weiteren Negationsregel: ∨ x1 ¬(F1 ∨ F2 ) ≡ ¬F1 ∧ ¬F2 ∧ ¬x2 x2 ¬x1 ¬(F1 ∧ F2 ) ≡ ¬F1 ∨ ¬F2 ¬¬F Barbara König ≡ F BeKo/TI 288 Barbara König BeKo/TI 289 Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Komplexitätsklassen NP-Vollständigkeit 3KNF-SAT ist NP-vollständig 3KNF-SAT ist NP-vollständig 4. Schritt: Ordne jedem inneren Knoten eine neue Variable y0 , y1 , y2 , . . . zu. Der Wurzel wird y0 zugeordnet. 5. Schritt: Sei yi die Beschriftung eines inneren Knotens mit Operator ◦. Außerdem seien die Kinder mit u, v beschriftet. Dann ordne diesem Knoten die Formel yi ↔ u ◦ v zu. Alle diese Formeln werden mit ∧ verknüpft und die neue Formel y0 hinzugefügt. ∨ y0 ∨ y1 x1 In unserem Beispiel ergibt sich: ∧ y2 ¬x2 y0 ∧ (y0 ↔ (y1 ∨ y2 )) ∧ (y1 ↔ (x1 ∨ ¬x2 )) ∧ (y2 ↔ (x2 ∧ ¬x1 )) ¬x1 x2 Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie BeKo/TI 290 Komplexitätsklassen NP-Vollständigkeit 3KNF-SAT ist NP-vollständig Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie BeKo/TI 291 Komplexitätsklassen NP-Vollständigkeit 3KNF-SAT ist NP-vollständig Alternativer Vorschlag (schlechte Idee): 6. Schritt: Forme diese Formel in die verlangte konjunktive Normalform mit maximal drei Literalen pro Klausel um. Und zwar mit Hilfe folgender Regeln: Warum wird die Formel F nicht mit Hilfe der Regeln von de Morgan und des Distributivgesetzes in konjunktive Normalform gebracht? (Und dann weiter umgeformt, so dass man weniger als drei Literale pro Klausel hat?) y ↔ (u ∨ v ) ≡ (¬y ∨ u ∨ v ) ∧ (¬(u ∨ v ) ∨ y ) ≡ (¬y ∨ u ∨ v ) ∧ ((¬u ∧ ¬v ) ∨ y ) Antwort: Bei dieser Umwandlung kann die Formel exponentiell größer werden! Beispiel: Die Größe der Formel ≡ (¬y ∨ u ∨ v ) ∧ (¬u ∨ y ) ∧ (¬v ∨ y ) (Distributivgesetz!) (x1 ∧ x2 ) ∨ (x3 ∧ x4 ) ∨ · · · ∨ (x2n−1 ∧ x2n ) Analog: y ↔ (u ∧ v ) ≡ (¬y ∨ u) ∧ (¬y ∨ v ) ∧ (¬u ∨ ¬v ∨ y ) ist linear in n. Bei Umformung in konjunktive Normalform mittels des Distributivgesetzes (“ausmultiplizieren”) erhält man jedoch 2n Klauseln, jede der Größe n. Eine solche Klausel ist beispielsweise F 0, Damit erhält man eine Formel die erfüllbar ist, genau dann, wenn F erfüllbar ist. Außerdem wurden alle Umformungsschritte mit nur polynomialem Aufwand durchgeführt. Barbara König Komplexitätsklassen NP-Vollständigkeit BeKo/TI (x1 ∨ x3 ∨ · · · ∨ x2n−1 ) 292 Barbara König BeKo/TI 293 Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Komplexitätsklassen NP-Vollständigkeit Betrachtung von 2KNF-SAT Komplexitätsklassen NP-Vollständigkeit Betrachtung von 2KNF-SAT Für das Resolutionsverfahren benötigen wir die folgenden beiden Sätze: Wir betrachten nun das Problem 2KNF-SAT, analog zu 3KNF-SAT, bei dem jede Klausel höchstens zwei Literale enthält. Resolutionsregel (Satz) Es gilt: Behauptung: Mit Hilfe des Resolutionsverfahrens ist in Polynomialzeit entscheidbar, ob eine Formel F dieser Form erfüllbar ist. D.h., 2KNF-SAT liegt in P. (F1 ∨ xi ) ∧ (F2 ∨ ¬xi ) ≡ F ∧ (F1 ∨ F2 ) {z } | F Das Argument “man muss aber doch alle Belegungen durchprobieren” ist also nicht in allen Fällen stichhaltig. Das heißt man kann neu gebildete Klauseln zu einer Formel hinzufügen, ohne ihren Wahrheitswert und ihre Erfüllbarkeit zu verändern. Beispiel: (x1 ∨ x2 ) ∧ (x3 ∨ ¬x2 ) ≡ (x1 ∨ x2 ) ∧ (x3 ∨ ¬x2 ) ∧ (x1 ∨ x3 ). Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie BeKo/TI 294 Komplexitätsklassen NP-Vollständigkeit Betrachtung von 2KNF-SAT Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie BeKo/TI 295 Komplexitätsklassen NP-Vollständigkeit Betrachtung von 2KNF-SAT Beispiel: Aus F = (x1 ∨ ¬x2 ) ∧ (x1 ∨ x2 ∨ x3 ) ∧ ¬x1 ∧ ¬x3 kann man folgende Klauseln ableiten: Resolutionsverfahren (Satz) Eine Formel F ist nicht erfüllbar, genau dann, wenn man mit Hilfe der Resolutionsregel die einelementigen Klauseln xi und ¬xi (für ein beliebiges i) ableiten kann. (x1 ∨ ¬x2 ), ¬x1 ¬x2 (x1 ∨ x2 ∨ x3 ), ¬x1 (Daraus kann man dann noch in einem weiteren Schritt die sogenannte leere Klausel ableiten.) (x2 ∨ x3 ) (x2 ∨ x3 ), ¬x3 x2 x2 , ¬x2 (leere Klausel) Daraus folgt, dass F unerfüllbar ist. Barbara König BeKo/TI 296 Barbara König BeKo/TI 297 Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Komplexitätsklassen NP-Vollständigkeit Betrachtung von 2KNF-SAT GER.HAM.KREIS ist NP-vollständig Im folgenden betrachten wir das Problem zu bestimmen, ob ein Graph einen Kreis enthält, der durch jeden Knoten genau einmal führt. Bei der Resolution von zwei zweielementigen Klauseln ergibt sich wieder nur eine maximal zweielementige Klausel (das ist bei dreielementigen Klauseln anders!). 2n(2n−1) Da es bei n verschiedenen atomaren Formeln nur 2n 2 2 = viele zweielementige und 2n viele einelementige Klauseln gibt, werden nach spätestens dieser polynomialen Anzahl von Schritten keine neuen Klauseln mehr abgeleitet. GER.HAM.KREIS – Gerichteter Hamiltonkreis Eingabe: ein gerichteter Graph G = (V , E ) mit Knotenmenge V und Kantenmenge E ⊆ V × V . Sei außerdem m = |V | die Anzahl der Knoten. Ausgabe: Besitzt der Graph G einen Hamiltonkreis? Das heißt, gibt es eine Anordnung v1 , . . . , vm der Knoten, so dass gilt: Je nachdem, ob die leere Klausel entstanden ist oder nicht, kann man jetzt entscheiden, ob die ursprüngliche Formel unerfüllbar ist. Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Komplexitätsklassen NP-Vollständigkeit BeKo/TI V = {v1 , . . . , vm } (jeder Knoten kommt genau einmal vor) (vi , vi+1 ) ∈ E für i ∈ {1, . . . , m − 1} und (vm , v1 ) ∈ E (es gibt einen Kreis, der genau einmal durch jeden Knoten führt) 298 Komplexitätsklassen NP-Vollständigkeit GER.HAM.KREIS ist NP-vollständig Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie BeKo/TI 299 Komplexitätsklassen NP-Vollständigkeit GER.HAM.KREIS ist NP-vollständig NP-Vollständigkeit von GER.HAM.KREIS (Satz) Beispiele für Graphen mit und ohne Hamiltonkreis: Das Problem GER.HAM.KREIS ist NP-vollständig. Beweis: Es ist zu zeigen, dass 3KNF-SAT ≤p GER.HAM.KREIS. Kein Hamiltonkreis! Kein Hamiltonkreis! Barbara König BeKo/TI Wir bestimmen dazu eine Reduktionsfunktion, die einer gegebenen aussagenlogischen Formel F einen gerichteten Graphen G zuordnet, so dass F erfüllbar ist, genau dann, wenn G einen Hamiltonkreis besitzt. Hamiltonkreis existiert! Dabei können wir davon ausgehen, dass F in konjunktiver Normalform ist und höchstens drei Literale pro Klausel hat. 300 Barbara König BeKo/TI 301 Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Komplexitätsklassen NP-Vollständigkeit GER.HAM.KREIS ist NP-vollständig Komplexitätsklassen NP-Vollständigkeit GER.HAM.KREIS ist NP-vollständig Sei F also von der Form F = K1 ∧ K2 ∧ · · · ∧ Km , wobei jede Klausel Ki genau drei Literale hat. Das kann erreicht werden, indem Literale in einer Klausel verdoppelt oder verdreifacht werden. Außerdem kommen die atomaren Aussagen x1 , . . . , xn in F vor. Die Entscheidungsknoten haben je zwei ein- und ausgehende Kanten. Sie sollen in der Reihenfolge 1, . . . , n durchlaufen werden. Vom Knoten n aus führen Pfade zurück zum Knoten 1. Aufbau des Graphen G : G besteht aus folgenden Komponenten. n Entscheidungsknoten, einen für jede atomare Aussage xj . Die Kante, über die der Entscheidungsknoten verlassen wird, bestimmt den Wahrheitswert, den xj in einer erfüllenden Belegung erhalten soll. ... ... m Klausel-Subgraphen, einen für jede Klausel Ki . Die Art und Weise wie diese Subgraphen durchlaufen werden ist davon abhängig, welche Wahrheitswerte die einzelnen Literale in einer erfüllenden Belegung haben. Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie BeKo/TI A b B c C 1 ... 2 ... ... ... ... ... n ... Falls ein Knoten i auf der Kante nach oben verlassen wird, entspricht das einer Belegung xi = 1, ansonsten einer Belegung xi = 0. 302 Komplexitätsklassen NP-Vollständigkeit GER.HAM.KREIS ist NP-vollständig a ... Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie BeKo/TI 303 Komplexitätsklassen NP-Vollständigkeit GER.HAM.KREIS ist NP-vollständig Angenommen, der Klausel-Subgraph wird folgendermaßen durchlaufen: Klausel-Subgraphen sehen wie links angegeben aus und werden durch einen Kasten wie unten symbolisiert. Wir werden zeigen, dass ein Klausel-Subgraph, der auf einem Hamiltonkreis in a betreten wird, immer durch A verlassen werden muss. Analoges gilt für b/B und c/C . Pfad a – A – B Knoten b wird zu einer Sackgasse a A b B c C K Barbara König BeKo/TI 304 Barbara König BeKo/TI 305 Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Komplexitätsklassen NP-Vollständigkeit GER.HAM.KREIS ist NP-vollständig GER.HAM.KREIS ist NP-vollständig Angenommen, der Klausel-Subgraph wird folgendermaßen durchlaufen: Pfad a – A – B – C Knoten b und c werden zu Sackgassen Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Angenommen, der Klausel-Subgraph wird folgendermaßen durchlaufen: a A b B c C BeKo/TI Pfad a – c – C Knoten A nicht mehr erreichbar 305 Komplexitätsklassen NP-Vollständigkeit GER.HAM.KREIS ist NP-vollständig Barbara König BeKo/TI Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie a A b B c C BeKo/TI 305 Komplexitätsklassen NP-Vollständigkeit GER.HAM.KREIS ist NP-vollständig Angenommen, der Klausel-Subgraph wird folgendermaßen durchlaufen: Pfad a – c – b – B Knoten A und C nicht mehr erreichbar Komplexitätsklassen NP-Vollständigkeit Angenommen, der Klausel-Subgraph wird folgendermaßen durchlaufen: a A b B c C Pfad a – c – b – B – C Knoten A nicht mehr erreichbar 305 Barbara König BeKo/TI a A b B c C 305 Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Komplexitätsklassen NP-Vollständigkeit GER.HAM.KREIS ist NP-vollständig GER.HAM.KREIS ist NP-vollständig Es gibt also nur drei zulässige Pfade (beginnend bei a), die sich auf einem Hamiltonkreis befinden können: Angenommen, der Klausel-Subgraph wird folgendermaßen durchlaufen: Pfad a – c – C – A – B Knoten b wird zu einer Sackgasse Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie a A b B c C BeKo/TI a c C c C Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Bedeutung: das erste Literal hat den Wahrheitswert 1, das dritte jedoch nicht, daher muss seine Verbindung jetzt durchlaufen werden (das zweite Literal hat wieder Wahrheitswert 1) BeKo/TI BeKo/TI 306 Komplexitätsklassen NP-Vollständigkeit Es gibt also nur drei zulässige Pfade (beginnend bei a), die sich auf einem Hamiltonkreis befinden können: a Barbara König Bedeutung: das erste Literal hat den Wahrheitswert 1 (und auch das dritte, daher muss seine Verbindung jetzt nicht durchlaufen werden) GER.HAM.KREIS ist NP-vollständig A B B 305 Es gibt also nur drei zulässige Pfade (beginnend bei a), die sich auf einem Hamiltonkreis befinden können: b A b Komplexitätsklassen NP-Vollständigkeit GER.HAM.KREIS ist NP-vollständig a Komplexitätsklassen NP-Vollständigkeit 306 A b B c C Bedeutung: nur das erste Literal hat den Wahrheitswert 1, nicht jedoch die anderen beiden. Barbara König BeKo/TI 306 Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Komplexitätsklassen NP-Vollständigkeit GER.HAM.KREIS ist NP-vollständig Komplexitätsklassen NP-Vollständigkeit GER.HAM.KREIS ist NP-vollständig Dann werden zwischen den Knoten i und i + 1 die Klausel-Subgraphen wie folgt verknüpft: Diese Klausel-Subgraphen werden nun folgendermaßen verknüpft: Angenommen, die atomare Aussage xi kommt K1 in Klausel 1 an Position 2 und K4 i in Klausel 4 an Position 3 vor. Außerdem kommt ¬xi i +1 K2 K5 K6 in Klausel 2 an Position 1, in Klausel 5 an Position 3 und in Klausel 6 an Position 2 vor. (· · · ∨ xi ∨ . . . ) ∧ (¬xi ∨ · · · ∨ . . . ) ∧ (· · · ∨ · · · ∨ . . . ) | {z } | {z } | {z } Position 1 entspricht a/A, Position 2 entspricht b/B und Position 3 entspricht c/C . K1 K2 ∧ (· · · ∨ · · · ∨ xi ) ∧ (· · · ∨ · · · ∨ ¬xi ) ∧ (· · · ∨ ¬xi ∨ . . . ) | {z } | {z } | {z } K4 Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie BeKo/TI 307 Komplexitätsklassen NP-Vollständigkeit GER.HAM.KREIS ist NP-vollständig Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie K6 BeKo/TI 308 Komplexitätsklassen NP-Vollständigkeit Im nächsten Schritt zeigen wir, dass auch das analoge Problem für ungerichtete Graphen unentscheidbar ist. Wenn die Formel erfüllbar ist, dann gibt es auch die Möglichkeit, alle Knoten zu durchlaufen. D.h., ein Hamiltonkreis existiert. UNGER.HAM.KREIS – Ungerichteter Hamiltonkreis Eingabe: ein ungerichteter Graph G = (V , E ) mit Knotenmenge V und Kantenmenge E , die aus zweielementigen Mengen von Knoten besteht. Sei außerdem m = |V | die Anzahl der Knoten. Ausgabe: Besitzt der Graph G einen Hamiltonkreis? Das heißt, gibt es eine Anordnung v1 , . . . , vm der Knoten, so dass gilt: Die Existenz eines Hamiltonkreises bedeutet andererseits, dass jeder Klauselgraph mindestens einmal durchlaufen wird, d.h., mindestens einem Literal in der Klausel wird der Wahrheitswert 1 zugeordnet. Daher kann man zeigen: V = {v1 , . . . , vm } (jeder Knoten kommt genau einmal vor) {vi , vi+1 } ∈ E für i ∈ {1, . . . , m − 1} und {vm , v1 } ∈ E (es gibt einen Kreis, der genau einmal durch jeden Knoten führt) Die Formel ist erfüllbar, genau dann, wenn der konstruierte Graph einen Hamiltonkreis hat. Außerdem benötigt man nur polynomiale Zeit, um den Graphen aus der Formel zu konstruieren. BeKo/TI K5 UNGER.HAM.KREIS ist NP-vollständig Man erhält: Barbara König K3 309 Barbara König BeKo/TI 310 Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Komplexitätsklassen NP-Vollständigkeit UNGER.HAM.KREIS ist NP-vollständig Komplexitätsklassen NP-Vollständigkeit UNGER.HAM.KREIS ist NP-vollständig NP-Vollständigkeit von UNGER.HAM.KREIS (Satz) Beispiele für Graphen mit und ohne Hamiltonkreis: Das Problem UNGER.HAM.KREIS ist NP-vollständig. Beweis: Wir reduzieren GER.HAM.KREIS ≤p UNGER.HAM.KREIS. Daher müssen wir zu jedem gerichteten Graphen G einen ungerichteten Graphen G 0 konstruieren, so dass G einen Hamiltonkreis hat, genau dann, wenn G 0 einen Hamiltonkreis hat. Hamiltonkreis existiert! Kein Hamiltonkreis! Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Idee: Ersetze einen Knoten mit ein- und ausgehenden Kanten wie folgt Hamiltonkreis existiert! BeKo/TI 311 Komplexitätsklassen NP-Vollständigkeit Hamiltonkreise vs. Eulerkreise Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie BeKo/TI 312 Komplexitätsklassen NP-Vollständigkeit Hamiltonkreise vs. Eulerkreise Wir zeigen nun, dass ein eng verwandtes Problem, nämlich das der Existenz von Eulerkreisen, viel einfacher zu lösen ist als die Bestimmung von Hamiltonkreisen. Ursprung Das Lösung des Problems der Eulerkreise geht zurück auf Leonhard Euler, der sich im 18. Jahrhundert fragte, ob man alle Brücken seiner Heimatstadt Königsberg begehen könne, ohne eine Brücke doppelt zu laufen. EULER – Ungerichteter Eulerkreis Eingabe: ein ungerichteter Graph G = (V , E ) mit Knotenmenge V und Kantenmenge E , wobei auch Mehrfachkanten erlaubt sind. Sei außerdem k = |E | die Anzahl der Kanten. Ausgabe: Besitzt der Graph G einen Eulerkreis? Das heißt, gibt es eine Tour, die durch den ganzen Graphen verläuft und jede Kante genau einmal passiert? (Knoten dürfen mehrfach durchlaufen werden.) Barbara König BeKo/TI 313 Barbara König BeKo/TI 314 Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Komplexitätsklassen NP-Vollständigkeit Hamiltonkreise vs. Eulerkreise Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Komplexitätsklassen NP-Vollständigkeit Hamiltonkreise vs. Eulerkreise BeKo/TI 315 Komplexitätsklassen NP-Vollständigkeit Hamiltonkreise vs. Eulerkreise Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie BeKo/TI 315 Komplexitätsklassen NP-Vollständigkeit Hamiltonkreise vs. Eulerkreise Man kann die Inseln bzw. Stadtteile von Königsberg als Knoten und die Brücken als Kanten auffassen. Das ergibt folgenden Graph: Existenz einer Eulertour (Satz) Durch einen ungerichteten Graphen G existiert eine Eulertour, genau dann, wenn der Graph zusammenhängend ist und der Grad jedes Knotens gerade ist. Damit ist dieses Problem auf jeden Fall in Polynomialzeit lösbar. Barbara König BeKo/TI 316 Barbara König BeKo/TI 317 Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Komplexitätsklassen NP-Vollständigkeit TSP ist NP-vollständig Komplexitätsklassen NP-Vollständigkeit TSP ist NP-vollständig Wir zeigen nun, dass auch das Travelling-Salesman-Problem NP-vollständig ist. NP-Vollständigkeit von TSP (Satz) Das Problem TSP ist NP-vollständig. TSP – Travelling Salesman Beweis: Wir reduzieren UNGER.HAM.KREIS ≤p TSP. Eingabe: eine n × n-Matrix (Mi,j ) von Entfernungen zwischen n Städten und eine Zahl d. Ausgabe: Gibt es eine Tour durch alle Städte, die maximal die Länge d hat? Das heißt, gibt es eine Indexfolge i1 , . . . , in , so dass gilt: Sei G = (V , E ) ein ungerichteter Graph, wobei wir annehmen, dass die Knotenmenge das Aussehen V = {1, . . . , n} hat. Wir konstruieren dazu folgende Matrix: 1 falls {i, j} ∈ E Mi,j = 2 falls {i, j} 6∈ E {i1 , . . . , in } = {1, . . . , n} (jede Stadt kommt vor) Mi1 ,i2 + Mi2 ,i3 + · · · + Min−1 ,in + Min ,i1 ≤ d (die Länge der Tour ist kleiner gleich d) Außerdem setzen wir d = n. Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie BeKo/TI 318 Komplexitätsklassen NP-Vollständigkeit NP-Vollständigkeit des Tourenplanungsproblems Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie BeKo/TI 319 Komplexitätsklassen NP-Vollständigkeit Weitere wichtige Probleme Wir betrachten nun einige weitere interessante und wichtige Probleme und ordnen sie in die Komplexitätsklassen P und NP ein. Färbbarkeit von Graphen Bemerkung: Man kann nun auch leicht zeigen, dass das Tourenplanungsproblem NP-vollständig ist (durch eine Reduktion von TSP auf das Tourenplanungsproblem). Eingabe: Ein ungerichteter Graph G = (V , E ) und eine Zahl k ∈ N0 . Ausgabe: Gibt es Zuordnung von k verschiedenen Farben zu Knoten in V , so dass keine zwei benachbarten Knoten v1 , v2 dieselbe Farbe haben? Dabei beläßt die Reduktion die n × n-Entfernungsmatrix und den Wert d, ordnet jedem Knoten das Gewicht 1 kg zu und nimmt einen Lastwagen mit Ladebeschränkung n kg an. Damit entspricht eine Lösung des Tourenproblems einer Lösung des TSP. Benachbart bedeutet, dass {v1 , v2 } ∈ E . Dieses Problem ist NP-vollständig (Reduktion von 3KNF-SAT). Effiziente Lösungen des Färbbarkeitsproblems sind relevant für die Lösung von Scheduling-Problemen (z.B. Erstellung von Stundenplänen). Barbara König BeKo/TI 320 Barbara König BeKo/TI 321 Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Komplexitätsklassen NP-Vollständigkeit Weitere wichtige Probleme Weitere wichtige Probleme Primzahlproblem Eingabe: Eine natürliche Zahl k ∈ N0 . Bin Packing Eingabe: Eine Behältergröße b ∈ N0 , die Anzahl k ∈ N0 der Behälter und Objektgrößen a1 , a2 , . . . , an ≤ b. Ausgabe: Ist k eine Primzahl? Ausgabe: Können die n Objekte so auf die k Behälter verteilt werden, dass kein Behälter überläuft? Es war lange bekannt, dass dieses Problem in NP liegt (der Beweis ist jedoch nicht offensichtlich). Im Jahr 2002 wurde dann von Agrawal, Kayal, Saxena gezeigt, dass dieses Problem sogar in Polynomzeit lösbar ist. Dieses Problem ist NP-vollständig (Reduktion von 3KNF-SAT über verschiedene Zwischenprobleme). Der derzeit beste bekannte Algorithmus hat Laufzeit O(n6 ). Daher werden für konkrete Anwendungen (vor allem in der Kryptographie) noch randomisierte Primzahltests verwendet. Auch dieses Problem ist in der Praxis relevant (Verpackung und Lagerung von Objekten). Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Komplexitätsklassen NP-Vollständigkeit BeKo/TI 322 Komplexitätsklassen NP-Vollständigkeit Weitere wichtige Probleme Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie BeKo/TI 323 Komplexitätsklassen NP-Vollständigkeit Weitere wichtige Probleme Während inzwischen bekannt ist, dass es in Polynomialzeit möglich ist, zu bestimmen, ob eine Zahl eine Primzahl ist, ist es anscheinend schwieriger, die Faktorisierung einer Zahl k in Primfaktoren zu bestimmen. Wenn man dieses Problem lösen könnte, dann könnte man durch binäre Suche auch den kleinsten Faktor von k bestimmen und damit k faktorisieren. Die Aufgabe, eine Zahl k in Primfaktoren zu zerlegen, ist eine Funktion und kein Problem bzw. keine Sprache in unserem Sinne. Wir benötigen daher eine “Sprachversion” des Faktorisierungsproblems. Der Status dieses Problems ist nicht geklärt. Es ist offensichtlich in NP (Primzahlfaktorisierung von k raten, überprüfen und den kleinsten Faktor mit r vergleichen). Es ist bisher jedoch weder bekannt, ob es in P liegt, noch, ob es NP-vollständig ist. Faktorisierung Eingabe: Zwei Zahlen k, r ∈ N0 . Ausgabe: Besitzt k einen Faktor s 6= 1, der kleiner als r ist? Barbara König BeKo/TI 324 Barbara König BeKo/TI 325 Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Komplexitätsklassen NP-Vollständigkeit Weitere wichtige Probleme Komplexitätsklassen NP-Vollständigkeit Weitere wichtige Probleme Anwendungen in der Kryptographie: Graphisomorphie Die Schwierigkeit, das Faktorisierungsproblem zu lösen, ist die Grundlage einiger kryptographischer Verfahren (z.B. RSA). Eingabe: Zwei ungerichtete Graphen G1 = (V1 , E1 ), G2 = (V2 , E2 ) Interessanterweise ist das Faktorisierungsproblem dazu besser geeignet als viele als NP-vollständig bekannte Probleme, weil bestimmte Zahlen (insbesondere Produkte zweier großer Primzahlen) immer schwer zu faktorisieren sind. Bei bekannten NP-vollständigen Problemen gibt es dagegen oft viele leicht zu lösende Instanzen. Ausgabe: Sind die Graphen G1 , G2 isomorph? Das heißt, gibt es eine bijektive Abbildung f : V1 → V2 , so dass {v1 , v2 } ∈ E1 genau dann, wenn {f (v1 ), f (v2 )} ∈ E2 ? Der Status dieses Problems ist ebenfalls nicht geklärt. Es ist offensichtlich in NP (Abbildung f raten). Es ist bisher jedoch weder bekannt, ob es in P liegt, noch, ob es NP-vollständig ist. Es gibt Algorithmen für Quantencomputer (Algorithmus von Shor), die das Faktorisierungsproblem effizient lösen könnten (wenn es funktionierende Quantencomputer gäbe). Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie BeKo/TI Weitere wichtige Probleme BeKo/TI 327 Komplexitätsklassen NP-Vollständigkeit Weitere wichtige Probleme Clique Folgendes Problem ist jedoch NP-vollständig. Eingabe: Ein Paar (G , k) bestehend aus einem ungerichteten Graph G = (V , E ) mit Knotenmenge V und Kantenmenge E und einer natürlichen Zahl k. Subgraphisomorphie Eingabe: Zwei ungerichtete Graphen G1 = (V1 , E1 ), G2 = (V2 , E2 ) Ausgabe: Besitzt der Graph G einen vollständigen Teilgraphen der Größe k? Ein Teilgraph ist genau dann vollständig, wenn jeder Knoten mit jedem anderen verbunden ist. Ausgabe: Hat G1 einen Teilgraphen, der isomorph zu G2 ist? Dieses Problem ist relevant für Mustererkennung und Auffinden von komplexen Strukturen. Barbara König Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie 326 Komplexitätsklassen NP-Vollständigkeit BeKo/TI Dieses Problem ist ein Speziallfall von Subgraphisomorphie. Es ist jedoch noch NP-vollständig. 328 Barbara König BeKo/TI 329 Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Komplexitätsklassen NP-Vollständigkeit Zusammenfassung (Komplexitätstheorie) Komplexitätsklassen NP-Vollständigkeit Zusammenfassung (Vorlesung) Die Hauptbotschaften dieser Vorlesung (und der Vorgängervorlesung “Automaten und Formale Sprachen”): Bemerkungen: Sprachen und Funktionen Wir haben uns mit der Berechnung von Sprachen und Funktionen beschäftigt: Man kann entscheidbare Probleme klassifizieren bezüglich der Resourcen, die zu ihrer Lösung benötigt werden (Zeit, Platz). Man unterscheidet insbesondere zwischen Problemen, die in Polynomialzeit gelöst werden können (Probleme in P) und Problemen, bei denen in Polynomialzeit überprüft werden kann, ob eine geratene Lösung korrekt ist (Probleme in NP). Sprachen, d.h., Mengen von Wörtern Fragestellung: Liegt ein Wort w in der Sprache L? Funktionen auf Wörtern bzw. Zahlen Die schwersten Probleme in der Komplexitätsklasse NP heißen NP-vollständig. Für sie gibt es keine bekannten polynomialen Algorithmen. Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie BeKo/TI Fragestellung: Wie sieht der Funktionswert an einer bestimmten Stelle aus? Ist die Funktion berechenbar? Funktionen können zur Beschreibung von Sprachen verwendet werden ( charakteristische Funktion). 330 Komplexitätsklassen NP-Vollständigkeit Zusammenfassung (Vorlesung) Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie BeKo/TI 331 Komplexitätsklassen NP-Vollständigkeit Zusammenfassung (Vorlesung) Maschinenmodelle und Grammatiken Es gibt Maschinenmodelle von unterschiedlicher Mächtigkeit, die die Berechnung von Sprachen bzw. Funktionen beschreiben: Turingmaschinen und Programme Turingmaschinen – die allgemeinste Form von Automaten – entsprechen in ihrer Mächtigkeit herkömmlichen Programmen (While-, Goto-Programme). Endliche Automaten Kellerautomaten Turingmaschinen mit Zeit- bzw. Platzschranken Die Churchsche These behauptet, dass die Funktionen, die durch Turingmaschine bzw. While-/Goto-Programme berechnet werden können, genau den intuitiv berechenbaren Funktionen entsprechen. Beliebige Turingmaschinen Zu diesen Automaten, die man als Sprachakzeptierer ansehen kann, gibt es entsprechende Grammatiken (Spracherzeuger): Typ-i-Grammatiken für i ∈ {0, 1, 2, 3}. Man kann Automaten in die entsprechenden Grammatiken umwandeln (und umgekehrt). Barbara König BeKo/TI 332 Barbara König BeKo/TI 333 Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie Komplexitätsklassen NP-Vollständigkeit Zusammenfassung (Vorlesung) Zusammenfassung (Vorlesung) Hierarchien Neben den Hierarchien auf Maschinenmodellen bzw. Grammatiken gibt es eine entsprechende Hierarchie auf Sprachen (Chomsky-Hierarchie). Endliche Darstellung von unendlichen Objekten Sowohl Automaten als auch Grammatiken liefern endliche Darstellungen für unendliche Mengen. Operationen auf diesen Mengen haben teilweise entsprechende Konstruktionen auf Automaten bzw. Grammatiken (siehe Abschlusseigenschaften). Diese Hierarchie ist echt, d.h., es gibt in jeder Hierarchiestufe Sprachen, die nicht in der darunterliegenden Hierarchiestufe liegen. Solche Hierarchien gibt es auch für Sprachen, die von zeit- bzw. platzbeschränkten Turingmaschinen erkannt werden (P ⊆ NP ⊆ PSPACE). Hier ist jedoch nicht klar, ob diese Hierarchie echt ist. Damit hat man eine Datenstruktur für unendliche Sprachen, die man maschinell verarbeiten kann. Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie BeKo/TI Komplexitätsklassen NP-Vollständigkeit 334 Komplexitätsklassen NP-Vollständigkeit Zusammenfassung (Vorlesung) Barbara König Kontextsensitive und Typ-0-Sprachen Berechenbarkeitstheorie Komplexitätstheorie BeKo/TI 335 Komplexitätsklassen NP-Vollständigkeit Zusammenfassung (Vorlesung) Anwendungen Vor allem für die regulären Sprachen (Typ-3) und die kontextfreien Sprachen (Typ-2) gibt es viele Anwendungen, beispielsweise in folgenden Bereichen: Schwere Probleme Es gibt verschiedene Typen von schweren Problemen: Unentscheidbare Probleme: Es gibt kein Verfahren, mit dem man dieses Problem lösen kann (z.B. Halteproblem) Suchen in Texten Compilerbau NP-vollständige Probleme: Schwer für die Komplexitätsklasse NP, kein bekanntes Verfahren zur Lösung in Polynomialzeit (z.B. SAT) Barbara König BeKo/TI Modellierung von Systemverhalten und Verifikation Die Nützlichkeit der Berechenbarkeits- und Komplexitätstheorie liegt vor allem darin, schwere Probleme zu erkennen und einzuordnen. 336 Barbara König BeKo/TI 337