Komplexitätstheorie Volker Diekert Universität Stuttgart http://www.informatik.uni-stuttgart.de/fmi/ti/restricted/ss11/KT/ Sommersemester 2011 Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 1 / 258 Teil 1: Grundlagen Im Folgenden behandeln wir einige Grundlagen: ! Turingmaschinen (nicht-deterministisch, deterministisch) ! Konfigurationen ! Berechnungen,... ! Turingmaschinen können auf viele verschiedene äquivalente Weisen definiert werden. ! Wir könnten Turingmaschinen auch durch andere äquivalente Rechenmodelle ersetzen (z.B. Registermaschinen, Übung). Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 2 / 258 Turingmaschinen: Definition Definition Eine nichtdeterministische Turingmaschine mit k-Arbeitsbändern ist ein Tupel M = (Q, Σ, Γ, δ, q0 , F , b) ! Q : endliche Menge der Zustände ! q0 ∈ Q : Startzustand ! F ⊆ Q : 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) Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 3 / 258 Turingmaschinen: Definition Bei einer deterministischen k-Band Turingmaschine M ist δ eine partiell definierte Funktion δ : Q × (Σ ∪ {b}) × Γk → Q × Γk × {L, R, N}k+1 . Soll M eine Funktion berechnen, so hat M zusätzlich ein Ausgabealphabet Σ! und für δ gilt: δ : Q × (Σ ∪ {b}) × Γk → Q × Γk × {L, R, N}k+1 × (Σ! ∪ {λ}) (λ ist das leere Wort). Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 4 / 258 Turingmaschinen: Konfigurationen Definition Eine Konfiguration α der Turingmaschine M bei Eingabe w ∈ Σ∗ ist ein Tupel α = (q, u0 , v0 , u1 , v1 , . . . , uk , vk ), mit: ! ! ! q ∈ Q : aktueller Zustand der Turingmaschine u0 v0 = w b, v0 &= λ: Der Lesekopf für das Eingabeband liest gerade das erste Symbol von v0 . ∀i ∈ {1, . . . , k} : ui ∈ Γ∗ , vi ∈ Γ+ : Das i -te Arbeitsband hat den Inhalt ui vi bb · · · und der i -te Schreib/Lesekopf liest gerade das erste Symbol von vi . Die Länge |α| von α ist |α| = max { |ui vi | | 1 ≤ i ≤ k }. Für eine Einband-TM (ohne explizite Arbeitsbänder) schreiben wir Konfigurationen häufig als Wörter: uqv ∈ Γ∗ QΓ+ es gilt dann: |uqv | = Wortlänge von uv Die TM ist dann im Zustand q und liest das erste Zeichen von v . Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 5 / 258 Turingmaschinen: Startkonfiguration, akzeptierende Konfigurationen, . . . 1. Für die Eingabe w ∈ Σ∗ ist Start(w ) = (q0 , λ, w b, λ, b, . . . , λ, b) die zu w gehördende Startkonfiguration. Beachte: | Start(w )| = 1. 2. Für ein d ∈ δ und Konfigurationen α, β schreiben wir α )d β, falls die “Anweisung” d auf die Konfiguration α anwendbar ist, und die Konfiguration β ergibt. ! 3. Es sei )M = )d . d∈δ 4. Mit Accept bezeichnen wir die Menge der akzeptierenden Konfigurationen (aktueller Zustand ist aus F ⊆ Q). 5. Beachte: α )M β ⇒ |α| − |β| ∈ {−1, 0, 1} Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 6 / 258 Turingmaschinen: Berechnungen, Protokolle 1. Eine Rechnung von M bei Eingabe w ist eine Folge von Konfigurationen α0 , α1 , . . . , αm mit ! ! Start(w ) = α0 ∀1 ≤ i ≤ m : αi −1 )M αi Die Berechnung ist erfolgreich, falls αm ∈ Accept. 2. Das Protokoll dieser Rechnung ist die Folge d0 d1 . . . dm−1 ∈ δ∗ mit αi )di αi +1 Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 7 / 258 Turingmaschinen: akzeptierte Menge, Zeit- und Platzbedarf 1. Der Zeitbedarf (bzw. Speicherbedarf) der Berechnung α0 , α1 , . . . , αm ist m (bzw. max{|αi | | 0 ≤ i ≤ m}). 2. M hat bei Eingabe w den Zeitbedarf (bzw. Speicherbedarf) N ∈ N, falls jede Berechnung von M bei Eingabe w Zeitbedarf (bzw. Speicherbedarf) ≤ N hat. 3. L(M) = {w ∈ Σ∗ | ∃ erfolgreiche Berechnung von M bei Eingabe w } ist die von M akzeptierte Menge. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 8 / 258 Komplexitätsklassen Seien t : N → N und s : N → N monoton wachsende Funktionen. DTIME(t) = {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. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 9 / 258 Komplexitätsklassen Wir werden die Klassen DTIME(t) und NTIME(t) nur für Funktionen t(n) mit ∀n ∈ N : t(n) ≥ n betrachten. Dies erlaubt, die gesamte Eingabe zu lesen, da wir tatsächlich immer n + 1 Schritte erlauben. Wir werden die Klassen DSPACE(s) und NSPACE(s) nur für Funktionen s(n) ∈ Ω(log(n)). Dies erlaubt, eine Position i ∈ {1, . . . , n} im Eingabestring auf einem Arbeitsband abzuspeichern. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 10 / 258 Wichtige Komplexitätsklassen Gebräuchlichen Abkürzungen: L = DSPACE(log(n)) (1) NL = NSPACE(log(n)) ! P = DTIME(nk ) (2) (3) NP = (4) k≥1 ! NTIME(nk ) k≥1 PSPACE = ! k≥1 k DSPACE(n ) = ! NSPACE(nk ) (5) k≥1 Die Gleichung = in (5) ist als Satz von Savitch bekannt (kommt noch). Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 11 / 258 Beziehungen zwischen Komplexitätsklassen PSPACE = IP ? &= NSPACE(n) = CoNSPACE(n) ? (1. LBA Problem) DSPACE(n) &= " " k k DSPACE(log (n)) = NSPACE(log (n)) k≥1 k≥1 NP ? NP ∩ CoNP ? P ? NL ? L &= Es gibt noch viele weitere Komplexitätsklassen: Besuchen Sie doch den complexity zoo (http://qwiki.caltech.edu/wiki/Complexity Zoo) Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 12 / 258 Beispiele ! ! ! ! {an b n c n | n ≥ 1} ∈ L {w $w R | w ∈ Σ∗ }, {ww R | w ∈ Σ∗ } ∈ L {w $w | w ∈ Σ∗ }, {ww | w ∈ Σ∗ } ∈ L Die Menge PRIM = {p ∈ 1{0, 1}∗ | p ist Binärcodierung einer Primzahl } ist in P. Agrawal, Kayal und Saxena haben 2002 gezeigt, dass PRIM ∈ P gilt, vorher war nur PRIM ∈ NP ∩ CoNP bekannt. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 13 / 258 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 &= xj für 1 ≤ i < j ≤ n und (xi −1 , xi ) ∈ E für 1 ≤ i ≤ n. Die Kosten γ(W ) des Rundweges W #nsind durch die Summe der Kantengewichte gegeben: γ(W ) = i =1 γ(xi −1 , xi ). Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 14 / 258 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 | + e∈E log(γ(e))(+ log(k)). Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 15 / 258 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 = 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. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 16 / 258 Varianten algorithmischer Probleme 2. Schritt: Berechne kopt = min{γ(W ) | W ist ein Rundweg} mittels binärer Suche: FUNCTION kopt kmin := 1 (oder alternativ kmin := |V |) while kmin < kmax do min 0 kmitte := kmin + / 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 while-Schleife ist # beschränkt durch log2 (kmax ) = log2 ( e∈E γ(e)) ≤ e∈E log(γ(e)). Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 17 / 258 Varianten algorithmischer Probleme 3. Schritt: Berechne optimalen Rundweg wie folgt: FUNCTION optimaler Rundweg Sei e1 , e2 , . . . , em beliebige Auflistung 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 } else Gi := Gi −1 endif endfor return Gm ENDFUNC Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 18 / 258 Varianten algorithmischer Probleme Behauptung: Für alle i ∈ {0, . . . , m} gilt: 1. In Gi existiert ein Rundweg W mit γ(W ) = kopt . 2. Jeder Rundweg W in Gi mit γ(W ) = kopt benutzt alle Kanten aus {e1 , . . . , ei } ∩ E [Gi ] (E [Gi ] = Menge der Kanten von Gi ). Beweis: 1. Folgt sofort durch Induktion über i . 2. Angenommen es gibt einen Rundweg W in Gi mit γ(W ) = kopt sowie eine Kante ej (1 ≤ j ≤ i ) mit: ! e gehört zum Graphen G j 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 Konsequenz: Gm hat einen Rundweg W mit γ(W ) = kopt und jede Kante von Gm gehört zu W . ⇒ Gm = W Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 19 / 258 Varianten algorithmischer Probleme Beispiel 2: Vertex Cover (VC) $V % Sei G = (V , E ) ein ungerichteter Graph (d.h. E ⊆ 2 ). Eine Teilmenge C ⊆ V ist eine Knotenüberdeckung von G falls für jede Kante {u, v } ∈ E gilt: {u, v } ∩ C &= ∅ (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 mit |C | ≤ k existiert, berechne ein solches C . (C) Optimierungsproblem: Eingabe: G = (V , E ). Ziel: Berechne eine möglichst kleine Knotenüberdeckung von G . Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 20 / 258 Varianten algorithmischer Probleme Wieder gilt: (A) in Polynomialzeit lösbar =⇒ (C) in Polynomialzeit lösbar. Zeigen Sie dies als Übung. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 21 / 258 Das Grapherreichbarkeitsproblem Das Grapherreichbarkeitsproblem (GAP — für graph accessibility problem) ist ein zentrales Entscheidungsproblem in der Komplexitätstheorie: INPUT: Ein gerichteter Graph G = (V , E ) und zwei Knoten s, t ∈ V . FRAGE: Existiert in G ein Pfad von s nach t? GAP gehört zur Klasse P: GAP kann in Zeit O(|V |) mittels Breitensuche gelöst werden. (Die einfachste Dijkstra-Variante) Verschärfung: GAP gehört zur Klasse NL (wir zeigen noch NL ⊆ P): FUNCTION Grapherreichbarkeit var v := s while v &= t do wähle einen Knoten w ∈ V mit (v , w ) ∈ E v := w endwhile return Es gibt einen Pfad von s nach t.“ ” ENDFUNC Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 22 / 258 Das Grapherreichbarkeitsproblem Dieser nichtdeterministische Algorithmus kann leicht auf einer nichtdeterministischen Turingmaschine implementiert werden. Warum benötigt obiger Algorithmus nur logarithmischen Platz? ! ! Zu jedem Zeitpunkt muss sich der Algorithmus nur einen Knoten v ∈ V merken. Wenn es n Knoten gibt, so können die Knoten mit den Zahlen 1, . . . , n identifiziert werden. Die Variable v benötigt somit log2 (n) viele Bits. Bemerkungen: ! ! Aus dem Satz von Savitch (kommt noch) wird folgen: GAP ∈ DSPACE(log2 (n)). Omer Reingold konnte 2004 zeigen: Das Grapherreichbarkeitsproblem für ungerichtete Graphen (UGAP) gehört zur Klasse L, siehe http://www.wisdom.weizmann.ac.il/∼reingold/publications/sl.ps Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 23 / 258 Teil 2: Beziehungen zwischen den Komplexitätsklassen Die Beweise für die Beziehungen in diesem Abschnitt finden sich in Standardlehrbüchern (z. B. Hopcroft, Ullman; Introduction to Automata Theory, Languages and Computation, Addison Wesley 1979). Wir werden Beweise hier"nur andeuten. " Setze DTIME(O(f )) = c∈N DTIME(c · f ) = g ∈O(f ) DTIME(g ) und analog für NTIME, DSPACE, NSPACE. Theorem Sei f : N → N. 1. Sei X ∈ {D, N}, dann gilt XSPACE(O(f )) = XSPACE1-Band (f ). 2. ∃ε > 0 ∀n : f (n) ≥ (1 + ε)n =⇒ DTIME(O(f )) = DTIME(f ). 3. NTIME(O(f )) = NTIME(f ). 4. DTIME(n) &= DTIME(O(n)). Der Punkt 1 kombiniert Bandreduktion mit Bandkompression. Die Punkte 2 und 3 bezeichnet man als Zeitkompression. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 24 / 258 Der Satz von Hennie und Stearns (1966) Der Satz von Hennie und Stearns ist ein Bandreduktionssatz für Zeitkomplexitätsklassen. Theorem Sei k ≥ 1 und gelte ∃ε > 0 ∀n : f (n) ≥ (1 + ε)n. Dann gilt: DTIMEk-Band (f ) ⊆ DTIME2-Band (f · log(f )). Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 25 / 258 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 ). Sei M = (Q, Σ, Γ, δ, q0 , F , b) eine nichtdeterministische f (n)-zeitbeschränkte Turingmaschine. Für Eingabe w ∈ Σ∗ der Länge n können wir uns alle Rechnungen von M als einen Berechnungsbaum T (M, w ) wie folgt vorstellen: ! Wurzel von T (M, w ) = Start(w ). ! Konfiguration β ist Kind von Konfiguration α Volker Diekert (Universität Stuttgart) Komplexitätstheorie ⇐⇒ α )M β. SS 2011 26 / 258 DTIME(f ) ⊆ NTIME(f ) ⊆ DSPACE(f ) T (M, w ) wird mit Tiefensuche auf eine akzeptierende Konfiguration hin durchsucht. Dabei merkt man sich nur die aktuelle Konfiguration und das Protokoll P ∈ δ∗ mit dem diese Konfiguration von der Wurzel Start(w ) erreicht wird. Beachte: ! Jede Konfiguration in T (M, w ) benötigt Platz f (n). ! Ein Protokoll für eine bei Start(w ) beginnende Berechnung hat Länge f (n) und kann somit in Platz O(f (n)) gespeichert werden. Gesamter Platzbedarf: O(f ) + O(f ) = O(f ). Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 27 / 258 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 ) ). Sei M eine f (n)-platzbeschränkte nichtdeterministische Turingmaschine und w ∈ Σ∗ eine Eingabe der Länge n. Es gibt eine Konstante c > 0, die nur von M abhängt so, dass die Anzahl der von Start(w ) erreichbaren Konfigurationen durch c f (n) beschränkt ist. Hier ist ∀n : f (n) ∈ Ω(log(n)) wichtig. Warum? Beachte, dass c f ∈ 2O(f ) gilt. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 28 / 258 DSPACE(f ) ⊆ NSPACE(f ) ⊆ DTIME(2O(f ) ) Berechne die Menge R der von Start(w ) aus erreichbaren Konfigurationen (mit einem Markierungs- oder Flutalgorithmus): FUNCTION Menge-der-erreichbaren-Konfigurationen var R := {Start(w )} while ∃ Konfigurationen α, β : α ∈ R ∧ β &∈ R ∧ α )M β do R := R ∪ {β} endwhile if Accept ∩ R &= ∅ then return M akzeptiert w ENDFUNC Zeitbedarf: ! R enthält maximal c f (n) Konfigurationen der Länge ≤ f (n). ! Der Test ∃ Konfigurationen α, β : α ∈ R ∧ β &∈ R ∧ α )M β kann somit in Zeit O(c f (n) · c f (n) · f (n)) = O(c 2f (n) · f (n)) implementiert werden. ! Gesamter Zeitbedarf: O(c 3f (n) · f (n)) ⊆ 2O(f ) Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 29 / 258 Folgerungen ! ! ! 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. DSPACE(n2 ) ⊆ 2) O(n DTIME(2 ) Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 30 / 258 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: ! Eine Funktion f : N → N mit f ∈ Ω(log(n)) heißt platzkonstruierbar, falls es eine deterministische Turingmaschine gibt, die bei Eingabe an genau f (n) Felder auf den Arbeitsbändern markiert, dann hält und bei der Berechnung diesen Platz nicht verlässt. ! Eine Funktion f : N → N mit f ∈ Ω(n) heißt zeitkonstruierbar, falls es eine deterministische Turingmaschine gibt, die bei Eingabe an (d.h. n ist unär kodiert) nach genau f (n) Schritten hält. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 31 / 258 Beweis des Satz von Savitch Beweis: Sei M eine s-platzbeschränkte nichtdeterministische Turingmaschine und w eine Eingabe für M. Sei Conf(M, w ) die Menge aller Konfigurationen α mit: ! Auf dem Eingabeband steht die Eingabe w . ! |α| ≤ s(|w |). O.B.d.A. enthalte Accept nur eine einzige Konfiguration αf . Für α, β ∈ Conf(M, w ) und i ≥ 0 definieren wir: Reach(α, β, i ) ⇐⇒ ∃k ≤ 2i : α )kM β Aus der Beschreibung von M können wir explizit eine Konstante c gewinnen, so dass für alle Eingaben w gilt: w ∈ L(M) ⇐⇒ Volker Diekert (Universität Stuttgart) Reach(Start(w ), αf , c · s(|w |)). Komplexitätstheorie SS 2011 32 / 258 Beweis des Satz von Savitch Unser Ziel ist, das Prädikat Reach(α, β, i ) für α, β ∈ Conf(M, w ) und 0 ≤ i ≤ c · s(|w |) in Platz O(s 2 ) auf einer deterministischen Maschine zu berechnen. Für i > 0 verwenden wir folgendes Rekursionschemata: Reach(α, β, i ) ⇐⇒ ∃γ ∈ Conf(M, w ) : Reach(α, γ, i − 1) ∧ Reach(γ, β, i − 1). Umsetzung durch einen deterministischen Algorithmus: Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 33 / 258 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 := Reach(γ, β, i − 1) endif endfor endif return b ENDFUNC Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 34 / 258 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: i = 0: Die Bedingung [(α = β) ∨ (α )M β)] kann offensichtlich in Platz O(s(|w |)) ü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 − 1) kann der Platz, der beim 1. Aufruf Reach(α, γ, i − 1) benötigt wurde, wiederverwendet werden. Zusätzlich wird noch Speicherplatz s(|w |) für die Konfiguration γ benötigt. Dies beweist die Behauptung. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 35 / 258 Beweis des Satz von Savitch Um w ∈ L(M) zu entscheiden, rufen wir Reach(Start(w ), αf , c · s(|w |)) auf. Beachte: Wir können s(|w |) berechnen, da s nach Annahme platzkonstruierbar ist. Gesamter Platzbedarf: O(c · s(|w |) · s(|w |)) = O(s(|w |)2 ). Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 36 / 258 Bemerkungen zum Satz von Savitch Der Satz von Savitch besagt, dass eine nichtdeterministische platzbeschränkte Turingmaschine unter quadratischem Mehraufwand deterministisch simuliert werden kann. Diese platzeffiziente 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. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 37 / 258 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 PSPACE = " k≥1 DSPACE(nk ) = " k) NSPACE(n k≥1 Folgt aus NSPACE(nk ) ⊆ DSPACE(n2k ) Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 38 / 258 Hierarchiesätze Hierarchiesätze Platzhierarchiesatz Seien s1 , s2 : N → N Funktionen, s1 ∈ / Ω(s2 ), s2 ∈ Ω(log(n)) und s2 sei platzkonstruierbar. Dann gilt DSPACE(s2 ) \ DSPACE(s1 ) &= ∅. Bemerkungen: DSPACE(s2 (n)) = DSPACE(O(s2 (n))), daher gilt ohne Einschränkung s2 (n) > 2 log2 n für alle n. ! ! s1 ∈ / Ω(s2 ) bedeutet ∀ε > 0 ∃ unendlich & 2 viele n mit s1 (n) < ε · s2 (n). n , falls n gerade Seien etwa s1 (n) = n und s2 (n) = , log n, sonst dann gilt: s2 ∈ / Ω(s1 ), s1 ∈ / Ω(s2 ). Aus dem Platzhierarchiesatz folgt etwa: L ! DSPACE(log2 (n)) ! DSPACE(n) ⊆ NSPACE(n) ! DSPACE(n2,1 ) ! PSPACE Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 39 / 258 Hierarchiesätze 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 Funktion x 6→ Mx so, dass zu jeder Turingmaschine M ein x ∈ {0, 1}∗ mit L(M) = L(Mx ) existiert. Jedes Wort x ∈ {0, 1}∗ soll als Kodierung einer Turingmaschine Mx interpretiert werden können (für nicht “wohlgeformtes” x kodiert x eine Turingmaschine, die nichts akzeptiert). Wichtige Konvention: Für alle x ∈ {0, 1}∗ und k ∈ N gelte Mx = M0k x , d.h., x und 0k x kodieren identische Maschinen: insbesondere gilt 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 ). Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 40 / 258 Hierarchiesätze Beweis des Platzhierarchiesatzes Wir starten mit einer s2 (n)-platzbeschränkten Maschine M ! . Sie arbeitet für eine Eingabe y der Länge n = |y | wie folgt: 1. Markiere Platz s2 (n) auf den Arbeitsbändern. (Beachte, dass s2 platzkonstruierbar ist). 2. Sobald im Folgenden der markierte Platz verlassen wird, stoppt M ! (in einem nicht-akzeptierenden Zustand). Damit ist M ! automatisch s2 -platzbeschränkt und unabhängig von der weiteren Konstruktion gilt L(M ! ) ∈ DSPACE(s2 ) 3. Schreibe y = 0k x, wobei x keine führende Null habe und simuliere die Maschine My = Mx auf der Eingabe y . (Hier arbeitet M ! wie eine universelle Turingmaschine). 4. M ! akzeptiert die Eingabe y , falls Mx die Eingabe y akzeptiert, und dabei der markierte Platz nicht verlassen wird. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 41 / 258 Hierarchiesätze Da (deterministische) Platzklassen unter Komplement abgeschlossen sind, finden wir effektiv eine Maschine M mit L(M) = {0, 1}∗ \ L(M ! ) ∈ DSPACE(s2 ). Behauptung: L(M) ∈ / DSPACE(s1 ) Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 42 / 258 Hierarchiesätze Beweis des Platzhierarchiesatzes Beweis durch Widerspruch: Angenommen, es gilt L(M) ∈ DSPACE(s1 ). Es gibt dann eine s1 -platzbeschränkte deterministische 1-Band Turingmaschine Mx mit L(Mx ) = L(M). Mit Bandkompression kann die Simulation von Mx durch eine universelle Turing-Maschine auf einer Eingabe der Länge n in Platz k · s1 (n) + log2 (n) durchführt werden, wobei k nur von Mx abhängt. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 43 / 258 Hierarchiesätze Beweis des Platzhierarchiesatzes Da s1 ∈ / Ω(s2 ) und s2 (n) > 2 log2 (n) existiert ein n ≥ |x| mit ks1 (n) + log2 (n) ≤ s2 (n). Betrachte 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 der im 1.Schritt von der Maschine M ! markierte Platz nicht verlassen. Also: y ∈ L(M) ⇐⇒ y∈ / L(M ! ) d.h., M ! akzeptiert y nicht. ⇐⇒ Mx akzeptiert y nicht ⇐⇒ ⇐⇒ Volker Diekert (Universität Stuttgart) My akzeptiert y = 0n−|x| x nicht y &∈ L(Mx ) = L(M) Widerspruch! Komplexitätstheorie SS 2011 44 / 258 Hierarchiesätze Zeithierarchiesatz Gemäß der Technik von Hennie und Stearns ist die Simulation von beliebig vielen Bändern zeiteffizient auf zwei Bändern möglich. Analog zum Platzhierarchiesatz ergibt sich der deterministische Zeithierarchiesatz. Deterministischer Zeithierarchiesatz (ohne Beweis) Seien t1 , t2 : N → N Funktionen, t1 · log(t1 ) ∈ / Ω(t2 ), t2 ∈ Ω(n log(n)) und t2 sei zeitkonstruierbar. Dann gilt DTIME(t2 ) \ DTIME(t1 ) &= ∅. Als Folgerung hieraus ergibt sich: DTIME(O(n)) ! DTIME(O(n2 )) ! P ! DTIME(O(2n )) ! DTIME(O((2 + ε)n )) Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 45 / 258 Hierarchiesätze 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 Sei r eine totale, berechenbare Funktion, r (n) ≥ n für alle n. Dann existiert effektiv eine totale, berechenbare Funktion s : N → N mit der Eigenschaft s(n) ≥ n + 1 für alle n und DTIME(s) = DTIME(r ◦ s). Bemerkungen: ! ! Die Komposition r ◦ s ist definiert durch r ◦ s(n) = r (s(n)). Dass die totale, berechenbare Funktion s : N → N effektiv existiert, bedeutet, dass man aus einer Turingmaschine, die r berechnet, eine Turingmaschine, die s berechnet, konstruieren kann. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 46 / 258 Hierarchiesätze Beweis des Satzes von Borodin Sei M1 , M2 , . . . eine Aufzählung aller deterministischen Turingmaschinen. Sei tk (n) ∈ N ∪ {∞} der tatsächliche maximale Zeitbedarf einer Rechnung von Mk auf einer Eingabe der Länge kleiner oder gleich n. 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) < ∞}. Dieser Wert wird jedoch i.A. zu groß (und auch nicht berechenbar) sein. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 47 / 258 Hierarchiesätze Beweis des Satzes von Borodin Einen passenden und berechenbaren Wert s(n) finden wir bei Eingabe n wie folgt: FUNCTION s(n) s := n + 1 repeat s := s + 1 until ∀k ≤ n : [tk (n) < s or tk (n) > r (s)] return s ENDFUNC Bemerkung: Die Funktion s ist berechenbar und wächst monoton. Im allgemeinen kann s jedoch nicht zeitkonstruierbar sein. Behauptung: DTIME(s) = DTIME(r ◦ s) Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 48 / 258 Hierarchiesätze Beweis des Satzes von Borodin Beweis der Behauptung: Da r (n) ≥ n für alle n, ist DTIME(s) ⊆ DTIME(r ◦ s) klar. Sei nun L ∈ DTIME(r ◦ s). Sei Mk eine (r ◦ s)-zeitbeschränkte deterministische Turingmaschine mit L = L(Mk ). Dann gilt: ∀n : tk (n) ≤ r (s(n)). Für alle n ≥ k gilt daher nach Berechnung von s: tk (n) < s(n). Damit gilt tk (n) ≤ s(n) für fast alle n, und schließlich L ∈ DTIME(s). Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 49 / 258 Der Satz von Immerman und Szelepcsényi: NSPACE(n) = CoNSPACE(n) Der Satz von Immerman und Szelepcsényi (1987) Die Klassen DTIME(f ) und DSPACE(f ) sind unter Komplement abgeschlossen. Ob dies auch für Klassen NSPACE(f ) gilt, war für lange Zeit offen. 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 ) Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 50 / 258 Der Satz von Immerman und Szelepcsényi: NSPACE(n) = CoNSPACE(n) Beweis des Satzes von Immerman und Szelepcsényi Beweismethode: Induktives Zählen Sei M eine nichtdeterministische f -platzbeschränkte Turingmaschine und w ∈ Σ∗ ein Eingabewort der Länge n. Ziel: Überprüfe nichtdeterministisch in Platz O(f (n)), ob w &∈ L(M) gilt. Sei 9 eine längenlexikographische Ordnung auf der Menge aller Konfigurationen. Sei α0 die kleinste Konfiguration bzgl. 9, |α0 | ∈ O(1). O.B.d.A. ist α0 die einzige akzeptierende Konfiguration. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 51 / 258 Der Satz von Immerman und Szelepcsényi: NSPACE(n) = CoNSPACE(n) 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 Konfigurationen) r (∗) = max{r (k) | k ≥ 0} (Anzahl der von Start(w ) erreichbaren Konfigurationen) 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) = max{|α| | α ∈ R(k)}. Wir berechnen r (∗) in Platz O(f (n)). Unser Algorithmus wird ohne Ergebnis abbrechen, falls w ∈ L(M). Falls w ∈ / L(M), wird der korrekte Wert r (∗) ausgegeben. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 52 / 258 Der Satz von Immerman und Szelepcsényi: NSPACE(n) = CoNSPACE(n) Beweis des Satzes von Immerman und Szelepcsényi Berechnung von r (∗) unter der Annahme, dass r (k + 1) aus r = r (k) mittels Funktion berechne-r(k + 1, r ) in Platz O(f (n)) berechnet werden kann: FUNCTION r (∗) r ! := k := 0; r := 1 (∗ speichert r (k) ∗) while r &= r ! do r ! := r ; r := berechne-r(k + 1, r ! ); k := k + 1; endwhile return r ENDFUNC Platzbedarf: Wegen r (∗) ∈ 2O(f (n)) wird zur Speicherung von k, r , und r ! Platz O(f (n)) benötigt. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 53 / 258 Der Satz von Immerman und Szelepcsényi: NSPACE(n) = CoNSPACE(n) 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 α! ∈ R(k) if α! 9 α then FEHLER“ ⇒ Programmabbruch ” else α := α! m := |α! | (∗ = max{m, |α! |} aufgr. der Ordnung ∗) endif endrepeat return m ENDFUNC Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 54 / 258 Der Satz von Immerman und Szelepcsényi: NSPACE(n) = CoNSPACE(n) Beweis des Satzes von Immerman und Szelepcsényi Beachte: Angenommen α0 ist in k Schritten von Start(w ) aus erreichbar, w gehört also zu L(M). Dann muss dieses Programmstück mit Fehler“ abbrechen. ” Es stehen nämlich in R(k) nicht genügend Konfigurationen 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 r (∗) (falls w ∈ L(M)). Platzbedarf: Wir müssen speichern: ! ! ! ! Konfigurationen α, α! mit |α|, |α! | ≤ f (n). m ≤ f (n) Binärzähler bis k (um beliebiges α! ∈ R(k) nichtdeterministisch zu generieren) Binärzähler bis r = r (k) (für repeat r times). Hierfür ist Platz O(f (n))ausreichend. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 55 / 258 Der Satz von Immerman und Szelepcsényi: NSPACE(n) = CoNSPACE(n) Beweis des Satzes von Immerman und Szelepcsényi 2. Schritt: Sei β eine beliebige Konfiguration. Die folgende Prozedur Reach(r , k + 1, β) testet nichtdeterministisch mit Hilfe des Werts r = r (k), ob β ∈ R(k + 1) gilt. FUNCTION Reach(r , k + 1, β) α := α0 repeat r times berechne ein beliebiges α! ∈ R(k) if α! = β oder α! )M β then return true (∗ d.h. β ∈ R(k + 1) ∗) elseif α! 9 α then FEHLER“ ⇒ Programmabbruch ” else α := α! endif endrepeat return false (∗ d.h. β ∈ / R(k + 1) ∗) ENDFUNC Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 56 / 258 Der Satz von Immerman und Szelepcsényi: NSPACE(n) = CoNSPACE(n) Beweis des Satzes von Immerman und Szelepcsényi Beachte: ! Falls dieser Algorithmus nicht mit FEHLER“ abbricht, wird eine ” korrekte Antwort ausgegeben. Ist der korrekte Wert r (k) bekannt, so hat der Algorithmus die Chance, nicht mit FEHLER“ abzubrechen. ” Platzbedarf: Wir müssen speichern: ! ! ! ! Konfigurationen α, α! mit |α|, |α! | ≤ f (n). Binärzähler bis k (um beliebiges α! ∈ R(k) nichtdeterministisch zu generieren) Binärzähler bis r = r (k) (für repeat r times). Hierfür ist Platz O(f (n))ausreichend. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 57 / 258 Der Satz von Immerman und Szelepcsényi: NSPACE(n) = CoNSPACE(n) 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 (∗ ist am Ende r (k + 1) ∗) m := berechne-m(k, r ) forall Konfigurationen β mit |β| ≤ m(k) + 1 do if Reach(r , k + 1, β) then r ! := r ! + 1 endif endforall return r ! ENDFUNC Wir betrachten nur Konfigurationen β mit |β| ≤ m(k) + 1, da m(k + 1) ≤ m(k) + 1. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 58 / 258 Der Satz von Immerman und Szelepcsényi: NSPACE(n) = CoNSPACE(n) 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 m(k), sobald sie die akzeptierende Konfiguration α0 in R(k) vorfindet, nicht mehr erfolgreich durchlaufen werden kann. Sowie also der Wert r (∗) berechnet wurde, kann w als zum Komplement von L(M) gehörig akzeptiert werden. Analyse des Platzbedarfs: Aus den vorherigen Platzbetrachtungen folgt, dass der gesamte Algorithmus mit Platz O(f (n)) auskommt. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 59 / 258 Die Translationstechnik Die Translationstechnik Der Translationssatzes erlaubt, aus einer Inklusion zwischen kleinen Komplexitätsklassen eine Inklusion zwischen großen Klassen abzuleiten. Idee: Ausstopfen (Padding) von Sprachen. Sei ! ! ! L ⊆ Σ∗ eine Sprache, f : N → N eine Funktion mit ∀n ≥ 0 : f (n) ≥ n, und $∈ / Σ ein neues Symbol. Definiere die Sprache Padf (L) = {w $f (|w |)−|w | | w ∈ L} ⊆ (Σ ∪ {$})∗ . Beachte: jedem Wort aus L der Länge n ein Wort aus w $∗ der Länge f (n) zugeordnet. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 60 / 258 Die Translationstechnik Der Translationssatz für Zeitklassen Translationssatz für Zeitklassen Seien g und f zeitkonstrierbare Funktionen mit ∀n ≥ 0 : f (n), g (n) ≥ n. Für L ⊆ Σ∗ gilt dann: 1. Padf (L) ∈ DTIME(O(g )) ⇐⇒ L ∈ DTIME(O(g ◦ f )), 2. Padf (L) ∈ NTIME(O(g )) ⇐⇒ L ∈ NTIME(O(g ◦ f )). Beweis: Der Beweis wird für DTIME geführt; der Beweis für NTIME verläuft analog. ⇒“: Sei Padf (L) ∈ DTIME(O(g )) und w ∈ Σ∗ eine Eingabe, |w | = n. ” Wir entscheiden w ∈ L in Zeit O(g (f (n))) wie folgt: 1. Berechne das Wort w $f (|w |)−|w | in der Zeit f (|w |). 2. Teste in Zeit O(g (f (|w |))), ob w $f (|w |)−|w | ∈ Padf (L) gilt. Nach Definition gilt w $f (|w |)−|w | ∈ Padf (L) ⇐⇒ w ∈ L. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 61 / 258 Die Translationstechnik Beweis des Translationssatzes ⇐“: Sei L ∈ DTIME(O(g ◦ f )) und sei x ∈ (Σ ∪ {$})∗ eine Eingabe ” der Länge m. Wir testen in Zeit O(g (m)), ob x ∈ Padf (L) gilt, wie folgt: 1. Teste in Zeit m ≤ g (m) ob x ∈ w $∗ für ein w ∈ Σ∗ gilt. Sei x = w $m−n mit w ∈ Σ∗ , |w | = n. 2. Teste, ob in Zeit m ≤ g (m) ob f (n) = m gilt. Hierfür berechnen wir f (n) unär, stoppen aber die Berechnung nach m Schritten. Sei x = w $f (n)−n . 3. Teste in Zeit O(g (f (n))) = O(g (m)), ob w ∈ L gilt. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 62 / 258 Die Translationstechnik Der Translationssatz für Platzklassen Translationssatz für Platzklassen (ohne Beweis) Sei g ∈ Ω(log(n)), f (n) ≥ n für alle n ≥ 0. Auf eine unäre Eingabe 1n sei der binär codierte Wert von f (n) in DSPACE(g ◦ f ) berechenbar. Für L ⊆ Σ∗ gilt dann: 1. L ∈ DSPACE(g ◦ f ) ⇐⇒ Padf (L) ∈ DSPACE(g ), 2. L ∈ NSPACE(g ◦ f ) ⇐⇒ Padf (L) ∈ NSPACE(g ). Konsequenz: Der Zusammenfall einer Hierarchie von Komplexitätsklassen ist am ehesten weit oben zu erwarten. Wollen wir Separationsresultate zeigen, so bestehen hierfür die besten Aussichten am unteren Ende einer Hierarchie. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 63 / 258 Die Translationstechnik Folgerungen aus dem Translationssatz für Platzklassen Korollar aus Translationssatz für Platzklassen DSPACE(n) &= NSPACE(n) =⇒ L &= NL. Beweis: Angenommen L = NL. Sei L ∈ NSPACE(n). Dann gilt Padexp (L) ∈ NSPACE(log(n)) = NL = L = DSPACE(log(n)). Aus dem Translationssatz für Platzklassen ergibt sich L ∈ DSPACE(exp ◦ log) = DSPACE(n). Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 64 / 258 Die Translationstechnik Folgerungen aus den Translationssätzen Mit Hilfe der Translationstechnik lässt sich in einigen Fällen die Verschiedenheit von Komplexitätsklassen nachweisen: Korollar P &= DSPACE(n). Beweis: Wählen Sprache L ∈ DSPACE(n2 ) \ DSPACE(n) (existiert nach Platzhierarchiesatz) und die Padding–Funktion f (n) = n2 . Dann gilt Padf (L) ∈ DSPACE(n). Wäre nun DSPACE(n) = P, so wäre Padf (L) ∈ DTIME(nk ) für ein k ≥ 1 und L ∈ DTIME(O(n2k )) ⊆ P = DSPACE(n). Dies ist ein Widerspruch. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 65 / 258 Die Translationstechnik Folgerungen aus den Translationssätzen Bemerkung: ! Insbesondere gilt, dass P nicht gleich der Sprachklasse der deterministisch kontextsensitiven Sprachen ist. ! Sowohl DSPACE(log(n)) = P, DSPACE(n) ⊂ P oder P ⊂ DSPACE(n) sind nach heutigem Wissen möglich. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 66 / 258 Die Translationstechnik Teil 3: Reduktionen und vollständige Probleme Seien L ⊆ Σ∗ und L! ⊆ Σ! ∗ zwei Entscheidungs-Probleme. Eine Reduktion von L auf L! ist eine totale berechenbare Abbildung f : Σ∗ → Σ! ∗ mit: x ∈ L ⇐⇒ f (x) ∈ L! . Angenommen, wir kennen bereits einen Algorithmus zur Lösung von L! . Dann können wir die Frage x ∈ L wie folgt entscheiden: 1. Berechne den Wert f (x) ∈ Σ! ∗ 2. Entscheide mittels des Algorithmus für L! ob f (x) ∈ L! gilt. x ! Mf f (x) ! ML! ! ja ! nein ML Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 67 / 258 Die Translationstechnik Polynomialzeitreduktionen Eine Reduktion f : Σ∗ → Σ! ∗ von L auf L! ist eine Polynomialzeitreduktion, falls sich f durch eine deterministische polynomialzeitbeschränkte Turingmaschine berechnen lässt. Proposition L! ∈ P und ∃ Polynomialzeitreduktion von L auf L! =⇒ L ∈ P. Beweis: Angenommen L! gehört zu DTIME(nk ) und f kann in Zeit n" berechnet werden. Für ein Eingabe x ∈ Σ∗ der Länge n kann f (x) in Zeit n" berechnet werden. Damit muss |f (x)| ≤ n" gelten, und es kann in Zeit (n" )k = nk·" entschieden werden, ob f (x) ∈ L! (d.h. x ∈ L) gilt. Gesamter Zeitbedarf: n" + nk·" Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 68 / 258 Die Translationstechnik Beispiel für Polynomialzeitreduktion Sei G = (A, B, E ) ein bipartiter Graph, d.h., A ∩ B = ∅ und E ⊆ A × B. Ein Matching M ist eine Teilmenge M ⊆ E , so dass keine zwei Kanten aus M einen gemeinsamen Endknoten haben. Wir zeigen, wie das Problem, ein Matching maximaler Größe zu berechnen, sehr effizient auf die Berechnung eines Maximalflusses in einem Netzwerk reduziert werden kann. Ein Netzwerk ist ein Tupel N = (V , E , s, t, c), wobei: ! (V , E ) ein gerichteter Graph ist (d.h. E ⊆ V × V ) ! s ∈ V ist die Quelle, t ∈ V ist die Senke, s &= t, ! c : E → N ordnet jeder Kante e eine Kapazität c(e) > 0 zu. Ein Fluß F ist eine Abbildung F : E → N mit: # # ! ∀v ∈ V \ {s, t} : (x,v )∈E F (x, v ) = (v ,y )∈E F (v , y ) (Flußerhaltung) ! ∀e ∈ E : F (e) ≤ c(e). Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 69 / 258 Die Translationstechnik 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 ! , s, t, c) wie folgt: ! ! ! V = A ∪ B ∪ {s, t} (wobei s und t neue Knoten sind) E ! = E ∪ {(s, a) | a ∈ A} ∪ {(b, t) | b ∈ B} c(x, y ) = 1 für alle (x, y ) ∈ E ! Sei F : E ! → N ein Fluß maximaler Größe in N. Dann ist M = {e ∈ E | F (e) = 1} ein Matching maximaler Größe in G . Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 70 / 258 Die Translationstechnik Beispiel für Polynomialzeitreduktion Sei G = (A, B, E ) ein bipartiter Graph: A Volker Diekert (Universität Stuttgart) B Komplexitätstheorie SS 2011 71 / 258 Die Translationstechnik Beispiel für Polynomialzeitreduktion Füge eine Quelle s und eine Senke t an: A B s Volker Diekert (Universität Stuttgart) t Komplexitätstheorie SS 2011 72 / 258 Die Translationstechnik Beispiel für Polynomialzeitreduktion Berechne einen maximalen Fluß: A B s Volker Diekert (Universität Stuttgart) t Komplexitätstheorie SS 2011 73 / 258 Die Translationstechnik Beispiel für Polynomialzeitreduktion Hieraus ergibt sich die Lösung des Matchingproblems: A Volker Diekert (Universität Stuttgart) B Komplexitätstheorie SS 2011 74 / 258 Reduktionen Reduktionen in logarithmischen Platz Viele praktisch wichtige Reduktionen lassen sich in logarithmischem Platz berechnen. ⇒ Logspace-Reduktionen Definition Logspace-Transducer Ein logarithmisch platzbeschränkter Transduktor (Logspace-Transducer) ist eine deterministische Turingmaschine M mit ! einem Eingabeband, von dem nur gelesen werden kann, ! einem logarithmisch in der Eingabelänge platzbeschränkten Arbeitsband, und ! einem separaten Ausgabeband, auf das nur geschrieben werden kann. In jedem Rechenschritt von M wird ! ! entweder ein neues Zeichen auf das Ausgabeband geschrieben und der Schreibkopf wandert ein Feld nach rechts, oder es wird kein neues Zeichen auf das Ausgabeband geschrieben und der Schreibkopf bewegt sich nicht. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 75 / 258 Reduktionen Reduktionen in logarithmischen Platz Definition 1. Eine Abbildung f : Σ∗ → Σ! ∗ heißt logspace berechenbar, falls gilt: ∃ Logspace-Transducer M ∀x ∈ Σ∗ : M hält bei Eingabe x an mit f (x) ∈ Σ! ∗ auf dem Ausgabeband 2. Ein Problem L ⊆ Σ∗ heißt logspace reduzierbar auf L! ⊆ Σ! ∗ , falls es eine logspace berechenbare Abbildung f : Σ∗ → Σ! ∗ gibt mit ∀x ∈ Σ∗ : x ∈ L ⇐⇒ f (x) ∈ L! . ! Kurzschreibweise: L ≤log m L. Der untere Index m steht hier für many-one, dies bedeutet, dass mehrere Worte aus Σ∗ auf das selbe Wort in Σ! ∗ abgebildet werden können. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 76 / 258 Reduktionen Reduktionen in logarithmischen Platz Bemerkungen: ! ! ! Logspace-Reduktionen lassen sich auch auf Klassen unterhalb von P anwenden und erlaubt eine feinere Einteilung als unter Verwendung von Polynomialzeitreduktionen. Jede logspace berechenbare Abbildung f : Σ∗ → Σ! ∗ ist in polynomialer Zeit berechenbar. Insbesondere: ∃k ≥ 0 ∀x ∈ Σ∗ : |f (x)| ≤ |x|k . Logspace-Reduktionen und Polynomialzeitreduktionen sind genau dann gleichmächtig, wenn L = P gilt. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 77 / 258 Reduktionen ≤log m ist transitiv Proposition: ≤log m ist transitiv ! ≤log L!! L ≤log L m m =⇒ !! L ≤log m L Beachte: Die analoge Aussage für Polynomialzeitreduktionen ist trivial. Bei der Hintereinanderausführung von Logspace-Reduktionen f : Σ∗ → Σ! ∗ und g : Σ! ∗ → Σ!! ∗ gibt es jedoch ein Problem: ! ! ! Für Eingabe w ∈ Σ∗ mit |w | = n gilt |f (w )| ≤ nk (k Konstante). Die Anwendung von g auf f (w ) erfordert damit Platz O(log(nk )) = O(log(n)). Aber: In logarithmischen Platz kann f (w ) nicht auf das Arbeitsband geschrieben werden. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 78 / 258 Reduktionen ≤log m ist transitiv Beweis der Proposition: Wir berechnen g (f (w )) in Platz O(log(|w |) wie folgt: ! ! Starte den Logspace-Transducer zur Berechnung von g (ohne f (w ) vorher zu berechnen). 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 i -te Bit von f (w ) ausgegeben ist. Dabei werden die Bits 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. Beachte: Binärzähler benötigt Platz O(log(|f (w )|) = O(log(|w |) Beispiel: Sei f (n) = nk . Dann ist f logspace berechenbar. Also gilt mit Hilfe der Reduktion w 6→ w $|w | ∗ Umgekehrt gilt Padf (L) ≤log m L für L &= Σ . Volker Diekert (Universität Stuttgart) Komplexitätstheorie k −|w | , dass L ≤log m Padf (L). SS 2011 79 / 258 Vollständige Probleme Vollständige Probleme Definition 1. Sei C eine Komplexitätsklasse. Ein Problem L ⊆ Σ∗ heißt schwierig für C oder kurz C-schwierig (bzgl. logspace-Reduktionen), falls gilt: ∀K ∈ C : K ≤log m L. 2. Sei C eine Komplexitätsklasse. Ein Problem L ⊆ Σ∗ heißt C-vollständig (bzgl. logspace-Reduktionen), falls L schwierig für C ist und zusätzlich L ∈ C gilt. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 80 / 258 Vollständige Probleme 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 L = L(M). Wir definieren eine Reduktion f wie folgt: Für w ∈ Σ∗ sei f (w ) = (G , s, t) mit: ! G = (V , E ) ist der gerichtete Graph mit: V = {α | α ist Konfig. von M bei Eingabe w , |α| ≤ log(|w |)} ! ! E = {(α, β) | α, β ∈ V , α )M β} s = Start(w ) t = die (o.B.d.A) eindeutige akzeptierende Konfiguration von M. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 81 / 258 Vollständige Probleme GAP ist NL-vollständig Offensichtlich gilt: w ∈ L(M) ⇐⇒ in G gibt es einen gerichteten Pfad von s nach t. f kann offensichtlich in logarithmischen Platz berechnet werden. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 82 / 258 Vollständige Probleme 2-SAT ist NL-vollständig 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 : Φ &∈ SAT } zu zeigen. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 83 / 258 Vollständige Probleme 2-SAT ist NL-vollständig NL-Schwierigkeit ! 2−NSAT ist NL-schwierig: Sei GAP das Grapherreichbarkeitsproblem. Wir zeigen GAP ≤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. Offensichtlich 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 s aus erreichbar sind, zu wahr und alle übrigen zu falsch gesetzt werden. Dies definiert eine die Formel erfüllende Belegung. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 84 / 258 Vollständige Probleme 2-SAT ist NL-vollständig 2−NSAT liegt in NL Gegeben sei eine 2-KNF-Formel Φ in den Variablen x1 , . . . , xn . Wir konstruieren einen Graphen mit Knotenmenge V = {x1 , . . . , xn , x1 , . . . , xn }. Jede Klausel α ∨ β lesen wir als Implikation und führen daher zwei Kanten α → β und β → α ein. α ∨ β ⇔ (α ⇒ β) ∧ (β ⇒ α) ∗ Behauptung: Es gibt genau dann einen Knoten x und Pfade x −→ x sowie ∗ x −→ x, wenn Φ unerfüllbar ist. Somit kann die Nichterfüllbarkeit von Φ mit Hilfe des NL-Algorithmus für Grapherreichbarkeit überprüft werden. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 85 / 258 Vollständige Probleme 2-SAT ist NL-vollständig Beweis der Behauptung ,,⇒” ist einfach: Die Klauseln, welche zu den Kanten gehören, die die Pfade bilden, ergeben die Implikationen x ⇒ ¬x und ¬x ⇒ x. Wir können also weder x noch ¬x auf wahr setzen. ,,⇐”: Nun nehmen wir an, dass für jede Variable x höchstens einer der ∗ ∗ Pfade x −→ x oder x −→ x existiert. Wir können annehmen, dass genau einer dieser Pfade existiert: ∗ ∗ Denn existiert weder x −→ x noch x −→ x, so füge die Kante x → x hinzu. (D.h., C = x ∨ x = x) Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 86 / 258 Vollständige Probleme 2-SAT ist NL-vollständig Beweis der Behauptung ∗ Angenommen, wir hätten durch Hinzunahme von x −→ x einen Kreis mit α und α erzeugt. Dann benutzt dieser Kreis die Kante x → x, also erhalten wir eines der ∗ folgender Bilder, wobei −→ 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. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 87 / 258 Vollständige Probleme 2-SAT ist NL-vollständig 2-SAT ist NL-vollständig ∗ ∗ Wir setzen jetzt x zu wahr, falls x −→ x und zu falsch, wenn x −→ x. Diese Belegung ist erfüllend: Wir betrachten eine beliebige Klausel C = α ∨ β und nehmen an, dass β = falsch gilt (sonst ist C ohnehin schon erfüllt). Dann gibt es nach der Konstruktion der Belegung einen ∗ Weg β −→ β. Außerdem gibt es wegen der Klausel C die Kanten α → β und β → α. Wir erhalten somit den Weg ∗ α → β −→ β → α. Damit gilt α = wahr. Also ist die Klausel erfüllt. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 88 / 258 Vollständige Probleme 2-SAT ist NL-vollständig Teil 4: NP-Vollständigkeit Theorem Falls es eine NP-vollständige Sprache gibt, so auch eine in NTIME(n): ∃L : L ist NP-vollständig ⇒ ∃L̃ ∈ NTIME(n) : L̃ ist NP-vollständig. Beweis: Sei L ein NP-vollständiges Problem. Es existiert eine Konstante k > 0 mit L ∈ NTIME(nk ). Aus dem Translationssatz für Zeitklassen folgt Padnk (L) ∈ NTIME(n). Sei nun L! ∈ NP beliebig. log L ≤ ⇒ L! ≤log m Padnk (L) m ! ≤log Pad (L). transitiv ist, folgt L Da ≤log m m nk ⇒ Padp(n) (L) ist NP-vollständig. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 89 / 258 Vollständige Probleme 2-SAT ist NL-vollständig Das generische NP-vollständige Problem Sei =w , M> eine Codierung eines Wortes w ∈ Σ∗ und einer nichtdeterministischen Turingmaschine M. LGen = {=w , M> $m |w ∈ Σ∗ , M nichtdeterministische Turingmaschine, m ∈ N, M hat bei Eingabe w eine akzeptierende Berechnung der Länge ≤ m} Theorem LGen ist NP-vollständig. Beweis: LGen ∈ NP: Für eine Eingabe =w , M> $m simuliere M bei Eingabe w nichtdeterministisch für maximal m Schritte. Dies ist ein nichtdeterministischer Polynomialzeitalgorithmus für LGen . Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 90 / 258 Vollständige Probleme 2-SAT ist NL-vollständig Das generische NP-vollständige Problem LGen ist NP-schwierig: Sei L ∈ NP beliebig und M eine nk -zeitbeschränkte nichtdeterministische Turingmaschine mit L = L(M) (k ist eine Konstante). Die Reduktion von L auf LGen berechnet nun in logarithmischem Platz auf eine Eingabe w ∈ Σ∗ die Ausgabe ' ( k f (w ) = w , M $n . Es gilt: w ∈ L(M) ⇐⇒ f (w ) ∈ LGen . Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 91 / 258 Vollständige Probleme 2-SAT ist NL-vollständig Der Satz von Cook und Levin Sei Σ0 = {¬, ∧, ∨, ⇒, ⇔, 0, 1, (, ), x}. Sei A ⊆ Σ∗0 die Menge aller aussagenlogischen Formeln über der Variablenmenge V = x1{0, 1}∗ . A ⊆ Σ∗0 ist deterministisch kontextfrei und gehört damit zu DTIME(n). Sei SAT = {F ∈ A | F ist erfüllbar}. (Eine aussagenlogische Formel F ist erfüllbar, wenn es eine Belegung B : Var(F ) → {true, false} der in F vorkommenden Variablen mit Wahrheitswerten gibt, unter der sich F zu true auswertet.) Satz von Cook (und Levin) SAT ist NP-vollständig. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 92 / 258 Vollständige Probleme 2-SAT ist NL-vollständig Beweis des Satzes von Cook (A) SAT ∈ NP: Für ein F ∈ Σ∗0 überprüfen wir “F ∈ SAT” wie folgt: 1. Teste in Zeit O(|F |) ob F ∈ A gilt. 2. Falls “JA”, rate eine Belegung B : Var(F ) → {true, false}. 3. Akzeptiere, falls F sich unter der Belegung B zu true auswertet. (B) SAT ist NP-schwierig. Sei L ∈ NP. Zu w ∈ Σ∗ konstruieren wir eine Formel f (w ) mit w ∈L ⇐⇒ f (w ) erfüllbar . Die Abbildung f wird logspace berechenbar sein. Sei M = (Q, Σ, Γ, δ, q0 , F , b) eine p(n)-zeitbeschränkte nichtdeterministische Turingmaschine mit L = L(M) (p(n) ist ein Polynom). Sei w = w1 w2 · · · wn ∈ Σ eine Eingabe der Länge n. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 93 / 258 Vollständige Probleme 2-SAT ist NL-vollständig Beweis des Satzes von Cook Wir stellen o.B.d.A. folgende Forderungen an M: 1. M hat nur ein Band, auf dem die Eingabe zu Beginn steht, und auf das geschrieben werden darf. 2. F = {qf }, d.h. es gibt nur einen Endzustand. 3. Bei Eingabe w ∈ Σ∗ macht M mindestens p(n) Schritte und nach p(n) Schritten sind wir genau dann im Endzustand, wenn w von M akzeptiert wird. 4. Nach p(n) Schritten ist der Schreib-Lesekopf wieder auf der Ausgangsposition. 5. (q, a, q ! , a! , D), (q, b, p ! , b ! , D ! ) ∈ δ =⇒ a = b, a! = b ! , D = D ! Nur hinsichtlich des Folgezustand q ! haben wir also eine nichtdeterministische Wahl. Idee: Definiere Zustandsmenge und Transitionsrelation wie folgt um: Die neue Transitionsrelation ist Q ! = {(q[a, a! , D] | q ∈ Q, a, a! ∈ Γ, D ∈ {→, ←, N}} δ! = {(q[a, a! , D], a, q ! [b, b ! , D ! ], a! , D) | (q, a, q ! , a! , D) ∈ δ, Volker Diekert (Universität Stuttgart) ! Komplexitätstheorie ! SS 2011 94 / 258 Vollständige Probleme 2-SAT ist NL-vollständig Beweis des Satzes von Cook Aus Punkt (1) folgt, dass jede von der Startkonfiguration erreichbare Konfiguration durch ein Wort aus Conf = {buqv b | q ∈ Q; u, v ∈ Γ∗ ; |uv | = p(n)} beschrieben werden. Die Startkonfiguration ist bq0 w bp(n)+1−n . Wegen Punkt (2) und (4) sind die akzeptierenden Konfigurationen diejenigen aus bqf Γ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. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 95 / 258 Vollständige Probleme 2-SAT ist NL-vollständig Beweis des Satzes von Cook Definiere die Menge der 4-Tupel ∆ = {(a, b, c, b) | a, b, c ∈ Γ} ∪ {(c, b, q, p), (b, q, a, b), (q, a, d, a! ) | (q, a, p, a! , ←) ∈ δ, c, b, d ∈ Γ} ∪ {(c, b, q, b), (b, q, a, p), (q, a, d, a! ) | (q, a, p, a! , N) ∈ δ, c, b, d ∈ Γ} ∪ {(c, b, q, b), (b, q, a, a! ), (q, a, d, p) | (q, a, p, a! , →) ∈ δ, c, b, d ∈ Γ} Wegen Punkt (5) gilt dann für alle α, α! ∈ b(Q ∪ Γ)∗ b mit |α| = |α! |: α, α! ∈ Conf und α )M α! ⇐⇒ α ∈ Conf und ∀i ∈ {0, . . . , p(n)} : (α[i − 1], α[i ], α[i + 1], α! [i ]) ∈ ∆. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 96 / 258 Vollständige Probleme 2-SAT ist NL-vollständig Beweis des Satzes von Cook Beispiel: Falls (q, a, p, a! , ←) ∈ δ ist folgende lokale Bandänderung für alle b ∈ Γ möglich: Position i−1 i i+1 α = ··· ··· b q a ··· ··· α! = ··· ··· p b a! ··· ··· Falls (q, a, p, a! , →) ∈ δ ist folgende lokale Bandänderung für alle b ∈ Γ möglich: Position α = ··· α! = ··· Volker Diekert (Universität Stuttgart) ··· ··· i−1 b i q i+1 a b a! p Komplexitätstheorie ··· ··· ··· ··· SS 2011 97 / 258 Vollständige Probleme 2-SAT ist NL-vollständig Beweis des Satzes von Cook Eine Rechnung von M können wir nun als Matrix beschreiben: α0 α1 = b = b α0,0 α1,0 α0,1 α1,1 .. . ... ... αp(n) = b αp(n),0 αp(n),1 . . . α0,p(n) α1,p(n) b b αp(n),p(n) b Für jedes Tripel (a, i , t) (a ∈ Q ∪ Γ, −1 ≤ i ≤ p(n) + 1, 0 ≤ t ≤ p(n)) sei x(a, i , t) aussagenlogische Variable. Interpretation: x(a, i , t) = true genau dann, wenn zum Zeitpunkt t das i -te Zeichen der aktuellen Konfiguration ein a ist. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 98 / 258 Vollständige Probleme 2-SAT ist NL-vollständig Beweis des Satzes von Cook An Position −1 (bzw. p(n) + 1) steht immer b: + ) * G (n) = x(b, −1, t) ∧ x(b, p(n) + 1, t) 0≤t≤p(n) Für jedes Paar (i , t) ist genau eine Variable x(a, i , t) wahr (zu jedem Zeitpunkt kann auf einem Bandfeld nur ein Zeichen stehen): X (n) = ) 0≤t≤p(n) −1≤i ≤p(n)+1 Volker Diekert (Universität Stuttgart) + . * ) x(a, i , t) ∧ ¬x(b, i , t) a∈Q∪Γ Komplexitätstheorie b(=a SS 2011 99 / 258 Vollständige Probleme 2-SAT ist NL-vollständig Beweis des Satzes von Cook Zum Zeitpunkt t = 0 ist die Konfiguration gleich bq0 w bp(n)+1−n S(w ) = x(q0 , 0, 0) ∧ n ) i =1 p(n) x(wi , i , 0) ∧ ) i =n+1 x(b, i , 0) Die Berechnung respektiert die lokale Relation ∆: D(n) = ) . 0≤i ≤p(n) (a,b,c,d)∈∆ 0≤t<p(n) Volker Diekert (Universität Stuttgart) 1 x(a, i − 1, t) ∧ x(b, i , t) ∧ x(c, i + 1, t) ∧ x(d, i , t + 1) Komplexitätstheorie SS 2011 2 100 / 258 Vollständige Probleme 2-SAT ist NL-vollständig Beweis des Satzes von Cook Sei schließlich R(w ) = G (n) ∧ X (n) ∧ S(w ) ∧ D(n). Es ergibt sich eine natürliche Bijektion zwischen der Menge der R(w ) erfüllenden Belegungen und der Menge derjenigen Rechnungen von M auf die Eingabe w , die aus p(n) Rechenschritten bestehen. Der Wert der Variablen x(qf , 0, p(n)) einer erfüllenden Belegung gibt an, ob die entsprechende Rechnung erfolgreich war. Für f (w ) = R(w ) ∧ x(qf , 0, p(n)) gilt somit: f (w ) erfüllbar ⇐⇒ w ∈ L. Zahl der Variablen von f (w ) ∈ O(p(n)2 ) Länge von f (w ) ∈ O(p(n)2 log p(n)) Der Faktor log p(n) ist notwendig, da zum Aufschreiben der Indizes log p(n) viele Bits benötigt werden. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 101 / 258 Vollständige Probleme 2-SAT ist NL-vollständig Weitere NP-vollständige Probleme: (1) SAT ∩ KNF Definition: Literale, KNF Ein Literal x̃ ist eine aussagenlogische Variable oder die Negation einer aussagenlogischen Variablen. Statt ¬x schreiben wir auch x. Außerdem sei x = x. Sei KNF (bzw. DNF) die Menge der aussagenlogischen Ausdrücke in konjunktiver Normalform (bzw. disjunktiver Normalform): DNF = {F | F ist Disjunktion von Konjunktionen von Literalen} KNF = {F | F ist Konjunktion von Disjunktionen von Literalen} Fakt: Jede aussagenlogische Formel F gibt es äquivalente Formeln DNF(F ) ∈ DNF und KNF(F ) ∈ KNF. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 102 / 258 Vollständige Probleme 2-SAT ist NL-vollständig Weitere NP-vollständige Probleme: (1) SAT ∩ KNF Beispiel: F = ) i =1,...,k 1 . j=1,...,m x̃i ,j 2 ≡ . f ∈{1,...,m}{1,...,k} 1 ) x̃i ,f (i ) i =1,...,k 2 = F! Beachte: ! |F | = m · k während |F ! | = mk · k, d.h. eine KNF-Formel mit k Disjunktionen der Länge m kann in eine äquivalente DNF-Formel bestehend aus mk Konjunktionen der Länge k umgewandelt werden. ! Für Formeln in DNF kann Erfüllbarkeit deterministisch in quadratischer Zeit überprüft werden. ! Wir werden gleich sehen, 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. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 103 / 258 Vollständige Probleme 2-SAT ist NL-vollständig SAT ∩ KNF ist NP-vollständig Theorem SAT ∩ KNF ist NP-vollständig. Beweis: (1) SAT ∩ KNF ∈ NP: trivial, denn (i) SAT ∈ NP und (ii) für eine Formel kann in Zeit O(n) getestet werden, ob sie in KNF ist. (2) SAT ∩ KNF ist NP-schwierig: 1. Beweis: Im Beweis der NP-Vollständigkeit von SAT haben wir eine Formel konstruiert, die bis auf innere Teilformeln konstanter Länge bereits in KNF war. Wir können also durch eine weitere logspace-berechenbare Abbildung die Formel in KNF bringen und sind fertig. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 104 / 258 Vollständige Probleme 2-SAT ist NL-vollständig SAT ∩ KNF ist NP-vollständig 2. Beweis: Wir zeigen SAT ≤log m SAT ∩ KNF. Hierzu müssen wir eine logspace-berechenbare Abbildung f : A → KNF angeben mit: F ∈ SAT ⇐⇒ f (F ) ∈ SAT ∩ KNF. Wir können eine Formel F ∈ A als einen Baum T (F ) auffassen, der sich rekursiv folgendermaßen aufbauen lässt: 1. Für eine Variable x sei T (x) = x. 2. Ist F die Negation einer Formel A, also F = ¬A, so habe T (F ) folgende Gestalt: ¬ T (A) Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 105 / 258 Vollständige Probleme 2-SAT ist NL-vollständig SAT ∩ KNF ist NP-vollständig 3. Besteht F aus der Verknüpfung zweier Teilformeln A, B, d.h. F = A ◦ B mit ◦ ∈ {⇐⇒, ⇒, ∧, ∨}, so habe T (F ) folgende Gestalt: ◦ T (A) T (B) Für die Formel 3$ % $ %4 F = (¬(¬¬x1 ∧ x2 )) ⇐⇒ (x2 ∨ x3 ) ∧ x1 ⇒ (¬x2 ∨ x3 ) erhalten wir beispielsweise den Baum T (F ) auf der nächsten Folie: Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 106 / 258 Vollständige Probleme 2-SAT ist NL-vollständig SAT ∩ KNF ist NP-vollständig ∧ ⇔ ¬ x1 ∨ ∧ x2 ¬ ⇒ x2 x3 ∨ ¬ x3 x2 ¬ x1 Ordnen nun jedem Knoten v von T (F ) eine neue Variable v (A) zu, wobei A die durch v repräsentierte Teilformel von F ist. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 107 / 258 Vollständige Probleme 2-SAT ist NL-vollständig SAT ∩ KNF ist NP-vollständig Definiere Hilfsfunktion f ! : A → SAT ∩ KNF rekursiv wie folgt: 1. Ist F = x, so ist f ! (F ) $ % := KNF v (x) ⇐⇒ x . 2. Ist F = A ◦ B mit ◦ ∈ {⇐⇒, ⇐, ∧, ∨}, so ist 3 4 $ % f ! (F ) := KNF v (F ) ⇐⇒ (v (A) ◦ v (B)) ∧ f ! (A) ∧ f ! (B) 3. Ist F = ¬A, so ist 3 4 $ % f ! (F ) := KNF v (F ) ⇐⇒ ¬v (A) ∧ f ! (A) Hier erhalten wir nach entsprechender Umformung: 3$ 4 % $ % f ! (F ) = v (F ) ∨ v (A) ∧ ¬v (F ) ∨ ¬v (A) ∧ f ! (A) Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 108 / 258 Vollständige Probleme 2-SAT ist NL-vollständig SAT ∩ KNF ist NP-vollständig Beachte: In der Definition von f ! (noch nicht die eigentliche Reduktion) wenden wir KNF nur auf Formeln konstanter Länge an. Lemma 1. f ! (F ) ist stets erfüllbar. 2. Sei σ eine erfüllende Belegung von f ! (F ) und σ ! die Restriktion von σ auf die Variablen von F . Dann gilt: σ(F ) = σ ! (F ) = σ(v (F )). 3. Sei V (F ) die Menge der in F vorkommenden Variablen und σ ! : V (F ) → {0, 1} eine beliebige Belegung. Dann existiert eine erfüllende Belegung σ : V (f ! (F )) → {0, 1} mit σ ! (x) = σ(x) für alle Variablen x ∈ V (F ). Nach (2) muss für die erfüllende Belegung in (3) σ(v (F )) = σ ! (F ) gelten. Der Beweis von (2) und (3) mittels struktureller Induktion sei dem Leser zur Übung überlassen. (1) folgt unmittelbar aus (3). Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 109 / 258 Vollständige Probleme 2-SAT ist NL-vollständig SAT ∩ KNF ist NP-vollständig Intuition Den Baum T (F ) kann man sich als Schaltnetz vorstellen, wobei die Blätter die Eingänge bilden. Die Wurzel v (F ) stellt den Ausgang dar und die inneren Knoten entsprechen Logikgattern. Geben wir nun eine bestimmte Belegung σ in dieses Netz ein, so wird diese ebenenweise von unten nach oben propagiert und wir erhalten am Ausgang σ(F ). Die eigentliche Reduktion f : A → KNF können wir jetzt definieren durch f (F ) := (f ! (F ) ∧ v (F )). Behauptung: f (F ) erfüllbar genau dann, wenn F erfüllbar. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 110 / 258 Vollständige Probleme 2-SAT ist NL-vollständig SAT ∩ KNF ist NP-vollständig Beweis der Behauptung: (A) Sei σ ! eine Belegung von F mit σ ! (F ) = 1. Nach (3) aus dem Lemma existiert eine Belegung σ für f ! (F ) mit σ(f ! (F )) = 1 und σ(x) = σ ! (x) für alle Variablen von F . Aus (2) folgt σ(v (F )) = σ ! (F ) = 1. Also: σ(f ! (F ) ∧ v (F )) = 1. (B) Sei σ eine Belegung von f ! (F ) ∧ v (F ) mit σ(f ! (F ) ∧ v (F )) = 1. Für die Restriktion σ ! auf die Variablen von F gilt nach (2): σ ! (F ) = σ(v (F )) = 1. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 111 / 258 Vollständige Probleme 2-SAT ist NL-vollständig 3-SAT ist NP-vollständig Definition: 3-SAT Sei 3-KNF die Menge der Formeln in konjunktiver Form mit genau drei Literalen je Klausel: 3-KNF := {F ∈ KNF | Jede Klausel in F enthält genau drei Literale} 3-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. Wir zeigen: SAT ∩ KNF ≤log m 3-SAT. Sei F eine KNF-Formel. Wir unterscheiden drei Fälle: Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 112 / 258 Vollständige Probleme 2-SAT ist NL-vollständig 3-SAT ist NP-vollständig 1. F enthält eine Klausel (x̃) mit nur einem Literal. Führe neue Variable y ein und ersetze (x̃) durch (x̃ ∨ y ) ∧ (x̃ ∨ y ). Dies hat auf die Erfüllbarkeit von F keine Auswirkung. 2. F enthält eine Klausel (x̃ ∨ ỹ ) mit zwei Literalen. Führe neue Variable z ein und ersetzte (x̃ ∨ ỹ ) durch (x̃ ∨ ỹ ∨ z) ∧ (x̃ ∨ ỹ ∨ z). 3. F enthält Klauseln mit mehr als drei Literalen. Sei also c = (x̃1 ∨ x̃2 ∨ · · · ∨ x̃k ) eine solche Klausel mit k ≥ 4 Literalen. Führe k − 3 neue Variablen v (x̃3 ), v (x̃4 ), . . . , v (x̃k−2 ), v (x̃k−1 ) ein und ersetzen c durch k−2 )$ % $ % ! v (x̃i ) ∨ x̃i ∨ v (x̃i +1 ) c = x̃1 ∨ x̃2 ∨ v (x̃3 ) ∧ $ i =3 % ∧ v (x̃k−1 ) ∨ x̃k−1 ∨ x̃k . Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 113 / 258 Vollständige Probleme 2-SAT ist NL-vollständig 3-SAT ist NP-vollständig Beachte: c ! kann auch geschrieben werden als c! )$ % $ % k−2 v (x̃i ) ⇒ x̃i ∨ v (x̃i +1 ) = x̃1 ∨ x̃2 ∨ v (x̃3 ) ∧ $ 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 c. Dann muss σ(x̃i ) = 1 für ein 1 ≤ i ≤ k gelten. Erweitere σ zu einer erfüllenden Belegung von c ! durch: 5 1 falls j ≤ i ! σ (v (x̃j )) = 0 falls j > i Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 114 / 258 Vollständige Probleme 2-SAT ist NL-vollständig 3-SAT ist NP-vollständig (B) Sei σ ! eine erfüllende Belegung für c ! . Angenommen σ ! (x̃i ) = 0 für alle 1 ≤ i ≤ k. =⇒ σ ! (v (x̃3 )) = 1 (da σ ! (x̃1 ∨ x̃2 ∨ v (x̃3 )) = 1) Mit Induktion folgt: σ ! (v (x̃i )) = 1 für alle 3 ≤ i ≤ k − 1. =⇒ σ ! (v (x̃k−1 ) ∨ x̃k−1 ∨ x̃k )) = 0 Volker Diekert (Universität Stuttgart) Widerspruch! Komplexitätstheorie SS 2011 115 / 258 Vollständige Probleme 2-SAT ist NL-vollständig Integer Programming Es sei LinProg(Z) := {=A, b> | 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 Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 116 / 258 Vollständige Probleme 2-SAT ist NL-vollständig Integer Programming (2) LinProg(Z) ist NP-schwierig. Wir zeigen 3-SAT ≤log m LinProg(Z). Sei F = c1 ∧ c2 ∧ · · · ∧ cq eine Formel in 3-KNF. Seien x1 , . . . , xn die Variablen in F . Wir bilden das folgende System S von Z-Ungleichungen über den Variablen xi , xi , 1 ≤ i ≤ n: 1. xi ≥ 0, 1 ≤ i ≤ n 2. xi ≥ 0, 1 ≤ i ≤ n 3. xi + xi ≥ 1, 1 ≤ i ≤ n 4. −xi − xi ≥ −1, 1 ≤ i ≤ n 5. x̃j1 + x̃j2 + x̃j3 ≥ 1, für jede Klausel cj = (x̃j1 ∨ x̃j2 ∨ x̃j3 ). Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 117 / 258 Vollständige Probleme 2-SAT ist NL-vollständig Integer Programming (3) und (4) =⇒ xi + xi = 1 (1) und (2) =⇒ xi = 1, xi = 0 oder xi = 0, xi = 1 (5) =⇒ in jeder Klausel cj hat mindestens ein Literal x̃ij den Wert 1 Also: S lösbar genau dann, wenn F erfüllbar. Größe von S: 4n + q Ungleichungen, 2n Variablen. Schreiben wir S in Matrixform Ax ≥ b, so hat A (bzw. b) (4n + q) × 2n (bzw. 4n + q) Einträge von Absolutbetrag ≤ 1. Bemerkungen: ! Obiger Beweis zeigt, dass LinProg(Z) bereits bei unärer Kodierung NP-schwierig ist. ! LinProg(Q) ∈ P. Dieser Nachweis ist sehr schwierig und beruht auf der Ellipsoidmethode von Khachiyan. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 118 / 258 Vertex Cover Vertex Cover ist NP-vollständig Eine Knotenüberdeckung (vertex cover) für einen ungerichteten Graphen G = (V , E ) ist eine Teilmenge C ⊆ V , so das für jede Kante {u, v } ∈ E gilt: {u, v } ∩ C &= ∅ 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 |C | ≤ k und überprüfe danach in Polynomialzeit, ob C eine Knotenüberdeckung ist. (1) VC ist NP-schwierig: Wir zeigen 3-SAT ≤log m VC. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 119 / 258 Vertex Cover Vertex Cover ist NP-schwierig Sei F = c1 ∧ · · · ∧ cq eine Formel in 3-KNF, wobei 6 cj = (6 xj1 ∨ x6 j2 ∨ x j3 ). Wir konstruieren einen Graphen G (F ) wie folgt: 6 Zunächst bilden wir zu jeder Klausel cj = (6 xj1 ∨ x6 j2 ∨ x j3 ) den folgenden Graphen G (cj ): x! j3 x! j1 Volker Diekert (Universität Stuttgart) x! j2 Komplexitätstheorie SS 2011 120 / 258 Vertex Cover Vertex Cover ist NP-schwierig "q Der Graph G (F ) entsteht aus der disjunkten Vereinigung j=1 G (cj ) aller dieser Teilgraphen G (cj ) durch Einfügen aller Kanten (x, x ) (x ist eine Variable aus F ). Beispiel: Für die Formel F = (x ∨ y ∨ z) ∧ (x ∨ s ∨ r ) ∧ (y ∨ s ∨ z) ∧ (x ∨ s ∨ r ) führt diese Konstruktion zu folgendem Graphen G (F ): z x r y Volker Diekert (Universität Stuttgart) x r z s Komplexitätstheorie y s x SS 2011 s 121 / 258 Vertex Cover Vertex Cover ist NP-schwierig Beachte: In G (F ) kann es kein Vertex Cover U mit weniger als 2q Knoten geben, da in jedem der q 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 hat. (A) Sei σ eine erfüllende Belegung für F . Dann wird in jeder Klausel cj mindestens ein Literal x7ji wahr. Sei U eine Knotenmenge, die für jeden Teilgraphen G (cj ) genau zwei Knoten enthält, so dass nicht-erfüllte Literale zu U gehören. Dann gilt |U| = 2q und U ist ein Vertex-Cover. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 122 / 258 Vertex Cover Vertex Cover ist NP-schwierig (B) Sei U ein Vertex-Cover mit |U| = 2q. Dann enthält U aus jedem Teilgraphen G (cj ) genau zwei Knoten. Definiere Belegung σ durch 1 falls eine Kopie von x nicht zu U gehört. σ(x) = 0 falls eine Kopie von x nicht zu U gehört. 0 falls alle Kopien von x und x zu U gehören. Beachte: Da U ein Vertex Cover ist, und alle Kanten (x, x ) in G (F ) vorhanden sind, wird keine Variable gleichzeitig auf 0 und 1 gesetzt. Offensichtlich gilt σ(F ) = 1. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 123 / 258 Vertex Cover Hamilton-Kreis und Hamilton-Pfad sind NP-vollständig Ein Hamilton-Pfad in einem gerichteten Graphen G = (V , E ) ist eine Folge von Knoten v1 , v2 , . . . , vn mit ! ! (vi , vi +1 ) ∈ E für alle 1 ≤ i ≤ n − 1 und für jeden Knoten v ∈ V existiert genau ein 1 ≤ i ≤ n mit v = vi . Ein Hamilton-Kreis ist ein Hamilton-Pfad v1 , v2 , . . . , vn mit (vn , v1 ) ∈ E . Es sei HP = {G | G ist ein Graph mit einem Hamilton-Pfad} HC = {G | G ist ein Graph mit einem Hamilton-Kreis} Theorem HP und HC sind NP-vollständig (sogar für ungerichtete Graphen). Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 124 / 258 Vertex Cover 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: Sei F = c1 ∧ c2 ∧ · · · ∧ cm eine Formel in 3-KNF mit den Klauseln c1 , . . . , cm in den Variablen x1 , . . . , xn . Wir konstruieren einen Graphen G (F ), der genau dann einen Hamilton-Kreis hat, falls F ∈ SAT gilt. Zunächst definieren wir zu jeder Klausel c folgenden Graphen G (c): b4 b3 a34 a33 a32 Volker Diekert (Universität Stuttgart) a31 b2 a24 a23 a22 Komplexitätstheorie a21 b1 a14 a13 a12 a11 SS 2011 125 / 258 Vertex Cover Hamilton-Kreis und Hamilton-Pfad sind NP-vollständig Beachte: ! In G (c) gibt es keinen Hamilton-Pfad von b1 nach b4 . ! Lässt man jedoch in G (c) mindestens einen der Wege bj − aj1 − aj2 − aj3 − aj4 − bj+1 , j ∈ {1, 2, 3} weg, so gibt es einen Hamilton-Pfad von b1 nach b4 . Für eine Variable x sei {ci1 , . . . , cik } die Menge der Klauseln mit x ∈ ci und {cj1 , . . . , cjl } die Menge der Klauseln mit x ∈ cj . O.B.d.A i1 < · · · < ik , j1 < · · · < j" sowie ∀p, q : ip &= jq . Zu jeder Variablen x definieren wir nun einen Graphen G (x): ei1 1 ei1 2 ei1 3 ei1 4 eik 1 eik 2 eik 3 eik 4 ej1 1 ej1 2 ej1 3 ej1 4 ejl 1 ejl 4 Volker Diekert (Universität Stuttgart) Komplexitätstheorie ejl 2 ejl 3 SS 2011 126 / 258 Vertex Cover Hamilton-Kreis und Hamilton-Pfad sind NP-vollständig G (xn ) G (ck ) G (ci ) G (c1 ) G (xj ) G (x1 ) Den Graphen G (F ) bilden wir durch Zusammenfügen der bisher konstruierten Graphen nach dem folgenden Muster: Zusätzlich benötigen wir für jede Klausel ck = (x̃k1 ∨ x̃k2 ∨ x̃k3 ) noch Verbindungen zwischen dem Graphen G (ck ) und den Graphen G (xki ): Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 127 / 258 Vertex Cover "" ek4 "" ek3 G (xk3 ) "" ek2 b4 a34 "" ek1 a33 a31 b3 G (ck ) a32 " ek4 a24 " ek3 a23 " ek2 a22 " ek1 a21 b2 a14 a13 ek4 a12 ek3 b1 a11 ek2 ek1 G (xk1 ) G (xk2 ) Hamilton-Kreis und Hamilton-Pfad sind NP-vollständig Wir verbinden also für i ∈ {1, . . . , 3} und q ∈ {1, . . . , 4} den Knoten aiq in G (ck ) mit dem Knoten ekq aus G (xki ) über einen neuen Zwischenknoten. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 128 / 258 Vertex Cover Hamilton-Kreis und Hamilton-Pfad sind NP-vollständig Beispiel: Sei F = (x1 ∨ x2 ∨ x3 ) ∧ (x1 ∨ x2 ∨ x3 ). => ? < => ? < c1 c2 Volker Diekert (Universität Stuttgart) G (c2) G (x3) G (x2) G (c1) G (x1) Dann ist G (F ) der folgende Graph: Komplexitätstheorie SS 2011 129 / 258 Vertex Cover 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 F . Wir erhalten einen Hamilton-Kreis für G (F ) wie folgt: Der Weg führt über die erfüllten Literalen entsprechenden Knoten in den 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 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 G (ck ) verbleibenden Knoten und die zugehörigen Knoten in den G (xi ) besucht. Anschließend endet der Weg im Startknoten. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 130 / 258 Vertex Cover Hamilton-Kreis und Hamilton-Pfad sind NP-vollständig Sei C ein Hamilton-Kreis für G (F ). Dieser durchläuft in jedem der Graphen G (xi ) einen der beiden Zweige. Dies definiert eine erfüllende Belegung σ von F . Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 131 / 258 Rucksackproblem Rucksackproblem Erinnerung: Beim Rucksack-Problem sind Zahlen a1 , . . . , an , s ∈ N binär kodiert gegeben # und die Frage ist, ob es eine Menge I ⊆ { 1, . . . , n } gibt so, dass s = i ∈I ai . Theorem Das Rucksack-Problem ist NP-vollständig. # Wir können I ⊆ { 1, . . . , n } raten und dann s = i ∈I ai verifizieren. Daher liegt das Problem in NP. Die NP-Schwierigkeit erhält man durch eine einfache Reduktion von 3-SAT auf dieses Problem. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 132 / 258 Rucksackproblem Einfache Instanzen Das Rucksack-Problem ist pseudo-polynomiell lösbar, also in P, wenn der Zielwert s unär codiert wird. # Allgemeiner: Für I ⊆ { 1, . . . , n } bezeichne a(I ) = 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. Ist man an exakten exponentiellen Algorithmen interessiert, so kann man sich eine (exponentielle) Schranke M vorgeben (z.B. M = 20,00001n ) und zunächst testen, dass |{ a(I ) ∈ N | a(I ) ≤ s, I ⊆ { 1, . . . , n } }| ≥ M gilt 7 (andernfalls kann man die Lösung in der Zeit O(M) finden). Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 133 / 258 Rucksackproblem 7 n/2) Zeit und Speicher in O(2 ! ! ! (Horowitz/Sahni 1974) Berechne und speichere in einer nach a(I ) sortierten Liste L1 alle Teilmengen I ∈ 2{1,...,m} sowie in einer sortierten Liste L2 alle Teilmengen J ∈ 2{m+1,...,n} . Dies sind jeweils Listen mit 2m = 20,5n Elementen. Suche in L1 aufsteigend und in L2 absteigend ein Paar (I , J) mit a(I ) + a(J) = s. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 134 / 258 Rucksackproblem Bekannte Schranke bis 2009 Der Schroeppel-Shamir Algorithmus (SIAM J. Comput., 10(3):456–464, 1981) liefert unter einer einfachen heuristischen Annahme die Laufzeit 7 n/2 ) bei einem Speicherbedarf von O(2 7 n/4 ). O(2 Erst im Jahre 2009 verbesserten Nick Howgrave-Graham und Antoine Joux 7 0,337n ) bei einem Speicherbedarf von dieses Ergebnis: Laufzeit O(2 7 0,256n ). (New generic algorithms for hard knapsacks. In O(2 EUROCRYPT’2010, pages 235–256, 2010.) Wir konzentrieren uns auf die Laufzeit und wollen zeigen, wie man in einem randomisierten Verfahren unter einer einfachen heuristischen 7 0,42n ) erreicht. Es ist im wesentlichen der Annahme die O(2 Howgrave-Graham/Joux-Algorithmus mit einer vereinfachten Analyse (und daher einem suboptimalen Ergebnis). Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 135 / 258 Rucksackproblem Parameterwahl Die Rucksackinstanz sei a1 , . . . , an , s ∈ N und es sei n durch 8 teilbar. Es sei m = n/2. Ohne Einschränkung wollen wir das folgende Problem lösen: Frage: ∃I : a(I ) = s & |I | = m? Im Folgenden sei M eine beliebige Primzahl in der Nähe von $ % m 20,42n ≈ m/4 . 7 Das (bescheidene) Ziel ist jetzt ein O(M)-Algorithmus. Hier und im Folgenden meint ≈ bis auf polynomielle Faktoren und die 7 softe Oh-Notation O(M) bedeutet dann ebenfalls die Zeit M bis auf polynomielle Faktoren. $n% Mit m bezeichnen wir sowohl den Binomialkoeffizienten als auch die ${1,...,n}% Menge , also die der m-elementigen Teilmengen von {1, . . . , n}. m Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 136 / 258 Rucksackproblem Vorverarbeitung bzw. Grundidee Berechne: & @ * +A @ n . a(I ) mod M @@ I ∈ m Dies ist möglich, da die Menge höchstens M Elemente enthält: Für k = 0, 1, . . . , n und ( = 0, . . . , min{k, @ wir$(zwei B m} berechnen C % @ for-Schleifen) in einer Tabelle alle a(I ) mod M @ I ∈ k" . Wird s mod M höchstens M mal getroffen, so ist unser Ziel erreicht. (Die ersten M Treffer merken wir uns in einer Liste, diese Liste können wir ohne modulo-Rechnungen auf eine Lösung hin überprüfen.) Wir befinden uns daher ohne Einschränkung in einer schwierigen Instanz, bei der s mod M mehr als M mal getroffen wird. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 137 / 258 Rucksackproblem Vereinfachter Howgrave-Graham/Joux-Algorithmus Wiederhole polynomiell oft: ! Vertausche die Indizes mit einer Zufallspermutation. ! Wähle R mod M zufällig. ! Berechne und speichere in einer nach a(I ) mod M ⊆ {0, . . . , M} ${1,...,m}% sortierten Liste L1 alle Teilmengen I ∈ m/4 sowie in einer ${m+1,...,n}% . sortierten Liste L2 alle Teilmengen J ∈ m/4 $m% Dies sind jeweils Listen mit m/4 ≈ M Elementen. ! ! Suche in L1 aufsteigend und in L2 absteigend und bilde hieraus L = { I ∪ J | I ∈ L1 , J ∈ L2 , a(I ) + a(J) ≡ R mod M } . Bilde analog eine Liste L! = { I ∪ J | I ∈ L1 , J ∈ L2 , a(I ) + a(J) ≡ s − R mod M } . $n % ! Die erwartete Größe von L und L ist jeweils kleiner als n/4 /M ≈ M. Sortiere L und L! und suche I0 mit a(I0 ) = s (nicht mehr modulo M). ! Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 138 / 258 Rucksackproblem Korrektheit Angenommen, dieser Algorithmus findet ein I0 . Dann gilt: ! ! I0 setzt sich aus disjunkten I ∈ L1 und J ∈ L2 zusammen. Hieraus folgt, es werden nur I0 mit |I0 ∩ { 1, . . . , m }| = m/2 gefunden. Weiter muss gelten, dass I0 eine Zerlegung mit I0 = I1 ∪ I2 mit a(I1 ) ≡ R mod M besitzt. Umgekehrt, gibt es ein solches I0 = I1 ∪ I2 und a(I1 ) ≡ R mod M mit |I1 ∩ { 1, . . . , m }| = m/4, so wird dieses I0 (oder ein entsprechendes) gefunden. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 139 / 258 Rucksackproblem Von Horowitz bis Joux Ab jetzt nehmen wir an, dass I0 eine feste Lösung ist, also a(I0 ) = s und |I0 | = m. Vertausche die Indizes aus { 1, . . . , n } mittels einer Zufallspermutation. Mit einer genügend hohen Wahrscheinlichkeit gilt dann |I0 ∩ { 1, . . . , m }| = m/2. Denn aus der Stirlingschen Formel n! ≈ (n/e)n folgt, dass $n% m $ m %$ m % m/2 m/2 durch ein Polynom beschränkt ist. Wir wiederholen das Experiment einfach genügend oft. (Selbsttest: Geben Sie einen konkreten Wert an.) Es sei also |I0 ∩ { 1, . . . , m }| = m/2. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 140 / 258 Rucksackproblem Stirling Etwas genauer: * 2n n + √ $ 2n %2n 4πn e ∼ $ n %2n 2πn e Damit wissen wir: 4n =√ πn * + * + n 2m 2n = ∼√ m m πm * +2 m 2n ∼ πm/2 m/2 $n% √ m $ m %$ m % ∼ 2 πm m/2 Volker Diekert (Universität Stuttgart) m/2 Komplexitätstheorie SS 2011 141 / 258 Rucksackproblem Repräsentationstechnik Es gibt $ m % m/2 ≈ 2m = 20,5n Möglichkeiten, die Menge I0 als I0 = I1 ∪ I2 mit |I1 | = |I2 | = m/2 darzustellen. Dies sind viel mehr als M ≈ 20,42n Werte. Heuristik: Wähle R mod M zufällig und nehme an, dass eine Zerlegung I0 = I1 ∪ I2 die folgende Kongruenz erfüllt: a(I1 ) ≡ R mod M Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 142 / 258 Rucksackproblem Zerlegung von I1 Wie oben können wir annehmen, dass auch gilt: |I1 ∩ { 1, . . . , m }| = m/4. Beweis: Es reicht, |I0 ∩ { 1, . . . , m }| = m/2 zu betrachten. Die Zahl der Zerlegungen, die wir unter dieser Annahme aus der Restriktion |I1 ∩ I0 ∩ { 1, . . . , m }| = m/4 erhalten, ist: * Volker Diekert (Universität Stuttgart) m/2 m/4 +2 ≈ 2m . Komplexitätstheorie SS 2011 143 / 258 Rucksackproblem Kleine Mengen $ {1,...,m}% m/4 ${m+1,...,n}% Die Mengen und sind klein genug, können berechnet m/4 $m% und nach a(I ) mod M sortiert werden, da m/4 ≈ 20,42n ≈ M. $ n % $n % Damit erstellen wir einer Liste L1 gewisser I ∈ m/2 = n/4 mit a(I ) ≡ R mod ür@ reicht die Zeit, denn für die erwartete Größe der B M. $Hierf C n % @ Obermenge I ∈ n/4 @ a(I ) ≡ R mod M gilt: @& * + @ n @ E@ I ∈ n/4 @ + A@ * @ @ n @ a(I ) ≡ R mod M @ = /M ≈ M. @ @ n/4 Analog berechnen wir & * + n L2 = J ∈ n/4 @ A @ @ a(J) ≡ s − R mod M . @ Sortiere L1 und L2 nach ihren Werten in N (nicht mehr modulo M) und finden I0 , da I1 in L1 und I2 in L2 erscheinen. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 144 / 258 Nicht NP-vollständige Mengen innerhalb von NP \ P Nicht NP-vollständige Mengen innerhalb von NP \ P Nach unserem bisherigen Wissen wären folgende 3 Situationen möglich: NP- NP- NP vollständige 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 &= NP, dann existiert (effektiv) eine Sprache L ∈ NP \ P, die nicht NP-vollständig ist. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 145 / 258 Nicht NP-vollständige Mengen innerhalb von NP \ P Die Sprachen Lf Für eine schwach monoton wachsende Funktion f : N → N (x2 > x1 ⇒ f (x2 ) ≥ f (x1 )) sei Lf = {x ∈ Σ∗ | x ∈ SAT ∧ f (|x|) 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 effizient (d.h., in Polynomialzeit) berechenbar, so gilt Lf ∈ NP. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 146 / 258 Nicht NP-vollständige Mengen innerhalb von NP \ P Konstruktion der Sprachen in NP \ P Beweis: Im Folgenden geben wir ein det. 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. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 147 / 258 Nicht NP-vollständige Mengen innerhalb von NP \ P 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 SAT. Für Mengen L und K ist L ∆ K = L \ K ∪ K \ L die symmetrische Differenz. Beachte: ist L ∈ C für eine der hier betrachteten Komplexitätsklassen C und ist |L ∆ K | < ∞, so gilt auch K ∈ C. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 148 / 258 Nicht NP-vollständige Mengen innerhalb von NP \ P 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, 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 suche für genau n Schritte in längenlexikograph. Reihenfolge ein x ∈ Σ∗ mit (x ∈ SAT ∧ Rj (x) ∈ / Lf ) ∨ (x ∈ / SAT ∧ Rj (x) ∈ Lf ) endif if ein solcher Zeuge x ∈ Σ∗ wurde gefunden then return k + 1 else return k endif endif Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 149 / 258 Nicht NP-vollständige Mengen innerhalb von NP \ P Nicht NP-vollständige Mengen innerhalb von NP \ P Bemerkung: f (n) ist wohldefiniert und wird in O(n) Schritten berechnet. Es gilt weiter f (n) + 1 ≥ f (n + 1) ≥ f (n) für alle n ∈ N. Wir zeigen jetzt mit Widerspruch: wenn P &= NP gilt, so liegt Lf weder in P noch ist Lf NP-vollständig (beachte: Lf ∈ NP). Dazu überlegen wir zunächst: 1. Wenn Lf ∈ P, dann existiert ein j mit Lf = L(Mj ). =⇒ L(Mj ) ∆ Lf = ∅ Aus der Berechnung von f folgt ∀n ∈ N : f (n) ≤ 2j. 2. Wenn Lf NP-vollständig ist, dann ist SAT ≤pm Lf . =⇒ es gibt j ≥ 0 mit ∀x ∈ Σ∗ : x ∈ SAT ⇔ Rj (x) ∈ Lf . =⇒ ¬∃x ∈ Σ∗ : (x ∈ SAT ∧ Rj (x) ∈ / Lf ) ∨ (x ∈ / SAT ∧ Rj (x) ∈ Lf ). Aus der Berechnung von f folgt ∀n ∈ N : f (n) ≤ 2j + 1. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 150 / 258 Nicht NP-vollständige Mengen innerhalb von NP \ P 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: 1. Ist f beschränkt und f (n) gerade für fast alle n, so gilt |Lf ∆ SAT| < ∞ und Lf ist NP-vollständig. 2. Ist f beschränkt und f (n) ungerade für fast alle n, so ist Lf endlich und damit Lf ∈ P. Aus der Vorraussetzung P &= NP folgt nun: 1. f (n) = 2j für fast alle n. =⇒ L(Mj ) = Lf . =⇒ Lf ist NP-vollständig nach (1) oben. Widerspruch zu L(Mj ) ∈ P. 2. 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 &= NP die Sprache SAT nicht auf eine Sprache in P reduziert werden kann. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 151 / 258 Vollständige Probleme für P, CFE Vollständige Probleme für P Sei Lcfe = {=G >| G ist eine kontextfreie Grammatik mit L(G ) &= ∅}. Dabei stellen die spitzen Klammern => eine geeignete Kodierung von Grammatiken dar, cfe steht für context–free–empty. 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. Sei L ∈ P und L(M) = L für eine p(n)-zeitbeschränkte deterministische Turingmaschine M = (Q, Σ, Γ, δ, q0 , {qf }, b), p(n) ein Polynom. Sei w = w1 · · · wn ∈ Σ∗ eine Eingabe für M mit |w | = n. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 152 / 258 Vollständige Probleme für P, CFE Leerheit kontextfreier Sprachen ist P-vollständig Wir setzen für M o.B.d.A. ähnliche Konventionen wie im Beweis des Satzes von Cook voraus: 1. Konfigurationen von M werden durch Wörter aus der Sprache Conf = {buqv b | q ∈ Q; u, v ∈ Γ∗ ; |uv | = p(n)} beschreiben. 2. Die Startkonfiguration ist bq0 w1 · · · wn bp(n)−n+1 . 3. w ∈ L(M) genau dann, wenn M sich nach genau p(n) Schritten in einer Konfiguration aus bqf Γp(n) b befindet. 4. δ(q, a) = (p, b, D) ∧ δ(q, a! ) = (p ! , b ! , D ! ) =⇒ D = D ! δ(q, a) = (p, b, D) ∧ δ(q, a! ) = (p ! , b ! , D) =⇒ D = N oder (p = p ! , a = a! und b = b ! ). Aus (4) folgt, dass eine Funktion ∆ : (Γ ∪ Q)3 → (Γ ∪ Q) existiert, so dass für alle α, α! ∈ b(Q ∪ Γ)∗ b mit |α| = |α! | gilt: α, α! ∈ Conf und α )M α! ⇐⇒ α ∈ Conf und ∀i ∈ {0, . . . , p(n)} : ∆(α[i − 1], α[i ], α[i + 1]) = α! [i ]. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 153 / 258 Vollständige Probleme für P, CFE Leerheit kontextfreier Sprachen ist P-vollständig Wir definieren jetzt die Grammatik G (w ) = (V , ∅, P, S) mit Variablenmenge V , leerem Terminalalphabet, Startsymbol S ∈ V und der Regelmenge P: V S = {V (a, t, j) | a ∈ Γ ∪ Q, 0 ≤ t ≤ p(n), −1 ≤ j ≤ p(n) + 1} = V (qf , p(n), 0) P enthält die folgenden Regeln: V (a, t, j) → V (b, t − 1, j − 1)V (c, t − 1, j)V (d, t − 1, j + 1) falls ∆(b, c, d) = a, 0 < t ≤ p(n), 0 ≤ j ≤ p(n) V (b, t, −1) → λ für 0 ≤ t ≤ p(n) V (b, t, p(n) + 1) → λ für 0 ≤ t ≤ p(n) V (q0 , 0, 0) → λ V (wj , 0, j) → λ für 1 ≤ j ≤ n V (b, 0, j) → λ für n < j ≤ p(n) Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 154 / 258 Vollständige Probleme für P, CFE Leerheit kontextfreier Sprachen ist P-vollständig Behauptung: L(G (w )) &= ∅ ⇔ w ∈ L. Sei α0 )M α1 )M · · · )M αp(n) die eindeutige bei α0 = bq0 w1 · · · wn bp(n)−n+1 beginnende Berechnung, αi ∈ Conf. Für −1 ≤ j ≤ p(n) + 1 und 0 ≤ t ≤ p(n) + 1 sei α(t, j) = αt [j]. Wir zeigen die Behauptung durch den Beweis der folgenden allgemeineren Aussage: L(G (w ), V (a, t, j)) &= ∅ ⇐⇒ α(t, j) = a ⇐=: Sei α(t, j) = a. Die Fälle t = 0, j = −1, j = p(n) + 1 folgen sofort aus der Def. von G (w ). Falls t > 0 und 0 ≤ j ≤ p(n), so gibt es b, c, d ∈ Γ ∪ Q mit ∆(b, c, d) = a und α(t − 1, j − 1) = b, α(t − 1, j) = c, α(t − 1, j + 1) = d. Mit Induktion über t folgt, dass die Sprachen L(G (w ), V (b, t − 1, j − 1)), L(G (w ), V (c, t − 1, j)) und L(G (w ), V (d, t − 1, j + 1)) nicht leer sind. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 155 / 258 Vollständige Probleme für P, CFE Leerheit kontextfreier Sprachen ist P-vollständig Da G (w ) die Produktion V (a, t, j) → V (b, t − 1, j − 1)V (c, t − 1, j)V (d, t − 1, j + 1) enthält, folgt L(G (w ), V (a, t, j)) &= ∅. =⇒: Sei L(G (w ), V (a, t, j)) &= ∅. Die Fälle t = 0, j = −1, j = p(n) + 1 folgen sofort aus der Def. von G (w ). Falls t > 0 und 0 ≤ j ≤ p(n), so muss es eine Produktion V (a, t, j) → V (b, t − 1, j − 1)V (c, t − 1, j)V (d, t − 1, j + 1) geben (inbesondere ∆(b, c, d) = a), so dass L(G (w ), V (b, t − 1, j − 1)), L(G (w ), V (c, t − 1, j)) und L(G (w ), V (d, t − 1, j + 1)) nicht leer sind. Nach Induktion gilt α(t − 1, j − 1) = b, α(t − 1, j) = c, α(t − 1, j + 1) = d. Wegen ∆(b, c, d) = a folgt α(t, j) = a. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 156 / 258 Circuit Value Problem Boolesche Schaltkreise Definition boolescher Schaltkreis Ein boolescher Schaltkreis C ist ein gerichteter markierter Graph C = ({1, . . . , o}, E , s) für ein o ∈ N mit folgenden Bedingungen. ! ! ∀(i , j) ∈ E : i < j, d.h. G ist azyklisch. s : {1, . . . , o} → {¬, ∧, ∨, true, false} wobei gilt: s(i ) ∈ {∧, ∨} s(i ) = ¬ s(i ) ∈ {true, false} ⇒ ⇒ ⇒ Eingangsgrad(i ) = 2 Eingangsgrad(i ) = 1 Eingangsgrad(i ) = 0 s(i ) ist die Sorte von Knoten i . Die Knoten werden als Gatter bezeichnet. Das Gatter o (output) ist das Ausgangsgatter von C . Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 157 / 258 Circuit Value Problem Boolesche Schaltkreise Durch Auswerten (im intuitiven Sinne) des Schaltkreises C kann jedem Gatter i ein Wert v (i ) ∈ {true, false} zugeordnet werden. Ein Schaltkreis ist monoton, falls er keine NOT-Gatter enthält. (Die Gatter mit Werten true oder false sind weiterhin erlaubt.) Circuit Value (CV) ist das folgende Problem: INPUT: Ein boolescher Schaltkreis C FRAGE: Wertet sich das Ausgangsgatter von C zu true aus? Monotone Circuit Value (MCV) ist das folgende Problem: INPUT: Ein monotoner boolescher Schaltkreis C FRAGE: Wertet sich das Ausgangsgatter von C zu true aus? Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 158 / 258 Circuit Value Problem Circuit Value ist 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 aus. (ii) MCV ist P-schwierig: Betrachte den Beweis zur P-Vollständigkeit von Lcfe . Zu einer Sprache L ∈ P und einem v ∈ Σ∗ wurde eine kontextfreie Grammatik G (v ) konstruiert. Alle Produktionen von G (v ) waren vom Typ A → B1 B2 B3 | · · · |Z1 Z2 Z3 oder A→λ Wir konstruieren einen monotonen Schaltkreis C (v ) wie folgt: Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 159 / 258 Circuit Value Problem Circuit Value ist P-vollständig Jedem Nichtterminal von G (v ) wird ein Gatter in C (v ) zugeordnet. Das Startsymbol von G (v ) ist das Ausgangsgatter von C (v ). Die Produktion A → B1 B2 B3 | · · · |Z1 Z2 Z3 führt zu folgender Verdrahtung: B1 B2 B3 Z1 Z2 Z3 ········· A Eine Variable A mit der Produktion A → λ wird zu einem true-Gatter. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 160 / 258 Circuit Value Problem Circuit Value ist P-vollständig Eine Variable A, für die keine Produktion mit A auf der linken Seite existiert, wird zu einem false-Gatter. Beachte: Der so erzeugte Schaltkreis C (v ) ist in der Tat azyklisch, denn + in G (v ) sind keine Ableitungen der Form A → uAv mit u, v ∈ V ∗ und A ∈ V möglich. Es gilt: L(G (v ), A) &= ∅ ⇐⇒ GatterA wertet sich in C (v ) zu true aus. Einziges Problem: Der Eingangsgrad von UND- bzw. ODER-Gattern in G (v ) ist möglicherweise 3. Lösung: Ersetze Gatter mit Eingangsgrad 3 durch zwei entsprechende Gatter mit Eingangsgrad 2. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 161 / 258 Circuit Value Problem Circuit Value ist 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 definiert werden: A ::= true | false | (¬A) | (A ∧ A! ) | (A ∨ A! ) 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 auswerten ist vollständig für die Komplexitätsklasse NC1 ⊆ L. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 162 / 258 Circuit Value Problem Vollständige Probleme für PSPACE: Quantifizierte Boolesche Formeln Quantifizierte boolesche Formeln Die Menge M der quantifizierten booleschen Formeln ist die kleinste Menge mit: ! ! ! xi ∈ M für alle i ≥ 1 0, 1 ∈ M 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. Dabei werden Variablen durch Wörter aus x1{0, 1}∗ dargestellt. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 163 / 258 Circuit Value Problem Erfüllbarkeit von quantifizierten booleschen Formeln Die Erfüllbarkeit von quantifizierten booleschen Formeln wird durch die Existenz einer erfüllenden Belegung definiert. Eine Belegung ist eine Funktion b : {x1 , x2 , . . .} → {0, 1}. Diese kann für eine gegebene Formel F auf die in F vorkommenden Variablen eingeschränkt werden. Für z ∈ {0, 1} und eine Belegung b sei b[xj 6→ z] die Belegung mit ! ! b[xj 6→ z](xi ) = b(xi ) für i &= j und b[xj 6→ z](xj ) = z. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 164 / 258 Circuit Value Problem Erfüllbarkeit von quantifizierten booleschen Formeln Induktive Definition der Erfüllbarkeit einer Formel F bezüglich einer Belegung b: Die Belegung b erfüllt die Formel F genau dann, wenn eine der folgenden Bedingungen zutrifft: F = 1, F = xj und b(xj ) = 1, F = (¬E ) und b erfüllt E nicht, F = (F1 ∧ F2 ) und b erfüllt F1 und F2 , F = (F1 ∨ F2 ) und b erfüllt F1 oder F2 , F = ∃xj E und b[xj 6→ 0] oder b[xj 6→ 1] erfüllt E , F = ∀xj E und b[xj 6→ 0] und b[xj 6→ 1] erfüllen E . Wird F von jeder Belegung erfüllt, so heißt F gültig. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 165 / 258 Circuit Value Problem Erfüllbarkeit von quantifizierten booleschen Formeln Die Menge Frei(F ) der freien Variablen der Formel F ist wie folgt definiert: ! Frei(xi ) = {xi } ! Frei(¬F ) = Frei(F ) ! Frei((F ∧ G )) = Frei((F ∨ G )) = Frei(F ) ∪ Frei(G ) ! Frei(∃xj F ) = Frei(∀xj F ) = Frei(F ) \ {xj } Eine Formel F mit Frei(F ) = ∅ nennt man geschlossen. 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 quantifizierten booleschen Formeln, die gültig sind. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 166 / 258 Circuit Value Problem QBF ist PSPACE-vollständig Theorem QBF ist PSPACE-vollständig. Beweis: (i) QBF ∈ PSPACE: Sei E eine geschlossene quantifizierte boolesche Formel, in der die Variablen x1 , . . . , xn vorkommen. O.b.d.A. ist E nur aus 1, x1 , . . . , xn , ¬, ∧, ∃ aufgebaut. Der folgende rekursive deterministische Algorithmus, in dem x1 , . . . , xn globale Variablen sind, überprüft in polynomiellen Platz, ob ϕ gültig ist. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 167 / 258 Circuit Value Problem 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 Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 168 / 258 Circuit Value Problem 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 Konfigurationen binär kodiert. Ohne Einschränkung ist die Länge aller Binärkodierungen der von einer Startkonfiguration Start(w ), |w | = n, aus erreichbaren Konfigurationen durch p(n) und deren Anzahl durch 2p(n) begrenzt. Betrachte den Savitch-Ansatz: Reach(Start(w ), Accept, p(n)) ⇐⇒ w ∈ L $ % Reach(α, β, i ) = ∃γ Reach(α, γ, i −1)∧Reach(γ, β, i −1) für i > 0 ≤1 Reach(α, β, 0) = α )M β Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 169 / 258 Circuit Value Problem 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 Konfigurationen Konfigurationsvariable X , Y , U, V , . . . ein und definieren für i > 0: Reach(X , Y , i ) := 1 * ∃U ∀V ∀W + 2 (V = X ∧ W = U) ∨ (V = U ∧ W = Y ) =⇒ Reach(V , W , i − 1) 1. Schritt: Berechne für Eingabe w ∈ Σ∗ mit |w | = n durch iteriertes Anwendung obiger Rekursion, beginnend mit Reach(Start(w ), Accept, p(n)), eine Formel F in den Konfigurationsvariablen X , Y , . . .. In F kommen atomare Formeln der Gestalt Reach(X , Y , 0) und X = Y sowie die Konstanten vor Start(w ) und Accept vor. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 170 / 258 Circuit Value Problem QBF ist PSPACE-vollständig 2. Schritt: Wir wandeln F in eine geschlossene quantifizierte boolesche Formel um: ! ! ! ! Ersetze jede Konfigurationsvariable X durch einen Block von p(n) booleschen Variablen x1 , . . . , xp(n) . Aus ∀X wird somit der Block ∀x1 ∀x2 · · · ∀ xp(n) und entsprechend für ∃X . Die Konstanten Start(w ) und Accept werden durch konkrete Bitstrings ersetzt. Dp(n) X = Y ersetzen wir durch die Formel i =1 (xi ⇔ yi ). Aus einer atomaren Formel 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 quantifizierte boolesche Formel, die genau dann erfüllbar ist, wenn w ∈ L. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 171 / 258 Circuit Value Problem Orakel-Turingmaschinen u. relative Schwierigkeit von ? P = NP — Im SS2011 nicht behandelt Eine nichtdeterministische Orakel-Turingmaschine (kurz OTM) M ? ist eine nichtdeterministische Turingmaschine mit folgenden Besonderheiten: ! M ? hat drei ausgezeichneten Zuständen qJ , qN , q? sowie ! ein ausgezeichnetes Arbeitsband — das Orakelband — auf welches nur geschrieben wird. ! Das Orakelband enthält zu jedem Zeitpunkt einen String w (o) über einem Alphabet Σ. ! Befindet sich M ? im Zustand q? so kann M ? unabhängig von den gelesenen Bandsymbolen nichtdeterministisch in den Zustand qN oder den Zustand qJ gehen. Eine OTM M ? ist deterministisch, falls sich M ? auf allen Zuständen außer q? deterministisch verhält. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 172 / 258 Circuit Value Problem Orakel-Turingmaschinen Zeit- und Platzschranken werden für OTMs wie für normale Turingmaschinen definiert. Wir betrachten dafür eine OTM als eine nichtdeterministische Turingmaschine. Sei A ⊆ Σ∗ eine beliebige (nicht notwendigerweise entscheidbare) Menge. Wir definieren Berechnungen einer Maschine M A auf eine Eingabe v ∈ Σ∗ wie folgt: ! ! Auf Zuständen in Q \ {q? } verhält sich M A wie M ? . Befindet sich M im Zustand q? , so ist der Folgezustand (unabhängig von gelesenen Bandsymbolen) qJ (bzw. qN ), falls aktuell w (o) ∈ A (bzw. w (o) &∈ A) gilt. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 173 / 258 Circuit Value Problem Relative Komplexitätsklassen Wir können jetzt Komplexitätslassen wie @ & A @ A ∗ @ Es gibt eine deterministische polynomial P = L⊆Σ @ zeitbeschränkte OTM M ? mit L = L(M A ) @ & A @ A ∗ @ Es gibt eine nichtdeterministische polynomiNP = L⊆Σ @ al zeitbeschränkte OTM M ? mit L = L(M A ) definieren. Bemerkung: 1. NP ∪ CoNP ⊆ PSAT ⊆ PSPACE Es ist offen, ob =“ gilt. ” A ∗ A 2. A ∈ P für alle A ⊆ Σ , damit kann insbesondere P unentscheidbare Sprachen enthalten. 3. Ist A entscheidbar, so ist NPA eine Familie entscheidbarer Sprachen. 4. Trivialerweise gilt PA ⊆ NPA . Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 174 / 258 Circuit Value Problem Eine Welt in der P = NP Theorem Es gibt ein Orakel A ⊆ Σ∗ in PSPACE mit PA = NPA . Beweis: Betrachte eine PSPACE-vollständige Sprache, etwa A = QBF. Dann gilt ! QBF QBF PSPACE ⊆ P ⊆ NP ⊆ NSPACE(nk ) = PSPACE k≥1 Also gilt PSPACE = PQBF = NPQBF Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 175 / 258 Circuit Value Problem Eine Welt in der P &= NP Theorem Es gibt ein entscheidbares Orakel B ⊆ {0, 1}∗ mit PB &= NPB . Beweis: Das Orakel B ⊆ {0, 1}∗ wird so definiert, dass gilt: ∀n ≥ 0 : |B ∩ {w ∈ {0, 1}∗ | |w | = n}| ≤ 1 Für eine Sprache B ⊆ {0, 1}∗ sei E n@ F @ LB = 1 ∃w ∈ B mit |w | = n . Dann gilt offensichtlich: LB ∈ NPB . Noch zu zeigen: Es gibt eine entscheidbare Sprache B mit LB ∈ / PB . Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 176 / 258 Circuit Value Problem Eine Welt in der P &= NP Sei M1? , M2? , . . . eine effektive 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 definiert wird und dann die Orakel-Turingmaschinen aus {M ? (i , j)|(i , j) ∈ N × N} aufgezählt werden. Wir definieren rekursiv das Orakel B durch Mengen " Bi ⊆ {w ∈ {0, 1}∗ | |w | ≤ i } mit B = i ≥0 Bi und eine Ausnahmemenge X mit B ∩ X = ∅: Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 177 / 258 Circuit Value Problem Eine Welt in der P &= NP ! ! Für i = 0 setze B0 = X = ∅. Für i > 0 simulieren wir die Rechnung von Mi? auf Input 1i für i *log i + Schritte. Wir nehmen an, dass B0 ⊆ B1 ⊆ · · · ⊆ Bi −1 und eine Menge X mit Bi −1 ∩ X = ∅ schon definiert sind. ! ! ! ! Befragt Mi? im Laufe der Rechnung ein Wort w mit |w | < i, so wird die Rechnung entsprechend dem Orakel 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 hinzu. ” Akzeptiert Mi? innerhalb der Zeitschranke i #log i $ die Eingabe 1i , so setze Bi := Bi −1 . Verwirft Mi? innerhalb der Zeitschranke i #log i $ die Eingabe 1i , so betrachte das lexikographisch erste Wort bi in {0, 1}i \ X . Setze dann & Bi −1 ∪ {bi } falls bi existiert Bi = Bi −1 sonst Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 178 / 258 Circuit Value Problem Eine Welt in der P &= NP Es gilt mit B = " Bi : i ≥0 ! ! ! Bi ⊆ {w ∈ {0, 1}∗ | |w | ≤ i } B ist entscheidbar, denn für |w | = i gilt: w ∈ B ⇔ w ∈ Bi . B ∩ X = ∅. Wir zeigen jetzt LB ∈ / PB . Angenommen, es wäre LB = L(M B ) für eine deterministische, polynomial zeitbeschränkte OTM M ? . Dann gibt es ein Polynom p(n) so, dass M ? p(n)-zeitbeschränkt ist. Wähle jetzt i genügend groß so, dass ∀n ≥ i : p(n) ≤ n*log i + und M ? = Mi? gilt. Dies ist möglich, da M ? in der Aufzählung beliebig oft vorkommt. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 179 / 258 Circuit Value Problem Eine Welt in der P &= NP 1. Fall: 1i ∈ LB = L(MiB ). Dann gilt Bi −1 = Bi nach Konstruktion von B und damit 1i ∈ / LB nach Definition von LB . Widerspruch! 2. Fall: 1i ∈ / LB = L(MiB ), d.h. MiB verwirft 1i innerhalb der Zeitschranke i *log i + . Ist {0, 1}i \ X &= ∅, so existiert ein bi ∈ B mit |bi | = i und damit 1i ∈ LB . Widerspruch! Es ist daher noch zu zeigen, dass für alle zuvor genügend groß gewählten i gilt: {0, 1}i \ X &= ∅ Bei der Definition von X bis zum i -ten Schritt wurden maximal i G j=1 j *log j+ ≤i ·i *log i + log i +*log i +2 ≤2 Orakelanfragen gestellt. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 180 / 258 Circuit Value Problem Eine Welt in der P &= NP 2 X enthält also maximal 2log i +*log i + Wörter der Länge ≤ i . Für alle zuvor genügend groß gewählten i gilt nun 2 2log i +*log i + < 2i , weshalb {0, 1}i \ X nicht leer ist. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 181 / 258 Mahaney Dünne Mengen und der Satz von Mahaney Eine Menge L ⊆ Σ∗ ist dünn, wenn ein Polynom p(n) mit @E @ F @ @ ∀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 &= NP, so gibt es keine dünne Sprache, die NP-schwierig ist. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 182 / 258 Mahaney Beweis des Satzes von Mahaney Es wird zunächst eine Menge SAT! definiert: @ & A @ F ist boolesche Formel in den Variablen x1 , . . . , xn , ! @ SAT = =F , x> @ x ∈ {0, 1}n und ∃y ∈ {0, 1}n : (y ≥ x ∧ F (y ) = 1) Hierbei ist ! ≥ 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: SAT! ist NP-vollständig. 1. SAT! ∈ NP: Rate Belegung y ≥ x und überprüfe, ob F (y ) = 1. 2. SAT! ist NP-schwierig: O.B.d.A. enthalte F die Variablen x1 , . . . , xn . Wir reduzieren SAT auf SAT! mit der Abbildung F 6→ =F , 0n >. Es gilt offensichtlich: F ∈ SAT ⇔ =F , 0n > ∈ SAT! Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 183 / 258 Mahaney Beweis des Satzes von Mahaney Für eine Formel F in den Variablen x1 , . . . , xn definieren wir eine Funktion f : [0, . . . , 2n − 1] → {0, 1} durch & 1, falls =F , x> ∈ SAT! f (x) = 0, sonst Der Definitionsbereich von f wird hier mit {0, 1}n identifiziert. Der Graph von f ist eine Treppenfunktion: 1 0 0n y 1n Der Wert y ist hier die (lexikographisch) größte erfüllende Belegung für F . Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 184 / 258 Mahaney Beweis des Satzes von Mahaney Angenommen L ⊆ {0, 1}∗ ist eine dünne NP-schwierige Sprache. Da SAT! ∈ NP, gibt es eine Polynomialzeitreduktion H : Σ∗ → {0, 1} von SAT! auf L: =F , x> ∈ SAT! ⇔ H(=F , x>) ∈ L Die Länge einer Eingabe =F , x> definieren wir im folgenden zu n = |F | und wir können o.B.d.A. annehmen, dass die Formel F nur Variablen aus der Menge x1 , . . . , xn enthält. Wir zeigen, dass unter obigen Annahmen SAT ∈ NP, d. h. P = NP gilt. Da L nach Annahme eine dünne Sprache ist, gibt es ein Polynom p(n) mit @E @ F @ @ @ H(=F , x>) | =F , x> ∈ SAT! ∧ |=F , x>| ≤ n @ ≤ p(n). Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 185 / 258 Mahaney Beweis des Satzes von Mahaney Sei I = [0, . . . , 2n − 1]. Wir unterteilen I in 2 · p(n) gleichgroße Teilintervalle. Jedes Intervall wird durch die linke Grenze und die Länge repräsentiert. Für die linken Grenzen xi wird H(=F , xi >) berechnet und in einer Tabelle abgelegt. Wenn dabei zwei Tupel =F , xi > und =F , xj > auf denselben Wert abgebildet werden, findet eine Kollisionsauflösung statt: Sei o.B.d.A. xi < xj . Dann werden alle Teilintervalle mit linken Grenzen xi , xi +1 , . . . , xj−1 gelöscht, denn alle haben denselben Funktionswert f (xj ). 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(=F , xi >) &= H(=F , xj >) ergeben. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 186 / 258 Mahaney Beweis des Satzes von Mahaney Am Ende dieser Prozedur sind die Werte H(=F , xi >) für alle linken Grenzen der verbleibenden Intervalle verschieden. Da es nur maximal p(n) positive Antworten (f (xk ) = 1) geben kann, sind =F , xp(n)+1 >, . . . , =F , xl > ∈ / SAT! 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. Am Ende bleiben also höchstens p(n) Intervalle übrig. Jetzt wird eine Intervallhalbierung bei den verbleibenden Intervallen durchgeführt. 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. Nach höchstens n Halbierungen gibt es nur noch 1-Punkt-Intervalle (da das Intervall I 2n Elemente enthält) und das Verfahren der Intervallhalbierungen wird abgebrochen. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 187 / 258 Mahaney Beweis des Satzes von Mahaney Die bis zu diesem Zeitpunkt verbrauchte Zeit ist polynomial beschränkt. Seien x1 , . . . , xl (l ≤ p(n)) die linken Grenzen der verbleibenden 1-Punkt-Intervalle. Jetzt kann in polynomialer Zeit für jedes i , 1 ≤ i ≤ l , der Wert F (xi ) berechnet werden. Ist F (xi ) = 0 für alle i , so ist F unerfüllbar. Sonst ist F erfüllbar (das größte xi mit F (xi ) = 1 ergibt die größte erfüllende Belegung). Damit können wir in Polynomialzeit entscheiden, ob F ∈ SAT. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 188 / 258 IBS 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. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 189 / 258 IBS Alice und Bob Alice versucht für ein x ∈ Σ∗ stets, Bob zu überzeugen, dass x ∈ L gilt. Eine Sprache L lässt sich durch ein IBS entscheiden, wenn Bob für ein x ∈ L 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. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 190 / 258 Zero-Knowledge 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. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 191 / 258 Zero-Knowledge 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. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 192 / 258 Zero-Knowledge n3 Runden Eingabe G = (V , E ) mit n = |V |. Es werden n3 Runden durchgeführt. In jeder Runde arbeitet Alice wie folgt: ! ! ! ! ! Sie wählt eine Zufallspermutation der Farben π : {0, 1, 2}→{0, ˜ 1, 2}. Sie erzeugt ein RSA-Kryptosystem für jeden Knoten i . Sie wählt also große Primzahlen pi , qi < 2n und eine Zahl ei < 2n mit ggT(ei , ϕ(ni )) = 1, wobei ni = pi qi und ϕ(ni ) = (pi − 1)(qi − 1). Sie berechnet ein 0 < si < ni mit si ei ≡ 1 mod (pi − 1)(qi − 1). Alice wählt desweiteren Zufallszahlen xi mit 0 < 3xi + 2 < ni . Es gilt jetzt für alle a ∈ Z: asi ei ≡ a mod ni . Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 193 / 258 Zero-Knowledge Protokoll ! Sie sendet Bob eine Liste (ni , ei , zi )i =1,...,n mit zi ≡ (3xi + π(c(i )))ei mod ni . ! Bob wählt zufällig eine Kante (i , j) ∈ E . Er fragt Alice nach pk , qk , sk (für k ∈ {i , j}) sowie nach den Beweisen, dass pk , qk Primzahlen sind. Er überprüft nk = pk qk und sk ek ≡ 1 mod (pk − 1)(qk − 1) und entschlüsselt yk = zksk mod nk . ! Er berechnet außerdem Werte ck ∈ {0, 1, 2} durch ck = yk mod 3. Hat sich Alice korrekt verhalten, so gilt zksk = 3xk + π(c(k)) mod nk und ck = π(c(k)). Bob ist mit dieser Runde einverstanden, falls ci &= cj gilt. Falls Bob n3 Runden einverstanden ist, akzeptiert er G als 3-färbbar. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 194 / 258 Zero-Knowledge 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 nicht mehr ändern. Angenommen, G ist nicht 3-färbbar. Dann gibt es mindestens eine Kante (i , j) ∈ E , 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 ci = cj und damit π(c(i )) = π(c(j)), also c(i ) = c(j) ist. Alice wird also pro Runde mindestens mit der Wahrscheinlichkeit |E1 | entdeckt. Insgesamt bleibt sie 3 4n3 folglich mit einer Wahrscheinlichkeit kleiner 1 − |E1 | unentdeckt. Wir zeigen * 1 1− |E | Volker Diekert (Universität Stuttgart) +n3 ≤ e −n Komplexitätstheorie (< 2−n ). SS 2011 195 / 258 3 1− 1 |E | 4n 3 Zero-Knowledge < 2−n : Es gilt: 3 1− 1 |E | 4n3 ≤ e −n ⇔ n2 (ln(|E |) − ln(|E | − 1)) ≥ 1 ⇐ ln(|E |) − ln(|E | − 1) ≥ 1 |E | (wegen |E | < n2 ) Es reicht daher zu zeigen: ln(|E |) − ln(|E | − 1) ≥ 1 |E | . Die Korrektheit dieser Ungleichung folgt aus der Ableitung ln! (x) = x1 . Wie man dem Graphen der ln-Funktion unmittelbar ansieht, gilt für alle x > 1 die Abschätzung ln! (x) < ln(x) − ln(x − 1). Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 196 / 258 Zero-Knowledge Zero-Knowledge-Proofs für NP Da das 3-Färbbarkeitsproblem eines Graphen NP-vollständig ist, hat jedes NP-Problem einen Zero-Knowledge-Proof, der auf dem RSA-Verfahren basiert. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 197 / 258 Die (Nicht-)Isomorphie von Graphen Zero-Knowledge-Proof für die (Nicht-)Isomorphie von Graphen Das Problem, ob zwei Graphen isomorph sind, liegt in NP. Es ist weder bekannt, ob es in P liegt, noch, ob es NP-vollständig ist. Es 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. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 198 / 258 Die (Nicht-)Isomorphie von Graphen Beweisanfang Die Eingabe besteht aus 2 Graphen G0 = (V0 , E0 ) und G1 = (V1 , E1 ) mit V0 = V1 = {1, . . . , n}. Alice behauptet: G0 ∼ & G1 . = ! ! Bob wählt m Permutationen πi ∈ Perm({1, . . . , n}) und m Bits bi ∈ {0, 1} zufällig (1 ≤ i ≤ m). Dann übermittelt Bob an Alice in einer einzigen Runde die Liste (πi (Gbi ))1≤i ≤m . ! und Bob verlangt von Alice jetzt einen Bitstring b1! b2! . . . bm akzeptiert, falls ∀i ∈ {1, . . . , m} bi = bi! . Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 199 / 258 Die (Nicht-)Isomorphie von Graphen 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 und einer ! muss also zufällig Zufallspermutation von G0 . Der Bitstring b1! b2! . . . bm gewählt werden — Alice hat keine andere Wahl. Wenn Alice betrügen muss, dann ist die Wahrscheinlichkeit, nicht entdeckt zu werden, damit gleich 2−m . Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 200 / 258 IP = PSPACE 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 der letzten Runde sagt Bob ja“ oder nein“ (also bp(n) ∈ {ja, nein}). ” ” Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 201 / 258 IP = PSPACE Interaktive Beweissysteme Bob ist dabei randomisierte polynomial zeitbeschränkte Turingmaschine. (Eine randomisierte Turingmaschine (RTM) ist eine deterministische Turingmaschine, die zusätzlich Zugriff 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.) Für die Richtung 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. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 202 / 258 IP = PSPACE Interaktive Beweissysteme Ein IBS (A, B) entscheidet eine Sprache L ⊆ Σ∗ , falls für alle Eingaben x ∈ Σ∗ folgendes gilt: ! ! Ist x ∈ L, so akzeptiert Bob die Eingabe mit einer Wahrscheinlichkeit ≥ (1 − 2−n ). Ist x ∈ / L, so gibt es kein IBS (A! , B) in dem Bob die Eingabe mit einer höheren Wahrscheinlichkeit als 2−n akzeptiert. IP ist die Menge der Sprachen, die durch ein IBS entschieden werden können: IP := {L ⊆ Σ∗ | ∃ IBS (A, B) : (A, B) entscheidet L} Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 203 / 258 IP = PSPACE 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. ” Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 204 / 258 IP = PSPACE 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. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 205 / 258 IP = PSPACE 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 ) . Hierbei bezeichnen ai , bi , ri ∈ {0, 1} Bits, wobei die r1 , . . . , rp die von Bob erzeugten Zufallsbits sind und p = p(|x|) ein festes Polynom darstellt (d.h., jedes vollständige Protokoll besteht aus p Runden). Formal sind Alice und Bob Funktionen (genauer, Funktionsfamilien): ai bi = A(x, a1 , b1 , . . . , ai −1 , bi −1 ) = B(x, a1 , b1 , . . . , ai −1 , bi −1 , ai , r1 , . . . , ri ) Für ein gegebenes Paar (A, B) und x ∈ Σ∗ hängt die Akzeptanz (also bp = 0 bzw. bp = 1) nur vom Zufallsvektor (r1 , . . . , rp ) ab. Wir sagen auch, dass (r1 , . . . , rp ) akzeptiert wird. Man beachte, dass es für eine feste Alice 2p viele vollständige Protokolle gibt. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 206 / 258 IP = PSPACE IP ⊆ PSPACE (Fortsetzung) Ab jetzt seien B und x fest gewählt. Eine optimale Alice ist diejenige Funktion A, die maximal viele Zufallsvektoren (r1 , . . . , rp ) akzeptiert. Statt unter allen möglichen Kandidatinnen für 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äfixe Pi = (a1 , b1 , . . . , ci ) mit c ∈ {a, b}, i ≤ p gegeben, die Alice befolgen muss. Stellen wir uns vor, Alice A, ein solches Präfix Pi und ein Zufallsvektor (r1 , . . . , rp ) sind gegeben. Der Zufallsvektor r = (r1 , . . . , rp ) definiert ein Protokoll P = (a1! , b1! , . . . , ap! , bp! , r ) zwischen Alice und Bob. Falls Pi ein Präfix 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. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 207 / 258 IP = PSPACE IP ⊆ PSPACE (Fortsetzung) Formal definieren wir einen Wert, der von Alice A und Pi = (a1 , b1 , . . . , ci ), c ∈ {a, b} abhängt: f (A, Pi ) = |{r | r = (r1 , . . . , rp ) passt zu Pi und wird akzeptiert}| . Eine Alice heißt optimal bzgl. Pi , 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äfix bezeichnet. Denn, ist L ∈ IP so gilt per Definition: x ∈ L =⇒ f (λ) ≥ (1 − 2−n ) · 2p , Volker Diekert (Universität Stuttgart) Komplexitätstheorie x∈ / L =⇒ f (λ) ≤ 2−n · 2p . SS 2011 208 / 258 IP = PSPACE 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. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 209 / 258 IP = PSPACE IP ⊆ PSPACE (Fortsetzung) Betrachte jetzt einen Präfix, der auf ai endet: Pi = (a1 , b1 , . . . , ai −1 , bi −1 , ai ). Induktiv nehmen wir an, dass die Werte f (a1 , b1 , . . . , ai , 0) und f (a1 , b1 , . . . , ai , 1) schon berechnet sind. Diese Werte werden von einer Alice A0 und einer Alice A1 realisiert. Der Punkt ist jetzt, dass ein Zufallsvektor (r1 , . . . , rp ) nicht gleichzeitig zu beiden Protokollpräfixen (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 zusammen, so werden keine doppelt gezählt. Daher gilt: G f (a1 , b1 , . . . , ai ) = f (a1 , b1 , . . . , ai , j) . j=0,1 Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 210 / 258 IP = PSPACE IP ⊆ PSPACE (Fortsetzung) Betrachte jetzt einen Präfix, der auf bi endet: Pi = (a1 , b1 , . . . , ai , bi ). Für Alice gibt es jetzt die Wahl ai +1 = 0 oder ai +1 = 1. Mit Induktion kennen wir jedoch die beiden Werte f (a1 , b1 , . . . , ai , bi , 0) und 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 (λ). Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 211 / 258 IP = PSPACE 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 Berechnung von f (a1 , b1 , . . . , ci ). Dann gilt s(2p) = q(n) für ein Polynom q und 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 ). Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 212 / 258 IP = PSPACE IP unter Reduktionen abgeschlossen Lemma IP ist unter polynomialer Zeitreduktion abgeschlossen: L ≤pm L! und L! ∈ IP ⇒ L ∈ IP Der Beweis zu diesem Lemma ist trivial, denn Bob kann die Reduktion L ≤pm L! berechnen, da er eine polynomial zeitbeschränkte Turingmaschine ist. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 213 / 258 IP = PSPACE 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. Da QBF PSPACE-vollständig ist, reicht es nach obigem Lemma zu zeigen, dass QBF ∈ IP. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 214 / 258 IP = PSPACE 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 quantifizierten 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. Wähle eine Primzahl p mit d 4 < p ≤ 2d 4 (Bertrand’sches Postulat). In diesem Bereich ist der Primzahltest auch für Bob sehr leicht. Alle weiteren arithmetischen Rechnungen sind mod p gemeint, der Grundkörper ist also F = Z/pZ. Wir fassen auch B = {0, 1} als Teilmenge von F auf. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 215 / 258 IP = PSPACE PSPACE ⊆ IP (Fortsetzung) Wir ordnen jeder booleschen Formel B(X ) mit X = (x1 , . . . , xk ) ein Polynom b(X ) ∈ F[X ] induktiv wie folgt zu: 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 ), falls B(X ) = ¬B0 (X ), falls B(X ) = B0 (X ) ∨ B1 (X ). Wegen 1 − (1 − b0 )(1 − b1 ) = b0 + b1 − b0 · b1 kann Bob das Polynom b(X ) ∈ F[X ] selbst berechnen, da er auch bei der Oder-Verknüpfung eine Verdoppelung der Datengröße vermeiden kann. Für Φ ∈ 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. 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 gilt. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 216 / 258 IP = PSPACE PSPACE ⊆ IP (Fortsetzung) Wir definieren zunächst Operatoren Ax und Ex für x = xi , 1 ≤ i ≤ k wie folgt: Ax P(x, Y ) = P(0, Y ) · P(1, Y ), Ex P(x, Y ) = P(0, Y ) + P(1, Y ) − P(0, Y ) · P(1, Y ). Hierbei sei Y = (x1 , . . . , xi −1 , xi +1 , . . . , xk ), sowie P(x, Y ) ∈ F[X ]. Es gilt: Ax P(x, Y ), Ex P(x, Y ) ∈ F[Y ] ⊆ F[X ]. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 217 / 258 IP = PSPACE PSPACE ⊆ IP (Fortsetzung) Offensichtlich gilt ferner: Φ = Ax1 Ex2 . . . qk xk b(x1 , . . . , xk ) ∈ {0, 1} ⊆ F ⊆ F[X ], wobei qk = A für k ungerade und qk = E für k gerade. Man beachte, dass es Sinn ergibt Φ(X ) = Φ oder auch Φ(V ) = Φ für V ⊆ Fk 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 exponentiellen Grad haben kann. Man betrachte etwa: 2k Ay Ax1 Ax2 . . . Ak xk (y ) = Ay (y ). Im Originalbeweis von Shamir wurde dieses Problem durch so genannte einfache Polynome gelöst. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 218 / 258 IP = PSPACE 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 ) mod (x 2 = x) ist. Vor einer Auswertung von AxP(x, Y ) bzw. ExP(x, Y ) können wir also den x-Grad auf 1 reduzieren. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 219 / 258 IP = PSPACE PSPACE ⊆ IP (Fortsetzung) Dafür genügt es, das Polynom P(x, Y ) mod (x − x 2 ) zu berechnen. Dies ist leicht: G P(x, Y ) = ai (Y )x i i ≥0 = a0 (Y ) + G i ≥1 ≡ a0 (Y ) + G i ≥1 ai (Y )x i ai (Y )x mod (x − x 2 ) = a0 (Y ) − a0 (Y )x + 3G i ≥0 4 ai (Y ) x = P(0, Y ) − P(0, Y )x + P(1, Y )x = P(1, Y ) · x + (1 − x) · P(0, Y ). Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 220 / 258 IP = PSPACE PSPACE ⊆ IP (Fortsetzung) Für P(x, Y ) ∈ F[X ] definieren wir formal einen Reduktionsoperator durch: RxP(x, Y ) = P(1, Y ) · x + (1 − x) · P(0, Y ). für 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 ) ausgewertet. Daher gilt AxP(x, Y ) = AxRxP(x, Y ) und ExP(x, Y ) = ExRxP(x, Y ). Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 221 / 258 IP = PSPACE 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 Suffix in der oberen Zeile auftritt. Der Grad von S(X ) ist stets ≤ d, und ab qk xk ist der Grad für jedes xi sogar durch 1 und 2 begrenzt. Für gegebene u1 , . . . , uk , v ∈ F kann Bob den Wert b(u1 , . . . , uk ) mit v vergleichen. Damit gibt es ein (triviales) Protokoll mit der Eigenschaft: Pr( Bob akzeptiert | b(u1 , . . . , uk ) = v ) = 1, Pr( Bob akzeptiert | b(u1 , . . . , uk ) &= v ) = 0. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 222 / 258 IP = PSPACE PSPACE ⊆ IP (Fortsetzung) Induktiv nehmen wir die Existenz eines Protokolls α zwischen Alice und Bob und eines εα ≥ 0 an, so dass für alle (u1 , . . . , uk , v ) ∈ Fk+1 gilt: Pr( Bob akzeptiert | S(u1 , . . . , uk ) = v ) = 1, Pr( Bob akzeptiert | S(u1 , . . . , uk ) &= v ) ≤ εα . Es sei x = xi ∈ {x1 , . . . , xk }, u = ui , Y = (x1 , . . . , xi −1 , xi +1 , . . . , xk ) und U = (u1 , . . . , ui −1 , ui +1 , . . . , uk ). Man beachte, dass S(u1 , . . . , uk ) nur von den freien Variablen in S(X ) abhängt. Also zu Anfang ist Φ = Φ(u1 , . . . , uk ) unabhängig von den ui . Insbesondere: Φ = Φ(0, . . . , 0) Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 223 / 258 IP = PSPACE PSPACE ⊆ IP (Fortsetzung) Wir unterscheiden drei Fälle: A-Fall: E-Fall: R-Fall: P(Y ) = AxS(x, Y ), P(Y ) = ExS(x, Y ), P(x, Y ) = RxS(x, Y ). Wir konstruieren ein Protokoll β so, dass für alle (u1 , . . . , uk , v ) ∈ Bk+1 gilt: Pr( Bob akzeptiert | P(u, U) = v ) = 1, d Pr( Bob akzeptiert | P(u, U) &= v ) ≤ εα + , p d.h. εβ = εα + dp . Man beachte, dass P(Y ) auch als P(x, Y ) gelesen werden kann. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 224 / 258 IP = PSPACE PSPACE ⊆ IP (Fortsetzung) Nach quadratisch vielen Runden erhalten wir also ein Protokoll mit: Pr( Bob akzeptiert | Φ = 1) = 1, 2d 1 Pr( Bob akzeptiert | Φ = 0) < d < , da d 4 < p. p d Durch logd d -fache Wiederholung können wir die Wahrscheinlichkeit unter 2−d drücken, dass Bob eine falsche Formel akzeptiert. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 225 / 258 IP = PSPACE PSPACE ⊆ IP (Fortsetzung) Sei (u1 , . . . , uk , v ) ∈ Bk+1 gegeben. Wir sind in der Situation, dass Bob den Beweis von P(u, U) = v verlangt, wobei {u1 , . . . , uk } \ {u} = U. (Zu Anfang verlangt Bob den Beweis Φ(0, { 0, . . . , 0 }) = 1.) Dann ist s(x) = S(x, U) ∈ F[x] jeweils ein Polynom vom Grad ≤ d. Alice übergibt solche Polynome durch eine Liste (a0 , . . . , ad ) von d + 1 Koeffizienten. A-Fall: 1) Bob fordert s(x) = S(x, U) von Alice. 2) Bob verifiziert s(0) · s(1) = v . 3) Bob wählt r ∈ F zufällig und verlangt von Alice den Beweis s(r ) = S(r , U) gemäß Protokoll α. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 226 / 258 IP = PSPACE PSPACE ⊆ IP (Fortsetzung) Wir sind in dem Fall P(u, U) = AxS(x, U) &= 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. Will Alice unerkannt betrügen, so muss sie ein Polynom t(x) &= S(x, U) liefern! Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 227 / 258 IP = PSPACE PSPACE ⊆ IP (Fortsetzung) E-Fall Wie eben, nur in 2. verifiziert Bob s(0) + s(1) − s(0) · s(1) Wir sind in dem Fall P(u, U) = ExS(x, U) &= v . Falls Alice das korrekte Polynom s(x) = S(x, U) liefert, so gilt P(u, U) = s(0) + s(1) − s(0) · s(1) &= v . Also entdeckt Bob den Fehler im 2. Schritt. Will Alice unerkannt betrügen, so muss sie erneut ein Polynom t(x) &= S(x, U) liefern! Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 228 / 258 IP = PSPACE PSPACE ⊆ IP (Fortsetzung) R -Fall 1) Bob fordert s(x) = S(x, U) von Alice. 2) Bob verifiziert s(0) · (1 − u) + s(1) · u = v . 3) Bob wählt r ∈ F zufällig und verlangt von Alice den Beweis s(r ) = S(r , U) = S(u1 , . . . , ui −1 , r , ui +1 , . . . , uk ) gemäß Protokoll α. Wir sind in dem Fall P(u, U) = s(0) · (1 − u) + s(1) · u &= v . Falls Alice das korrekte Polynom s(x) = S(x, U) liefert, so gilt P(u, U) = s(0) · (1 − u) + s(1) · u &= v . Also entdeckt Bob den Fehler auch jetzt im 2. Schritt. Will Alice unerkannt betrügen, so muss sie erneut ein Polynom t(x) &= S(x, U) liefern! Falls P(u, U) = v ist, so kann Alice jeweils korrekt spielen und Bob überzeugen. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 229 / 258 IP = PSPACE PSPACE ⊆ IP (Fortsetzung) Zusammenfassung: Zunächst betrachten wir den Fall P(u, U) &= v . Falls Alice das korrekte Polynom 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 Bob den Fehler jeweils im 2. Schritt. Will Alice betrügen, so muss sie ein Polynom t(x) vom Grad ≤ d liefern mit t(x) &= 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 ) &= s(r ) = S(r , U) vorliegt. Da t(x) − s(x) ein Polynom mit Grad ≤ d ist, gibt es höchstens d Nullstellen für t(x) &= s(x). Also gilt Pr( t(r ) = s(r ) ) ≤ dp in diesem Fall. Insgesamt ist die Betrugswahrscheinlichkeit ≤ εα + dp . Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 230 / 258 IP = PSPACE 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 Φ = AxR xEy R y R xb(x, y ). Der Ausdruck ergibt ausgewertet 1, denn die Formel F ist wahr. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 231 / 258 IP = PSPACE 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 ) = 1 − x − y + 3xy − x 2 y − xy 2 + x 2 y 2 R xb(x, y ) = 1 − x − y + 2xy R y R xb(x, y ) = 1 − x − y + 2xy Ey R y R xb(x, y ) = 1 − x + x − (1 − x)x = 1 − x + x2 R xEy R y R xb(x, y ) = 1 AxR xEy R y R xb(x, y ) = 1 Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 232 / 258 IP = PSPACE 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: a) b) c) d) e) Alice behauptet: AxR xEy R y R xb(x, y ) = 1. Bob verlangt: s(x) = R xEy R y R xb(x, y ). Alice liefert: t(x) = 1. Bob verifiziert t(0) · t(1) = 1. Bob würfelt zufälligerweise 1, und erwartet den Beweis für die folgende Behauptung: Runde 2: a) b) c) d) e) Alice behauptet: t(1) = 1 = R xEy R y R xb(1, y ). Bob verlangt: s(x) = Ey R y R xb(x, y ). Alice liefert: t(x) = 1 − x + x 2 . Bob verifiziert t(0)(1 − 1) + t(1) · 1 = 1. Bob würfelt zufälligerweise 2, und erwartet den Beweis für die folgende Behauptung: Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 233 / 258 IP = PSPACE PSPACE ⊆ IP (Beispiel) Runde 3: a) b) c) d) e) Runde 4: a) b) c) d) Alice behauptet: 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. Bob verifiziert t(0) + t(1) − t(0)t(1) = −1 + 2 + 2 = 3. Bob würfelt zufälligerweise 3, und erwartet den Beweis für die folgende Behauptung: Alice behauptet: t(3) = 8 = R y R xb(2, 3). Bob verlangt: s(y ) = R xb(2, y ). Alice liefert: t(y ) = 1 − 2 − y + 4y = 3y − 1. Bob verifiziert 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: Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 234 / 258 IP = PSPACE PSPACE ⊆ IP (Beispiel) Alice behauptet: t(4) = 11 = R xb(2, 4). Bob verlangt: s(x) = b(x, 4). Alice liefert: t(x) = (4x − 3)(3x + 1). Bob verifiziert 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 5: a) b) c) d) Runde 6: a) Alice behauptet: t(5) = 17 · 16 = b(5, 4). b) Bob verifiziert b(5, 4) = 16 · 17 = t(5). c) Bob ist zufrieden. Bob akzeptiert die Formel als wahr, nachdem weitere Durchgänge die Betrugswahrscheinlichkeit wie gefordert vermindert haben. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 235 / 258 Monotone boolesche Funktionen und monotone Schaltkreise Monotone Schaltkreise Eine boolesche Funktion f : Bn → B heißt monoton, falls f (x1 , . . . , xn ) ≤ f (y1 , . . . , yn ) gilt, sofern xi ≤ yi für alle 1 ≤ i ≤ n. 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. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 236 / 258 Monotone boolesche Funktionen und monotone Schaltkreise Monotone Schaltkreise (Forts.) Ein monotoner Schaltkreis berechnet eine monotone Funktion. Umgekehrt gibt es zu jeder monotonen Funktion f : Bn → B (mit n ≥ 1) einen monotonen Schaltkreis mit höchstens 2n + 2n−1 − 2 Gattern, der f berechnet. Dies folgt aus Abbildung 1, die die induktive Definition 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 Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 237 / 258 Monotone boolesche Funktionen und monotone Schaltkreise 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. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 238 / 258 Sonnenblumen Es gibt Sonnenblumen! Im Beweis des Satzes von Razborov kommen sog. Sonnenblumen vor. Definition Eine Sonnenblume der Größe p ≥ 2 ist eine Familie {X1 , . . . , Xp } von p Mengen, für die eine Menge Z existiert mit: Xi ∩ Xj = Z für alle 1 ≤ i < j ≤ p. Die Mengen Xi \ Z bezeichnen wir als Blütenblätter, die Menge Z heißt der Kern. 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. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 239 / 258 Sonnenblumen Sonnenblumen Beweis: Mit Induktion nach (. Für ( = 1 enthält F mindestens p paarweise disjunkte Mengen der Kardinalität ≤ 1. Diese bilden eine Sonnenblume der Größe p mit Kern Z = ∅. Sei ( > 1 und D ⊆ F eine maximale Teilfamilie paarweise disjunkter Mengen. Falls |D| ≥ p, so wählen wir analog zu ( = 1 " den Kern Z = ∅. 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 &= ∅, 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 . Insgesamt gibt es also mehr als (p − 1)"−1 · (( − 1)! Mengen X ∈ F mit d ∈ X . Betrachte F ! = {X \ {d} | d ∈ X ∈ F}. Dann enthält F ! nach Induktionsvoraussetzung eine Sonnenblume {X1 \ {d}, . . . , Xp \ {d}} der Größe p mit Kern Z ! . Damit ist {X1 , . . . , Xp } eine Sonnenblume der Größe p in F mit Kern Z = Z ! ∪ {d}. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 240 / 258 Der Satz von Razborov Der Satz von Razborov Wir betrachten ungerichtete Graphen G = (V , E ) mit der Knotenmenge V = {1, . . . , n}. Im Folgenden bezeichnet Cn,k einen monotonen Schaltkreis, der die Graphen mit n Knoten akzeptiert, die eine Clique der Größe k haben. Die Eingabegatter heißen gij und sind genau dann mit 1 belegt, wenn die Kante {i , j} in E vorhanden ist: gij (G ) = 1 ⇔ {i , j} ∈ E Allgemein bezeichnen wir mit g (G ) den Wert eines Gatters g bei Eingabe G. Theorem (A. A. Razborov, 1985) Falls n genügend groß ist, besitzt jeder monotone Schaltkreis Cn,k 1 √ ·8n 6 mindestens r = n viele Gatter. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 241 / 258 Der Satz von Razborov Beweis des Satzes von Razborov Beweisidee: Wir versehen induktiv die Gatter g von Cn,k mit einer groben Beschriftung Bg , die dann in natürlicher Weise zu einer Abbildung 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. Andererseits werden wir zeigen, dass die Abweichung am Ausgabegatter notwendigerweise groß ist. Also muss Cn,k viele Gatter besitzen. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 242 / 258 Der Satz von Razborov Beweis des Satzes von Razborov Nun zum Beweis: Wir legen zunächst die Parameter fest. Wir definieren: √ k := C 4 nD, √ √ ( := C kD ≈ 8 n, p := (/log2 n0, 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. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 243 / 258 Der Satz von Razborov 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 Gatters g . Dann definieren wir für einen Graphen G = (V , E ) den Wert Bg (G ) ∈ B durch: * + X Bg (G ) ⇐⇒ ∃X ∈ Bg : ⊆ E. 2 3 4 Dabei bedeutet hier und im Folgenden Xk die Familie der k-elementigen Teilmengen einer Menge X . Es gilt also Bg (G ) genau dann, wenn die Familie Bg eine Clique von G enthält. Die Eingabegatter gij werden mit Bgij = {{i , j}} beschriftet, also gilt für alle Graphen G : gij (G ) = Bgij (G ). Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 244 / 258 Der Satz von Razborov Beweis des Satzes von Razborov (Forts.) Eine Beschriftung heißt zulässig, falls |B| ≤ M und |X | ≤ ( für alle X ∈ B 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 ersetzen wir B durch B ! = {X ∈ B | |X | ≤ (}. Falls jetzt noch |B ! | > M gilt, so suchen wir eine Sonnenblume {X1 , . . . , Xp } ⊆ B ! mit Kern Z und ersetzen {X1 , . . . , Xp } durch Z . Diesen Vorgang bezeichnen wir als Pflücken der Sonnenblume. Obiges Lemma garantiert, dass wir eine Sonnenblume finden. Das Pflü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. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 245 / 258 Der Satz von Razborov Beweis des Satzes von Razborov (Forts.) Sei jetzt g ein Gatter mit Eingabegattern f und h. Induktiv seien f mit Bf = {Xi | i ∈ I } und h mit Bh = {Yj | j ∈ J} jeweils zulässig beschriftet. Die Beschriftung Bg von g definieren wir als & reduce(Bf ∪ Bh ), falls g = f ∨ h Bg = reduce(Bf · Bh ), falls g = f ∧ h Dabei gilt Bf · Bh = {Xi ∪ Yj | (i , j) ∈ I × J}. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 246 / 258 Der Satz von Razborov Beweis des Satzes von Razborov (Forts.) Am Ausgangsgatter out von Cn,k ergibt sich eine zulässige Beschriftung 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 . Im Folgenden sei r die Anzahl der Gatter in Cn,k . Mit Widerspruch nehmen wir an, dass für unendliche viele n gilt: r <n 1 √ ·8n 6 <n 1 ·" 5 . (∗) Wir wollen die Abweichung von Cn,k (G ) und 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. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 247 / 258 Der Satz von Razborov Beweis des Satzes von Razborov (Forts.) Das Verhalten bei positiven Testgraphen Positive Testgraphen: Eine Teilmenge P ⊆ V mit |P| = k wird mit dem 3 4 Graphen (V , P2 ) identifiziert. Für ein Eingabegatter gij gilt also gij (P) = 1 genau dann, wenn {i , j} ⊆ $ nP. % Ferner gilt Cn,k (P) = 1, da P eine Clique der Größe k ist. Es gibt k positive Testgraphen. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 248 / 258 Der Satz von Razborov Beweis des Satzes von Razborov (Forts.) Sei P = (V , E ) ein positiver Testgraph. Wir sagen, dass für P ein Fehler am Gatter g vorliegt, falls g (P) = 1, aber Bg (P) = 0 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 vorliegt. Die Eingabegatter f und h seien mit Bf = {Xi | i ∈ I } und Bh = {Yj | j ∈ J} zulässig beschriftet. Falls g = f ∨ h gilt, so entsteht Bg durch Pflü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 Pflücken. Fehler können für P also an keinem OR-Gatter entstehen. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 249 / 258 Der Satz von Razborov Beweis des Satzes von Razborov (Forts.) Sei 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 Pflücken einer Sonnenblume kein neuer Fehler entstehen kann, kann dies nur im ersten Schritt von reduce geschehen, wenn Bg durch Bg! = {Z ∈ Bg | |Z | ≤ (} ersetzt wird. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 250 / 258 Der Satz von Razborov Beweis des Satzes von Razborov (Forts.) Sei zunächst Z ⊆ V mit |Z | ≥ ( + 1 fest. Dann gilt für die Anzahl der positiven Testgraphen, die Z als Clique enthalten: * + * + * + V n − |Z | n−(−1 |{P ∈ | Z ⊆ P}| = ≤ . k k − |Z | k −(−1 Es können maximal M 2 viele Mengen in Bf · Bh gelöscht werden. Daher gilt für die Beschriftung Bout am Ausgangsgatter: 1. Fall: Alle positiven Testgraphen $ n % werden falsch ausgewertet, d.h. es entstehen mindestens k viele Fehler: * + 3 4 n−(−1 n 2 r ·M · ≥ k −(−1 k 3 4 2. Fall: oder Bout (P) = 1 für mindestens ein P ∈ Vk . Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 251 / 258 Der Satz von Razborov Beweis des Satzes von Razborov (Forts.) 1. Fall: Alle positiven Testgraphen falsch ausgewertet Fall (1) impliziert $n% 1 r≥ 2·3 k 4 n−"−1 M k−"−1 1 n(n − 1) · · · (n − () 1 n! · (k − ( − 1)! = 2· = 2· M k! · (n − ( − 1)! M k(k − 1) · · · (k − () * +" * +" n−( 1 n−( 1 = ≥ 2· · 2" 2 M k (p − 1) · (! k * +" 1 n−( ·" 5 , > n ≥ p 2 · (2 · k wobei die letzte Ungleichung gilt, da n genügend groß ist. Dies ist ein 1 ·" 5 Widerspruch zur Annahme, dass die Zahl der Gatter r kleiner als n ist. 3 4 Daher gilt ab jetzt Bout (P) = 1 für mindestens ein P ∈ Vk . Insbesondere gibt es ein Z ⊆ V mit |Z | ≤ ( und Z ∈ Bout &= ∅. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 252 / 258 Der Satz von Razborov Beweis des Satzes von Razborov (Forts.) Das Verhalten bei negativen Testgraphen Negative Testgraphen: Eine Färbung c : V → {1, . . . , k − 1} der Knotenmenge V definiert einen Graphen Gc = (V , E ) mit E = {{i , j} | c(i ) &= 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 definierten negativen Testgraphen. (Es gibt (k − 1)n 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 ) &= 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): R(Z ) ⇔ ∃i , j ∈ Z , i &= j : c(i ) = c(j) Für eine Beschriftung B = {Zi | i ∈ I } gilt damit: B(c) ⇔ B enthält eine Clique von Gc Volker Diekert (Universität Stuttgart) Komplexitätstheorie ⇔ ∃Z ∈ B : ¬R(Z ). SS 2011 253 / 258 Der Satz von Razborov Beweis des Satzes von Razborov (Forts.) Behauptung: Sei B &= ∅ eine zulässige Beschriftung. Dann gilt Pr(B(c)) ≥ 1/2. Beweis: Für i , j ∈ V mit i &= j gilt Pr(c(i ) = c(j)) = 1/(k − 1). Sei Z ∈ B mit |Z | ≤ (. Dann gilt * + ((( − 1) 1 |Z | 1 ≤ ≤ . Pr(R(Z )) ≤ · k −1 2(k − 1) 2 2 Dies beweist die Behauptung. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 254 / 258 Der Satz von Razborov Beweis des Satzes von Razborov (Forts.) Da am Ausgabegatter Bout &= ∅ 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 c ein Fehler am Gatter g vorliegt, falls g (c) = 0, aber Bg (c) = 1 gilt. Wir bestimmen wiederum die maximale Fehlerzahl am Ausgangsgatter. Wie oben betrachten wir ein Gatter g mit den Eingabegattern 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 . Das Löschen von Mengen kann diese Eigenschaft nicht verändern. Problematisch ist das Pflücken. Insgesamt wird maximal r · M 2 /(p − 1) oft gepflückt. Wir zählen die Fehler, die durch ein Pflücken entstehen können. Sei {Z1 , . . . , Zp } eine Sonnenblume mit Kern Z . Ein neuer Fehler entsteht nur, wenn R(Z1 ), . . . , R(Zp ) und ¬R(Z ) gelten. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 255 / 258 Der Satz von Razborov Beweis des Satzes von Razborov (Forts.) Behauptung: Sei {Z1 , . . . , Zp } eine Sonnenblume mit Kern Z und |Zi | ≤ ( für alle 1 ≤ i ≤ p. Dann gilt Pr(R(Z1 ) ∧ . . . ∧ R(Zp ) ∧ ¬R(Z )) ≤ (1/2)p . Beweis: Die p Ereignisse R(Zi ) ∧ ¬R(Z ) sind unabhängig, da {Z1 , . . . , Zp } eine Sonnenblume ist. Damit erhalten wir: Pr(R(Z1 ) ∧ . . . ∧ R(Zp ) ∧ ¬R(Z )) = ≤ p H i =1 p H Pr(R(Zi ) ∧ ¬R(Z )) Pr(R(Zi )) i =1 ≤ (1/2)p . Denn wie eben berechnet gilt Pr(R(Zi )) ≤ 1/2, falls |Zi | ≤ (. Dies beweist die Behauptung. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 256 / 258 Der Satz von Razborov Beweis des Satzes von Razborov (Forts.) Wir haben jetzt alles zusammen. Es muss gelten: Anzahl Pflücken × Pr(Beim Pflücken entsteht neuer Fehler) ≥ Pr(Färbung wird am Ausgabegatter positiv bewertet) oder formal: * +p 1 1 r ≥ , · p−1 2 2 · M2 denn es wird maximal r · M 2 /(p − 1) gepflückt und die Beschriftung am Ausgabegatter ist nicht leer. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 257 / 258 Der Satz von Razborov Beweis des Satzes von Razborov (Forts.) Dies bedeutet r ≥ ≥ p − 1 p−1 (p − 1) · 2p−1 2p ·2 = ≥ 2 " 2 M ((p − 1) · ((!)) (p()2" +" * +" * " 1 n n n ·" 3 . ≥ n = ≥ 2 2" 2 2 2 (p() p ·( k log n Damit ist der Satz von Razborov bewiesen. Volker Diekert (Universität Stuttgart) Komplexitätstheorie SS 2011 258 / 258