Berechenbarkeit und Komplexität Volker Diekert Universität Stuttgart http://www.fmi.uni-stuttgart.de/ti/lehre/ws16/buk/ Wintersemester 2016/17 Übungen: Jan Philipp Wächter 1 / 298 Teil 1: Grundlagen Im Folgenden behandeln wir einige Grundlagen: I Turingmaschinen (nicht-deterministisch, deterministisch) I Kongurationen I Berechnungen,... I Turingmaschinen können auf viele verschiedene äquivalente Weisen deniert werden. I Wir könnten Turingmaschinen auch durch andere äquivalente Rechenmodelle ersetzen (z.B. Registermaschinen, Übung). 2 / 298 Einband-Turingmaschinen Denition Eine nichtdeterministische Turingmaschine ist ein Tupel M = (Q, Σ, Γ, δ, q0 , F , b) I Q: I F ⊆Q: I Γ: endliche Menge der Zustände, Menge der Endzustände q0 ∈ Q : Startzustand endliches Bandalphabet I Σ(Γ: I δ ⊆ Q × Γ × Q × Γ × {L, R, N} : endliches Eingabealphabet, bewege Kopf nach links (rechts, b ∈ Γ \ Σ : Blanksymbol Übergangsrelation. L (R , N ): Neutral, also gar nicht) Sie heiÿt deterministisch, wenn gilt (p, a, q, b, D), (p, a, q 0 , b 0 , D 0 ) ∈ δ =⇒ (q, b, D) = (q 0 , b 0 , D 0 ) Für eine deterministische TM ist δ : Q × Γ →p Q × Γ × {L, R, N} eine partiell denierte Übergangsfunktion. 3 / 298 Mehrband-Turingmaschinen Denition Eine nichtdeterministische Turingmaschine mit ein Tupel M = (Q, Σ, Γ, δ, q0 , F , b) I Q: I q0 ∈ Q : I F ⊆Q: Γ: I Σ(Γ: I ist endliche Menge der Zustände I I k -Arbeitsbändern Startzustand Menge der Endzustände endliches Bandalphabet endliches Eingabealphabet b ∈ Γ \ Σ : Blanksymbol δ ⊆ Q × (Σ ∪ {b}) × Γk × Q × Γk × {L, R, N}k+1 : Übergangsrelation. L (R , N ): bewege Kopf nach links (rechts, Neutral, also gar nicht) 4 / 298 Turingmaschinen: Denition Bei einer deterministischen k -Band Turingmaschine M ist δ eine partiell denierte Funktion δ : Q × (Σ ∪ {b}) × Γk → Q × Γk × {L, R, N}k+1 . M zusätzlich ein Σ0 und für δ gilt: δ : Q × (Σ ∪ {b}) × Γk → Q × Γk × {L, R, N}k+1 × (Σ0 ∪ {λ}) (λ ist das leere Wort). Soll M eine Funktion berechnen, so hat Ausgabealphabet 5 / 298 Turingmaschinen: Kongurationen α der Turingmaschine M bei α = (q, u0 , v0 , u1 , v1 , . . . , uk , vk ), mit: Eine Konguration ein Tupel I I q∈Q: w ∈ Σ∗ ist aktueller Zustand der Turingmaschine u0 v0 = w b, v0 6= λ: Der Lesekopf für das Eingabeband liest gerade das erste Symbol von I Eingabe v0 . ∀i ∈ {1, . . . , k} : ui ∈ vi ∈ Γ+ : Das i -te Arbeitsband hat den Inhalt ui vi bb · · · Γ∗ , und der Schreib/Lesekopf liest gerade das erste Symbol von i -te vi . 6 / 298 Beschreibungslänge von Kongurationen Für eine Mehrband TM kann das Eingabeband und damit verändert werden. Daher können α w nicht durch das Tupel (q, |u0 | , u1 , v1 , . . . , uk , vk ) ersetzen. Die Länge |α| von α ist dann |α| = max { |ui vi | | 1 ≤ i ≤ k }. Für eine Einband-TM (ohne explizite Arbeitsbänder) schreiben wir dagegen Kongurationen häug als Wörter: uqv ∈ Γ∗ QΓ+ es gilt dann: Die TM ist dann im Zustand q |uqv | = 1+ Wortlänge von und liest das erste Zeichen von uv v. 7 / 298 Turingmaschinen: Startkonguration, akzeptierende Kongurationen, . . . 1. Für die Eingabe die zu w Beachte: w ∈ Σ∗ ist Start(w ) = (q0 , λ, w b, λ, b, . . . , λ, b) gehörende Startkonguration. | Start(w )| = 1. α, β schreiben wir α `d β , d auf die Konguration α anwendbar ist, und die Konguration β ergibt. [ Es sei `M = `d . 2. Für ein d ∈δ und Kongurationen falls die Anweisung 3. d∈δ 4. Mit Accept bezeichnen wir die Menge der akzeptierenden Kongurationen (aktueller Zustand ist aus 5. Beachte: α `M β ⇒ |α| − |β| ∈ {−1, 0, 1} F ⊆ Q ). 8 / 298 Turingmaschinen: Berechnungen, Protokolle M bei Eingabe w α0 , α1 , . . . , αm mit 1. Eine Rechnung von Kongurationen I I Start(w ) = α0 ∀1 ≤ i ≤ m : αi−1 `M αi Die Berechnung ist erfolgreich, falls ist eine Folge von αm ∈ Accept. 2. Das Protokoll dieser Rechnung ist die Folge mit αi `di αi+1 d0 d1 . . . dm−1 ∈ δ ∗ 9 / 298 Turingmaschinen: akzeptierte Menge, Zeit- und Platzbedarf 1. Der Zeitbedarf (bzw. Speicherbedarf) der Berechnung α0 , α1 , . . . , αm 2. ist m (bzw. max{|αi | | 0 ≤ i ≤ m}). M hat bei Eingabe w den Zeitbedarf (bzw. Speicherbedarf ) N ∈ N, falls jede Berechnung von M bei Eingabe w Zeitbedarf (bzw. Speicherbedarf ) ≤ N hat. M akzeptierte Menge ist L(M) = {w ∈ Σ∗ | ∃ erfolgreiche 3. Die von Berechnung von M bei Eingabe w }. 10 / 298 Komplexitätsklassen s : N → N monoton wachsende Funktionen. {L ⊆ Σ∗ | es existiert deterministische Turingmaschine M mit L = L(M), die auf allen Eingaben der Länge n Zeitbedarf max{t(n), n + 1} hat.} NTIME(t) = {L ⊆ Σ∗ | es existiert nichtdeterministische Turingmaschine M mit L = L(M), die auf allen Eingaben der Länge n Zeitbedarf max{t(n), n + 1} hat.} DSPACE(s) = {L ⊆ Σ∗ | es existiert deterministische Turingmaschine M mit L = L(M), die auf allen Eingaben der Länge n Speicherbedarf s(n) hat.} NSPACE(s) = {L ⊆ Σ∗ | es existiert nichtdeterministische Turingmaschine M mit L = L(M), die auf allen Eingaben der Länge n Speicherbedarf s(n) hat.} ∗ Für eine Komplexitätsklasse C ist CoC = {L | Σ \ L ∈ C} die Menge der Komplemente der in C enthaltenen Sprachen. Seien t:N→N DTIME(t) und = 11 / 298 Komplexitätsklassen Wir werden die Klassen Funktionen t(n) mit DTIME(t) und NTIME(t) nur für ∀n ∈ N : t(n) ≥ n betrachten. Dies erlaubt, die gesamte Eingabe zu lesen, da wir tatsächlich immer n+1 Schritte erlauben. DSPACE(s) und NSPACE(s) nur für s(n) ∈ Ω(log(n)). erlaubt, eine Position i ∈ {1, . . . , n} im Eingabestring auf Wir werden die Klassen Funktionen Dies einem Arbeitsband abzuspeichern. 12 / 298 Wichtige Komplexitätsklassen Gebräuchlichen Abkürzungen: L = DSPACE(log(n)) NL = NSPACE(log(n)) [ P = DTIME(nk ) k≥1 NP = [ k≥1 PSPACE = [ k≥1 Die Gleichung (1) (2) (3) NTIME(nk ) DSPACE(nk ) = (4) [ k≥1 NSPACE(nk ) (5) = in (5) ist als Satz von Savitch bekannt (kommt noch). 13 / 298 Beziehungen zwischen Komplexitätsklassen ? PSPACE = IP 6= NSPACE(n) = CoNSPACE(n) NP ? ? (1. LBA Problem) NP ∩ CoNP DSPACE(n) ? P S ? NL ? k≥1 DSPACE(log k 6= S (n)) = k≥1 NSPACE(logk (n)) 6= L Es gibt noch viele weitere Komplexitätsklassen: Besuchen Sie doch den complexity zoo (http://qwiki.caltech.edu/wiki/Complexity_Zoo) 14 / 298 Beispiele I I I {an b n c n | n ≥ 1} ∈ L {w $w R | w ∈ Σ∗ }, {ww R | w ∈ Σ∗ } ∈ L {w $w | w ∈ Σ∗ }, {ww | w ∈ Σ∗ } ∈ L I Die Menge PRIM Primzahl } ist in = {p ∈ 1{0, 1}∗ | p P. ist Binärcodierung einer Agrawal, Kayal und Saxena haben 2002 gezeigt, dass PRIM gilt, vorher war nur PRIM ∈ NP ∩ CoNP bekannt. ∈P 15 / 298 (Polynomialzeit-)Reduktionen Seien A, B ⊆ Σ∗ , A ≤ B falls es → Σ0∗ gibt mit: wir schreiben berechenbare Funktion f : Σ∗ eine total denierte ∀x ∈ Σ∗ : x ∈ A ⇐⇒ f (x) ∈ B. In diesem Fall heiÿt Ist die Reduktion A ≤P B f A auf B reduzierbar. in Polynomialzeit berechenbar, so schreiben wir und sagen, dass A auf B in Polynomialzeit reduzierbar ist. 16 / 298 Eigenschaften von Sprachen und Turingmaschinen Konventionen: Σ ist ein Eingabealphabet, etwa Σ = { 0, 1 }. mathematisch spezizierte Objekte, so meint eine Standardkodierung, etwa mittels ASCII. Bezeichnen A1 , . . . Ak hA1 , . . . Ak i ∈ { 0, 1 } Eine Eigenschaft von Sprachen ist eine Abbildung dabei heiÿt S(L) = 1 dass Nicht-trivial heiÿt, es gibt ∗ S : 2 Σ → { 0 , 1 }, S für L gilt. L0 und L1 mit S(L0 ) = 0 und S(L1 ) = 1. Eine Eigenschaft von Turingmaschinen ist eine Abbildung S : { hMi | M } → { 0 , 1 }. S einer Sprache ist S(M) = S(L(M)) ist TM Jede Eigenschaft Maschine. Setze auch eine Eigenschaft der Die Umkehrung ist falsch: Die Turingmaschine hat fünf Zustände ist keine Eigenschaft der Sprache, sondern nur eine Eigenschaft der TM. 17 / 298 Satz von Rice Wir können auch Reduktionen verwenden, um Probleme als unentscheidbar nachzuweisen. Denn ist A ≤ B, so muss auch B A unentscheidbar und gilt unentscheidbar sein. Theorem Jede nicht-triviale Eigenschaft rekursiv aufzählbarer Sprachen ist unentscheidbar. 18 / 298 Beweis des Satzes von Rice I 1. Idee: Ist die Eigenschaft S also gilt ohne Einschränkung entscheidbar, so auch S(∅) = 0. I 2. Idee: Nicht-trivial bedeutet, es gibt L1 = L(M1 ) ¬S = 1 − S , mit S(L1 ) = 1. (M, w ). Wir können i.A. nicht w ∈ L(M) gilt. Wir wollen diese Frage auf S(L(f (M, w ))) = 1? reduzieren. I 3. Idee: Betrachte ein Paar entscheiden, ob Frage I Die TM f (M, w ) I Auf eine Eingabe überhaupt v arbeite wie folgt: v simuliert sie zunächst M S(L(f (M, w ))) = 1 gdw M1 w (ohne w ∈ L(M) auf Eingabe zu betrachten). Falls sich irgendwann ergibt, so simuliert sie danach die TM I Schluss: Es gilt die auf v. w ∈ L(M). 19 / 298 Satz von Rice für aufzählbare Eigenschaften Theorem Sei S eine Eigenschaft rekursiv aufzählbarer Sprachen. Dann sind die folgenden Bedingungen äquivalent: 1.) S ist semi-entscheidbar, d.h. die Sprache der Codierungen von Turingmaschinen aufzählbar. { hMi ∈ { 0, 1 }∗ | S(L(M)) = 1 } ist 2.) Es gelten die folgenden drei Bedingungen L mit S(L) = 1 S(K ) = 1. I Für alle gibt es eine endliche Teilmenge K ⊆L mit I Die Menge { hK1 i , hK2 i , . . . | Ki ⊆ Σ∗ ist endlich und S(Ki ) = 1 } ⊆ { 0, 1 } ∗ ist aufzählbar. I Die Eigenschaft S ist monoton: L ⊆ L0 impliziert S(L) ≤ S(L0 ) 20 / 298 Die Bedingungen sind hinreichend Akzepiere S(Ki ) = 1 hMi Ki aus der Ki ⊆ L(M) gilt. gdw eine endliche Menge gefunden wird, für die Liste mit 21 / 298 Vorbereitung: Sprachen L(M, k) Für eine TM M sei L(M, k) die endliche Menge: L(M, k) = { w ∈ Σ∗ | |w | ≤ k ∧ M akzeptiert w in höchstens k Schritten Beobachtung: 1.) L(M, k) 2.) L(M, k) ist uniform berechenbar, wir L(M, k) berechnen. ist endlich. d.h. auf Eingabe M, k können 3.) L(M) = [ { L(M, k) | k ∈ N } 22 / 298 } Notwendigkeit der 1. Bedingung L = L(M1 ) mit S(K ) = 0 für alle endlichen Teilmengen K . Wir { hM, w i | w ∈ / L(M) } aufzählbar ist. Dies ist ein Angenommen, es gibt eine aufzählbare Sprache S(L) = 1, dass dann aber zeigen Widerspruch. Deniere eine TM f (M, w ) M für jede TM und jedes Wort wie folgt: Eingabe: v ∈ Σ∗ . Arbeitsweise: Durchlaufe k = 1, 2, . . . w ∈ L(M, k). bis Wird die Schleife beendet, so akzeptiert v ∈ L(M1 , k) f (M, w ) w ∈ Σ∗ oder die Eingabe v, falls v ∈ L(M1 , k). I w ∈ L(M): Dann ist L(f (M, w )) ⊆ L eine endliche Teilmenge, also S(L(f (M, w ))) = 0. I w ∈ / L(M): Dann ist L(f (M, w )) = L, also S(L(f (M, w ))) = 1. Dies liefert eine Reduktion: { hM, w i | w ∈ / L(M) } ≤ { hMi ∈ { 0, 1 }∗ | S(L(M)) = 1 } vermöge hM, w i 7→ hf (M, w )i 23 / 298 Notwendigkeit der 2. Bedingung Trivial! (Selbsttest) 24 / 298 Notwendigkeit der 3. Bedingung Mit Widerspruch: Betrachte Deniere eine TM g (M, w ) L ⊆ L0 für jede wie folgt: v ∈ Σ∗ . Arbeitsweise: g (M, w ) S(L) = 1 und S(L0 ) = 0 ∗ TM M und jedes Wort w ∈ Σ mit Eingabe: akzeptiert die Eingabe v, falls v ∈ L ∨ (v ∈ L0 ∧ w ∈ L(M)). I I w ∈ L(M): w∈ / L(M): Dann ist L(g (M, w )) = L0 , Dann ist L(g (M, w )) = L, also also S(L(g (M, w ))) = 0. S(L(g (M, w ))) = 1. Dies liefert eine Reduktion: { hM, w i | w ∈ / L(M) } ≤ { hMi ∈ { 0, 1 }∗ | S(L(M)) = 1 } vermöge hM, w i 7→ hg (M, w )i 25 / 298 Tafelvorlesung Die folgenden Dinge fehlen damit im Skript, gehören aber zum Vorlesungssto. 1.) Beispiele für die Sätze von Rice 2.) Aufzählbare Version impliziert die entscheidbare. 26 / 298 Das Postsche Korrespondenzproblem Emil Leon Post (* 11. Februar 1897 in Augustów, Polen; 21. April 1954 in New York, USA) war ein polnisch-US-amerikanischer Mathematiker und Logiker. Post formulierte das nach ihm benannte Korrespondenzproblem und bewies die Unentscheidbarkeit im Jahre 1946. 27 / 298 PKP: Das Postsche Korrespondenzproblem A ein endliches Alphabet und P eine A = { a, b, . . . , z } und P = { 1, . . . , k }. ∗ ∗ Seien f : P → A und g : P → A zwei Abbildungen. Wir können für P = { 1, . . . , k } das Paar (f , g ) durch eine Menge von Paaren Algebraische Formulierung. Seien endliche (Index-)Menge: etwa darstellen: { (f (1), g (1)), . . . , (f (k), g (k)) } . Die Abbildungen werden zu Homomorphismen g: P∗ → A∗ fortgesetzt: Ist Abbildung so ist W = i1 · · · im ∈ f : P ∗ → A∗ und f : P → A∗ P ∗ und eine f (W ) = f (i1 ) · · · f (im ) ∈ A∗ . Das PKP ist das folgende Entscheidungsproblem. I I Eingabe: f : P → A∗ und g : P → A∗ Frage: ∃W ∈ P + : f (w ) = g (w )? (als Menge von Paaren). 28 / 298 Unentscheidbarkeit des PKP Theorem Für |A| = 2 (also A = { 0, 1 }) gibt es eektiv ein k ∈N so, dass das PKP für diese Parameter unentscheidbar ist. D.h., es gibt keine Turing Maschine M, die auf Eingabe einer Menge von Paaren { (f (1), g (1)), . . . , (f (k), g (k)) } ⊆ A∗ × A∗ entscheidet, ob das zugehörige PKP eine Lösung hat. Die Menge { hf , g i | { (f (1), g (1)), . . . , (f (k), g (k)) } ist lösbar } ist also aufzählbar, aber nicht entscheidbar. 29 / 298 Einfache Instanzen des Postschen Korrespondenzproblems I I1 = { (aba, b), (abb, ab), (aa, a), (ba, aab) } | {z } | {z } | {z } | {z } 1 2 3 4 Es gibt keine Lösung, denn eine solche könnte nur mit dem dritten Paar enden, wodurch auch an vorletzter Stelle der Lösung das dritte Paar stehen müsste usw. I I2 = { (ac, bra), (abr , a), (ad, c), (a, dabra) } | {z } | {z } | {z } | {z } 1 (2 , 1 , 3 , 2 , 4 ) I 2 3 4 ist eine Lösung. I3 = {(aa, ab), (ab, a), (bab, ba), (aba, ba), (bb, ba)} | {z } | {z } | {z } | {z } | {z } 1 2 3 4 5 Eine Lösung müsste mit dem zweiten oder dritten Paar beginnen. Bei beiden ist die erste Komponente länger als die zweite. Dieser Längenunterschied kann durch kein Paar ausgeglichen werden. 30 / 298 Ein Postschen Korrespondenzproblem mit einer langen kürzesten Lösung 1. Paar : 001 2. Paar : 01 011 3. Paar : 01 101 4. Paar : 10 001 0 Eine kürzeste Lösung besteht aus 66 Paaren: (2, 4, 3, 4, 4, 2, 1, 2, 4, 3, 4, 3, 4, 4, 3, 4, 4, 2, 1, 4, 4, 2, 1, 3, 4, 1, 1, 3, 4, 4, 4, 2, 1, 2, 1, 1, 1, 3, 4, 3, 4, 1, 2, 1, 4, 4, 2, 1, 4, 1, 1, 3, 4, 1, 1, 3, 1, 1, 3, 1, 2, 1, 4, 1, 1, 3) 31 / 298 Unentscheidbarkeit des PKP Wir schreiben eine deterministische Turingmaschine M = (Q, Σ, Γ, δ, q0 , F , B) in einem Regelsystem um. Hierbei sei Blanksymbol. Wir können annehmen, dass B geschrieben werden kann: Man schreibe dann etwa ein F = {$} und für $ B das zwar gelesen, aber nie Be. Es sei ist kein Folgezustand deniert, ferner: δ ⊆ Q × Γ × Q × Γ × { L, R } . I Für (p, a, q, b, R) gibt es die Regel I Für (p, a, q, b, L) gibt es die Regeln I Bandverlängerungsregeln: I Halteregeln: Es gilt jetzt cpa → qcb . e qB → q BB a$ → $, $a → $ w ∈ L(M) pa → bq . und $ → $. gdw. eine Rechnung wie folgt existiert: q0 wB → u1 p1 v1 → u2 p2 v2 → u3 p3 v3 → · · · → $ → $. 32 / 298 Unentscheidbarkeit des PKP x ∈ Q ∪ Γ erhalten eine Kopie x 0 ∈ Q ∪ Γ. Aus einer pa → bq werden dann zwei Regeln: pa → b 0 q 0 und p 0 a0 → bq , Alle Symbole Regel usw. Auÿerdem benötigen wir Kopierregeln für jedes Bandsymbol x ∈Γ der Form x → x0 und Erzeuge neues Regelsystem folgt existiert: x0 → x. R mit w ∈ L(M) gdw. eine Rechnung wie q0 wB → u10 p10 v10 → u2 p2 v2 → u30 p30 v30 → · · · → $0 → $. Eine solche Rechnung kann man als ein einziges Wort kodieren: W = ¢q0 wBu10 p10 v10 u2 p2 v2 u30 p30 v30 · · · $0 $. M wie eben und jedem w ∈ L(M) gdw. W ist eine Lösung. Wir konstruieren jetzt zu jeder Turingmaschine w∈ Σ+ ein PKP P(M, w ) mit 33 / 298 Das PKP P(M, w ) I = R ∪ Γ ∪ Γ0 ∪ { ¢, ¢0 } . Das Zielalphabet ist A=Q ∪Γ∪ ∪ Γ0 ∪ { ¢ } (Wir können A∗ nach { 0, 1 }∗ kodieren.) + Denition von f , g : I → A vermöge: Die Indexmenge ist Q0 I f (¢) = ¢q0 wB und g (¢) = ¢. (g klappert hinterher.) I Ist r = (u → v 0 ) eine Regel (also etwa 0 deniere g (r ) = u und f (r ) = v . I Ist so pa → b 0 q 0 r 0 = (u 0 → v ) eine Regel (also etwa p 0 a0 → bq 0 0 0 deniere g (r ) = u und f (r ) = v . I Abschluss: Jetzt gilt f (¢0 ) = $ w ∈ L(M) und oder x → x 0) oder so x0 → x) g (¢0 ) = $0 $. gdw. das Wort W löst das PKP P(M, w ). 34 / 298 Anwendungen für kontext-freie Sprachen Unentscheidbar sind: I Eingabe: Zwei deterministische Kellerautomaten A, B . Frage: L(A) ∩ L(B) = ∅? Frage: L(A) ⊆ L(B)? (Hinweis: L ⊆ K ⇐⇒ L ∩ (Σ∗ \ K ) = ∅. Beachte auch, L(A) = L(B) ist entscheidbar nach G. Sénizergues, ICALP 1997). I Eingabe: Eine kontext-freie Grammatik G . Frage: L(G ) = Σ∗ ? (Beachte, L(A) = Σ∗ ist entscheidbar für deterministische Kellerautomaten). Stand der PKP-Forschung 2016 (soweit dem Autor bekannt). PKP(k ) bezeichne die Menge der lösbaren PKPs mit |I | = k und |A| = 2. I PKP(k ) ist aufzählbar. I PKP(2) ist entscheidbar. I PKP(5) ist unentscheidbar. (T. Neary, STACS 2015) I Der Status von PKP(3) und PKP(4) ist jeweils unbekannt. 35 / 298 Was ist Semantik Programmiersprachen werden von drei Blickwinkeln betrachtet: a) Syntax (elementare lexikalische und grammatikalische Struktur; keine Beziehung zur Bedeutung oder Interpretation) b) Semantik (Bedeutung, Interpretation; z.B. eine Zahl, eine Funktion,. . . ) c) Pragmatik (Brauchbarkeit, Lesbarkeit, Übersetzbarkeit,. . . ) Semantik von Programmiersprachen dient nicht nur dazu, den Sinn eines Programms festzulegen, sondern sie soll auch z.B. ein Hilfsmittel für Korrektheitsbeweise darstellen. 36 / 298 Erste Beispiele Beispiel 1.2.1 Binärzahlen Syntaktische Beschreibung: BIN = {w ∈ {0, 1}∗ | w = 0 oder Semantik: Sei w ∈ BIN . w beginnt mit 1} w = 0, so ist der Wert von w w die Zahl 1. w = 0 und w = 1 die Ziern 0 Ist die Zahl 0. Ist w = 1, so ist der Wert von (Hierbei sind in und 1 einfach Buchstaben, während die Zahl 0 bzw. 1 jeweils das Element von N bezeichnet.) w = w 00 w0 gröÿer als 0, so ist der Wert von w 0 das Doppelte des Wertes von w . 0 0 Ist w = w 1 und die Länge von w gröÿer als 0, so ist der Wert von 0 gleich 2 mal der Wert von w plus 1. w Ist und die Länge von 37 / 298 Unäre Zahlen Syntaktische Beschreibung: UNAT = 0∗ 1 Semantik: Sei w = 0n 1. Dann ist der Wert von Probleme, wie Ist UNAT n w n. für BIN die Zahl eine Primzahl? , können schwer und für ganz einfach sein. 38 / 298 RAT und REG Beispiel 1.2.2 Rationale (oder reguläre) Ausdrücke Syntax: (Sei Γ = {a1 , . . . , ak }.) ∅, a1 , . . . , ak sind Elemente von RegExpΓ . Wenn α und β Elemente von RegExpΓ sind, dann sind auch (αβ), (α ∪ β) und (α)∗ in RegExpΓ . ε ist eine Abkürzung von ∅∗ Semantik: Wie üblich kann ein Ausdruck mit einer Teilmenge von Γ∗ identiziert werden, also mit einer Formalen Sprache. 39 / 298 Semantik-Funktionen Als Semantik-Funktion bezeichnen wir die Abbildung, die zu jeder syntaktisch korrekten Konstruktion ihre Bedeutung als Resultat liefert: B : BIN → N (z.B. B(101010) = 42). Was ist 42? In der Mengenleere kann man 42 wie folgt denieren: 42 41 = {0, . . . 41} = {0, . . . 40} . . . 0 =∅ 40 / 298 IMP-Programme Die Sprache IMP IMP steht für Imperative Sprache Grundbereiche Natürliche Zahlen Wahrheitswerte Variablen N B = {true, false} = { 1, 0 } V = {X1 , X2 , X3 , . . . } (abzählbare Menge von Bezeichnern) Benutzte Variablen Speicherzustände Loc ⊆ V Σ = NLoc = {σ : Loc → N} 41 / 298 Konvention: Falls z.B. Loc = {X , Y , Z } mit impliziter Ordnung X < Y < Z, dann (übersichtlicher): Σ = NLoc = N × N × N = N3 (3, 1, 2) Z = 2. ist dann der Speicherzustand σ∈Σ mit X = 3, Y = 1 und Eigentlich müssten wir schreiben σ(X ) = 3 σ(Y ) = 1 σ(Z ) = 2. 42 / 298 IMP verfügt über drei Arten syntaktischer Konstrukte: I Arithmetische Ausdrücke Aexp) ( I Boolesche Ausdrücke Bexp) ( I Anweisungen bzw. Programme Cmd) ( 43 / 298 Aexp Syntaktische Denition: a Dabei ist ::= n | X | (a1 + a2 ) | (a1 − a2 ) | (a1 · a2 ) n ∈ N, X ∈ V. Die Klammern können manchmal weggelassen werden, wenn dadurch keine Mehrdeutigkeit entsteht. Das heiÿt also: 1. Natürliche Zahlen und Variablen bilden arithmetische Ausdrücke. a1 und a2 zu Aexp (a1 − a2 ), (a1 · a2 ). 2. Wenn 3. Sonst gehört nichts zu gehören, dann auch (a1 + a2 ), Aexp. 44 / 298 Beispiele ((((X1 · 3) − 5) + X2 ) − (X3 · 88)) ∈ Aexp Streng genommen: 5X2 Auswertung 6∈ Aexp Arithmetische Ausdrücke werten sich je nach Speicherzustand zu einer natürlichen Zahl aus. Formal haben wir also eine Funktion vom Typ Aexp × Σ → N Wir schreiben zur Zahl n (a, σ) → n, falls der Ausdruck a im Speicherzustand σ ausgewertet wird. 45 / 298 Die Auswertung ist wie folgt deniert: (n, σ) → n (X , σ) → σ(X ) ((a1 + a2 ), σ) → n1 + n2 (n ∈ N, σ ∈ Σ) (X ∈ Loc, σ ∈ Σ) wobei für (ai , σ) → ni i = 1, 2 ((a1 − a2 ), σ) → max{0, n1 − n2 } wobei (ai , σ) → ni für ((a1 · a2 ), σ) → n1 · n2 Die Zeichen +, −, · i = 1, 2 wobei für (ai , σ) → ni i = 1, 2 auf der rechten Seite bezeichnen die bekannten Operationen auf ganzen Zahlen! 46 / 298 Andere Schreibweise für diese Auswertung: A : Aexp → (Σ → N) Die Semantik-Funktion A ordnet jedem Ausdruck a ∈ Aexp eine Funktion auf der Menge der Speicherzustände mit natürlichzahligen Werten zu. Für (a, σ) → n schreiben wir daher auch A[[a]]σ = n 47 / 298 Bexp Syntaktische Denition: b ::= true | false | a1 = a2 | a1 < a2 | a1 > a2 | a1 6= a2 | ¬b | b1 ∧ b2 | b1 ∨ b2 | b1 ⇒ b2 | b1 ⇔ b2 Dabei seien a1 , a2 ∈ Aexp, b, b1 , b2 ∈ Bexp. Auswertung (b, σ) → t für geeignetes Wir schreiben hier auch t ∈ B. B[[b]]σ = t Also: B : Bexp → (Σ → B) 48 / 298 Die Auswertung boolescher Ausdrücke geschieht nach folgenden Regeln: (t, σ) → t (t ∈ B, σ ∈ Σ) (a1 = a2 , σ) → true (wenn (a1 < a2 , σ) analog zu (a1 > a2 , σ) ebenfalls analog (a1 6= a2 , σ) ebenfalls analog (a1 = a2 , σ) → false (wenn (ai , σ) → ni (ai , σ) → ni für i = 1, 2 und n1 = n2 gilt) für i = 1, 2 und n1 6= n2 gilt) (a1 = a2 , σ) 49 / 298 (¬b, σ) → true wenn (b1 ∨ b2 , σ) → true (wenn (¬b, σ) → false (b1 ∨ b2 , σ) → false wenn (b, σ) → false (b, σ) → true (wenn (b1 , σ) → true (b1 , σ) → false (b1 ∧ b2 , σ) analog. (b1 ⇒ b2 , σ) → false (wenn (b1 ⇒ b2 , σ) → true (b1 ⇔ b2 , σ) (wenn (b1 , σ) → false (b1 , σ) → true analog. oder gilt) (b2 , σ) → true gilt) (b2 , σ) → false und oder und (b2 , σ) → true (b2 , σ) → false gilt) gilt) 50 / 298 Cmd Syntaktische Denition: c ::= skip | X := a | c1 ; c2 | if b then c1 else c2 | while b do c od (X ∈ V, a ∈ Aexp, b ∈ Bexp, c, c1 , c2 ∈ Cmd.) Auswertung Einem gegebenen Programm σ∈Σ c ∈ Cmd und einem Speicherzustand σ 0 ∈ Σ zugeordnet: wird ein neuer Speicherzustand Cmd × Σ →p Σ oder auch (Das p C : Cmd → (Σ →p Σ) am Pfeil steht für partiell). 51 / 298 Einschub: Loop-Programme Loop-Programme sind syntaktisch wie folgt aufgebaut: c (X ::= skip | X := a | c1 ; c2 | if b then c1 else c2 | loop X do c od ∈ V, a ∈ Aexp, b ∈ Bexp, c, c1 , c2 ∈ Cmd.) Die loop-Schleife verhält sich dabei gleich wie folgendes Programmfragment: Y := wobei Y X ; while Y > 0 do c ; Y := Y − 1 od eine neue Variable ist und insbesondere in c nicht verwendet wird. Eine loop-Schleife führt also genau X n-mal c aus, wenn n der Wert von zu Beginn der loop-Schleife ist. 52 / 298 Einschub: Loop-berechenbar = primitiv rekursiv Theorem Sei f : Nk → N. Dann ist f genau dann loop-berechenbar, wenn f primitiv rekursiv. Die Beweisidee ist im Wesentlichen, dass sich eine primitive Rekursion in eine loop-Schleife übersetzen lässt und umgekehrt. Technisch muss man bei der Richtung loop-berechenbar ⇒ primitiv rekursiv mehrere Programmvariablen in eine Zahl kodieren. Dies ist mit Hilfe der bijektiven Kodierungsfunktion c : N2 → N x +y +1 (x, y ) 7→ +x 2 möglich. 53 / 298 Arithmetische Darstellung (Arithmetische) Formeln sind gegeben durch F wobei b ∈ Bexp ::= b | F1 ∨ F2 | ¬G | ∃X : G | ∀X : G und G , F1 , F2 bereits arithmetische Formeln sind. Die Auswertung bei gegebener Interpretation erfolgt wie üblich. Wir schreiben Xk F (X1 , . . . , Xk ), falls in F höchstens die Variablen X1 bis frei vorkommen. 54 / 298 Arithmetische Darstellung Sei f : Nk →p N` eine (evt. partielle) Funktion. F ist arithmetische Darstellung F = F (X1 , . . . , Xk , Y1 , . . . , Y` ) und Eine Formel F (x1 , . . . , xk , y1 , . . . , y` ) gdw von f, f (x1 , . . . , xk ) falls deniert und f (x1 , . . . , xk ) = (y1 , . . . , y` ) für alle xi , yi ∈ N. Intuitiv bedeutet dies, dass F genau das Verhalten der Funktion f beschreibt. f ist arithmetisch darstellbar, falls eine arithmetische Darstellung existiert. 55 / 298 Das Gödelsche β -Prädikat Lemma 5.2.3 Das Prädikat β : N4 → B sei deniert durch β(a, b, i, x) ⇔ x = a mod (1 + b(i + 1)). k, n0 , . . . , nk ∈ N. Dann gibt es j ∈ {0, 1, . . . , k} und alle x ∈ N gilt: Seien Zahlen n, m ∈ N so, dass für alle β(n, m, j, x) ⇔ x = nj . Beweis: Setze m = (max{k, n0 , n1 , . . . , nk })!. Zeige: ggT(1 + m(i + 1), 1 + m(j + 1)) = 1 (für 0 dem Chinesischen Restsatz folgt die Existenz einer n ≡ ni (mod 1 + m(i + 1)) für i ∈ {0, . . . , k} ≤ i < j ≤ k ). Mit Zahl n, für die gilt. 56 / 298 Das Gödelsche β -Prädikat β -Prädikat beschreibt nach Denition (a, b, i) 7→ a mod (1 + b(i + 1)). Das β genau die Funktion lässt sich auÿerdem als arithmetische Formel schreiben: β(a, b, i, x) ≡ x < 1 + b(i + 1) ∧ ∃k : a = x + k · (1 + b(i + 1)) 57 / 298 Berechenbar ⇒ arithmetisch darstellbar c ∈ Cmd mit benutzten Variablen Loc(c) ⊆ { X1 , . . . , Xk } berechnet kanonisch eine Funktion Ein IMP-Programm C[[c]] : Nk →p Nk (diese heiÿt Semantik von c ). Der Einfachheit halber betrachten wir im Folgenden nur eine Programmvariable X. Wir können uns diese z.B. als k -Tupel von Variablen vorstellen und folgenden Beweis sehr leicht auf mehrere Programmvariablen verallgemeinern. Theorem Sei c ∈ Cmd ein IMP-Programm. Dann existiert eektiv eine arithmetische Darstellung Fc der Funktion C[[c]]. 58 / 298 Arithmetische Darstellung von c ∈ Cmd Wir beweisen dies durch Induktion über den Aufbau von c und setzen: Fskip (X , Y ) ≡ (X = Y ) FX :=a (X , Y ) ≡ Y = a(X ) Fc1 ;c2 (X , Y ) ≡ ∃Z Fc1 (X , Z ) ∧ Fc2 (Z , Y ) Für c = if b then c1 else c2 setze Fc (X , Y ) ≡ b(X ) ⇒ Fc1 (X , Y ) ∧ ¬b(X ) ⇒ Fc2 (X , Y ) Beachte: Für c1 und c2 haben wir induktiv die Formeln Fc 1 und Fc 2 bereits zur Verfügung. 59 / 298 Die Arithmetik der while-Schleife Sei w = while b do c od. Betrachte die Formel Few (X , Y ) ≡ ∃t∃n0 · · · ∃nt : n0 = X ∧ nt = Y ∧ ¬b(Y ) ∧ ∀0 ≤ i < t : Fc (ni , ni+1 ) ∧ b(ni ) Diese beschreibt oensichtlich das Verhalten der while-Schleife. Beachte jedoch: Da ∃n0 · · · ∃nt aus t Existenzquantoren besteht, ist dies keine arithmetische Formel. Dies können wir mit dem β -Prädikat umgehen: Fw0 (X , Y ) ≡ ∃t∃a∃b : β(a, b, 0, X ) ∧ β(a, b, t, Y ) ∧ ¬b(Y ) ∧ ∀i ∃m∃n : i ≥ t ∨ β(a, b, i, m) ∧ β(a, b, i + 1, n) ∧ Fc (m, n) ∧ b(m) 60 / 298 Der Gödelsche Unvollständigkeitssatz Ein formales Beweissystem ist ein Paar 1. 2. Sei (B, f ) wobei Σ∗ entscheidbar und B⊆ f : B → Γ∗ A ⊆ Γ∗ berechenbar ist. eine Menge von wahren Aussagen. Zu jedem gehört also eine Aussage ¬a ∈ Γ∗ und diese ist falsch. Ein a∈A Beweissystem korrekt, konsistent oder vollständig bezüglich I (B, f ) ist a. korrekt, falls zeigt I I f (b) ∈ A für alle b ∈ B: (B, f ) ist konsistent, falls { f (b) | b ∈ B } ∩ { ¬f (b) | b ∈ B } = ∅. und das Gegenteil ¬a beweisen, (B, f ) ist vollständig, falls ist, kann bewiesen werden. A sein: Der Beweis b Man kann nicht a A ⊆ { f (b) | b ∈ B }. Alles, was wahr Korrektheit impliziert Konsistenz, aber nicht umgekehrt. Schreibe ` a, falls a ∈ f (B). Wir nennen a dann auch herleitbar. 61 / 298 Der Gödelsche Unvollständigkeitssatz Formale Beweissysteme Die Idee ist, dass B ⊆ Σ∗ die Menge der Herleitungen (oder Beweise) f : B → Γ∗ zu jeder Herleitung angibt, was durch diese bewiesen wird. (Σ ist dabei das Alphabet, über dem die Beweise gebildet werden und Γ das Alphabet der Aussagen.) ist und Die Forderungen an B und f bedeuten, dass wir einem Wort (algorithmisch) ansehen wollen, dass diese Herleitung zeigt: nämlich f (b). b w ∈ Σ∗ eine Herleitung ist und was Die Menge { f (b) | b ∈ B } ist aufzählbar, aber nicht notwendigerweise entscheidbar. Der Gödelsche Satz ist ein fundamentales Ergebnis, dass die Grenzen des algorithmisch Machbaren aufzeigt. Auswirkungen in der Logik, Philosophie sowie den Wirtschafts- und Sozialwissenschaften. 62 / 298 Der Gödelsche Unvollständigkeitssatz Konkret wollen wir Beweissysteme für die Menge TautN = {F | F ist Tautologie der Arithmetik über N mit · und +} der wahren arithmetischen Formeln ohne freie Variablen betrachten. Theorem (Gödel, 1932) Jedes vollständige Beweissystem für TautN ist inkonsistent und damit nicht korrekt. Insbesondere ist jedes korrekte Beweissystem für TautN unvollständig. Zu jedem korrekten Beweissystem können wir eektiv eine Formel nden so, dass F ∈ TautN , aber 6` F F gilt. 63 / 298 Beweis des Gödelsche Unvollständigkeitssatzes Im Folgenden sei { H(X ) | H(X ) (B, f ) konsistent. Die Menge ist arithmetische Formel in der freien Varaiblen ist rekursiv aufzählbar. { H(X ) | H(X ) ist arithmetische { F0 (X ), F1 (X ), F2 (X ), . . . } Formel in der freien Varaiblen X } X }= H(X ) gehört genau ein kleinstes G ∈ N mit FG (X ) = H(X ). Zahl G heiÿt auch Gödelindex von H(X ) und hängt von der Zu jedem (Die gewählten Aufzählung ab.) { G ∈ N | ` FG (G ) } ist rekursiv aufzählbar und wir c ∈ Cmd, das diese Menge semi-entscheidet. Das Programm c hält auf G mit der Ausgabe 1 genau dann, wenn ` FG (G ). Also gibt es eine arithmetische Darstellung H(X , Y ) = Hc (X , Y ) mit Die Menge nden ∀G ∈ N : H(G , 1) ⇔ ` FG (G ). 64 / 298 Diagonalisierung ¬H(X , 1) ist eine arithmetische Formel mit der freien Variable X . Diese Formel hat einen Gödelindex. Wir nden also Damit gilt D∈N mit FD (X ) = ¬H(X , 1). FD (X ) ⇔ 6` FX (X ). Es gibt zwei Fälle. 1. 2. FD (D) ∈ TautN , 6` FD (D). dann ist das System nicht vollständig, da ¬FD (D) ∈ TautN , dann ist das System nicht korrekt, da ` FD (D). Da wir Konsistenz voraussetzen, gilt 6` ¬FD (D), also ist das System wiederum nicht vollständig. Beachte, in einem korrekten System muss daher FD (D) ∈ TautN gelten. Dies ist die eektiv konstruierte wahre Formel, die nicht herleitbar ist. 65 / 298 Der Gödelsche Unvollständigkeitssatz Die Tautologie FD (D) umgangssprachlich gefasst lautet: Ich bin nicht beweisbar! Bemerkung: Wir haben mehr gezeigt; Obiger Beweis funktioniert auch, wenn wir bei dem Beweissystem nur fordern, dass die Menge der Herleitungen rekursiv aufzählbar ist. 66 / 298 Der Gödelsche Unvollständigkeitssatz Eine Konsequenz Aus dem Gödelschen Unvollständigkeitssatz können wir nun leicht folgendes Unentscheidbarkeitsresultat einsehen. Korollar: Sowohl TautN als auch dessen Komplement TautN sind nicht rekursiv aufzählbar. Beweis: Übung. 67 / 298 Zusammenfassung I Die Menge der Tautologien der Aussagenlogik ist entscheidbar. (Vorgri: Sie ist NP-vollständig.) I Die Menge der Tautologien der Prädikatenlogik 1. Stufe ist nicht entscheidbar, aber aufzählbar. I Die Menge der arithmetischen Tautologien (Fragment der Prädikatenlogik 2. Stufe) ist weder aufzählbar, noch ist ihr Komplement aufzählbar. 68 / 298 Vorlesung 14.11.2016 Komplexitätstheorie Varianten algorithmischer Probleme Beispiel 1: Traveling Salesman Problem (TSP) Ein Reisender will eine gegebene Anzahl von Städten besuchen, ohne dabei an einem Ort zweimal vorbeizukommen, und er will dabei den kürzesten Weg nehmen. Das Wegenetz kann als gerichteter Graph und die Wegstrecken als Gewichte auf den Kanten des Graphen aufgefasst werden. Die Knoten stellen die Städte dar. Sei G = (V , E , γ : E → N) ein gerichteter Graph mit Knotenmenge V = {1, ..., n}, Kantenmenge E ⊆ V × V und den Kantengewichten γ(e) > 0 für alle e ∈ E . Ein Rundweg W ist gegeben durch eine Folge W = (x0 , . . . , xn ), x0 = xn , xi 6= xj für 1 ≤ i < j ≤ n und (xi−1 , xi ) ∈ E für 1 ≤ i ≤ n. Die Kosten γ(W ) W Psind durch die Summe γ(W ) = ni=1 γ(xi−1 , xi ). des Rundweges Kantengewichte gegeben: der 69 / 298 Varianten algorithmischer Probleme (A) Entscheidungsvariante: Eingabe: G = (V , E , γ : E → N) und ein k ≥ 0. Frage: Existiert ein Rundweg mit Kosten ≤ k ? D.h. existiert ein Weg der alle Knoten genau einmal besucht und dessen Kosten höchstens k sind? (B) Berechnungsvariante: Eingabe: G = (V , E , γ : E → N) und ein k ≥ 0. Ziel: Falls ein Rundweg W mit γ(W ) ≤ k existiert, berechne ein solches W. (C) Optimierungsproblem: Eingabe: G = (V , E , γ : E → N). Ziel: Berechne einen kostenoptimalen Rundweg, falls ein Rundweg existiert. In allen drei Varianten ist die Eingabegröÿe (bis auf einen konstanten Faktor) |V | + P e∈E log(γ(e))(+ log(k)). 70 / 298 Varianten algorithmischer Probleme Aus praktischer Sicht ist Variante (C) (Optimierungsproblem) am wichtigsten. Aber: (A) in Polynomialzeit lösbar =⇒ (C) in Polynomialzeit lösbar. Beweis: 1. Schritt: Überprüfe, ob überhaupt ein Rundweg existiert: Rufe hierzu (A) mit kmax = P e∈E γ(e) auf. Beachte: Es existiert ein Rundweg genau dann, wenn ein Rundweg mit Kosten ≤ kmax existiert. Im Folgenden nehmen wir an, dass ein Rundweg existiert. 71 / 298 Varianten algorithmischer Probleme 2. Schritt: Berechne Suche: kopt = min{γ(W ) | W ist ein Rundweg} mittels binärer FUNCTION kopt kmin := 0 while kmin < kmax do min e kmitte := kmin + d kmax −k 2 if ∃ Rundweg W mit γ(W ) ≤ kmitte then kmax := kmitte else kmin := kmitte + 1 endif endwhile return kmin ENDFUNC Beachte: Die Anzahl der Durchläufe durch die beschränkt durch log2 (kmax ) = log2 P e∈E while ist -Schleife P γ(e) ≤ e∈E log(γ(e)). 72 / 298 Varianten algorithmischer Probleme 3. Schritt: Berechne optimalen Rundweg wie folgt: FUNCTION optimaler Rundweg e1 , e2 , . . . , em beliebige Auistung von E G0 := G for i := 1 to m do if ∃ Rundweg W in Gi−1 \ {ei } mit γ(W ) ≤ kopt then Gi := Gi−1 \ {ei } Sei else Gi := Gi−1 endif endfor return Gm ENDFUNC 73 / 298 Varianten algorithmischer Probleme Behauptung: Für alle i ∈ {0, . . . , m} gilt: W mit γ(W ) = kopt . Jeder Rundweg W in Gi mit γ(W ) = kopt benutzt alle Kanten aus {e1 , . . . , ei } ∩ E [Gi ] (E [Gi ] = Menge der Kanten von Gi ). 1. In 2. Gi existiert ein Rundweg Beweis: 1. Folgt sofort durch Induktion über i. W in Gi mit γ(W ) = kopt ≤ j ≤ i ) mit: I e gehört zum Graphen G j i I e gehört nicht zum Weg W j W ist auch ein Rundweg in Gj−1 . ⇒ W ist ein Rundweg in Gj−1 \ {ej }. ⇒ ej gehört nicht zu Gj und damit nicht zu Gi . Widerspruch 2. Angenommen es gibt einen Rundweg sowie eine Kante Konsequenz: Gm Gm ⇒ Gm = W Kante von ej (1 hat einen Rundweg gehört zu W mit γ(W ) = kopt und jede W. 74 / 298 Varianten algorithmischer Probleme Beispiel 2: Vertex Cover (VC) Sei G = (V , E ) Eine Teilmenge G falls für jede ein ungerichteter Graph (d.h. E⊆ V 2 ). C ⊆ V ist eine Knotenüberdeckung (oder Kante {u, v } ∈ E gilt: {u, v } ∩ C 6= ∅ Träger) von (A) Entscheidungsvariante: Eingabe: G = (V , E ) und ein k ≥ 0. Frage: Hat G Knotenüberdeckung C mit |C | ≤ k ? (B) Berechnungsvariante: Eingabe: G = (V , E ) und ein k ≥ 0. Ziel: Falls eine Knotenüberdeckung C ein solches C. mit |C | ≤ k existiert, berechne (C) Optimierungsproblem: Eingabe: G = (V , E ). Ziel: Berechne eine möglichst kleine Knotenüberdeckung von G . 75 / 298 Varianten algorithmischer Probleme Wieder gilt: (A) in Polynomialzeit lösbar =⇒ (C) in Polynomialzeit lösbar. Zeigen Sie dies als Übung. 76 / 298 Das Grapherreichbarkeitsproblem Das Grapherreichbarkeitsproblem (GAP für graph accessibility problem) ist ein zentrales Entscheidungsproblem in der Komplexitätstheorie: Eingabe: Ein gerichteter Graph G = (V , E ) und zwei Knoten s, t ∈ V . Frage: Existiert in G ein Pfad von GAP gehört zur Klasse s nach t? P: GAP kann in Zeit O(|V |) mittels Breitensuche gelöst werden. (Die einfachste Dijkstra-Variante) 77 / 298 Das Grapherreichbarkeitsproblem Verschärfung: GAP gehört zur Klasse NL (wir zeigen noch NL ⊆ P): FUNCTION Grapherreichbarkeit var v := s while v 6= t do wähle einen Knoten v := w w ∈V mit endwhile return Es gibt einen Pfad von s ENDFUNC (v , w ) ∈ E nach t . 78 / 298 Das Grapherreichbarkeitsproblem Dieser nichtdeterministische Algorithmus kann leicht auf einer nichtdeterministischen Turingmaschine implementiert werden. Warum benötigt obiger Algorithmus nur logarithmischen Platz? I Zu jedem Zeitpunkt muss sich der Algorithmus nur einen Knoten v ∈V merken. I Wenn es n Knoten gibt, so können die Knoten mit den Zahlen 1, . . . , n identiziert werden. Die Variable v benötigt somit log2 (n) viele Bits. Bemerkungen: I Aus dem Satz von Savitch (kommt noch) wird folgen: GAP ∈ DSPACE(log2 (n)). I Omer Reingold konnte 2004 zeigen: Das Grapherreichbarkeitsproblem für ungerichtete Graphen (UGAP) L, siehe http: //www.wisdom.weizmann.ac.il/~reingold/publications/sl.ps gehört zur Klasse 79 / 298 Teil 2: Beziehungen zwischen den Komplexitätsklassen Die Beweise für die folgenden Beziehungen nden sich in Standardlehrbüchern (z.B. Hopcroft, Ullman; Introduction to Automata Theory, Languages and Computation, Addison Wesley 1979). DTIME(O(f )) = c∈N DTIME(c · f ) = und analog für NTIME, DSPACE, NSPACE. Setze S S g ∈O(f ) DTIME(g ) Theorem Sei f : N → N. X ∈ {D, N} gilt XSPACE(O(f )) = XSPACE (f ). ∃ε > 0 ∀n : f (n) ≥ (1 + ε)n ⇒ DTIME(O(f )) = DTIME(f ). NTIME(O(f )) = NTIME(f ). Real time = DTIME(n) 6= DTIME(O(n)) = Linear time. 1. Für 2. 3. 4. 1-Band Der Punkt 1 kombiniert Bandreduktion mit Bandkompression. Die Punkte 2 und 3 bezeichnet man als Zeitkompression. 80 / 298 Der Satz von Hennie und Stearns (1966) Der Satz von Hennie und Stearns ist ein Bandreduktionssatz für Zeitkomplexitätsklassen. Theorem Sei k ≥1 DTIMEk ∀n : f (n) ≥ n. Dann gilt: (f ) ⊆ DTIME2-Band (f · log(f )). -Band und Ein Beweis ndet sich z.B. in dem Teubner-Lehrbuch von W. Paul und ist technisch anspruchsvoll. 81 / 298 Erinnerung: Berechnungen, Protokolle M bei Eingabe w α0 , α1 , . . . , αm mit 1. Eine Rechnung von Kongurationen I I Start(w ) = α0 ∀1 ≤ i ≤ m : αi−1 `M αi Die Berechnung ist erfolgreich, falls ist eine Folge von αm ∈ Accept. 2. Das Protokoll dieser Rechnung ist die Folge mit αi `di αi+1 d0 d1 . . . dm−1 ∈ δ ∗ Arbeitet eine Turingmaschine nichtdeterministisch in der Zeit hat jedes Protokoll eine Länge f (n), so ≤ f (|w |). 82 / 298 DTIME(f ) ⊆ NTIME(f ) ⊆ DSPACE(f ) Theorem DTIME(f ) ⊆ NTIME(f ) ⊆ DSPACE(f ) (wobei f (n) ≥ n). Beweis: Zu zeigen ist nur NTIME(f ) ⊆ DSPACE(f ). M = (Q, Σ, Γ, δ, q0 , F , b) eine nichtdeterministische f (n)-zeitbeschränkte Turingmaschine. Sei Für Eingabe M w ∈ Σ∗ der Länge als einen Berechnungsbaum I Wurzel von T (M, w ) = I Konguration β n können wir uns alle Rechnungen T (M, w ) wie folgt vorstellen: von Start(w ). ist Kind von Konguration α ⇐⇒ α `M β . 83 / 298 DTIME(f ) ⊆ NTIME(f ) ⊆ DSPACE(f ) T (M, w ) wird mit Tiefen- oder Breitensuche auf eine akzeptierende Konguration hin durchsucht. Dabei merkt man sich nur die aktuelle Konguration und das Protokoll P ∈ δ∗ mit dem diese Konguration von der Wurzel Start(w ) erreicht wird. Beachte: I Jede Konguration in T (M, w ) benötigt Platz f (n). I Ein Protokoll für eine bei Start(w ) beginnende Berechnung hat Länge f (n) und kann somit in Platz Gesamter Platzbedarf: O(f (n)) gespeichert werden. O(f ) + O(f ) = O(f ). 84 / 298 DSPACE(f ) ⊆ NSPACE(f ) ⊆ DTIME(2O(f )) Theorem DSPACE(f ) ⊆ NSPACE(f ) ⊆ DTIME(2O(f ) ) (wobei f (n) ≥ log(n)). Beweis: Zu zeigen ist nur NSPACE(f ) ⊆ DTIME(2O(f ) ). f (n)-platzbeschränkte nichtdeterministische ∗ Turingmaschine und w ∈ Σ eine Eingabe der Länge n. Sei M eine Es gibt eine Konstante c > 0, die nur von M abhängt so, dass die Anzahl der von Start(w ) erreichbaren Kongurationen durch c f (n) beschränkt ist. Hier ist ∀n : f (n) ∈ Ω(log(n)) Beachte, dass c f ∈ 2O(f ) wichtig. Warum? gilt. 85 / 298 DSPACE(f ) ⊆ NSPACE(f ) ⊆ DTIME(2O(f )) Berechne die Menge R der von Start(w ) aus erreichbaren Kongurationen (mit einem Markierungs- oder Flutalgorithmus): FUNCTION Menge-der-erreichbaren-Kongurationen var R := {Start(w )} while ∃ Kongurationen α, β : α ∈ R ∧ β 6∈ R ∧ α `M β do R := R ∪ {β} endwhile if Accept ∩ R 6= ∅ then return M ENDFUNC akzeptiert w Zeitbedarf: I I c f (n) ≤ f (n). Der Test ∃ Kongurationen α, β : α ∈ R ∧ β 6∈ R ∧ α `M β f (n) · c f (n) · f (n)) = O(c 2f (n) · f (n)) kann somit in Zeit O(c R enthält maximal Kongurationen der Länge implementiert werden. I Gesamter Zeitbedarf: O(c 3f (n) · f (n)) ⊆ 2O(f ) 86 / 298 Folgerungen I I L ⊆ NL ⊆ DTIME(2O(log(n)) ) = P CS = LBA = NSPACE(n) ⊆ DTIME(2O(n) ) Hierbei bezeichnet CS die Klasse der kontextsensitiven und LBA die Klasse der durch linear beschränkte Automaten akzeptierten Sprachen. I DSPACE(n2 ) ⊆ DTIME(2O(n2 ) ) 87 / 298 Der Satz von Savitch (1970) Theorem Sei s ∈ Ω(log(n)). Dann gilt NSPACE(s) ⊆ DSPACE(s 2 ). Wir beweisen den Satz von Savitch unter der Annahme, dass die Funktion s platzkonstruierbar ist: I Eine Funktion f :N→N mit f ∈ Ω(log(n)) heiÿt platzkonstruierbar, falls es eine deterministische Turingmaschine gibt, die bei Eingabe an (d.h. n ist unär kodiert) genau f (n) Felder auf den Arbeitsbändern markiert, dann hält und bei der Berechnung diesen Platz nicht verlässt. I Eine Funktion f :N→N mit f ∈ Ω(n) heiÿt zeitkonstruierbar, falls es eine deterministische Turingmaschine gibt, die bei Eingabe an nach genau f (n) Schritten hält. Jedes Polynom ist zeit- und daher auch platzkonstruierbar! 88 / 298 Beweis des Satz von Savitch Beweis: M und w Sei s -platzbeschränkte eine Eingabe für M . eine nichtdeterministische Turingmaschine Sei Conf(M, w ) die Menge aller Kongurationen I Auf dem Eingabeband steht die Eingabe I α mit: w. |α| ≤ s(|w |). O.B.d.A. enthalte Accept nur eine einzige Konguration Für α, β ∈ Conf(M, w ) und i ≥0 Reach(α, β, i) Aus der Beschreibung von M denieren wir: ⇐⇒ ∃k ≤ 2i : α `kM β ⇐⇒ können wir explizit eine Konstante gewinnen, so dass für alle Eingaben w ∈ L(M) αf . w c gilt: Reach(Start(w ), αf , c · s(|w |)). 89 / 298 Beweis des Satz von Savitch Unser Ziel ist, das Prädikat 0 ≤ i ≤ c · s(|w |) in Platz zu berechnen. Für i >0 Reach(α, β, i) für α, β ∈ Conf(M, w ) und O(s 2 ) auf einer deterministischen Maschine verwenden wir folgendes Rekursionschemata: Reach(α, β, i) ⇐⇒ ∃γ ∈ Conf(M, w ) : Reach(α, γ, i − 1) ∧ Reach(γ, β, i − 1). Umsetzung durch einen deterministischen Algorithmus: 90 / 298 Beweis des Satz von Savitch FUNCTION Reach(α, β, i) var b := false if i = 0 then b := [(α = β) ∨ (α `M β)] else forall γ ∈ Conf(M, w ) do if not b and Reach(α, γ, i − 1) then b := endif endfor endif return b ENDFUNC Reach(γ, β, i − 1) 91 / 298 Beweis des Satz von Savitch Behauptung: Ein Aufruf von Reach(α, β, i) benötigt Platz O((i + 1)s(|w |)). Wir beweisen die Behauptung durch Induktion über i = 0: Platz Die Bedingung O(s(|w |)) [(α = β) ∨ (α `M β)] i ≥ 0: kann oensichtlich in überprüft werden. i > 0: Der 1. Aufruf Reach(α, γ, i − 1) benötigt nach Induktion Platz O(i · s(|w |)). Das gleiche gilt für den 2. Aufruf Reach(γ, β, i − 1). Beachte: Beim 2. Aufruf Reach(γ, β, i Aufruf Reach(α, γ, i − 1) − 1) kann der Platz, der beim 1. benötigt wurde, wiederverwendet werden. Zusätzlich wird noch Speicherplatz s(|w |) für die Konguration γ benötigt. Dies beweist die Behauptung. 92 / 298 Beweis des Satz von Savitch w ∈ L(M) zu entscheiden, rufen Reach(Start(w ), αf , c · s(|w |)) auf. Um Beachte: Wir können platzkonstruierbar ist. s(|w |) Gesamter Platzbedarf: wir berechnen, da s nach Annahme O(c · s(|w |) · s(|w |)) = O(s(|w |)2 ). 93 / 298 Bemerkungen zum Satz von Savitch Der Satz von Savitch besagt, dass eine nichtdeterministische platzbeschränkte Turingmaschine unter quadratischem Mehraufwand deterministisch simuliert werden kann. Diese platzeziente Simulation wird durch einen extremen Mehraufwand an Rechenzeit realisiert. Übung: Wieviel Zeit benötigt der Algorithmus im obigen Beweis, um w ∈ L(M) zu entscheiden? Um sich von der Forderung der Platzkonstruierbarkeit von s zu befreien, zeige man mit dem Ansatz von Savitch, dass sich der tatsächliche Platzbedarf einer s -platzbeschränkten nichtdeterministischen Turingmaschine in DSPACE(s 2 ) berechnen lässt. 94 / 298 Folgerungen aus dem Satz von Savitch Theorem GAP gehört zu DSPACE(log2 (n)). Folgt unmittelbar aus GAP ∈ NL und dem Satz von Savitch. Theorem S S PSPACE = k≥1 DSPACE(nk ) = k≥1 NSPACE(nk ) Folgt aus NSPACE(nk ) ⊆ DSPACE(n2k ) 95 / 298 Hierarchiesätze Platzhierarchiesatz Seien s1 , s2 : N → N Funktionen, sei platzkonstruierbar. Dann gilt Bemerkungen: I s1 ∈ / Ω(s2 ), s2 (n) > log2 (n)) s1 ∈ / Ω(s2 ) bedeutet ∀ε > 0 ∃ s1 (n) < ε · s2 (n). Seien etwa dann gilt: s1 (n) = n und und DSPACE(s2 ) \ DSPACE(s1 ) 6= ∅. unendlich viele s2 (n) = n2 , n falls s2 mit n log n, sonst gerade , s2 ∈ / Ω(s1 ), s1 ∈ / Ω(s2 ). I Aus dem Platzhierarchiesatz folgt etwa: L ( DSPACE(log2 (n)) ( DSPACE(n) ⊆ NSPACE(n) ( DSPACE(n2,1 ) ( PSPACE 96 / 298 Beweis des Platzhierarchiesatzes Der Beweis des Platzhierarchiesatzes ist ähnlich zum Beweis für die Unentscheidbarkeit des Halteproblems: Diagonalisierung Wähle zunächst irgendeine eine berechenbare binäre Kodierung von deterministischen Turingmaschinen. D.h. wähle eine berechenbare x 7→ Mx so, dass zu L(M) = L(Mx ) existiert. Funktion mit Jedes Wort x ∈ {0, 1}∗ jeder Turingmaschine M ein x ∈ {0, 1}∗ soll als Kodierung einer Turingmaschine interpretiert werden können (für nicht wohlgeformtes x kodiert Mx x eine Turingmaschine, die nichts akzeptiert). Wichtige Konvention: Für alle x ∈ {0, 1}∗ Mx = M0k x , d.h. insbesondere gilt und k∈N gelte k und 0 x kodieren identische Maschinen: x L(Mx ) = L(M0k x ). Folgerung: Jede Turingmaschine hat eine Kodierung in fast allen Längen. Ziel: Konstruktion einer Maschine M mit L(M) ∈ DSPACE(s2 ) \ DSPACE(s1 ). 97 / 298 Beweis des Platzhierarchiesatzes s2 (n)-platzbeschränkten Maschine M 0 . Eingabe y der Länge n = |y | wie folgt: Wir starten mit einer arbeitet für eine 1. Markiere Platz s2 (n) Sie auf den Arbeitsbändern. (Beachte, dass s2 platzkonstruierbar ist). 2. Sobald im Folgenden der markierte Platz verlassen wird, stoppt M0 (in einem nicht-akzeptierenden Zustand). Damit ist M0 automatisch s2 -platzbeschränkt und unabhängig L(M 0 ) ∈ DSPACE(s2 ) von der weiteren Konstruktion gilt 3. Schreibe y = 0k x , arbeitet M0 x keine führende Null habe My = Mx auf der Eingabe y . wobei simuliere die Maschine und (Hier wie eine universelle Turingmaschine). 0 4. M akzeptiert die Eingabe y, falls Mx die Eingabe y nicht in dem der markierte Platz akzeptiert. 98 / 298 Behauptung: L(M 0 ) ∈/ DSPACE(s1 ) 99 / 298 Beweis des Platzhierarchiesatzes Beweis durch Widerspruch: Angenommen, es gilt L(M 0 ) ∈ DSPACE(s1 ). Es gibt dann eine s1 -platzbeschränkte deterministische Mx mit L(Mx ) = L(M 0 ). Turingmaschine mit einem Arbeitsband Mit Bandkompression kann die Simulation von Mx durch eine n in Platz Mx abhängt. universelle Turing-Maschine auf einer Eingabe der Länge k · s1 (n) + log2 (n) durchführt werden, wobei k nur von 100 / 298 Beweis des Platzhierarchiesatzes Da s1 ∈ / Ω(s2 ) und s2 (n) > 2 log2 (n) existiert ein n > |x| mit ks1 (n) + log2 (n) ≤ s2 (n). (sogar unendlich viele) y ∈ 0∗ x mit |y | = n, also y = 0n−|x| x . Während der Simulation von Mx = My auf der Eingabe y (der Länge n) wird also 0 der im 1. Schritt von der Maschine M markierte Platz nicht verlassen. Betrachte Also: y ∈ L(M 0 ) ⇐⇒ M0 akzeptiert y ⇐⇒ My akzeptiert y = 0n−|x| x ⇐⇒ Mx akzeptiert y ⇐⇒ y 6∈ L(Mx ) = L(M 0 ) nicht. nicht nicht Widerspruch! 101 / 298 Zeithierarchiesatz Gemäÿ der Technik von Hennie und Stearns ist die Simulation von beliebig vielen Bändern zeitezient auf zwei Bändern möglich. Analog zum Platzhierarchiesatz ergibt sich der deterministische Zeithierarchiesatz. Deterministischer Zeithierarchiesatz (ohne Beweis) t1 , t2 : N → N Funktionen, t1 · log(t1 ) ∈ / Ω(t2 ), t2 ∈ Ω(n log(n)) t2 sei zeitkonstruierbar. Dann gilt DTIME(t2 ) \ DTIME(t1 ) 6= ∅. Seien und Als Folgerung hieraus ergibt sich: DTIME(O(n)) ( DTIME(O(n2 )) ( P ( DTIME(O(2n )) ( DTIME(O((2 + ε)n )) 102 / 298 Der Lückensatz von Borodin (1972) Bei den oben erwähnten Hierarchiesätzen haben wir stets eine Konstruierbarkeitsvoraussetzung mitgeführt. Dies lässt sich nach dem folgenden Lückensatz nicht umgehen. Lückensatz von Borodin r r (n) ≥ n n. Dann existiert eektiv eine totale, berechenbare Funktion s : N → N mit der Eigenschaft s(n) ≥ n + 1 für alle n und DTIME(s) = DTIME(r ◦ s). Sei eine totale, berechenbare Funktion, für alle Bemerkungen: I Die Komposition r ◦s ist deniert durch I Dass die totale, berechenbare Funktion r ◦ s(n) = r (s(n)). s:N→N eektiv existiert, bedeutet, dass man aus einer Turingmaschine, die berechnet, eine Turingmaschine, die s r berechnet, konstruieren kann. 103 / 298 Beweis des Satzes von Borodin Sei M1 , M2 , . . . eine Aufzählung aller deterministischen Turingmaschinen. Sei tk (n) ∈ N ∪ {∞} der tatsächliche maximale Zeitbedarf einer Mk auf einer Eingabe der Länge kleiner oder gleich n. Rechnung von Betrachte nun die Menge Nn = {tk (n)|1 ≤ k ≤ n} ⊆ N ∪ {∞}. Diese Menge ist endlich, also existiert für jedes n eine Zahl s(n) mit Nn ∩ [s(n), r (s(n))] = ∅. Ein s(n), welches diese Bedingung erfüllt, wäre s(n) = max{tk (n) | 1 ≤ k ≤ n, tk (n) < ∞}. Die Funktion n 7→ s(n) verhält sich wie ein eiÿiger Biber und ist daher nicht berechenbar! 104 / 298 Beweis des Satzes von Borodin Einen passenden und berechenbaren Wert n s(n) nden wir bei Eingabe wie folgt: FUNCTION s(n) s := n + 1 repeat s := s + 1 until ∀k ≤ n : [tk (n) < s or tk (n) > r (s((n))] return s ENDFUNC Bemerkung: Die Funktion s Im Allgemeinen kann s ist berechenbar und wächst monoton. jedoch nicht zeitkonstruierbar sein. Behauptung: DTIME(s) = DTIME(r ◦ s) 105 / 298 Beweis des Satzes von Borodin Beweis der Behauptung: Da r (n) ≥ n Sei nun Sei mit für alle n, ist DTIME(s) ⊆ DTIME(r ◦ s) klar. L ∈ DTIME(r ◦ s). Mk eine (r ◦ s)-zeitbeschränkte L = L(Mk ). Dann gilt: Für alle deterministische Turingmaschine ∀n : tk (n) ≤ r (s(n)). n≥k gilt daher nach Berechnung von Damit gilt tk (n) ≤ s(n) L ∈ DTIME(s). für fast alle n, s : tk (n) < s(n). und schlieÿlich 106 / 298 Der Satz von Immerman und Szelepcsényi (1987) DTIME(f ) und DSPACE(f ) sind unter Komplement abgeschlossen. Ob dies auch für Klassen NSPACE(f ) gilt, war für Die Klassen lange Zeit oen. Bereits 1964 stellte Kuroda die Frage, ob die Familie der kontextsensitiven Sprachen unter Komplementbildung abgeschlossen ist (2. LBA-Problem). Äquivalent: NSPACE(n) = CoNSPACE(n)? Nach über 20 Jahren wurde diese Frage unabhängig von R. Szelepcsényi und N. Immerman beantwortet: Satz von Immerman und Szelepcsényi Sei f ∈ Ω(log(n)). Dann gilt NSPACE(f ) = CoNSPACE(f ) 107 / 298 Beweis des Satzes von Immerman und Szelepcsényi Beweismethode: Induktives Zählen M eine nichtdeterministische f -platzbeschränkte ∗ und w ∈ Σ ein Eingabewort der Länge n. Sei Turingmaschine Ziel: Überprüfe nichtdeterministisch in Platz O(f (n)), ob w 6∈ L(M) gilt. Sei eine längenlexikographische Ordnung auf der Menge aller Kongurationen. Sei α0 die kleinste Konguration bzgl. O.B.d.A. ist α0 , |α0 | ∈ O(1). die einzige akzeptierende Konguration. 108 / 298 Beweis des Satzes von Immerman und Szelepcsényi Sei k ≥ 0: R(k) = {α | ∃i ≤ k : Start(w ) `iM α} r (k) = |R(k)| (Anzahl der von Start(w ) in ≤ k Schritten erreichbaren Kongurationen) r (∗) = max{r (k) | k ≥ 0} (Anzahl der von Start(w ) erreichbaren Kongurationen) Beachte: Es gibt eine nur von M abhängige Konstante c mit r (k) ≤ r (∗) ≤ c f (n)+log(n) ∈ 2O(f (n)) . Da f nicht platzkonstruierbar sein muss, benötigen wir noch den Wert m(k) = Wir berechnen r (∗) r (∗) | α ∈ R(k)}. O(f (n)). Unser Algorithmus wird ohne w ∈ L(M). Falls w ∈ / L(M), wird der in Platz Ergebnis abbrechen, falls korrekte Wert max{|α| ausgegeben. 109 / 298 Beweis des Satzes von Immerman und Szelepcsényi Berechnung von r (∗) r (k + 1) aus r = r (k) O(f (n)) berechnet unter der Annahme, dass mittels Funktion berechne-r(k + 1, r ) werden kann: in Platz FUNCTION r (∗) r 0 := k := 0; r := 1 (∗ speichert r (k) ∗) while r 6= r 0 do r 0 := r ; r := berechne-r(k + 1, r 0 ); k := k + 1; endwhile return r ENDFUNC Platzbedarf: Wegen r (∗) ∈ 2O(f (n)) 0 und r Platz O(f (n)) wird zur Speicherung von k, r , benötigt. 110 / 298 Beweis des Satzes von Immerman und Szelepcsényi Die Berechnung der Funktion berechne-r(k + 1, r ) erfolgt in drei Schritten. 1. Schritt: Berechne m(k) aus r = r (k) mittels Funktion berechne-m(k, r ) FUNCTION berechne-m(k, r ) α := α0 ; m := |α0 | repeat r times berechne ein beliebiges if α0 α then FEHLER else α := α0 m := |α0 | endif endrepeat return m ENDFUNC ⇒ α0 ∈ R(k) Programmabbruch (∗ = max{m, |α0 |} aufgr. der Ordnung ∗) 111 / 298 Beweis des Satzes von Immerman und Szelepcsényi Beachte: Angenommen α0 erreichbar, w k L(M). ist in gehört also zu Schritten von Start(w ) aus Dann muss dieses Programmstück mit Fehler abbrechen. Es stehen nämlich in R(k) nicht genügend Kongurationen zur Verfügung, die alle echt gröÿer als α0 sind. Damit lässt sich m(k) nicht berechnen und dies führt zum Abbruch der Berechnung von (falls r (∗) w ∈ L(M)). Platzbedarf: Wir müssen speichern: I Kongurationen I m ≤ f (n) I Binärzähler bis k α, α0 mit |α|, |α0 | ≤ f (n). (um beliebiges zu generieren) I Binärzähler bis Hierfür ist Platz r = r (k) (für α0 ∈ R(k) nichtdeterministisch repeat r times). O(f (n))ausreichend. 112 / 298 Beweis des Satzes von Immerman und Szelepcsényi 2. Schritt: Sei β Reach(r , k r = r (k), eine beliebige Konguration. Die folgende Prozedur + 1, β) testet nichtdeterministisch β ∈ R(k + 1) gilt. mit Hilfe des Werts ob FUNCTION Reach(r , k + 1, β ) α := α0 repeat r times α0 ∈ R(k) if = β oder `M β then return true (∗ d.h. β ∈ R(k + 1) ∗) 0 elseif α α then FEHLER ⇒ Programmabbruch else α := α0 berechne ein beliebiges α0 α0 endif endrepeat return false (∗ d.h. β ∈/ R(k + 1) ∗) ENDFUNC 113 / 298 Beweis des Satzes von Immerman und Szelepcsényi Beachte: I Falls dieser Algorithmus nicht mit FEHLER abbricht, wird eine korrekte Antwort ausgegeben. I Ist der korrekte Wert r (k) bekannt, so hat der Algorithmus die Chance, nicht mit FEHLER abzubrechen. Platzbedarf: Wir müssen speichern: I Kongurationen I Binärzähler bis k α, α0 , β mit |α|, |α0 |, , |β| ≤ f (n) + 1. (um beliebiges zu generieren) I Binärzähler bis Hierfür ist Platz r = r (k) (für α0 ∈ R(k) nichtdeterministisch repeat r times). O(f (n))ausreichend. 114 / 298 Beweis des Satzes von Immerman und Szelepcsényi 3. Schritt: Berechne r (k + 1) mittels der Funktion berechne-r(k + 1, r ) aus r = r (k). FUNCTION berechne-r(k + 1, r ) r 0 := 0 (∗ ist am Ende r (k + 1) ∗) m := berechne-m(k, r ) forall Kongurationen β mit |β| ≤ m(k) + 1 do if Reach(r , k + 1, β ) then r 0 := r 0 + 1 endif endforall return r 0 ENDFUNC Wir betrachten nur Kongurationen m(k + 1) ≤ m(k) + 1. β mit |β| ≤ m(k) + 1, da 115 / 298 Beweis des Satzes von Immerman und Szelepcsényi Eine erfolgreiche Berechnung von r (∗) ist genau dann möglich, wenn w∈ / L(M). Man beachte dazu: Wenn w ∈ L(M), so bricht jede Rechnung mit einer Fehlermeldung, ab, da die Funktion akzeptierende Konguration α0 in R(k) m(k), sobald sie die vorndet, nicht mehr erfolgreich durchlaufen werden kann. r (∗) berechnet wurde, kann w L(M) gehörig akzeptiert werden. Sowie also der Wert Komplement von als zum Analyse des Platzbedarfs: Aus den vorherigen Platzbetrachtungen folgt, dass der gesamte Algorithmus mit Platz O(f (n)) auskommt. 116 / 298 Teil 3: Reduktionen und vollständige Probleme Seien L ⊆ Σ∗ und L0 ⊆ Σ0 ∗ zwei Entscheidungs-Probleme. 0 Eine Reduktion von L auf L ist eine totale berechenbare Abbildung ∗ f : Σ∗ → Σ0 mit: x ∈ L ⇐⇒ f (x) ∈ L0 . Angenommen, wir kennen bereits einen Algorithmus zur Lösung von L0 . x ∈L f (x) ∈ Σ0 ∗ Dann können wir die Frage 1. Berechne den Wert wie folgt entscheiden: 2. Entscheide mittels des Algorithmus für x - Mf f (x) - L0 ML0 ob f (x) ∈ L0 gilt. - ja - nein ML 117 / 298 Polynomialzeitreduktionen Eine Reduktion f : Σ∗ → Σ0 ∗ Polynomialzeitreduktion, falls L sich f von auf L0 ist eine durch eine deterministische polynomialzeitbeschränkte Turingmaschine berechnen lässt. Proposition L0 ∈ P und ∃ Polynomialzeitreduktion von L auf L0 Beweis: Angenommen L0 gehört zu n` berechnet werden. Für ein Eingabe werden. Damit muss x ∈ Σ∗ |f (x)| ≤ n` entschieden werden, ob Gesamter Zeitbedarf: der Länge n DTIME(nk ) und f kann f (x) in Zeit gelten, und es kann in Zeit f (x) ∈ L0 n` + nk·` =⇒ (d.h. x ∈ L) L ∈ P. kann in Zeit n` berechnet (n` )k = nk·` gilt. 118 / 298 Beispiel für Polynomialzeitreduktion Sei G = (A, B, E ) ein bipartiter Graph, d.h. A ∩ B = ∅ und E ⊆ A × B . Ein Matching aus M M ist eine Teilmenge M ⊆ E, so dass keine zwei Kanten einen gemeinsamen Endknoten haben. Wir zeigen, wie das Problem, ein Matching maximaler Gröÿe zu berechnen, sehr ezient auf die Berechnung eines Maximalusses in einem Netzwerk reduziert werden kann. Ein Netzwerk ist ein Tupel I (V , E ) I s∈V I I ein gerichteter Graph ist (d.h. ist die Quelle, c :E →N Ein Fluÿ F N = (V , E , s, t, c), t∈V ist eine Abbildung ∀v ∈ V \ {s, t} : P e s 6= t , eine Kapazität F :E →N (x,v )∈E E ⊆ V × V) ist die Senke, ordnet jeder Kante wobei: F (x, v ) = c(e) > 0 zu. mit: P (v ,y )∈E F (v , y ) (Fluÿerhaltung) I ∀e ∈ E : F (e) ≤ c(e). 119 / 298 Beispiel für Polynomialzeitreduktion Ein Fluÿ maximaler Gröÿe kann in polynomialer Zeit mittlels des Max-Flow=Min-Cut-Theorems von Ford-Fulkerson (wird hier nicht behandelt) werden. Die Reduktion von Maximum Matching auf Max-Flow startet mit einem bipartiten Graphen G = (A, B, E ). Konstruiere ein Netzwerk N = (V , E 0 , s, t, c) I I I Sei V = A ∪ B ∪ {s, t} E0 s und t neue Knoten sind) = E ∪ {(s, a) | a ∈ A} ∪ {(b, t) | b ∈ B} c(x, y ) = 1 F: E0 → N Dann ist G. (wobei wie folgt: für alle (x, y ) ∈ E 0 ein Fluÿ maximaler Gröÿe in M = {e ∈ E | F (e) = 1} N. ein Matching maximaler Gröÿe in 120 / 298 Beispiel für Polynomialzeitreduktion Sei G = (A, B, E ) ein bipartiter Graph: A B 121 / 298 Beispiel für Polynomialzeitreduktion Füge eine Quelle s und eine Senke A s t an: B t 122 / 298 Beispiel für Polynomialzeitreduktion Berechne einen maximalen Fluÿ: A s B t 123 / 298 Beispiel für Polynomialzeitreduktion Hieraus ergibt sich die Lösung des Matchingproblems: A B 124 / 298 Reduktionen in logarithmischen Platz Viele praktisch wichtige Reduktionen lassen sich in logarithmischem Platz berechnen. ⇒ Logspace-Reduktionen Denition Logspace-Transducer Ein logarithmisch platzbeschränkter Transduktor (Logspace-Transducer) ist eine deterministische Turingmaschine M mit I einem Eingabeband, von dem nur gelesen werden kann, I einem logarithmisch in der Eingabelänge platzbeschränkten Arbeitsband, und I einem separaten Ausgabeband, auf das nur geschrieben werden kann. In jedem Rechenschritt von M wird I entweder ein neues Zeichen auf das Ausgabeband geschrieben und der Schreibkopf wandert ein Feld nach rechts, oder I es wird kein neues Zeichen auf das Ausgabeband geschrieben und der Schreibkopf bewegt sich nicht. 125 / 298 Reduktionen in logarithmischen Platz Denition 1. Eine Abbildung gilt: ∃ f : Σ∗ → Σ0 ∗ heiÿt logspace berechenbar, falls M ∀x ∈ Σ∗ : x an mit f (x) ∈ Σ0 ∗ Logspace-Transducer M hält bei Eingabe auf dem Ausgabeband ∗ 0 0∗ 2. Ein Problem L ⊆ Σ heiÿt logspace reduzierbar auf L ⊆ Σ , falls ∗ 0 ∗ gibt mit es eine logspace berechenbare Abbildung f : Σ → Σ ∀x ∈ Σ∗ : x ∈ L ⇐⇒ f (x) ∈ L0 . Kurzschreibweise: Der untere Index 0 L ≤log m L. m mehrere Worte aus steht hier für many-one, dies bedeutet, dass Σ∗ auf das selbe Wort in Σ0 ∗ abgebildet werden können. 126 / 298 Reduktionen in logarithmischen Platz Bemerkungen: I Logspace-Reduktionen lassen sich auch auf Klassen unterhalb von P anwenden und erlaubt eine feinere Einteilung als unter Verwendung von Polynomialzeitreduktionen. I Jede logspace berechenbare Abbildung polynomialer Zeit berechenbar. Insbesondere: f : Σ∗ → Σ0 ∗ ist in ∃k ≥ 0 ∀x ∈ Σ∗ : |f (x)| ≤ |x|k . I Logspace-Reduktionen und Polynomialzeitreduktionen sind genau dann gleichmächtig, wenn L = P gilt. 127 / 298 ≤log m ist transitiv Proposition: ≤log m ist transitiv log 00 0 L ≤log m L ≤m L =⇒ 00 L ≤log m L Beachte: Die analoge Aussage für Polynomialzeitreduktionen ist trivial. Bei der Hintereinanderausführung von Logspace-Reduktionen f : Σ∗ → Σ0 ∗ und I Für Eingabe g : Σ0 ∗ → Σ00 ∗ w ∈ Σ∗ mit gibt es jedoch ein Problem: |w | = n I Die Anwendung von g auf O(log(nk )) = O(log(n)). f (w ) gilt |f (w )| ≤ nk (k Konstante). erfordert damit Platz I Das Problem ist: In logarithmischen Platz kann f (w ) nicht auf das Arbeitsband geschrieben werden. I Lösung: Für das i -te i ≤ |f (w )| kann, wenn auf dem Arbeitsband i steht f (w ) ebenfalls notiert werden, siehe unten. Zeichen von 128 / 298 ≤log m ist transitiv Beweis der Proposition Ohne Einschränkung sind alle Zeichen binär kodiert. Wir berechnen g (f (w )) in Platz O(log(|w |) wie folgt: I Starte den Logspace-Transducer zur Berechnung von f (w ) g (ohne vorher zu berechnen). I Wenn während der Berechnung von g das i−te Bit von f (w ) benötigt wird, wird der Logspace-Transducer zur Berechnung von f (w ) neu gestartet, bis schlieÿlich das ausgegeben ist. Dabei werden die Bits i -te Bit von f (w ) 1, . . . , i − 1 von f (w ) nicht ausgegeben. Hierzu wird ein Binärzähler jedesmal, wenn der Logspace-Transducer für f ein Ausgabebit produziert, hochgezählt. I Ist das i -te Bit von f (w ) bekannt, so kann die Berechnung von g einen Schritt machen. I Beachte: Binärzähler benötigt Platz O(log(|f (w )|) = O(log(|w |) 129 / 298 Padding der Ausstopfen I Sei I I L ⊆ Σ∗ f :N→N $∈ /Σ eine Sprache, eine Funktion mit ein neues Symbol. ∀n ≥ 0 : f (n) ≥ n, und Deniere die Sprache Padf (L) = {w $f (|w |)−|w | | w ∈ L} ⊆ (Σ ∪ {$})∗ . w ∈L wird ein Wort aus Beispiel: Sei f (n) = w $∗ der Länge nk . Dann ist f f (|w |) zugeordnet. logspace berechenbar. Padf (L) mit Hilfe der Reduktion w 7→ w $|w | −|w | . log ∗ Umgekehrt gilt Padf (L) ≤m L für L 6= Σ . Also gilt L ≤log m k 130 / 298 Vollständige Probleme Denition 1. Sei C eine Komplexitätsklasse. Ein Problem L ⊆ Σ∗ heiÿt schwierig für (bzgl. logspace-Reduktionen), falls gilt: 2. Sei C C oder kurz C -schwierig ∀K ∈ C : K ≤log m L. eine Komplexitätsklasse. Ein Problem C -vollständig (bzgl. logspace-Reduktionen), ist und zusätzlich L∈C gilt. L ⊆ Σ∗ heiÿt falls L schwierig für C 131 / 298 GAP ist NL-vollständig Wir geben ein erstes Beispiel: Theorem Das Grapherreichbarkeitsproblem GAP ist NL-vollständig. Beweis: GAP ∈ NL wurde bereits gezeigt. Sei L ∈ NL, sei M eine nichtdeterministische logspace-platzbeschränkte Turingmaschine mit Wir denieren eine Reduktion f (w ) = (G , s, t) mit: I G = (V , E ) ist der V E I I = {α | α f wie folgt: Für w ∈ Σ∗ sei gerichtete Graph mit: ist Kong. von M bei Eingabe = {(α, β) | α, β ∈ V , α `M β} s = Start(w ) t = die (o.B.d.A) L = L(M). w , |α| ≤ log(|w |)} eindeutige akzeptierende Konguration von M. 132 / 298 GAP ist NL-vollständig Oensichtlich gilt: w ∈ L(M) ⇐⇒ f in G gibt es einen gerichteten Pfad von s nach t. kann oensichtlich in logarithmischen Platz berechnet werden. 133 / 298 2-SAT ist NL-vollständig Theorem Das Problem 2-SAT = 2-KNF ∩ SAT ist NL-vollständig. Aufgrund des Satzes von Szelepcsényi-Immermann genügt es, die NL-Vollständigkeit von 2−NSAT = {Φ ∈ 2-KNF : Φ 6∈ SAT } zu zeigen. 134 / 298 NL-Schwierigkeit NSAT ist NL-schwierig: I 2− Sei GAP das Grapherreichbarkeitsproblem. Wir zeigen ≤log m 2−NSAT. Sei G = (V , E ) ein gerichteter Graph und s, t ∈ V . Aus jedem Knoten u machen wir eine Variable gleichen Namens und aus jeder Kante (u, v ) ∈ E eine Implikation u ⇒ v , also die Klausel ¬u ∨ v . Desweiteren fügen wir die Klauseln s und ¬t hinzu. GAP Oensichtlich ist die so konstruierte Formel unerfüllbar, wenn in G ein Weg von s nach t existiert. Ist ein solcher Weg nicht vorhanden, so können alle Variablen, deren zugehörige Knoten von alle übrigen zu falsch s aus erreichbar sind, zu wahr und gesetzt werden. Dies deniert eine die Formel erfüllende Belegung. 135 / 298 2−NSAT liegt in NL KNF-Formel Φ in den Variablen x1 , . . . , xn . Gegeben sei eine 2- Wir konstruieren einen Graphen mit Knotenmenge V = {x1 , . . . , xn , x1 , . . . , xn }. Jede Klausel α ∨ β lesen wir als Kanten α → β und β → α ein. Implikation und führen daher zwei α ∨ β ⇔ (α ⇒ β) ∧ (β ⇒ α) Behauptung: Es gibt genau dann einen Knoten sowie ∗ x −→ x , wenn Φ x und Pfade ∗ x −→ x unerfüllbar ist. Somit kann die Nichterfüllbarkeit von Φ mit Hilfe des NL-Algorithmus für Grapherreichbarkeit überprüft werden. 136 / 298 Beweis der Behauptung ⇒ ist einfach: Die Klauseln, welche zu den Kanten gehören, die die Pfade bilden, ergeben die Implikationen können also weder x noch ¬x auf wahr x ⇒ ¬x ⇐: Nun nehmen wir an, dass für jede Variable Pfade ∗ x −→ x Belegung. oder ∗ x −→ x und setzen. x ¬x ⇒ x . Wir höchstens einer der existiert. Gesucht ist eine erfüllende Wir können annehmen, dass genau einer dieser Pfade existiert: Denn existiert weder hinzu. (D.h. ∗ x −→ x C = x ∨ x = x .) noch ∗ x −→ x , so füge die Kante x →x Dies macht das Finden einer erfüllenden Belegung nur schwieriger, da jetzt x falsch sein muss. Wir müssen aber noch zeigen, dass es keine neuen Kreise gibt. 137 / 298 Beweis der Behauptung Angenommen, wir hätten durch Hinzunahme von mit α und α erzeugt. Dann benutzt dieser Kreis die Kante auf dem Pfad von Bilder, wobei ∗ −→ α nach α. x →x x →x einen Kreis und ohne Einschränkung Wir erhalten eines der folgender beiden alte Kanten bezeichnet. ∗ ∗ ∗ ∗ α −→ x → x −→ α −→ α −→ x ∗ ∗ ∗ ∗ α −→ x → x −→ α −→ x → x −→ α Damit hatte der ursprüngliche Graph einen Pfad ∗ x −→ x , im Widerspruch zur Annahme. Durch Wiederholung der Hinzunahme von Kanten erreichen wir, dass schlieÿlich immer genau einer dieser Pfade existiert: ∗ x −→ x oder ∗ x −→ x . 138 / 298 2-SAT ist NL-vollständig Wir setzen jetzt ∗ x −→ x . Klausel x wahr, zu falls ∗ x −→ x und zu falsch, wenn Diese Belegung ist erfüllend: Wir betrachten eine beliebige C =α∨β und nehmen an, dass β = falsch gilt (sonst ist C ohnehin schon erfüllt). Dann gibt es nach der Konstruktion der Belegung einen Weg die Kanten α→β ∗ β −→ β . und Auÿerdem gibt es wegen der Klausel β → α. C Wir erhalten somit den Weg ∗ α → β −→ β → α. Damit gilt α = wahr. Also ist die Klausel erfüllt. 139 / 298 Teil 4: NP-Vollständigkeit Theorem Falls es eine ∃L : L ist NP-vollständige Sprache gibt, so auch eine in NTIME(n): NP-vollständig ⇒ ∃L̃ ∈ NTIME(n) : L̃ ist NP-vollständig. Beweis: Sei L ein NP-vollständiges Problem. k >0 Es existiert eine Konstante mit L ∈ NTIME(nk ). Aus dem Translationssatz für Zeitklassen folgt 0 Sei nun L ∈ NP log ⇒ L0 ≤log m L ≤m Da ≤log m ist k beliebig. Padn (L) k transitiv ist, folgt ⇒ Padp(n) (L) Padn (L) ∈ NTIME(n). L0 ≤log m Padn (L). k NP-vollständig. 140 / 298 Der Satz von Cook und Levin Sei Σ0 = {¬, ∧, ∨, ⇒, ⇔, 0, 1, (, ), x}. Sei A ⊆ Σ∗0 die Menge aller aussagenlogischen Formeln über der Variablenmenge A ⊆ Σ∗0 V = x 1{0, 1}∗ . ist deterministisch kontextfrei und gehört damit zu DTIME(n). Sei SAT = {F ∈ A | F ist erfüllbar}. (Eine aussagenlogische Formel B : Var(F ) → {true, false} F ist erfüllbar, wenn es eine Belegung der in F Wahrheitswerten gibt, unter der sich vorkommenden Variablen mit F zu true auswertet.) Satz von Cook (und Levin) SAT ist NP-vollständig. 141 / 298 Beweis des Satzes von Cook/Levin (A) SAT ∈ NP: Für ein F ∈ Σ∗0 2. 3. w ∈ Σ∗ konstruieren wir eine Formel w ∈L Die Abbildung Sei wie folgt: ob (B) SAT ist NP-schwierig. Sei L ∈ NP. Zu ∈ SAT F ∈ A gilt. Falls JA, rate eine Belegung B : Var(F ) → {true, false}. Akzeptiere, falls F sich unter der Belegung B zu true auswertet. 1. Teste in Zeit O(|F |) überprüfen wir F f ⇐⇒ f (w ) f (w ) mit erfüllbar . wird logspace berechenbar sein. M = (Q, Σ, Γ, δ, q0 , F , b) eine p(n)-zeitbeschränkte L = L(M) nichtdeterministische Turingmaschine mit (p(n) ist ein Polynom). Sei w = w1 w2 · · · wn ∈ Σ∗ eine Eingabe der Länge n. 142 / 298 Beweis des Satzes von Cook/Levin O.B.d.A. gelten die folgende Eigenschaften: 1. M hat nur ein Band, auf dem die Eingabe zu Beginn links steht. 2. Das Eingabeband ist Arbeitsband und ggf. Ausgabeband und einseitig nach rechts unbeschränkt. 3. Der Kopf wandert nie über die linke Position hinaus. 4. F = {$}, d.h. es gibt nur einen Endzustand. 5. Bei Eingabe w ∈ Σ∗ hält M nie, aber nach wir genau dann im Endzustand, wenn 6. Nach p(n) w p(n) Schritten sind M akzeptiert wird. von Schritten ist der Schreib-Lesekopf wieder auf der Ausgangsposition ganz links. 7. Im Folgenden verlängern wir die Rechnung um einen konstanten Faktor, dementsprechend passen wir p(n) an. 143 / 298 Beweis des Satzes von Cook/Levin Wir modizieren δ und nehmen weitere Zustände auf. Sind wir im Zustand p∈Q und lesen wir ein Kopfbewegung in einen neuen Zustand Sind wir in einem Zustand (p, a), d= so wechseln wir ohne so wechseln wir nichtdeterministisch ohne Kopfbewegung in einen Zustand die Form a, (p, a). (p, a, d), wobei (p, a, q, a0 , D) hat. d ∈δ gilt und d (p, a, d) mit d = (p, a, q, a0 , D), so 0 simulieren wir d : Wir schreiben a , wechseln in den Zustand q ∈ Q , bewegen den Kopf entsprechende der Richtung D . Sind wir in einem Zustand Nur hinsichtlich des Folgezustand vom Wechsel von Zustand (p, a, d) (p, a) zum haben wir also eine nichtdeterministische Wahl. Die Rechenzeit ist dreimal so lang. 144 / 298 Beweis des Satzes von Cook/Levin Die neue Turingmaschine nennen wir wieder M = (Q, Σ, Γ, δ, q0 , { $ } , b), die erkannte Sprache wurde nicht verändert und die Rechenzeit sei p(n) zeitbeschränkt. Die Konventionen von oben gelten weiterhin. Neu ist: Wir können eine endliche Tabelle ∆ konstruieren mit der folgenden Eigenschaft. α = bα0 · · · αp b eine Konguration (mit p = p(n) α−1 = αp+1 = b), so ist β = bβ0 · · · βp b genau dann Folgekonguration, wenn für alle 0 ≤ i ≤ p gilt Ist und eine mögliche (αi−1 , αi , αi+1 , βi ) ∈ ∆. 145 / 298 Beweis des Satzes von Cook/Levin Jede von der Startkonguration erreichbare Konguration kann durch Conf = {buqv b | q ∈ Q; u, v ∈ Γ∗ ; |uv | = p(n)} beschrieben werden. Die Startkonguration ist bq0 w1 · · · wn bp(n)+1−n . Die akzeptierenden Kongurationen sind in b$Γp(n) b. Notation: Für ein α ∈ Conf schreiben wir α = α[−1]α[0] · · · α[p(n)]α[p(n) + 1] wobei α[−1] = b, α[0], . . . , α[p(n)] ∈ Q ∪ Γ, α[p(n) + 1] = b. 146 / 298 Beweis des Satzes von Cook/Levin Beispiel: (q, a, p, a0 , ←) ∈ δ b ∈ Γ möglich: Falls ist folgende lokale Bandänderung für alle Position i−1 i i+1 α = ··· ··· b q a ··· ··· α0 = ··· ··· p b a0 ··· ··· (q, a, p, a0 , →) ∈ δ b ∈ Γ möglich: Falls ist folgende lokale Bandänderung für alle Position i−1 i i+1 α = ··· ··· b q a ··· ··· α0 = ··· ··· b a0 p ··· ··· 147 / 298 Beweis des Satzes von Cook/Levin Eine Rechnung von α0 α1 M = b = b können wir nun als Matrix beschreiben: α0,0 α1,0 α0,1 α1,1 ... ... . . . αp(n) = b αp(n),0 αp(n),1 . . . Für jedes Tripel sei x(a, i, t) b b α0,p(n) α1,p(n) αp(n),p(n) b (a, i, t) (a ∈ Q ∪ Γ, −1 ≤ i ≤ p(n) + 1, aussagenlogische Variable. 0 ≤ t ≤ p(n)) Interpretation: x(a, i, t) = true genau dann, wenn zum Zeitpunkt t das i -te Zeichen der aktuellen Konguration ein a ist. 148 / 298 Beweis des Satzes von Cook/Levin Als Teilformeln denieren wir folgende Hornformeln: Konsistenzformel C (n) = ^^ i,t a6=b Randformel R(n) = ^ t Startformel (¬X (a, i, t) ∨ ¬X (b, i, t)). X (b, −1, t) ∧ S(w ) =X (q0 , 0, 0) ∧ Accept-Formel Accept(n) Dabei sei jeweils −1 ≤ i ≤ p(n) + 1 ^ X (b, p(n) + 1, t). t ^ 1≤i≤n X (wi , i, 0) ∧ ^ X (b, i, 0). n<i =X ($, 0, p(n)). und 0 ≤ t ≤ p(n). 149 / 298 Beweis des Satzes von Cook/Levin Übergangsformel D(n) = ^ i≥0, t>0 (a,b,c)∈(Γ∪Q)3 X (a, i − 1, t − 1) ∧ X (b, i, t − 1) ∧ X (c, i + 1, t − 1) → _ X (d, i, t) . d∈Γ∪Q mit (a,b,c,d)∈∆ Endformel f (w ) = C (n) ∧ R(n) ∧ S(w ) ∧ Accept(n) ∧ D(n). Diese Formel ist in konjunktiver Normalform. Falls M deterministisch ist, dann ist es sogar eine Hornformel. Die Klauseln, welche nur negative Literale enthalten, sind alle Klauseln in C (n) und die in D(n), bei denen die Disjunktion leer ist. 150 / 298 Beweis des Satzes von Cook/Levin Die Formel f 0 (w ) = C (n) ∧ R(n) ∧ S(w ) ∧ D(n) ist immer erfüllbar. Die erfüllenden Belegungen entsprechen Rechnungen von Am Wert Accept(n) M. können wir einer solchen Belegung ansehen, ob sie erfolgreich ist. 151 / 298 P Vollständigkeit von HORNSAT Aus dem Beweis ergibt sich unmittelbar: HORNSAT ist P-vollständig. 152 / 298 Weitere NP-vollständige Probleme: (1) SAT ∩ KNF Denition: Literale, KNF Ein Literal x̃ ist eine aussagenlogische Variable oder die Negation einer aussagenlogischen Variablen. Statt Sei ¬x schreiben wir auch x. Auÿerdem sei x = x. KNF (bzw. DNF) die Menge der aussagenlogischen Ausdrücke in konjunktiver Normalform (bzw. disjunktiver Normalform): DNF KNF = {F | F = {F | F ist Disjunktion von Konjunktionen von Literalen} ist Konjunktion von Disjunktionen von Literalen} Fakt: Jede aussagenlogische Formel F gibt es äquivalente Formeln DNF(F ) ∈ DNF und KNF(F ) ∈ KNF. 153 / 298 Weitere Beispiel: NP-vollständige Probleme: (1) SAT ∩ KNF ! F = ^ _ i=1,...,k j=1,...,m x̃i,j ! ≡ _ ^ f ∈{1,...,m}{1,...,k} i=1,...,k x̃i,f (i) = F0 Beachte: I |F 0 | = mk · k , d.h. eine KNF-Formel mit k Disjunktionen der Länge m kann in eine äquivalente DNF-Formel k bestehend aus m Konjunktionen der Länge k umgewandelt |F | = m · k während werden. I Für Formeln in DNF kann Erfüllbarkeit deterministisch in quadratischer Zeit überprüft werden. I Wir haben gezeigt, dass Erfüllbarkeit für Formeln in KNF NP-vollständig ist. Deswegen ist der exponentielle Blow-Up bei der Umwandlung von KNF in DNF nicht überraschend. 154 / 298 SAT ∩ KNF ist NP-vollständig Theorem SAT ∩ KNF ist NP-vollständig. Beweis: Siehe Beweis von Cook/Levin. 155 / 298 3-SAT ist NP-vollständig Denition: 3-SAT Sei 3- KNF die Menge der Formeln in konjunktiver Form mit genau drei Literalen je Klausel: 33- KNF := {F ∈ KNF | Jede Klausel in F enthält genau drei Literale} SAT sei die Teilmenge der davon erfüllbaren Formeln: 3- SAT := 3-KNF ∩ SAT Theorem 3- SAT ist NP-vollständig. Beweis: Nur die NP-Schwierigkeit ist nicht trivial. SAT ∩ KNF ≤log m 3-SAT. eine KNF-Formel. Wir unterscheiden drei Fälle: Wir zeigen: Sei F 156 / 298 NP-vollständig 3-SAT ist 1. F enthält eine Klausel Führe neue Variable y (x̃) mit nur einem Literal. ein und ersetze Dies hat auf die Erfüllbarkeit von 2. F (x̃) durch (x̃ ∨ y ) ∧ (x̃ ∨ y ). keine Auswirkung. (x̃ ∨ ỹ ) mit zwei Literalen. z ein und ersetzte (x̃ ∨ ỹ ) durch (x̃ ∨ ỹ ∨ z) ∧ (x̃ ∨ ỹ ∨ z). F enthält eine Klausel Führe neue Variable 3. F enthält Klauseln mit mehr als drei Literalen. Sei also c = (x̃1 ∨ x̃2 ∨ · · · ∨ x̃k ) eine solche Klausel mit Literalen. Führe k −3 und ersetzen c 0 = neue Variablen c k ≥4 v (x̃3 ), v (x̃4 ), . . . , v (x̃k−2 ), v (x̃k−1 ) ein durch x̃1 ∨ x̃2 ∨ v (x̃3 ) ∧ k− ^2 i=3 v (x̃i ) ∨ x̃i ∨ v (x̃i+1 ) ∧ v (x̃k−1 ) ∨ x̃k−1 ∨ x̃k . 157 / 298 3-SAT ist NP-vollständig 0 Beachte: c kann auch geschrieben werden als c0 = ^2 k− x̃1 ∨ x̃2 ∨ v (x̃3 ) ∧ v (x̃i ) ⇒ x̃i ∨ v (x̃i+1 ) i=3 ∧ v (x̃k−1 ) ⇒ x̃k−1 ∨ x̃k . Dass (3) nichts an der Erfüllbarkeit ändert folgt aus folgenden Punkten: (A) Sei σ eine erfüllende Belegung für Dann muss Erweitere σ σ(x̃i ) = 1 für ein 1 ≤i ≤k c. gelten. zu einer erfüllenden Belegung von ( 0 σ (v (x̃j )) = 1 falls 0 falls c0 durch: j ≤i j >i 158 / 298 3-SAT ist (B) Sei σ 0 NP-vollständig eine erfüllende Belegung für Angenommen σ 0 (x̃i ) = 0 =⇒ σ 0 (v (x̃3 )) = 1 (da Mit Induktion folgt: =⇒ σ 0 (v (x̃k−1 ) für alle 1 c 0. ≤ i ≤ k. σ 0 (x̃1 ∨ x̃2 ∨ v (x̃3 )) = 1) σ 0 (v (x̃i )) = 1 ∨ x̃k−1 ∨ x̃k )) = 0 für alle 3 ≤ i ≤ k − 1. Widerspruch! 159 / 298 Übersicht SAT is NL vollständig. HORNSAT is P vollständig. 3-SAT is NP vollständig. 1.) 22.) 3.) 160 / 298 Integer Programming Es sei LinProg(Z) := {hA, bi | A ∈ Zm×n , b ∈ Zm×1 , ∃x ∈ Zn×1 : Ax ≥ b} Zahlen aus Z werden hier binär kodiert. Theorem LinProg(Z) ist NP-vollständig. Beweis: (1) LinProg(Z) ∈ NP: Dies ist der schwierige Teil des Beweises, siehe z. B. Hopcroft, Ullman; Introduction to Automata Theory, Languages and Computation, Addison Wesley 1979 161 / 298 Integer Programming LinProg(Z) ist NP-schwierig. log Wir zeigen 3-SAT ≤m LinProg(Z). (2) Sei F = c1 ∧ c2 ∧ · · · ∧ cq Seien x1 , . . . , xn eine Formel in 3- die Variablen in Wir bilden das folgende System Variablen 1. 2. 3. 4. 5. KNF. F. S von Z-Ungleichungen über den xi , xi , 1 ≤ i ≤ n: xi ≥ 0, xi ≥ 0, 1 1 ≤i ≤n ≤i ≤n xi + xi ≥ 1, 1 ≤i ≤n −xi − xi ≥ −1, 1 ≤i ≤n x̃j 1 + x̃j 2 + x̃j 3 ≥ 1, für jede Klausel cj = (x̃j 1 ∨ x̃j 2 ∨ x̃j 3 ). 162 / 298 Integer Programming (3) und (4) =⇒ xi + xi = 1 (1) und (2) =⇒ xi = 1, xi = 0 (5) =⇒ in jeder Klausel x̃ij Also: S S : 4n + q Schreiben wir (4n + q) × 2n S cj xi = 0, xi = 1 hat mindestens ein Literal den Wert 1 lösbar genau dann, wenn Gröÿe von oder F erfüllbar. Ungleichungen, 2n Variablen. in Matrixform (bzw. 4n + q) Ax ≥ b , so hat A (bzw. b) ≤ 1. Einträge von Absolutbetrag Bemerkungen: I Obiger Beweis zeigt, dass LinProg(Z) bereits bei unärer NP-schwierig ist. LinProg(Q) ∈ P. Dieser Nachweis ist sehr schwierig und beruht Kodierung I auf der Ellipsoidmethode von Khachiyan. 163 / 298 Vertex Cover ist NP-vollständig Eine Knotenüberdeckung (vertex cover) für einen ungerichteten G = (V , E ) ist eine Teilmenge C ⊆ V , {u, v } ∈ E gilt: {u, v } ∩ C 6= ∅ Graphen so das für jede Kante Vertex Cover (VC) ist das folgende Problem: Eingabe: Ein ungerichteter Graph G = (V , E ) und ein k ≥ 0. Frage: Hat G Knotenüberdeckung C mit |C | ≤ k ? Theorem VC ist NP-vollständig. Beweis: (1) VC ∈ NP: Rate eine Teilmenge C der Knoten mit überprüfe danach in Polynomialzeit, ob VC ist NP-schwierig: log Wir zeigen 3-SAT ≤m VC. C |C | ≤ k und eine Knotenüberdeckung ist. (1) 164 / 298 Vertex Cover ist NP-schwierig Sei F = c1 ∧ · · · ∧ cq eine Formel in 3- KNF, wobei f cj = (f xj 1 ∨ xf j2 ∨ x j 3 ). Wir konstruieren einen Graphen G (F ) Zunächst bilden wir zu jeder Klausel folgenden Graphen G (cj ): wie folgt: f cj = (f xj 1 ∨ xf j2 ∨ x j 3) den xf j3 xf j1 xf j2 165 / 298 Vertex Cover ist Der Graph G (F ) NP-schwierig entsteht aus der disjunkten Vereinigung aller dieser Teilgraphen eine Variable aus G (cj ) Sq durch Einfügen aller Kanten j=1 G (cj ) (x, x) (x ist F ). Beispiel: Für die Formel F = (x ∨ y ∨ z) ∧ (x ∨ s ∨ r ) ∧ (y ∨ s ∨ z) ∧ (x ∨ s ∨ r ) G (F ): führt diese Konstruktion zu folgendem Graphen z x r y x r z s y s x s 166 / 298 Vertex Cover ist NP-schwierig Beachte: In G (F ) kann es kein Vertex Cover U Knoten geben, da in jedem der q mit weniger als 2q Dreiecke mindestens 2 Knoten zu U gehören müssen. Behauptung:F ∈ 3-SAT genau dann, wenn G (F ) ein Vertex Cover U mit |U| = 2q (A) Sei σ hat. eine erfüllende Belegung für Dann wird in jeder Klausel Sei U cj F. mindestens ein Literal eine Knotenmenge, die für jeden Teilgraphen Knoten enthält, so dass nicht-erfüllte Literale zu Dann gilt |U| = 2q und U U xeji wahr. G (cj ) genau zwei gehören. ist ein Vertex-Cover. 167 / 298 Vertex Cover ist (B) Sei U NP-schwierig ein Vertex-Cover mit U Dann enthält aus jedem Teilgraphen Deniere Belegung σ(x) = 1 0 0 Beachte: Da U |U| = 2q . σ G (cj ) genau zwei Knoten. durch x nicht zu U gehört. eine Kopie von x nicht zu U gehört. alle Kopien von x und x zu U gehören. falls eine Kopie von falls falls ein Vertex Cover ist, und alle Kanten (x, x) in G (F ) vorhanden sind, wird keine Variable gleichzeitig auf 0 und 1 gesetzt. Oensichtlich gilt σ(F ) = 1. 168 / 298 Ein gutes und erfolgreiches Neues Jahr 2017 ist eine Primzahl, danach folgen die Zwillinge 2027 und 2029, keine der neun Zahlen 2018, . . . , 2026 ist prim. 169 / 298 3-Färbbarkeit von Graphen . . . ist NP-vollständig. (Beweis mittels einer Variante von 3SAT, NAE-3SAT. Siehe Tafel.) 170 / 298 3-Färbbarkeit von planaren Graphen . . . ist ebenfalls NP-vollständig. In NP ist klar. Wir reduzieren 3-Färbbarkeit in Polyzeit auf 3-Färbbarkeit planarer Graphen. Hierzu ersetzen wir jede Kreuzung des gegebenen Graphen durch ein planares Dingsbums (englisch: gadget) namens X (X wie Kreuzung). 171 / 298 3-Färbbarkeit von planaren Graphen: Dingsbums Gadget X: N W O S c gilt c(N) = c(S) und c(O) = c(W ). c(N) = c(S) und c(O) = c(W ) kann zu 1. Für jede 3-Färbung 2. Jede Färbung mit 3-Färbung von X einer erweitert werden. Der Trick ist dabei, mit dem Knoten in der Mitte zu beginnen, um die Kombinatorik in den Gri zu bekommen. 172 / 298 3-Färbbarkeit: Ersetzung von Kreuzungen N W N O wird zu W S O S Beachte, dass die grauen Punkte beliebig nahe an der Kreuzungsmitte gewählt werden können. Daher kann die Ersetzung dergestalt durchgeführt werden, dass keine neuen Kreuzungen (mit anderen Kanten) entstehen. Ohne Einschränkung liegen und O W und S auf dem alten Graphen und N auf den alten Kanten. So induziert eine Färbung mit Gadgets eine Färbung des Graphen ohne Gadgets. 173 / 298 NP-vollständig Hamilton-Kreis und Hamilton-Pfad sind Ein Hamilton-Pfad in einem gerichteten Graphen Folge von Knoten I (vi , vi+1 ) ∈ E v1 , v2 , . . . , vn für alle 1 I für jeden Knoten v ∈V G = (V , E ) ist eine mit ≤i ≤n−1 und existiert genau ein 1 Ein Hamilton-Kreis ist ein Hamilton-Pfad ≤i ≤n v1 , v2 , . . . , vn mit v = vi . mit (vn , v1 ) ∈ E . Es sei HP HC = {G | G = {G | G ist ein Graph mit einem Hamilton-Pfad} ist ein Graph mit einem Hamilton-Kreis} Theorem HP und HC sind NP-vollständig (sogar für ungerichtete Graphen). 174 / 298 Hamilton-Kreis und Hamilton-Pfad sind NP-vollständig Beweis: Wir zeigen nur die NP-Vollständigkeit von HC. (A) HC ∈ NP: trivial. (B) 3- SAT ≤log m HC: F = c1 ∧ c2 ∧ · · · ∧ cm eine Formel c1 , . . . , cm in den Variablen x1 , . . . , xn . Sei Wir konstruieren einen Graphen Hamilton-Kreis hat, falls G (F ), F ∈ SAT in 3- der genau dann einen gilt. Zunächst denieren wir zu jeder Klausel b4 c folgenden Graphen b3 a34 a33 a32 a31 KNF mit den Klauseln G (c): b2 a24 a23 a22 a21 b1 a14 a13 a12 a11 175 / 298 NP-vollständig Hamilton-Kreis und Hamilton-Pfad sind Beachte: I In G (c) gibt es keinen Hamilton-Pfad von b1 nach b4 . G (c) mindestens einen der Wege bj − aj 1 − aj 2 − aj 3 − aj 4 − bj+1 , j ∈ {1, 2, 3} weg, so einen Hamilton-Pfad von b1 nach b4 . I Lässt man jedoch in Für eine Variable und {cj1 , . . . , cjl } O.B.d.A i1 x sei {ci1 , . . . , cik } die Menge der Klauseln mit die Menge der Klauseln mit < · · · < ik , j1 < · · · < j` Zu jeder Variablen x gibt es sowie x ∈ cj . x ∈ ci ∀p, q : ip 6= jq . denieren wir nun einen Graphen G (x): ei1 1 ei1 2 ei1 3 ei1 4 eik 1 eik 2 eik 3 eik 4 ej1 1 ej 1 2 ej1 3 ej 1 4 ejl 1 ej l 2 ejl 3 ej l 4 176 / 298 Hamilton-Kreis und Hamilton-Pfad sind Den Graphen G (F ) NP-vollständig bilden wir durch Zusammenfügen der bisher G(xn) G(ck ) G(ci ) G(c1) G(xj ) G(x1) konstruierten Graphen nach dem folgenden Muster: ck = (x̃k1 ∨ x̃k2 ∨ x̃k3 ) noch G (ck ) und den Graphen G (xki ): Zusätzlich benötigen wir für jede Klausel Verbindungen zwischen dem Graphen 177 / 298 ′′ ek4 ′′ ek3 ′′ ek2 a34 b4 a33 G(ck ) a32 a31 ′′ ek1 G(xk3 ) NP-vollständig ′ ek4 b3 a24 ′ ek3 a23 ′ ek2 a22 ′ ek1 b1 b2 a14 a21 ek4 a13 a12 ek3 ek2 a11 ek1 G(xk1 ) G(xk2 ) Hamilton-Kreis und Hamilton-Pfad sind i ∈ {1, . . . , 3} und q ∈ {1, . . . , 4} den Knoten Knoten ekq aus G (xki ) über einen neuen Wir verbinden also für aiq in G (ck ) mit dem Zwischenknoten. 178 / 298 Hamilton-Kreis und Hamilton-Pfad sind Beispiel: Sei F = (x1 ∨ x2 ∨ x3 ) ∧ (x1 ∨ x2 ∨ x3 ). | } | {z c2 } der folgende Graph: G(c2) G(x3) G(x2) G(c1) G (F ) c1 G(x1) Dann ist {z NP-vollständig 179 / 298 Hamilton-Kreis und Hamilton-Pfad sind NP-vollständig Behauptung: F ∈ SAT genau dann, wenn G (F ) einen Hamilton-Kreis hat. Angenommen σ ist eine erfüllende Belegung von Wir erhalten einen Hamilton-Kreis für G (F ) F. wie folgt: Der Weg führt über die erfüllten Literalen entsprechenden Knoten in G (xi ), wobei jedoch über die zuletzt eingefügten Verbindungen in jedem G (ck ) genau eine Knotengruppe ai 1 − ai 2 − ai 3 − ai 4 besucht den wird. Dies ist möglich, da in jeder Klausel mindestens ein Literal erfüllt ist. Nachdem so alle G (xi ) durchwandert wurden, werden die in den verbleibenden Knoten und die zugehörigen Knoten in den G (ck ) G (xi ) besucht. Anschlieÿend endet der Weg im Startknoten. 180 / 298 Hamilton-Kreis und Hamilton-Pfad sind Sei C ein Hamilton-Kreis für NP-vollständig G (F ). Dieser durchläuft in jedem der Graphen Dies deniert eine erfüllende Belegung G (xi ) σ von einen der beiden Zweige. F. 181 / 298 Rucksackproblem Erinnerung: Beim Rucksack-Problem sind (in dem Spezialfall Subset-Sum) Zahlen a1 , . . . , an , s ∈ N binär kodiert gegeben P und die I ⊆ { 1, . . . , n } gibt so, dass s = i∈I ai . Frage ist, ob es eine Menge In den Übungen war es die Weihnachtsaufgabe zum Geschenkeverteilen. Theorem Das Rucksack-Problem ist Wir können I ⊆ { 1, . . . , n } Daher liegt das Problem in Die 3- NP-vollständig. raten und dann NP. s= P i∈I ai verizieren. NP-Schwierigkeit erhält man durch eine einfache Reduktion von SAT auf dieses Problem. 182 / 298 Einfache Instanzen Das Rucksack-Problem ist pseudo-polynomiell lösbar, also in der Zielwert s P, wenn unär codiert wird. Allgemeiner: Für I ⊆ { 1, . . . , n } bezeichne a(I ) = P i∈I ai . Angenommen, die Anzahl der Werte { a(I ) ∈ N | a(I ) ≤ s, I ⊆ { 1, . . . , n } } ist polynomiell in der Eingabe begrenzt. Dann können wir diese Menge in n Schleifendurchläufen berechnen und damit das Rucksack-Problem polynomiell lösen. 183 / 298 (Horowitz/Sahni 1974) e 2n/2 ) Zeit und Speicher in O( I Berechne und speichere in einer nach a(I ) sortierten Liste L1 alle {1,...,m} sowie in einer sortierten Liste L alle Teilmengen I ∈ 2 2 {m+1,...,n} . Teilmengen J ∈ 2 I Dies sind jeweils Listen mit 2m L1 aufsteigend a(I ) + a(J) = s . I Suche in und in = 20,5n L2 Elementen. absteigend ein Paar (I , J) mit 184 / 298 Bekannte Schranke bis 2009 Der Schroeppel-Shamir Algorithmus (SIAM J. Comput., 10(3):456464, 1981) liefert unter einer einfachen heuristischen Annahme die Laufzeit e 2n/2 ) O( bei einem Speicherbedarf von e 2n/4 ). O( Erst im Jahre 2009 verbesserten Nick Howgrave-Graham und Antoine Joux dieses Ergebnis: Laufzeit von e 20,256n ). O( e 20,337n ) O( bei einem Speicherbedarf (New generic algorithms for hard knapsacks. In EUROCRYPT'2010, pages 235256, 2010.) 185 / 298 Nicht NP-vollständige Mengen innerhalb von NP \ P Nach unserem bisherigen Wissen wären folgende 3 Situationen möglich: NPvollständige NP NP- NP vollständige Mengen Mengen P = NP P P I II III Im Folgenden werden wir zeigen, dass die 3. Möglichkeit nicht möglich ist. Theorem Ist P 6= NP, dann existiert (eektiv) eine Sprache L ∈ NP \ P, die nicht NP-vollständig ist. 186 / 298 Die Sprachen Lf Für eine schwach monoton wachsende Funktion (x2 > x1 ⇒ f (x2 ) ≥ f (x1 )) sei Lf = {x ∈ Σ∗ | x ∈ SAT ∧ f (|x|) f :N→N ist gerade} Bemerkung: 1. Ist der Wertebereich endlich, so ist die der maximale Wert gerade oder ungerade. Je nachdem ist Lf fast ganz SAT oder Lf ist fast leer (d.h. endlich). 2. Ist f in Polynomialzeit berechenbar, so gilt Lf ∈ NP. 187 / 298 Konstruktion der Sprachen in NP \ P Im Folgenden geben wir ein Programm an, welches eine Funktion f : N → N rekursiv in Zeit O(n) berechnet. =⇒ Lf ∈ NP. Sei M1 , M2 , . . . eine Aufzählung aller deterministischen Turingmaschinen mit einer zusätzlichen polynomialen Zeitschranke. Eigentlich zählen wir alle Paare (Mi , pj ) von deterministischen Turingmaschinen und Polynomen auf. Wir erhalten daraus obige Aufzählung, indem Mi mit einem zusätzlichen Schrittzähler, welcher die polynomiale Zeitschranke pj (n) = nj sicherstellt, versehen wird. 188 / 298 Nicht NP-vollständige Mengen innerhalb von NP \ P Sei analog R1 , R2 , . . . eine Aufzählung aller Polynomialzeitreduktionen. Wir verwenden ferner im Folgenden einen beliebigen (exponentiellen) deterministischen Algorithmus zur Erkennung von Zusammen mit der Linearzeitberechnung von f auch einen festen Algorithmus zur Erkennung von berechne Es sei f (|x|). Akzeptieren falle L∆K =L\K ∪ K \L Beachte: ist L ∈ C C und ist f (|x|) SAT. erhalten wir damit Lf : Auf Eingabe x x ∈ SAT. gerade und die symmetrische Dierenz. für eine der hier betrachteten Komplexitätsklassen |L ∆ K | < ∞, so gilt auch K ∈ C. 189 / 298 Nicht NP-vollständige Mengen innerhalb von NP \ P FUNCTION f (n) if n = 0 then return 0 else (∗ n > 0 ∗) i := 0; k := 0 loop für genau n Befehlsschritte k := f (i); i := i + 1 endloop (∗ Beachte: alle rekursiven Aufrufe f (i) geschehen nur mit i < n. ∗) (∗ Der Wert von k ist nach Durchlaufen dieser Schleife sehr klein. ∗) if k = 2j (insbes. ∗ k gerade) ∗ then suche für genau n Schritte in längenlexikograph. Reihenfolge ein x ∈ L(Mj ) ∆ Lf endif if k = 2j + 1 (insbes. ∗ k ungerade) ∗ then n Schritte in längenlexikograph. Reihenfolge (x ∈ SAT ∧ Rj (x) ∈ / Lf ) ∨ (x ∈ / SAT ∧ Rj (x) ∈ Lf ) suche für genau endif if ein solcher Zeuge x ∈ Σ∗ wurde gefunden then return k + 1 else return k endif endif ein x ∈ Σ∗ mit 190 / 298 Nicht NP-vollständige Mengen innerhalb von NP \ P Bemerkung: f (n) ist wohldeniert und wird in O(n) Schritten f (n) + 1 ≥ f (n + 1) ≥ f (n) für alle n ∈ N. Wir zeigen jetzt mit Widerspruch: wenn P 6= NP gilt, so liegt Lf weder in P noch ist Lf NP-vollständig (beachte: Lf ∈ NP). berechnet. Es gilt weiter Dazu überlegen wir zunächst: 1. Wenn Lf ∈ P, dann existiert ein =⇒ L(Mj ) ∆ Lf = ∅ Aus der Berechnung von f folgt j mit Lf = L(Mj ). ∀n ∈ N : f (n) ≤ 2j . SAT ≤pm Lf . =⇒ es gibt j ≥ 0 mit ∀x ∈ Σ∗ : x ∈ SAT ⇔ Rj (x) ∈ Lf . =⇒ ¬∃x ∈ Σ∗ : (x ∈ SAT ∧ Rj (x) ∈ / Lf ) ∨ (x ∈ / SAT ∧ Rj (x) ∈ 2. Wenn Lf NP-vollständig ist, dann ist Lf ). Aus der Berechnung von f folgt ∀n ∈ N : f (n) ≤ 2j + 1. 191 / 298 Nicht NP-vollständige Mengen innerhalb von NP \ P Ist also Lf ∈ P oder Lf NP-vollständig, so ist f beschränkt und wird schlieÿlich stationär. Man beachte nun: f beschränkt und f (n) gerade für fast alle n, so gilt |Lf ∆ SAT| < ∞ und Lf ist NP-vollständig. Ist f beschränkt und f (n) ungerade für fast alle n, so ist Lf endlich und damit Lf ∈ P. der Vorraussetzung P 6= NP folgt nun: f (n) = 2j für fast alle n. =⇒ L(Mj ) = Lf . =⇒ Lf ist NP-vollständig nach (1) oben. Widerspruch zu L(Mj ) ∈ P. f (n) = 2j + 1 für fast alle n. =⇒ Rj ist Reduktion von SAT auf Lf . Widerspruch zu (2) oben, da Lf endlich ist und wegen P 6= NP 1. Ist 2. Aus 1. 2. die Sprache kann. SAT nicht auf eine Sprache in P reduziert werden 192 / 298 Dünne Mengen und der Satz von Mahaney Eine Menge L ⊆ Σ∗ ist dünn, wenn ein Polynom p(n) mit ∀n ≥ 0 : w ∈ L | |w | = n ≤ p(n). existiert. Z. B. ist jede Sprache über einem unären Alphabet {a} dünn. Satz von Mahaney Gilt P 6= NP, so gibt es keine dünne Sprache, die NP-schwierig ist. 193 / 298 Beweis des Satzes von Mahaney 0 Es wird zunächst eine Menge SAT deniert: SAT 0 F ist boolesche Formel in den Variablen x1 , . . . , xn , = hF , xi x ∈ {0, 1}n und ∃y ∈ {0, 1}n : (y ≥ x ∧ F (y ) = 1) Hierbei ist I I ≥ die lexikographische Ordnung auf {0, 1}∗ und F (y ) = 1 bedeutet, dass der Bitstring y als Belegung der Variablen x1 , . . . , xn interpretiert wird und F sich unter dieser Belegung zu wahr auswertet. Behauptung: SAT0 ist NP-vollständig. 0 1. SAT ∈ NP: Rate Belegung y ≥ x und überprüfe, ob F (y ) = 1. 0 2. SAT ist NP-schwierig: O.B.d.A. enthalte 0 F x1 , . . . , xn . Wir reduzieren SAT F 7→ hF , 0n i. Es gilt oensichtlich: die Variablen auf SAT mit der Abbildung F ∈ SAT ⇔ hF , 0n i ∈ SAT0 194 / 298 Beweis des Satzes von Mahaney F in den Variablen x1 , . . . , xn denieren f : [0, . . . , 2n − 1] → {0, 1} durch 0 1, falls hF , xi ∈ SAT f (x) = Für eine Formel Funktion wir eine 0, sonst Der Denitionsbereich von Der Graph von f f wird hier mit ist eine Treppenfunktion: {0, 1}n identiziert. 1 0 0n Der Wert für F. y y 1n ist hier die (lexikographisch) gröÿte erfüllende Belegung 195 / 298 Beweis des Satzes von Mahaney Angenommen ∈ NP, gibt 0 SAT auf L. Wir Da SAT von L ⊆ {0, 1}∗ 0 ist eine dünne NP-schwierige Sprache. H : Σ∗ → {0, 1}∗ es eine Polynomialzeitreduktion interpretieren dies am besten als eine ezient berechenbare Hash-Funktion. Aber möglicherweise ist L unentscheidbar! hF , xi ∈ SAT0 ⇔ H(hF , xi) ∈ L Die Länge einer Eingabe hF , xi denieren wir im folgenden zu und wir können o.B.d.A. annehmen, dass die Formel aus der Menge x1 , . . . , xn L n = |F | nur Variablen enthält. Wir zeigen, dass unter obigen Annahmen SAT Da F ∈ P, d.h. P = NP gilt. nach Annahme eine dünne Sprache ist, gibt es ein Polynom p(n) mit H(hF , xi) | hF , xi ∈ SAT0 ∧ |hF , xi| ≤ n ≤ p(n). 196 / 298 Beweis des Satzes von Mahaney Sei I = [0, . . . , 2n − 1]. Ist 2 n ≤ 2p(n), so werten wir alle Belegungen I (irgendwie) in 2 · p(n) nichtleere aus. Ansonsten unterteilen wir Teilintervalle. Jedes Intervall wird durch die linke Grenze und die Länge repräsentiert. Für die linken Grenzen xi wird (Hash-)Tabelle abgelegt. Wenn dabei zwei Tupel hF , xi i H(hF , xi i) und berechnet und in einer hF , xj i auf denselben Wert abgebildet werden, ndet eine Kollisionsauösung statt: xi < xj . Dann werden alle Teilintervalle mit linken Grenzen xi , xi+1 , . . . , xj−1 gelöscht, denn alle haben denselben Funktionswert f (xj ). Nur das Interval mit linker Grenze Xj überlebt. Sei o.B.d.A. Man beachte, dass dabei das Intervall, das die gröÿte erfüllende Belegung y enthält (sofern überhaupt eine erfüllende Belegung existiert), nicht gelöscht wird: aus xi ≤ y < xj würde sich H(hF , xi i) 6= H(hF , xj i) ergeben. 197 / 298 Beweis des Satzes von Mahaney Am Ende dieser Prozedur sind die Werte H(hF , xi i) für alle linken Grenzen der verbleibenden Intervalle verschieden. p(n) positive Antworten (f (xk ) = 1) geben kann, sind hF , xp(n)+1 i, . . . , hF , xl i ∈ / SAT0 und die zugehörigen Intervalle mit den linken Grenzen xp(n)+1 , . . . , xl können gelöscht werden, ohne das Intervall mit der gröÿten erfüllenden Belegung y zu löschen. Da es nur maximal Am Ende bleiben also höchstens p(n) Intervalle übrig. Jetzt wird eine Intervallhalbierung bei den verbleibenden Intervallen durchgeführt. Einpunktintervalle werden nicht verändert. Dies erzeugt maximal 2 · p(n) Intervalle, die nach dem gleichen Verfahren wiederum auf maximal p(n) Intervalle verringert werden. Dann erfolgt eine erneute Intervallhalbierung usw. n Intervall I Nach höchstens Halbierungen gibt es nur noch Einpunktintervalle (da das 2 n Elemente enthält) und das Verfahren der Intervallhalbierungen wird abgebrochen. 198 / 298 Beweis des Satzes von Mahaney Die bis zu diesem Zeitpunkt verbrauchte Zeit ist polynomial beschränkt. Seien x1 , . . . , x` (` ≤ p(n)) die linken Grenzen der verbleibenden 1-Punkt-Intervalle. Jetzt kann in polynomialer Zeit für jedes berechnet werden. i, 1 ≤ i ≤ `, der Wert F (xi ) F (xi ) = 0 für alle i , so ist F unerfüllbar. Sonst ist F erfüllbar gröÿte xi mit F (xi ) = 1 ergibt die gröÿte erfüllende Belegung). Ist Damit können wir F ∈ SAT? (das in Polynomialzeit entscheiden. 199 / 298 Vollständige Probleme für Sei Lcfe = {hG i| G P ist eine kontextfreie Grammatik mit Dabei stellen die spitzen Klammern Grammatiken dar, cfe hi L(G ) = ∅}. eine geeignete Kodierung von steht für contextfreeempty. Theorem Lcfe ist P-vollständig. Beweis: (A) Lcfe ∈ P Teste für eine gegebene Grammatik G, ob das Startsymbol S produktiv ist. (B) Lcfe ist P-schwierig. Wir reduzieren HORNSAT auf Lcfe . 200 / 298 Reduktion Sei ϕ = C1 ∧ · · · ∧ Cm eine Formel in HORN−KNF in den booleschen B1 , . . . , Bn . Unter Hinzunahme einer neuen Variablen F (für Variablen falsch) gilt ohne Einschränkung: 1. C1 = { ¬F } 2. Alle Ci C2 , . . . , Cm enthalten genau ein positives Literal, denn wenn ursprünglich keins enthielt, dann kann man Ziel: Konstruktion einer Grammatik Gϕ F , B1 , . . . , Bn F hinzufügen. in den Nichterminalen und leerem Terminalalphabet ∅ mit ϕ ∈ HORNSAT ⇐⇒ Gϕ (F ) = ∅. Hierbei bezeichne Gϕ (A) die erzeugte Sprache, wenn ∗ Startsymbol ist. Man beachte ∅ A das = { ε }. 201 / 298 Konstruktion von Gϕ C2 , . . . , Cm in der Form A1 ∧ · · · ∧ Ak → B. C2 , . . . , Cm genau ein positives Literal enthalten. Für k = 0 erzeugen wir die Grammatikregel A → ε; für k ≥ 1 erzeugen wir die Grammatikregel B → A1 · · · Ak . Dies deniert Gϕ . Schreibe alle Klauseln Dies ist möglich, da ϕ enthält keine Fakten (also ist stets k ≥ 1), genau dann wenn Gϕ keine Terminalregeln enthält. Dies zeigt die Behauptung in diesem Fall. Sei daher ohne Einschränkung C2 = { A } Streiche alle Klauseln der Form und damit A1 ∧ · · · ∧ Ak → A A ein Fakt. (insbesondere wird C2 gestrichen) und ersetze jede verbliebene Klausel Ci = { B, ¬A1 , . . . , ¬Ak } durch Ci \ { ¬A }. 0 Wir erhalten eine neue Formel ϕ und eine Grammatik Gϕ0 mit ϕ ∈ HORNSAT ⇐⇒ ϕ0 ∈ HORNSAT ⇐⇒ Gϕ0 (F ) = ∅ ⇐⇒ Gϕ (F ) = ∅, denn ϕ0 ∈ HORNSAT ⇐⇒ Gϕ0 (F ) gilt nach Induktion über die Zahl der Fakten. Die anderen Äquivalenzen überprüft man direkt. 202 / 298 Straight-Line Programme (SLP) Ein SLP ist eine kontext-freie Grammatik partiellen Ordnung < G = (V , Σ, P, S) mit einer V so, dass alle Regeln auf der Variablenmenge A → B1 · · · Bk die folgende Bedingung erfüllen ∀1 ≤ i ≤ k : A < Bi . Ein SLP kann maximal ein Wort erzeugen, daher codiert ein SLP ein Wort und man kann Straight-Line Programme zur Datenkompression (analog zu Lempel-Ziv) einsetzen. Sei Gn das SLP mit den Regeln Terminalregel An → a. Ai → Ai+1 Ai+1 für 0 ≤ i < n und n und der Dann ist Gröÿe des SLP linear in L(Gn ) = a2 n . 203 / 298 Boolesche Schaltkreise Denition boolescher Schaltkreis Ein boolescher Schaltkreis C = ({1, . . . , o}, E , s) I I ∀(i, j) ∈ E : i < j , C ist ein gerichteter markierter Graph für ein d.h. G o∈N mit folgenden Bedingungen. ist azyklisch. s : {1, . . . , o} → {¬, ∧, ∨, true, false} s(i) ∈ {∧, ∨} ⇒ Eingangsgrad(i) =2 Eingangsgrad(i) =1 s(i) ∈ {true, false} ⇒ Eingangsgrad(i) =0 s(i) = ¬ s(i) wobei gilt: ist die Sorte von Knoten ⇒ i. Die Knoten werden als Gatter bezeichnet. Das Gatter o (output) ist das Ausgangsgatter von C. 204 / 298 Boolesche Schaltkreise Durch Auswerten (im intuitiven Sinne) des Schaltkreises Gatter i ein Wert v (i) ∈ {true, false} C kann jedem zugeordnet werden. Ein Schaltkreis ist monoton, falls er keine NOT-Gatter enthält. (Die Gatter mit Werten true oder false sind weiterhin erlaubt.) CV) ist das folgende Problem: Circuit Value ( INPUT: Ein boolescher Schaltkreis C FRAGE: Wertet sich das Ausgangsgatter von C zu true aus? MCV) ist das folgende Problem: Monotone Circuit Value ( INPUT: Ein monotoner boolescher Schaltkreis C FRAGE: Wertet sich das Ausgangsgatter von C zu true aus? 205 / 298 Circuit Value und MCV sind P-vollständig Satz CV und MCV sind P-vollständig. Beweis: (i) CV ∈ P: Klar, werte alle Gatter in der Reihnfolge 1, 2, . . . , o (ii) MCV ist P-schwierig: Betrachte den Beweis zur P-Vollständigkeit von Lcfe . Zu einer kontext-freien Grammatik logspace) ein SLP SG G aus. kann man sehr einfach (in konstruieren mit L(G ) = ∅ ⇐⇒ L(SG ) = ∅. Alle Produktionen von SG sind etwa vom vom Typ A → B1 B2 B3 | · · · |Z1 Z2 Z3 oder Wir konstruieren einen monotonen Schaltkreis A → v ∈ Σ∗ C (v ) wie folgt: 206 / 298 Circuit Value und MCV sind P-vollständig G (v ) wird ein Gatter in C (v ) zugeordnet. G (v ) ist das Ausgangsgatter von C (v ). A → B1 B2 B3 | · · · |Z1 Z2 Z3 führt zu folgender Jedem Nichtterminal von Das Startsymbol von Die Produktion Verdrahtung: B1 B2 B3 Z1 Z2 Z3 ········· A Eine Variable true-Gatter. A mit der Produktion A → v ∈ Σ∗ wird zu einem 207 / 298 Circuit Value und Eine Variable A, MCV sind P-vollständig für die keine Produktion mit existiert, wird zu einem false-Gatter. A auf der linken Seite Beachte: Der so erzeugte Schaltkreis C (G ) ist in der Tat azyklisch, + SG sind keine Ableitungen der Form A → uAv mit u, v ∈ V ∗ und A ∈ V möglich. Es gilt: L(SG ) 6= ∅ ⇐⇒ GatterS wertet sich in C (G ) zu true aus. denn in Einziges Problem: Der Eingangsgrad von UND- bzw. ODER-Gattern in G (v ) ist möglicherweise ≥ 3. Lösung: Ersetze Gatter mit Eingangsgrad d entsprechende Gatter mit Eingangsgrad 2. (für d ≥3 durch d −1 208 / 298 Circuit Value und MCV sind P-vollständig Bemerkung: In einem Schaltkreis kann ein Gatter Ausgangsgrad > 1 haben. Dies scheint für die P-Schwierigkeit wichtig zu sein: Die Menge der (variablen-freien) booleschen Ausdrücke kann durch folgende Grammatik deniert werden: A ::= true | false | (¬A) | (A ∧ A0 ) | (A ∨ A0 ) Booleschen Ausdrücke werden somit zu Bäumen, wenn man sie in Schaltkreise umwandelt. Buss 1987: Die Menge der booleschen Ausdrücke, die sich zu wahr NC1 ⊆ L. auswerten ist vollständig für die Komplexitätsklasse 209 / 298 Vollständige Probleme für Boolesche Formeln PSPACE: Quantizierte Quantizierte boolesche Formeln M Die Menge der quantizierten booleschen Formeln ist die kleinste Menge mit: I xi ∈ M I 0, 1 I für alle ∈M i ≥1 E , F ∈ M, i ≥ 1 =⇒ (¬E ), (E ∧ F ), (E ∨ F ), ∀xi E , ∃xi E ∈ M Alternativ: M lässt sich durch eine eindeutige kontextfreie Grammatik über dem Terminalalphabet Σ = {x, 0, 1, (, ), ¬, ∧, ∨, ∀, ∃} erzeugen. x 1{0, 1}∗ dargestellt. Dabei werden Variablen durch Wörter aus 210 / 298 Erfüllbarkeit von quantizierten booleschen Formeln Die Erfüllbarkeit von quantizierten booleschen Formeln wird durch die Existenz einer erfüllenden Belegung deniert. Eine Belegung ist eine Funktion b : {x1 , x2 , . . .} → {0, 1}. F auf die in F sei b[xj 7→ z] die Belegung mit Diese kann für eine gegebene Formel vorkommenden Variablen eingeschränkt werden. Für I I z ∈ {0, 1} und eine Belegung b[xj 7→ z](xi ) = b(xi ) b[xj 7→ z](xj ) = z . für b i 6= j und 211 / 298 Erfüllbarkeit von quantizierten booleschen Formeln Induktive Denition der Erfüllbarkeit einer Formel Belegung F bezüglich einer b: Die Belegung b erfüllt die Formel F genau dann, wenn eine der folgenden Bedingungen zutrit: F F F F F F F = = = = = = = Wird 1, xj (¬E ) (F1 ∧ F2 ) (F1 ∨ F2 ) ∃xj E ∀xj E F und und und und und und b(xj ) = 1, b erfüllt E nicht, b erfüllt F1 und F2 , b erfüllt F1 oder F2 , b[xj 7→ 0] oder b[xj 7→ 1] erfüllt E , b[xj 7→ 0] und b[xj 7→ 1] erfüllen E . von jeder Belegung erfüllt, so heiÿt F gültig. 212 / 298 Erfüllbarkeit von quantizierten booleschen Formeln Die Menge Frei(F ) der freien Variablen der Formel F ist wie folgt deniert: Frei(xi ) = {xi } I Frei(¬F ) = Frei(F ) I Frei((F ∧ G )) = Frei((F ∨ G )) = Frei(F ) ∪ Frei(G ) I Frei(∃xj F ) = Frei(∀xj F ) = Frei(F ) \ {xj } Eine Formel F mit Frei(F ) = ∅ nennt man geschlossen. I Beachte: Die Erfüllbarkeit einer geschlossenen Formel ist nicht von der Belegung abhängt, d. h. existiert eine erfüllende Belegung, so ist die Formel bereits gültig. Bezeichnung: QBF ist die Menge der geschlossenen quantizierten booleschen Formeln, die gültig sind. 213 / 298 QBF ist PSPACE-vollständig Theorem QBF ist PSPACE-vollständig. Beweis: (i) QBF ∈ PSPACE: Sei E eine geschlossene quantizierte boolesche Formel, in der die Variablen x1 , . . . , xn vorkommen. E nur aus 1, x1 , . . . , xn , ¬, ∧, ∃ O.b.d.A. ist aufgebaut. x1 , . . . , xn ϕ gültig Der folgende rekursive deterministische Algorithmus, in dem globale Variablen sind, überprüft in polynomiellen Platz, ob ist. 214 / 298 QBF ist PSPACE-vollständig FUNCTION check(E ) if E = 1 then return(1) elseif E = xi then return(xi ) elseif E = (¬F ) then return(not check(F )) elseif E = (E1 ∧ E2 ) then return(check(E1 ) and check(E2 )) elseif E = ∃xi F then xi := 1 if check(F ) = 1 then return(1) else xi := 0 return(check(F )) endif endif ENDFUNC 215 / 298 QBF ist PSPACE-vollständig (ii) QBF ist PSPACE-schwierig: Sei L ∈ PSPACE. Es gilt L = L(M) für eine p(n)-platzbeschränkte 1-Band-Turingmaschine, wobei p(n) ein geeignetes Polynom sei. Im weiteren werden Kongurationen binär kodiert. Ohne Einschränkung ist die Länge aller Binärkodierungen der von einer Startkonguration Start(w ), |w | = n, aus erreichbaren Kongurationen durch p(n) und deren Anzahl durch 2 p(n) begrenzt. Betrachte den Savitch-Ansatz: Reach(Start(w ), Accept, p(n)) ⇐⇒ w ∈ L Reach(α, β, i) = ∃γ Reach(α, γ, i − 1)∧ Reach(γ, β, i − 1) Reach(α, β, 0) = α `M1 β für i >0 ≤ 216 / 298 QBF ist PSPACE-vollständig Die direkte Einsetzung würde auf eine Formel exponentieller Länge führen. Lösung: Wir führen für die Kongurationen Kongurationsvariable X , Y , U, V , . . . ein und denieren für i > 0: Reach(X , Y , i) := ∃U ∀V ∀W ! (V = X ∧ W = U) ∨ (V = U ∧ W = Y ) =⇒ Reach(V , W , i − 1) 1. Schritt: Berechne für Eingabe w ∈ Σ∗ mit Anwendung obiger Rekursion, beginnend mit Reach(Start(w ), Accept, p(n)), eine Formel F |w | = n durch iteriertes in den X , Y , . . .. F kommen atomare Formeln der Gestalt Reach(X , Y , 0) und X = Y sowie die Konstanten vor Start(w ) und Accept vor. Kongurationsvariablen In 217 / 298 QBF ist PSPACE-vollständig 2. Schritt: Wir wandeln F in eine geschlossene quantizierte boolesche Formel um: I Ersetze jede Kongurationsvariable booleschen Variablen ∀x1 ∀x2 · · · ∀ xp(n) I Die Konstanten x1 , . . . , xp(n) . X durch einen Block von ∀X wird für ∃X . Aus und entsprechend p(n) somit der Block Start(w ) und Accept werden durch konkrete Bitstrings ersetzt. I X =Y ersetzen wir durch die Formel I Aus einer atomaren Formel Vp(n) i=1 (xi ⇔ yi ). Reach(X , Y , 0) wird wie im Beweis zum Satz von Cook eine boolesche Formel die einen 1-Schritt Übergang beschreibt. Wir erhalten so eine geschlossene quantizierte boolesche Formel, die genau dann erfüllbar ist, wenn w ∈ L. 218 / 298 Orakel-Turingmaschinen u. relative Schwierigkeit von P =? NP Weder in SS2011 noch WS16/17 behandelt Eine nichtdeterministische Orakel-Turingmaschine (kurz OTM) M? ist eine nichtdeterministische Turingmaschine mit folgenden Besonderheiten: I M? hat drei ausgezeichneten Zuständen qJ , qN , q? sowie I ein ausgezeichnetes Arbeitsband das Orakelband auf welches nur geschrieben wird. I Das Orakelband enthält zu jedem Zeitpunkt einen String über einem Alphabet I Bendet sich w (o) Σ. M ? im Zustand q? so kann M? unabhängig von den gelesenen Bandsymbolen nichtdeterministisch in den Zustand oder den Zustand Eine OTM auÿer q? M? qJ qN gehen. ist deterministisch, falls sich M? auf allen Zuständen deterministisch verhält. 219 / 298 Orakel-Turingmaschinen Zeit- und Platzschranken werden für OTMs wie für normale Turingmaschinen deniert. Wir betrachten dafür eine OTM als eine nichtdeterministische Turingmaschine. Sei A ⊆ Σ∗ eine beliebige (nicht notwendigerweise entscheidbare) Menge. Wir denieren Berechnungen einer Maschine v∈ MA auf eine Eingabe MA wie Σ∗ wie folgt: I Auf Zuständen in I Bendet sich M Q \ {q? } verhält sich im Zustand q? , so ist der Folgezustand (unabhängig von gelesenen Bandsymbolen) aktuell w (o) ∈ A (bzw. M ?. w (o) 6∈ A) qJ (bzw. qN ), falls gilt. 220 / 298 Relative Komplexitätsklassen Wir können jetzt Komplexitätslassen wie P A NPA Es gibt eine deterministische polynomial zeit = L⊆Σ ? A beschränkte OTM M mit L = L(M ) ∗ Es gibt eine nichtdeterministische polynomi= L⊆Σ ? A al zeitbeschränkte OTM M mit L = L(M ) ∗ denieren. Bemerkung: SAT ⊆ PSPACE Es ist oen, ob = 1. NP ∪ CoNP ⊆ P A ∗ A 2. A ∈ P für alle A ⊆ Σ , damit kann insbesondere P gilt. unentscheidbare Sprachen enthalten. 3. Ist A entscheidbar, so ist NPA eine Familie entscheidbarer Sprachen. 4. Trivialerweise gilt PA ⊆ NPA . 221 / 298 Eine Welt in der Theorem Es gibt ein Orakel Beweis: Betrachte eine P = NP A ⊆ Σ∗ in PSPACE mit PA = NPA . PSPACE-vollständige Sprache, etwa A = QBF. Dann gilt PSPACE ⊆ PQBF ⊆ NPQBF ⊆ Also gilt [ k≥1 NSPACE(nk ) = PSPACE PSPACE = PQBF = NPQBF 222 / 298 Eine Welt in der P 6= NP Theorem Es gibt ein entscheidbares Orakel Beweis: B ⊆ {0, 1}∗ mit PB 6= NPB . B ⊆ {0, 1}∗ wird so deniert, dass gilt: ∀n ≥ 0 : |B ∩ {w ∈ {0, 1}∗ | |w | = n}| ≤ 1 ∗ Für eine Sprache B ⊆ {0, 1} sei LB = 1n ∃w ∈ B mit |w | = n . Das Orakel Dann gilt oensichtlich: LB ∈ NPB . Noch zu zeigen: Es gibt eine entscheidbare Sprache B mit LB ∈ / PB . 223 / 298 Eine Welt in der Sei M1? , M2? , . . . P 6= NP eine eektive Aufzählung aller deterministischen Orakel-Turingmaschinen mit zusätzlicher polynomialer Zeitschranke. Wir nehmen an, dass jedes Mi? in der Aufzählung unendlich oft vorkommt. Dies kann z.B. dadurch erreicht werden, dass M ? (i, j) := Mi? aus einer ursprünglichen Aufzählung deniert wird und dann die Orakel-Turingmaschinen aus werden. {M ? (i, j)|(i, j) ∈ N × N} aufgezählt B durch S Mengen Bi ⊆ {w ∈ {0, 1}∗ | |w | ≤ i} mit B = i≥0 Bi und eine Ausnahmemenge X mit B ∩ X = ∅: Wir denieren rekursiv das Orakel 224 / 298 Eine Welt in der I Für i =0 setze P 6= NP B0 = X = ∅. I Für i > 0 simulieren wir die Rechnung von i dlog ie Schritte. Wir nehmen an, dass mit Bi−1 ∩ X = ∅ Mi? Mi? B0 ⊆ B1 ⊆ · · · ⊆ Bi−1 i auf Input 1 für und eine Menge X schon deniert sind. w mit |w | < i , so Bi−1 fortgesetzt. ? Befragt Mi im Laufe der Rechnung ein Wort w mit |w | ≥ i , so setze die Rechnung in dem nein-Zustand fort und füge w zu X I Befragt im Laufe der Rechnung ein Wort wird die Rechnung entsprechend dem Orakel I hinzu. Mi? innerhalb der Zeitschranke i dlog ie die Eingabe 1i , so setze Bi := Bi−1 . ? dlog ie i Verwirft Mi innerhalb der Zeitschranke i die Eingabe 1 , so i betrachte das lexikographisch erste Wort bi in {0, 1} \ X . Setze dann Bi−1 ∪ {bi } falls bi existiert Bi = Bi−1 sonst I Akzeptiert I 225 / 298 Eine Welt in der Es gilt mit I B= S i≥0 P 6= NP Bi : Bi ⊆ {w ∈ {0, 1}∗ | |w | ≤ i} I B I B ∩ X = ∅. ist entscheidbar, denn für |w | = i gilt: w ∈ B ⇔ w ∈ Bi . LB ∈ / PB . B Angenommen, es wäre LB = L(M ) für eine deterministische, ? polynomial zeitbeschränkte OTM M . ? Dann gibt es ein Polynom p(n) so, dass M p(n)-zeitbeschränkt ist. dlog ie und Wähle jetzt i genügend groÿ so, dass ∀n ≥ i : p(n) ≤ n M ? = Mi? gilt. ? Dies ist möglich, da M in der Aufzählung beliebig oft vorkommt. Wir zeigen jetzt 226 / 298 Eine Welt in der P 6= NP 1. Fall: 1i ∈ LB = L(MiB ). Dann gilt Bi−1 = Bi nach Denition von nach Konstruktion von LB . B und damit 1 Widerspruch! 2. Fall: 1i ∈/ LB = L(MiB ), d.h. MiB dlog ie . Zeitschranke i i Ist {0, 1} \ X 6= ∅, so existiert ein i 1 ∈ LB . Widerspruch! i ∈ / LB i verwirft 1 innerhalb der bi ∈ B mit |bi | = i und damit Es ist daher noch zu zeigen, dass für alle zuvor genügend groÿ {0, 1}i \ X 6= ∅ Denition von X bis zum i -ten gewählten Bei der i gilt: i X j=1 Schritt wurden maximal 2 j dlog je ≤ i · i dlog ie ≤ 2log i+dlog ie Orakelanfragen gestellt. 227 / 298 Eine Welt in der X P 6= NP enthält also maximal 2 log i+dlog ie2 Wörter der Länge Für alle zuvor genügend groÿ gewählten 2 weshalb {0, 1}i \ X log i+dlog ie2 i gilt nun ≤ i. < 2i , nicht leer ist. 228 / 298 Interaktive Beweissysteme Es gibt zwei Personen in unserem System: Alice und Bob. Alice ist allmächtig (mindestens jedoch eine PSPACE-Maschine). Bob ist bieder und ehrlich (d.h. eine deterministische, polynomial-zeitbeschränkte Turingmaschine) und besitzt einen Würfel. Bob stellt Fragen an Alice. Dieses Frage-Antwort Wechselspiel wird als Protokoll bezeichnet. Ein interaktives Beweissystem (IBS) ist ein solches Protokoll. 229 / 298 Alice und Bob Alice versucht für ein gilt. Eine Sprache x ∈L L x ∈ Σ∗ stets, Bob zu überzeugen, dass x ∈L lässt sich durch ein IBS entscheiden, wenn Bob für ein Alice mit hoher Wahrscheinlichkeit glaubt und sich für x∈ /L mit sehr geringer Wahrscheinlichkeit vom Gegenteil überzeugen lässt. Wir werden zunächst zwei Spezialfälle interaktiver Beweissysteme genauer betrachten. 230 / 298 Zero-Knowledge-Proof Ein Zero-Knowledge-Proof ist dadurch gekennzeichnet, dass Bob zwar davon überzeugt wird, dass Alice einen Beweis für das betrachtete Problem kennt, aber darüber hinaus keinerlei Information über den Beweis oder eine mögliche Lösung des Problems erhält. Unter der Annahme, dass das kryptologische RSA-Verfahren sicher ist, können wir den folgenden Satz beweisen. Theorem Für das 3-Färbbarkeitsproblem eines Graphen gibt es einen (interaktiven) Zero-Knowledge-Proof. 231 / 298 Beweisanfang Erinnerung: Das Problem der 3-Färbbarkeit eines Graphen (also {G = (V , E ) | G ist 3-färbbar}) ist NP-vollständig. Wir nehmen nun an, dass Alice die 3-Färbbarkeit von Graphen entscheiden kann. Ein Beweis für die 3-Färbbarkeit eines Graphen wäre die Angabe einer Lösung. Alice gibt im Folgenden Beweissystem diese Lösung jedoch nicht preis, sondern überzeugt Bob nur davon, dass sie sie kennt. Dies wird erreicht durch die RSA-Verschlüsselung, die Bob falls die Verschlüsselung sicher ist nicht knacken kann. 232 / 298 n3 Runden Eingabe G = (V , E ) mit n = |V |. Es werden n3 Runden durchgeführt. In jeder Runde arbeitet Alice wie folgt: I Sie wählt eine Zufallspermutation der Farben π : {0, 1, 2}→{ ˜ 0, 1, 2}. I Sie erzeugt ein RSA-Kryptosystem für jeden Knoten i . pi , qi < 2n und ni = pi qi und I Sie wählt also groÿe Primzahlen mit ggT(ei , ϕ(ni )) = 1, wobei ϕ(ni ) = (pi − 1)(qi − 1). I Sie berechnet ein 0 < s i < ni mit si e i ≡ 1 I Alice wählt desweiteren Zufallszahlen Es gilt jetzt für alle a ∈ Z: asi ei ≡ a mod xi mod mit 0 eine Zahl ei < 2n (pi − 1)(qi − 1). < 3xi + 2 < ni . ni . 233 / 298 Protokoll I Sie sendet Bob eine Liste (ni , ei , zi )i=1,...,n mit zi ≡ (3xi + π(c(i)))ei mod ni . I Bob wählt zufällig eine Kante pk , qk , sk (für k ∈ {i, j}) (i, j) ∈ E . Er fragt Alice nach pk , qk nk = pk qk und (pk − 1)(qk − 1) und entschlüsselt yk = zksk sowie nach den Beweisen, dass Primzahlen sind. Er überprüft sk ek ≡ 1 mod nk . mod I Er berechnet auÿerdem Werte ck = yk mod 3. ck ∈ {0, 1, 2} Hat sich Alice korrekt verhalten, so gilt ck = π(c(k)). ci 6= cj gilt. und Falls Bob n3 durch zksk = 3xk + π(c(k)) mod nk Bob ist mit dieser Runde einverstanden, falls Runden einverstanden ist, akzeptiert er G als 3-färbbar. 234 / 298 Alice muss betrügen, falls G nicht 3-färbbar ist Alice hat sich auf eine 3-Färbung des Graphen codiert und kann diese G nicht mehr ändern. Angenommen, mindestens eine Kante (i, j) ∈ E , ist nicht 3-färbbar. Dann gibt es an der Bob merken kann, dass Alice betrügt (zum Beispiel daran, dass eine der pk keine Primzahl ist). Ist das RSA-System jedoch in Ordnung, so merkt Bob, dass und damit π(c(i)) = π(c(j)), also c(i) = c(j) Runde mindestens mit der Wahrscheinlichkeit 1 |E | entdeckt. Insgesamt n 3 bleibt sie folglich mit einer Wahrscheinlichkeit kleiner unentdeckt. Wir zeigen 1 − 1 |E | n3 ≤ e −n ci = cj ist. Alice wird also pro 1 − 1 |E | (< 2−n ). 235 / 298 1− 1 n 3 |E | < 2−n : Es gilt: 1 − 1 n 3 |E | ≤ e −n ⇔ n2 (ln(|E |) − ln(|E | − 1)) ≥ 1 ⇐ |E | ln(|E |) − ln(|E | − 1) ≥ Es reicht daher zu zeigen: ln(|E |) 1 (wegen |E | < n2 ) − ln(|E | − 1) ≥ 1 |E | . Die Korrektheit dieser Ungleichung folgt aus der Ableitung ln 0 (x) = 1 x. Wie man dem Graphen der ln-Funktion unmittelbar ansieht, gilt für alle x >1 die Abschätzung ln 0 (x) < ln(x) − ln(x − 1). 236 / 298 Zero-Knowledge-Proofs für NP Da das 3-Färbbarkeitsproblem eines Graphen jedes NP-vollständig ist, hat NP-Problem einen Zero-Knowledge-Proof, der auf dem RSA-Verfahren basiert. 237 / 298 Zero-Knowledge-Proof für die (Nicht-)Isomorphie von Graphen NP. Es ist P liegt, noch, ob es NP-vollständig ist. Es Das Problem, ob zwei Graphen isomorph sind, liegt in weder bekannt, ob es in gibt allerdings Hinweise, die darauf hindeuten, dass dieses Problem nicht NP-schwierig ist. Es ist nicht bekannt, ob das Problem der Nichtisomorphie von Graphen in NP liegt. Intuitiv erscheint dieses Problem jedoch schwieriger als das der Isomorphie zweier Graphen. Bei der Isomorphie können wir einen Isomorphismus raten und überprüfen eine Vorgehensweise, die uns bei der Nichtisomorphie nicht möglich ist. Theorem Die Nichtisomorphie von Graphen hat einen perfekten Zero-Knowledge-Proof. 238 / 298 Beweisanfang Die Eingabe besteht aus 2 Graphen G0 = (V0 , E0 ) V0 = V1 = {1, . . . , n}. Alice behauptet: G0 ∼ 6 G1 . = und G1 = (V1 , E1 ) mit I Bob wählt bi ∈ {0, 1} m πi ∈ Perm({1, . . . , n}) (1 ≤ i ≤ m). Permutationen zufällig und m Bits Dann übermittelt Bob an Alice in einer einzigen Runde die Liste (πi (Gbi ))1≤i≤m . I Bob verlangt von Alice jetzt einen Bitstring 0 akzeptiert, falls ∀i ∈ {1, . . . , m} bi = bi . 0 b10 b20 . . . bm und 239 / 298 Beweisende Sind G0 und G1 nicht isomorph, so kann Alice diesen Bitstring berechnen. Sind sie jedoch isomorph, so kann Alice den Bitstring b1 b2 . . . bm nicht rekonstruieren. Denn Alice sieht nur Paare von G0 0 0 0 und einer Zufallspermutation von G0 . Der Bitstring b1 b2 . . . bm muss also zufällig gewählt werden Alice hat keine andere Wahl. Wenn Alice betrügen muss, dann ist die Wahrscheinlichkeit, nicht entdeckt −m . zu werden, damit gleich 2 240 / 298 Interaktive Beweissysteme Ein interaktives Beweissystem (IBS) ist ein Protokoll (A, B) zwischen Alice und Bob. Alice und Bob erhalten die gleiche Eingabe x (mit |x| = n), die von beiden nur gelesen werden darf. In dem Protokoll werden polynomial viele Runden durchgeführt (p(n)) und in jeder Runde werden polynomial lange Botschaften ausgetauscht (diese Botschaften seien a1 , b1 , a2 , b2 , . . . , ap(n) , bp(n) ). Jede Runde beginnt mit einer Botschaft von Alice, die von der Eingabe und dem Ergebnis vorheriger Runden abhängt (ai = A(x, a1 , b1 , . . . , bi−1 )). Bobs Antwort hängt ebenfalls von der Eingabe und den bisher ausgetauschten Botschaften sowie von Zufallszahlen ri ab, die in jeder Runde neu berechnet werden und Alice unbekannt sind (bi = B(x, a1 , b1 , a2 , . . . , ai−1 , bi−1 , ai , r1 , . . . , ri )). In bp(n) ∈ {ja, nein}). der letzten Runde sagt Bob ja oder nein (also 241 / 298 Interaktive Beweissysteme Bob ist dabei randomisierte polynomial zeitbeschränkte Turingmaschine. (Eine randomisierte Turingmaschine (RTM) ist eine deterministische Turingmaschine, die zusätzlich Zugri auf Zufallszahlen hat. Man kann sich eine RTM als eine deterministische Turingmaschine vorstellen, die ein weiteres (Nur-Lese-)Band besitzt, auf dem unendlich viele Zufallsbits (0 oder 1) stehen und das nur in einer Richtung gelesen werden darf.) IP ⊆ PSPACE darf Alice allmächtig sein, d.h. Alice ist eine beliebige Funktion. Für die Richtung PSPACE ⊆ IP ist Alice eine PSPACE-Maschine. Für die Richtung 242 / 298 Interaktive Beweissysteme (A, B) entscheidet eine Sprache L ⊆ Σ∗ , ∗ Eingaben x ∈ Σ folgendes gilt: Ein IBS I Ist x ∈ L, so akzeptiert Bob die Eingabe mit einer x∈ / L, so gibt es kein IBS Wahrscheinlichkeit I Ist falls für alle ≥ (1 − 2−n ). (A0 , B) in dem Bob die Eingabe mit −n akzeptiert. einer höheren Wahrscheinlichkeit als 2 IP ist die Menge der Sprachen, die durch ein IBS entschieden werden können: IP := {L ⊆ Σ∗ | ∃ IBS (A, B) : (A, B) entscheidet L} 243 / 298 Interaktive Beweissysteme Beispiele Beispiel: Die bereits betrachteten Protokolle zur 3-Färbbarkeit von Graphen und zur Graphen-Nichtisomorphie sind interaktive Beweissysteme. Bemerkung: Es gilt NP ⊆ IP, da Alice die erfolgreiche Rechnung einer NP-Maschine Bob zur Überprüfung vorlegen kann. Für ein spezielles Problem aus NP kann Alice auch eine Lösung angeben: Für SAT übermittelt Alice beispielsweise eine erfüllende Belegung an Bob. Bob wertet die Formel unter dieser Belegung aus und akzeptiert, wenn sich als Wert der Formel wahr ergibt. 244 / 298 IP ⊆ PSPACE Theorem IP ⊆ PSPACE. Für diese Richtung ist Alice allmächtig. Die Beschränkung von Alice ist, dass auch sie nur polynomial lange und polynomial viele Botschaften an Bob übermitteln darf. 245 / 298 IP ⊆ PSPACE (Fortsetzung) Sei B eine fest gewählte randomisierte polynomial zeitbeschränkte Turingmaschine (Bob). Wir konstruieren für eine Eingabe x ∈ Σ∗ eine optimale Alice in polynomialem Platz. Wir können annehmen, dass ein akzeptierendes Protokoll P zwischen Alice und Bob die folgende Form hat: P = (a1 , b1 , . . . ap , bp , r1 , . . . , rp ) . ai , bi , ri ∈ {0, 1} Bits, wobei die r1 , . . . , rp die von p = p(|x|) ein festes Polynom jedes vollständige Protokoll besteht aus p Runden). Hierbei bezeichnen Bob erzeugten Zufallsbits sind und darstellt (d.h. Formal sind Alice und Bob Funktionen (genauer, Funktionsfamilien): ai = A(x, a1 , b1 , . . . , ai−1 , bi−1 ) bi = B(x, a1 , b1 , . . . , ai−1 , bi−1 , ai , r1 , . . . , ri ) Für ein gegebenes Paar bp = 0 und x ∈ Σ∗ hängt die Akzeptanz (also bp = 1) nur vom Zufallsvektor (r1 , . . . , rp ) ab. Wir sagen (r1 , . . . , rp ) akzeptiert wird. Man beachte, dass es für eine bzw. auch, dass (A, B) feste Alice 2 p viele vollständige Protokolle gibt. 246 / 298 IP ⊆ PSPACE (Fortsetzung) Ab jetzt seien Funktion A, B und x fest gewählt. Eine optimale Alice ist diejenige die maximal viele Zufallsvektoren Statt unter allen möglichen Kandidatinnen für (r1 , . . . , rp ) akzeptiert. A zu suchen, werden wir die Menge der möglichen (Alice-) Funktionen stark einschränken und diese Einschränkung schrittweise aufgeben. Zu Anfang ist die Einschränkung so stark, dass es nur eine einzige Alice gibt. Am Ende ist die Einschränkung leer und damit wird das Optimum unter allen Funktionen gefunden. Die Einschränkung wird durch Protokollpräxe mit c ∈ {a, b}, i ≤ p Stellen wir uns vor, Alice (r1 , . . . , rp ) Pi = (a1 , b1 , . . . , ci ) gegeben, die Alice befolgen muss. A, Pi und ein Zufallsvektor r = (r1 , . . . , rp ) deniert ein solches Präx sind gegeben. Der Zufallsvektor P = (a10 , b10 , . . . , ap0 , bp0 , r ) zwischen Alice und Bob. Falls Pi ein Präx von P ist, sagen wir, dass r zu Pi passt. Zu jeder A und jedem Pi können wir also die Zahl der (r1 , . . . , rp ) bestimmen, die sowohl zu Pi passen, als auch akzeptiert werden. ein Protokoll 247 / 298 IP ⊆ PSPACE (Fortsetzung) Formal denieren wir einen Wert, der von Alice Pi = (a1 , b1 , . . . , ci ), c ∈ {a, b} f (A, Pi ) = |{r | r = (r1 , . . . , rp ) Eine Alice heiÿt optimal bzgl. A und abhängt: Pi , passt zu Pi und wird akzeptiert}| . falls sie das folgende Maximum erreicht: f (Pi ) = max {f (A, Pi ) | A ist eine Alice} . Man beachte, dass das Maximum für jedes x ∈ Σ∗ nur über eine endliche Menge (von Alice-Funktionen) gebildet wird. Das Maximum existiert und wird von einer Alice realisiert. Das Ziel ist die Berechnung von f (λ), wobei λ den leeren Präx bezeichnet. Denn, ist gilt per Denition: x ∈ L =⇒ f (λ) ≥ (1 − 2−n ) · 2p , L ∈ IP x∈ / L =⇒ f (λ) ≤ 2 −n so · 2p . 248 / 298 IP ⊆ PSPACE (Fortsetzung) Wir zeigen, dass sich f (λ) in polynomialem Platz berechnen lässt. Aber eigentlich werden wir mehr tun. Wir zeigen, dass man in jedem Schritt einer Interaktion zwischen Alice und Bob eine optimale Strategie für Alice in polynomialem Platz berechnen kann. Wir rechnen von hinten nach vorne. Zu Anfang sei das vollständige Protokoll (a1 , b1 , . . . , bp ) vorgeschrieben. Dann gibt es nur eine einzige Alice und wir können direkt zählen. f (a1 , b1 , . . . , bp ) = |{r | r = (r1 , . . . , rp ) passt und wird akzeptiert}|. In den meisten Fällen wird die Zahl Null oder sehr klein sein. 249 / 298 IP ⊆ PSPACE (Fortsetzung) Betrachte jetzt einen Präx, der auf ai endet: Pi = (a1 , b1 , . . . , ai−1 , bi−1 , ai ). Induktiv nehmen wir an, dass die Werte f (a1 , b1 , . . . , ai , 1) schon berechnet sind. Alice A0 und einer Alice A1 realisiert. f (a1 , b1 , . . . , ai , 0) und Diese Werte werden von einer (r1 , . . . , rp ) nicht gleichzeitig zu beiden Protokollpräxen (a1 , b1 , . . . , ai , 0) und (a1 , b1 , . . . , ai , 1) passen kann. Wählt Bob also in der i -ten Runde bi = 0, so verhält sich eine optimale Alice wie A0 , wählt Bob bi = 1, so verhält sich eine optimale Alice wie A1 . Zählen wir die akzeptierten Zufallsvektoren Der Punkt ist jetzt, dass ein Zufallsvektor zusammen, so werden keine doppelt gezählt. Daher gilt: f (a1 , b1 , . . . , ai ) = X f (a1 , b1 , . . . , ai , j) . j=0,1 250 / 298 IP ⊆ PSPACE (Fortsetzung) Betrachte jetzt einen Präx, der auf bi endet: Pi = (a1 , b1 , . . . , ai , bi ). ai+1 = 0 oder ai+1 = 1. Mit Induktion Werte f (a1 , b1 , . . . , ai , bi , 0) und Für Alice gibt es jetzt die Wahl kennen wir jedoch die beiden f (a1 , b1 , . . . , ai , bi , 1). Wir können die bessere Strategie wählen. Damit ergibt sich: f (a1 , b1 , . . . , ai , bi ) = max{f (a1 , b1 , . . . , ai , bi , j) | j = 0, 1} . Dieser Ansatz führt auf die Berechnung von f (λ). 251 / 298 IP ⊆ PSPACE (Fortsetzung und Ende) Es verbleibt, den Platzbedarf zu analysieren. Um zu testen, ob (r1 , . . . , rp ) zu (a1 , . . . , ap , bp ) passt, müssen wir p mal einen Test ? bi = B(x, a1 , b1 , . . . , ai , r1 , . . . , ri ) durchführen. Dies ist in Polynomialzeit möglich. Uns reicht die Aussage, dass dies in polynomialem Platz möglich ist. Wir erhöhen die Mächtigkeit von IP also nicht, wenn Bob selbst eine randomisierte PSPACE-Maschine ist. Sei s(2i) bzw. s(2i − 1) der Platzbedarf zur f (a1 , b1 , . . . , ci ). Dann gilt s(2p) = q(n) für ein n = |x|. Ferner gilt s(i) ∈ s(i + 1) + O(p) mit p = p(n). Wir erhalten für den Platzbedarf s(0) für f (λ): s(0) ∈ O(q(n) + p(n)2 ). Berechnung von Polynom q und 252 / 298 IP unter Reduktionen abgeschlossen Lemma IP ist unter polynomialer Zeitreduktion abgeschlossen: L ≤pm L0 und L0 ∈ IP ⇒ L ∈ IP Der Beweis zu diesem Lemma ist trivial, denn Bob kann die Reduktion L ≤pm L0 berechnen, da er eine polynomial zeitbeschränkte Turingmaschine ist. 253 / 298 PSPACE ⊆ IP Theorem (Shamir, 1990) IP = PSPACE. Die leichte Richtung (IP ⊆ PSPACE) haben wir gerade gezeigt. Wir müssen also nur noch PSPACE ⊆ IP zeigen. Hierfür geben wir einen Beweis nach A. Shen an. QBF PSPACE-vollständig ist, reicht es nach obigem Lemma zu zeigen, dass QBF ∈ IP. Da 254 / 298 PSPACE ⊆ IP (Fortsetzung) Es sei B eine boolesche Formel in den Variablen x1 , . . . , xk und Q̃ = {∀x1 ∃x2 . . . Qk xk B(x1 , . . . , xk )} die Menge aller quantizierten Formeln, so dass jede Variable gebunden auftritt. Wir setzen B = {0, 1} mit 0 = false , 1 = true . Mit QBF = {Φ ∈ Q̃ | Φ = 1} bezeichnen wir die wahren Formeln. Im Folgenden sei Φ ∈ Q̃ mit Eingabelänge |Φ| = d . Es ist d > 2k . p mit d 4 < p ≤ 2d 4 (Bertrand'sches Postulat). Wähle eine Primzahl In diesem Bereich ist der Primzahltest auch für Bob sehr leicht. Alle weiteren arithmetischen Rechnungen sind mod Grundkörper ist also Teilmenge von F F = Z/pZ. auf. p Wir fassen auch gemeint, der B = {0, 1} als 255 / 298 PSPACE ⊆ IP (Fortsetzung) Wir ordnen jeder booleschen Formel Polynom b(X ) ∈ F[X ] B(X ) mit X = (x1 , . . . , xk ) b(X ) = 1, falls B(X ) = true, b(X ) = xi , falls B(X ) = xi , b(X ) = b0 (X ) · b1 (X ), falls B(X ) = B0 (X ) ∧ B1 (X ), b(X ) = 1 − b0 (X ), b(X ) = b0 (X ) + b1 (X ) − b0 (X ) · b1 (X ), Wegen 1 Polynom ein induktiv wie folgt zu: falls B(X ) = ¬B0 (X ), falls B(X ) = B0 (X ) ∨ B1 (X ). − (1 − b0 )(1 − b1 ) = b0 + b1 − b0 · b1 kann Bob das b(X ) ∈ F[X ] selbst berechnen, da er auch bei der Oder-Verknüpfung eine Verdoppelung der Datengröÿe vermeiden kann. Φ ∈ Q̃ mit Φ = ∀x1 ∃x2 . . . Qk xk B(X ) ist b(X ) ein Polynom vom Grad ≤ d . Ab jetzt betrachten wir nur noch Polynome vom Grad ≤ d . Für Sollte Alice jemals ein Polynom mit einem höheren Grad vorlegen, so lehnt Bob sofort ab. Man beachte, dass b(u1 , . . . , uk ) ∈ {0, 1} für alle (u1 , . . . , uk ) ∈ Bk 256 / 298 PSPACE ⊆ IP (Fortsetzung) Wir denieren zunächst Operatoren wie folgt: Ax P(x, Y ) Ex P(x, Y ) Hierbei sei gilt: Ax und Ex für x = xi , 1 ≤ i ≤ k = P(0, Y ) · P(1, Y ), = P(0, Y ) + P(1, Y ) − P(0, Y ) · P(1, Y ). Y = (x1 , . . . , xi−1 , xi+1 , . . . , xk ), sowie P(x, Y ) ∈ F[X ]. Es Ax P(x, Y ), Ex P(x, Y ) ∈ F[Y ] ⊆ F[X ]. 257 / 298 PSPACE ⊆ IP (Fortsetzung) Oensichtlich gilt ferner: Φ = Ax1 Ex2 . . . qk xk b(x1 , . . . , xk ) ∈ {0, 1} ⊆ F ⊆ F[X ], qk = E für k gerade. Man beachte, k dass es Sinn ergibt Φ(X ) = Φ oder auch Φ(V ) = Φ für V ⊆ F zu schreiben. Das Problem ist, dass Φ = Ax1 P(x1 ) für das Polynom P(x1 ) = Ex2 . . . qk xk b(x1 , . . . , xk ) gilt, wobei P(x1 ) einen wobei qk = A für k ungerade und exponentiellen Grad haben kann. Man betrachte etwa: Ay Ax1 Ax2 . . . Ak xk (y ) = Ay (y 2 ). k Im Originalbeweis von Shamir wurde dieses Problem durch so genannte einfache Polynome gelöst. 258 / 298 PSPACE ⊆ IP (Fortsetzung) Shen benutzt die Beobachtung, dass AxP(x, Y ) = AxQ(x, Y ) und ExP(x, Y ) = ExQ(x, Y ) gelten, falls Q(x, Y ) ≡ P(x, Y ) 2 mod (x = x) ist. Vor einer Auswertung von AxP(x, Y ) bzw. ExP(x, Y ) können wir also den x -Grad auf 1 reduzieren. 259 / 298 PSPACE ⊆ IP (Fortsetzung) Dafür genügt es, das Polynom Dies ist leicht: P(x, Y ) = X P(x, Y ) mod (x − x 2 ) zu berechnen. ai (Y )x i i≥0 = a0 (Y ) + X ≡ a0 (Y ) + X ai (Y )x i i≥1 ai (Y )x mod i≥1 = a0 (Y ) − a0 (Y )x + X (x − x 2 ) ai (Y ) x i≥0 = P(0, Y ) − P(0, Y )x + P(1, Y )x = P(1, Y ) · x + (1 − x) · P(0, Y ). 260 / 298 PSPACE ⊆ IP (Fortsetzung) Für P(x, Y ) ∈ F[X ] durch: denieren wir formal einen Reduktionsoperator RxP(x, Y ) = P(1, Y ) · x + (1 − x) · P(0, Y ). x ∈ F[X ], der den Rest mod (x 2 − x) berechnet. Man beachte, dass RxP(u, Y ) = P(u, Y ) für u ∈ {0, 1} gilt. Hierbei wird bei RxP(u, Y ) der Operator Rx auf P angewendet und dann an (u, Y ) für ausgewertet. Daher gilt AxP(x, Y ) ExP(x, Y ) = = Ax RxP(x, Y ) und Ex RxP(x, Y ). 261 / 298 PSPACE ⊆ IP (Fortsetzung) Also gilt: Φ = Ax1 R x1 Ex2 R x2 R x1 . . . qk xk R xk . . . R x1 b(X ). Im Folgenden sei S(X ) = S(x1 , . . . , xk ) ∈ F[x1 , . . . , xk ] ⊆ F[X ] ein Polynom, welches als Sux in der oberen Zeile auftritt. Der Grad von S(X ) ist stets ≤ d, und ab qk xk 1 und 2 begrenzt. Für gegebene b(u1 , . . . , uk ) mit v ist der Grad für jedes u1 , . . . , uk , v ∈ F xi sogar durch kann Bob den Wert vergleichen. Damit gibt es ein (triviales) Protokoll mit der Eigenschaft: Pr( Bob akzeptiert | b(u1 , . . . , uk ) = v ) Pr( Bob akzeptiert | b(u1 , . . . , uk ) 6= v ) = 1, = 0. 262 / 298 PSPACE ⊆ IP (Fortsetzung) α zwischen Alice und (u1 , . . . , uk , v ) ∈ Fk+1 gilt: Induktiv nehmen wir die Existenz eines Protokolls Bob und eines εα ≥ 0 an, so dass für alle Pr( Bob akzeptiert | S(u1 , . . . , uk ) = v ) Pr( Bob akzeptiert | S(u1 , . . . , uk ) 6= v ) = 1, ≤ εα . x = xi ∈ {x1 , . . . , xk }, u = ui , Y = (x1 , . . . , xi−1 , xi+1 , . . . , xk ) U = (u1 , . . . , ui−1 , ui+1 , . . . , uk ). Es sei und S(u1 , . . . , uk ) nur von den freien Variablen in S(X ) Anfang ist Φ = Φ(u1 , . . . , uk ) unabhängig von den Man beachte, dass abhängt. Also zu ui . Insbesondere: Φ = Φ(0, . . . , 0) 263 / 298 PSPACE ⊆ IP (Fortsetzung) Wir unterscheiden drei Fälle: P(Y ) = P(Y ) = P(x, Y ) = A-Fall: E-Fall: R-Fall: Wir konstruieren ein Protokoll (u1 , . . . , uk , v ) ∈ Bk+1 β AxS(x, Y ), ExS(x, Y ), RxS(x, Y ). so, dass für alle gilt: Pr( Bob akzeptiert | P(u, U) = v ) Pr( Bob akzeptiert | P(u, U) 6= v ) d.h. ε β = εα + d p. Man beachte, dass P(Y ) auch als P(x, Y ) = 1, ≤ εα + d , p gelesen werden kann. 264 / 298 PSPACE ⊆ IP (Fortsetzung) Nach quadratisch vielen Runden erhalten wir also ein Protokoll mit: Pr( Bob akzeptiert | Φ = 1) Pr( Bob akzeptiert | Φ = 0) Durch = 1, < d2 d 1 < , p d da d 4 < p. d log d -fache Wiederholung können wir die Wahrscheinlichkeit unter 2 −d drücken, dass Bob eine falsche Formel akzeptiert. 265 / 298 PSPACE ⊆ IP (Fortsetzung) (u1 , . . . , uk , v ) ∈ Bk+1 gegeben. Wir sind in der Bob den Beweis von P(u, U) = v verlangt, wobei {u1 , . . . , uk } \ {u} = U . Sei (Zu Anfang verlangt Bob den Beweis Dann ist s(x) = S(x, U) ∈ F[x] Situation, dass Φ(0, { 0, . . . , 0 }) = 1.) ≤ d. (a0 , . . . , ad ) von d + 1 jeweils ein Polynom vom Grad Alice übergibt solche Polynome durch eine Liste Koezienten. A-Fall: s(x) = S(x, U) von Alice. s(0) · s(1) = v . Bob wählt r ∈ F zufällig und verlangt von Alice Beweis s(r ) = S(r , U) gemäÿ Protokoll α. 1) Bob fordert 2) Bob veriziert 3) den 266 / 298 PSPACE ⊆ IP (Fortsetzung) P(u, U) = AxS(x, U) 6= v . Falls Alice das korrekte Polynom s(x) = S(x, U) liefert, so gilt P(u, U) = s(0) · s(1). Also entdeckt Bob den Fehler im 2. Schritt. Wir sind in dem Fall Will Alice unerkannt betrügen, so muss sie ein Polynom t(x) 6= S(x, U) liefern! 267 / 298 PSPACE ⊆ IP (Fortsetzung) E-Fall Wie eben, nur in 2. veriziert Bob s(0) + s(1) − s(0) · s(1) P(u, U) = ExS(x, U) 6= v . s(x) = S(x, U) liefert, so gilt P(u, U) = s(0) + s(1) − s(0) · s(1) 6= v . Also entdeckt Bob den Wir sind in dem Fall Falls Alice das korrekte Polynom Fehler im 2. Schritt. Will Alice unerkannt betrügen, so muss sie erneut ein Polynom t(x) 6= S(x, U) liefern! 268 / 298 PSPACE ⊆ IP (Fortsetzung) R -Fall s(x) = S(x, U) von Alice. veriziert s(0) · (1 − u) + s(1) · u = v . wählt r ∈ F zufällig und verlangt von Alice 1) Bob fordert 2) Bob 3) Bob den Beweis s(r ) = S(r , U) = S(u1 , . . . , ui−1 , r , ui+1 , . . . , uk ) gemäÿ Protokoll α. P(u, U) = s(0) · (1 − u) + s(1) · u 6= v . Falls Alice das korrekte Polynom s(x) = S(x, U) liefert, so gilt P(u, U) = s(0) · (1 − u) + s(1) · u 6= v . Also entdeckt Bob den Wir sind in dem Fall Fehler auch jetzt im 2. Schritt. Will Alice unerkannt betrügen, so muss sie erneut ein Polynom t(x) 6= S(x, U) liefern! Falls P(u, U) = v ist, so kann Alice jeweils korrekt spielen und Bob überzeugen. 269 / 298 PSPACE ⊆ IP (Fortsetzung) P(u, U) 6= v . s(x) = S(x, U) liefert, so gilt P(u, U) = s(0) · s(1) im A-Fall, P(u, U) = s(0) + s(1) − s(0)s(1) im E-Fall und P(u, U) = s(0) · (1 − u) + s(1) · u im R -Fall. Also entdeckt Zusammenfassung: Zunächst betrachten wir den Fall Falls Alice das korrekte Polynom Bob den Fehler jeweils im 2. Schritt. t(x) vom Grad ≤ d t(x) 6= s(x) ∈ F[x]. Bob fordert den Beweis t(r ) = S(r , U) gemäÿ α. Falls t(r ) = s(r ), so kann Alice den Beweis erbringen. Andernfalls akzeptiert Bob mit einer Wahrscheinlichkeit ≤ εα nach Annahme, da dann Bob den Beweis von S(r , U) = t(r ) verlangt, aber t(r ) 6= s(r ) = S(r , U) vorliegt. Da t(x) − s(x) ein Polynom mit Grad ≤ d ist, gibt es höchstens d d Nullstellen für t(x) 6= s(x). Also gilt Pr( t(r ) = s(r ) ) ≤ p in diesem d Fall. Insgesamt ist die Betrugswahrscheinlichkeit ≤ εα + . p Will Alice betrügen, so muss sie ein Polynom liefern mit 270 / 298 PSPACE ⊆ IP (Beispiel) Wir wollen das Protokoll zwischen Alice und Bob an einem Beispiel nachvollziehen. Wir gehen von folgender Formel aus: F = ∀x∃y (x ∨ y ) ∧ (x ∨ y ) Der zugehörige arithmetische Ausdruck ist Φ = Ax R x Ey R y R xb(x, y ). Der Ausdruck ergibt ausgewertet 1, denn die Formel F ist wahr. 271 / 298 PSPACE ⊆ IP (Beispiel) Die folgenden Formeln sind im Prinzip selbst für Alice zu groÿ, um sie explizit hin zuschreiben: b(x, y ) = (1 − y + xy )(1 − x + xy ) R xb(x, y ) R y R xb(x, y ) Ey R y R xb(x, y ) R x Ey R y R xb(x, y ) Ax R x Ey R y R xb(x, y ) = 1 = 1 = 1 = 1 = 1 = 1 = 1 − x − y + 3xy − x 2 y − xy 2 + x 2 y 2 − x − y + 2xy − x − y + 2xy − x + x − (1 − x)x − x + x2 272 / 298 PSPACE ⊆ IP (Beispiel) Nun folgt die Beschreibung des eigentlichen Protokolls zwischen Alice und Bob. Um das Protokoll lesbarer zu machen, rechnen wir nicht modulo einer Primzahl, sondern genau. Runde 1: Ax R x Ey R y R xb(x, y ) = 1. s(x) = R x Ey R y R xb(x, y ). Alice liefert: t(x) = 1. Bob veriziert t(0) · t(1) = 1. a) Alice behauptet: b) Bob verlangt: c) d) e) Bob würfelt zufälligerweise 1, und erwartet den Beweis für die folgende Behauptung: Runde 2: t(1) = 1 = R x Ey R y R xb(1, y ). s(x) = Ey R y R xb(x, y ). 2 Alice liefert: t(x) = 1 − x + x . Bob veriziert t(0)(1 − 1) + t(1) · 1 = 1. a) Alice behauptet: b) Bob verlangt: c) d) e) Bob würfelt zufälligerweise 2, und erwartet den Beweis für die folgende Behauptung: 273 / 298 PSPACE ⊆ IP (Beispiel) Runde 3: t(2) = 3 = Ey R y R xb(2, y ). Bob verlangt: s(y ) = R y R xb(2, y ). Alice liefert: t(y ) = 1 − 2 − y + 4y = 3y − 1. a) Alice behauptet: b) c) d) Bob veriziert t(0) + t(1) − t(0)t(1) = −1 + 2 + 2 = 3. e) Bob würfelt zufälligerweise 3, und erwartet den Beweis für die folgende Behauptung: Runde 4: t(3) = 8 = R y R xb(2, 3). s(y ) = R xb(2, y ). t(y ) = 1 − 2 − y + 4y = 3y − 1. a) Alice behauptet: b) Bob verlangt: c) Alice liefert: d) Bob veriziert t(0)(1 − 3) + t(1)3 = 2 + 2 · 3 = 2 + 6 = 8. e) Bob würfelt zufälligerweise 4, und erwartet den Beweis für die folgende Behauptung: 274 / 298 PSPACE ⊆ IP (Beispiel) Runde 5: t(4) = 11 = R xb(2, 4). s(x) = b(x, 4). t(x) = (4x − 3)(3x + 1). a) Alice behauptet: b) Bob verlangt: c) Alice liefert: d) Bob veriziert t(0)(1 − 2) + t(1)2 = 3 + 4 · 2 = 3 + 8 = 11. e) Bob würfelt zufälligerweise 5, und erwartet den Beweis für die folgende Behauptung: Runde 6: t(5) = 17 · 16 = b(5, 4). b(5, 4) = 16 · 17 = t(5). a) Alice behauptet: b) Bob veriziert c) Bob ist zufrieden. Bob akzeptiert die Formel als wahr, nachdem weitere Durchgänge die Betrugswahrscheinlichkeit wie gefordert vermindert haben. 275 / 298 Monotone Schaltkreise f : Bn → B heiÿt monoton, falls f (x1 , . . . , xn ) ≤ f (y1 , . . . , yn ) gilt, sofern xi ≤ yi für alle 1 ≤ i ≤ n. Eine boolesche Funktion D.h. durch einen Wechsel von 0 nach 1 in der Eingabe kann die Ausgabe nicht auf 0 zurückfallen. Ein Schaltkreis heiÿt monoton, falls er keine NOT-Gatter besitzt. 276 / 298 Monotone Schaltkreise (Forts.) Ein monotoner Schaltkreis berechnet eine monotone Funktion. f : Bn → B (mit n n−1 − 2 höchstens 2 + 2 Umgekehrt gibt es zu jeder monotonen Funktion n ≥ 1) einen monotonen Schaltkreis mit Gattern, der f berechnet. Dies folgt aus Abbildung 1, die die induktive Denition der Schaltkreise am Beispiel n=3 darstellt. x1 & x2 f (1, x2 , x3 ) ≥1 x3 xout f (0, x2 , x3 ) Abbildung: Induktive Konstruktion monotoner Schaltkreise am Beispiel einer 3-stelligen Funktion 277 / 298 Monotone Schaltkreise (Forts.) Es ist extrem schwierig, für konkrete Funktionen untere Schranken für die Gröÿe zugehöriger Schaltkreise zu beweisen. Alle in P berechenbaren Funktionen haben Schaltkreise polynomieller Gröÿe. A. A. Razborov konnte eine explizite exponentielle untere Schranke für die Zahl der Gatter in einem monotonen Schaltkreis für das Problem CLIQUE nachweisen. Razborov wurde hierfür in Kyoto 1990 mit dem Rolf-Nevanlinna-Preis ausgezeichnet. Er wird alle vier Jahre für herausragende Beiträge im mathematischen Bereich der Informatik beim Internationalen Mathematikerkongress vergeben. Der 40. Geburtstag eines Preisträgers darf nicht vor dem ersten Januar des Jahres des Kongresses liegen, in dem der Preis vergeben wird. Die Auszeichnung wurde 1981 von der Geschäftsführung der International Mathematical Union (IMU) eingeführt und ist zu Ehren des nnischen Mathematikers Rolf Nevanlinna benannt, der ein Jahr zuvor verstarb. 278 / 298 Es gibt Sonnenblumen! Im Beweis des Satzes von Razborov kommen sog. Sonnenblumen vor. Denition p ≥ 2 ist eine Familie {X1 , . . . , Xp } von Z existiert mit: Xi ∩ Xj = Z für alle Xi \ Z bezeichnen wir als Blütenblätter, Eine Sonnenblume der Gröÿe p Mengen, für die eine Menge 1 ≤ i < j ≤ p . Die Mengen Z heiÿt der Kern. die Menge Lemma (P. Erd®s, R. Rado) Sei p ≥ 2 und F = {X1 , . . . , Xm } eine Familie von m Mengen mit m > (p − 1)` · `! und |Xi | ≤ ` für alle 1 ≤ i ≤ m. Dann enthält F eine Sonnenblume der Gröÿe p . 279 / 298 Sonnenblumen Beweis: Mit Induktion nach Für `=1 enthält Kardinalität Z = ∅. `>1 ≤ 1. F `. mindestens p paarweise disjunkte Mengen der Diese bilden eine Sonnenblume der Gröÿe p mit Kern D ⊆ F eine maximale Teilfamilie paarweise disjunkter |D| ≥ p , so wählen wir analog zu ` = 1 den Kern Z = ∅S. Sei also |D| ≤ p − 1. Dann gilt |D| ≤ (p − 1) · ` für D = {X | X ∈ D}. Für alle Mengen X ∈ F \ D gilt X ∩ D 6= ∅, da D maximal ist. Daher gibt es ein d ∈ D und mindestens (m − (p − 1))/((p − 1)`) > (p − 1)`−1 · (` − 1)! − 1/` Mengen X ∈ F \ D mit d ∈ X . Für eine weitere Menge D0 ∈ D gilt d ∈ D0 . `−1 · (` − 1)! Mengen X ∈ F mit Insgesamt gibt es also mehr als (p − 1) 0 d ∈ X . Betrachte F = {X \ {d} | d ∈ X ∈ F}. Dann enthält F 0 nach Induktionsvoraussetzung eine Sonnenblume {X1 \ {d}, . . . , Xp \ {d}} 0 der Gröÿe p mit Kern Z . Damit ist {X1 , . . . , Xp } eine Sonnenblume 0 der Gröÿe p in F mit Kern Z = Z ∪ {d}. Sei und Mengen. Falls 280 / 298 Der Satz von Razborov Wir betrachten ungerichtete Graphen Knotenmenge V = {1, . . . , n}. G = (V , E ) monotonen Schaltkreis, der die Graphen mit eine Clique der Gröÿe k mit der Im Folgenden bezeichnet n Cn,k Knoten akzeptiert, die haben. Die Eingabegatter heiÿen genau dann mit 1 belegt, wenn die Kante einen {i, j} in E gij und sind vorhanden ist: gij (G ) = 1 ⇔ {i, j} ∈ E Allgemein bezeichnen wir mit Eingabe g (G ) den Wert eines Gatters g bei G. Theorem (A. A. Razborov, 1985) Falls n genügend groÿ ist, besitzt jeder monotone Schaltkreis 1·√ 8n mindestens r = n 6 viele Gatter. Cn,k 281 / 298 Beweis des Satzes von Razborov Beweisidee: Wir versehen induktiv die Gatter g von Cn,k mit einer Bg , die dann in natürlicher Weise zu einer Bg : Γn → B führt, wobei Γn die Menge aller ungerichteten Graphen mit n Knoten ist. Danach messen wir die Abweichung von g (G ) und Bg (G ) auf einer Menge von Testgraphen G und zeigen, dass die Abweichung gering ist, wenn es in Cn,k wenig Gatter gibt. groben Beschriftung Abbildung Andererseits werden wir zeigen, dass die Abweichung am Ausgabegatter notwendigerweise groÿ ist. Also muss Cn,k viele Gatter besitzen. 282 / 298 Beweis des Satzes von Razborov Nun zum Beweis: Wir legen zunächst die Parameter fest. Wir denieren: √ k := b 4 nc, √ √ ` := b kc ≈ 8 n, p := `dlog2 ne, M := (p − 1)` · `!. Dies ist der Sonnenblumenwert! Der Logarithmus wird also zur Basis 2 gebildet und aufgerundet, die anderen Werte werden abgerundet. Die Rechnung ist jedoch genügend robust, so dass es nicht essentiell ist. 283 / 298 Beweis des Satzes von Razborov (Forts.) Im Folgenden beschriften wir die Gatter induktiv mit Familien {X1 , . . . , Xm }, wobei Xi ⊆ V gilt. Sei Bg die Beschriftung eines g . Dann denieren wir für einen Graphen G = (V , E ) den Wert Bg (G ) ∈ B durch: X Bg (G ) ⇐⇒ ∃X ∈ Bg : ⊆ E. Gatters 2 Dabei bedeutet hier und im Folgenden k -elementigen die Familie der X. Es gilt also eine Clique von gij werden mit Bgij G : gij (G ) = Bgij (G ). Die Eingabegatter für alle Graphen Bg X k Bg (G ) genau G enthält. = {{i, j}} beschriftet, also gilt Teilmengen einer Menge dann, wenn die Familie 284 / 298 Beweis des Satzes von Razborov (Forts.) Eine Beschriftung heiÿt zulässig, falls X ∈B |B| ≤ M und |X | ≤ ` für alle gilt. An den Eingangsgattern ist die Beschriftung zulässig. Folgendes Verfahren transformiert eine beliebige Familie B = {X1 , . . . , Xm } in eine zulässige Beschriftung. Im ersten Schritt 0 ersetzen wir B durch B = {X ∈ B | |X | ≤ `}. Falls jetzt noch 0 |B | > M gilt, so suchen wir eine Sonnenblume {X1 , . . . , Xp } ⊆ B0 mit Kern Z und ersetzen {X1 , . . . , Xp } durch Z . Diesen Vorgang bezeichnen wir als Pücken der Sonnenblume. Obiges Lemma garantiert, dass wir eine Sonnenblume nden. Das Pücken wiederholen wir so lange, bis wir höchstens M Mengen haben. Das Ergebnis der Prozedur ist eine zulässige Familie, die wir mit reduce(B) bezeichnen. 285 / 298 Beweis des Satzes von Razborov (Forts.) g ein Gatter mit Eingabegattern f und h. Induktiv seien f Bf = {Xi | i ∈ I } und h mit Bh = {Yj | j ∈ J} jeweils zulässig beschriftet. Die Beschriftung Bg von g denieren wir als reduce(Bf ∪ Bh ), falls g = f ∨ h Bg = reduce(Bf · Bh ), falls g = f ∧ h Sei jetzt Dabei gilt mit Bf · Bh = {Xi ∪ Yj | (i, j) ∈ I × J}. 286 / 298 Beweis des Satzes von Razborov (Forts.) out von Cn,k ergibt sich eine zulässige Bout und wir untersuchen jetzt die Abweichungen der Werte Bout (G ) von den Werten Cn,k (G ). Hierbei bezeichnet Cn,k (G ) = out(G ) den Wert des Schaltkreises Cn,k bei Eingabe G . Folgenden sei r die Anzahl der Gatter in Cn,k . Mit Widerspruch nehmen wir an, dass für unendliche viele n gilt: Am Ausgangsgatter Beschriftung 1 √ 8n r < n6· Wir wollen die Abweichung von 1 < n 5 ·` . Cn,k (G ) und Im (∗) Bout (G ) auf einer Menge von positiven und negativen Testgraphen bestimmen. Positive Testgraphen sind nur solche mit Cn,k (G ) = 1, negative nur solche mit Cn,k (G ) = 0. 287 / 298 Beweis des Satzes von Razborov (Forts.) Das Verhalten bei positiven Testgraphen Positive Testgraphen: Eine Teilmenge dem Graphen (V , P 2 ) P⊆V mit |P| = k wird mit gij gilt also Cn,k (P) = 1, da identiziert. Für ein Eingabegatter gij (P) = 1 genau dann, wenn {i, j} ⊆ P . Ferner gilt P eine Clique der Gröÿe k ist. Es gibt kn positive Testgraphen. 288 / 298 Beweis des Satzes von Razborov (Forts.) Sei P = (V , E ) ein positiver Testgraph. Wir sagen, dass für Fehler am Gatter g vorliegt, falls g (P) = 1, aber P Bg (P) = 0 ein gilt. Wir bestimmen die maximale Fehlerzahl am Ausgangsgatter. Ein Fehler am Ausgangsgatter entsteht in einem monotonen Schaltkreis an einem Gatter g mit Eingabegattern f und h an denen der Fehler noch nicht Bf = {Xi | i ∈ I } und Bh = {Yj | j ∈ J} zulässig beschriftet. Falls g = f ∨ h gilt, so entsteht Bg durch Pücken der in der Menge {Xi | i ∈ I } ∪ {Yj | j ∈ J}. Enthält die Menge {Xi | i ∈ I } ∪ {Yj | j ∈ J} ein Z mit Z ⊆ P , so gilt dies auch nach dem Pücken. Fehler können für P also an keinem vorliegt. Die Eingabegatter f und h seien mit OR-Gatter entstehen. 289 / 298 Beweis des Satzes von Razborov (Forts.) g = f ∧ h ein AND-Gatter und Bf (P) = Bh (P) = 1. D.h. es gibt ein Xi ∈ Bf mit Xi ⊆ P und ein Yj ∈ Bh mit Yj ⊆ P . Damit gilt Xi ∪ Yj ⊆ P . Da durch das Pücken einer Sonnenblume kein neuer Sei Fehler entstehen kann, kann dies nur im ersten Schritt von reduce geschehen, wenn Bg durch Bg0 = {Z ∈ Bg | |Z | ≤ `} ersetzt wird. 290 / 298 Beweis des Satzes von Razborov (Forts.) |Z | ≥ ` + 1 fest. Dann gilt für die Anzahl Z als Clique enthalten: V n − |Z | n−`−1 |{P ∈ | Z ⊆ P}| = ≤ . k k − |Z | k −`−1 Sei zunächst Z ⊆V mit der positiven Testgraphen, die Es können maximal M2 viele Mengen in Daher gilt für die Beschriftung Bout Bf · Bh gelöscht werden. am Ausgangsgatter: 1. Fall: Alle positiven Testgraphen werden falsch ausgewertet, d.h. es n k entstehen mindestens 2 r ·M · 2. Fall: oder Bout (P) = 1 viele Fehler: n−`−1 k −`−1 für mindestens ein ≥ n P∈ k V k . 291 / 298 Beweis des Satzes von Razborov (Forts.) 1. Fall: Alle positiven Testgraphen falsch ausgewertet Fall (1) impliziert r≥ 1 M2 n k n−`−1 k−`−1 · 1 n! · (k − ` − 1)! n(n − 1) · · · (n − `) = 2· k! · (n − ` − 1)! M k(k − 1) · · · (k − `) ` 1 1 n−` n−` ` = ≥ 2· · M k k (p − 1)2` · `!2 ` 1 n−` ≥ > n 5 ·` , 2 2 p ·` ·k = 1 M2 · wobei die letzte Ungleichung gilt, da n genügend groÿ ist. Dies ist ein 1 ·` Widerspruch zur Annahme, dass die Zahl der Gatter r kleiner als n 5 Bout (P) = 1 für mindestens ein P ∈ Vk ein Z ⊆ V mit |Z | ≤ ` und Z ∈ Bout 6= ∅. ist. Daher gilt ab jetzt Insbesondere gibt es . 292 / 298 Beweis des Satzes von Razborov (Forts.) Das Verhalten bei negativen Testgraphen c : V → {1, . . . , k − 1} der V deniert einen Graphen Gc = (V , E ) mit E = {{i, j} | c(i) 6= c(j)}. Der Graph Gc ist (k − 1)-färbbar, also gilt Cn,k (Gc ) = 0, und Gc = (V , E ) für den durch c denierten negativen n Testgraphen. (Es gibt (k − 1) Färbungen, aber sehr viel weniger negative Testgraphen Gc .) Wir zählen die Färbungen und fassen daher Färbungen c selbst als Eingaben für den Schaltkreis auf. Wir setzen B(c) = B(Gc ). An den Eingabegattern gilt gij (c) = 1 genau dann, wenn c(i) 6= c(j). Sei c : V → {1, . . . , k − 1} eine Färbung. Für Z ⊆ V sei R(Z ) das Ereignis, dass eine Farbe in Z wiederholt vorkommt (repeated color): Negative Testgraphen: Eine Färbung Knotenmenge R(Z ) Für eine Beschriftung B(c) ⇔ B ⇔ ∃i, j ∈ Z , i 6= j : c(i) = c(j) B = {Zi | i ∈ I } gilt damit: enthält eine Clique von Gc ⇔ ∃Z ∈ B : ¬R(Z ). 293 / 298 Beweis des Satzes von Razborov (Forts.) Behauptung: Sei Pr(B(c)) ≥ 1/2. B 6= ∅ Beweis: Für i, j ∈ V Z ∈B mit |Z | ≤ `. eine zulässige Beschriftung. Dann gilt mit i 6= j gilt Pr(c(i) Dann gilt Pr(R(Z )) ≤ |Z | 2 · 1 ≤ k −1 = c(j)) = 1/(k − 1). Sei `(` − 1) 1 ≤ . − 1) 2 2(k Dies beweist die Behauptung. k |Z | = Das Geburtstagsparadoxon zeigt, dass ab Pr(R(Z )) ≥ 1/2 gilt. Oben ist `= j√ k √ 2k ln k . 294 / 298 Beweis des Satzes von Razborov (Forts.) Da am Ausgabegatter Bout 6= ∅ und Cn,k (c) = 0 für alle Färbungen c gilt, müssen also sehr viele Abweichungen entstanden sein. Wir sagen jetzt, dass für Bg (c) = 1 c ein Fehler am Gatter g vorliegt, falls g (c) = 0, aber gilt. Wir bestimmen wiederum die maximale Fehlerzahl am g mit den f und h mit zulässigen Beschriftungen Bf = {Xi | i ∈ I } und Bh = {Yj | j ∈ J}. Bei einem AND-Gatter nehmen wir Bf (c) = 0 oder Bh (c) = 0 an, bei einem OR-Gatter nehmen wir Bf (c) = Bh (c) = 0 an. Es sei Bg (c) = 1 Dies bedeutet R(Z ) für alle Z ∈ Bf · Bh bzw. für alle Z ∈ Bf ∪ Bh . Ausgangsgatter. Wie oben betrachten wir ein Gatter Eingabegattern Das Löschen von Mengen kann diese Eigenschaft nicht verändern. Problematisch ist das Pücken. Insgesamt gibt es maximal r · M 2 /(p − 1) viele Pückungen. Wir zählen die Fehler, die durch eine {Z1 , . . . , Zp } eine Sonnenblume mit entsteht nur, wenn R(Z1 ), . . . , R(Zp ) und Pückung entstehen können. Sei Kern Z . Ein neuer ¬R(Z ) gelten. Fehler 295 / 298 Beweis des Satzes von Razborov (Forts.) {Z1 , . . . , Zp } eine Sonnenblume mit Kern Z und |Zi | ≤ ` für alle 1 ≤ i ≤ p . Dann gilt p Pr(R(Z1 ) ∧ . . . ∧ R(Zp ) ∧ ¬R(Z )) ≤ (1/2) . Beweis: Die p Ereignisse R(Zi ) ∧ ¬R(Z ) sind unabhängig, da {Z1 , . . . , Zp } eine Sonnenblume ist. Damit erhalten wir: Behauptung: Sei Pr(R(Z1 ) ∧ . . . ∧ R(Zp ) ∧ ¬R(Z )) = ≤ p Y i=1 p Y Pr(R(Zi ) ∧ ¬R(Z )) Pr(R(Zi )) i=1 ≤ (1/2)p . Denn wie eben berechnet gilt Pr(R(Zi )) beweist die Behauptung. ≤ 1/2, falls |Zi | ≤ `. Dies 296 / 298 Beweis des Satzes von Razborov (Forts.) Wir haben jetzt alles zusammen. Es muss gelten: Anzahl Pückungen × Pr(Beim Pücken entsteht neuer Fehler) ≥ Pr(Färbung wird am Ausgabegatter positiv bewertet) oder formal: denn es wird maximal r · M2 · p−1 p 1 2 r · M 2 /(p − 1) 1 ≥ , 2 gepückt und die Beschriftung am Ausgabegatter ist nicht leer. 297 / 298 Beweis des Satzes von Razborov (Forts.) Dies bedeutet r ≥ ≥ p p − 1 p−1 (p − 1) · 2p−1 2 · 2 = ≥ M2 ((p − 1)` · (`!))2 (p`)2` ` ` 1 n` n n ≥ ≥ n 3 ·` . = 2 2 2 2 ` p ·` (p`) k 2 log n Damit ist der Satz von Razborov bewiesen. 298 / 298