Klassenstruktur NL-Vollständigkeit NP-Vollständigkeit Methoden zur Strukturierung Theoretische Informatik 1 Teil 8 Bernhard Nessler Institut für Grundlagen der Informationsverabeitung TU Graz SS 2007 Bernhard Nessler Theoretische Informatik 1 Klassenstruktur NL-Vollständigkeit NP-Vollständigkeit Methoden zur Strukturierung Übersicht 1 Klassenstruktur 2 NL-Vollständigkeit NTM vs. DTM NL-Vollständigkeit Satz von Savitch, 1970 3 NP-Vollständigkeit Ausflug in die Logik NP-Vollständigkeit 4 Methoden zur Strukturierung Sprachbeziehungen Klassenbeziehungen Bernhard Nessler Theoretische Informatik 1 Klassenstruktur NL-Vollständigkeit NP-Vollständigkeit Methoden zur Strukturierung NEXPSPACE NEXP chiesatz EXPSPACE EXP NESPACE NE ⊆ =? teilw. geklärt ESPACE E NPSPACE NP ( Zeit-/Platz- Hierar- = Savitch 1970 PSPACE ⊆ =? offen NL P L C = {L ∈ Σ∗ | ∃TM T : fT = fL ∧ . . .} Bernhard Nessler Theoretische Informatik 1 Klassenstruktur NL-Vollständigkeit NP-Vollständigkeit Methoden zur Strukturierung NTM vs. DTM NL-Vollständigkeit Satz von Savitch, 1970 Kosten von NTM vs. DTM Überlegung: NTM Berechnungsbaum ist ein DAG Frage: Gibt es ein JA-Blatt? Zeitkosten steigen exponentiell NTIME(f (n)) ⊆ DTIME(ef (n)) =⇒ NL ⊆ P NP ⊆ EXP Platzkosten? NTM T : ST (n) = O(log(n)): Wie groß ist der DAG? Maximal 2O(log(n)) verschiedene Konfigurationen Abzählbar in O(log(n)) Platz Bernhard Nessler Theoretische Informatik 1 Klassenstruktur NL-Vollständigkeit NP-Vollständigkeit Methoden zur Strukturierung NTM vs. DTM NL-Vollständigkeit Satz von Savitch, 1970 NL-Vollständigkeit STCONN (a.k.a. PATH) ist NL-vollständig: STCONN ∈ NL (richtigen Weg raten) log zu zeigen: ∀A ∈ NL : A ≤m STCONN z.z: ∃ DTM R : ∀w ∈ Σ∗ : fSTCONN (fR (w)) = fA (w) d.h R übersetzt w in einen geeigneten Graphen Bedingung: SR (n) = O(log(n)) (Zeit ist egal!!) Lösung: ∀A ∈ NL : ∃ NTM T : fT = fA , ST = O(log(n)) also ∃ Berechnungsbaum für fT DAG Knoten=alle(!) mögl. Speicherzustände (2O(log(n)) ) DAG Kanten=gültige Konfigurationsübergänge Platzbedarf (aufzählen und prüfen): (O)(log(n)) Bernhard Nessler Theoretische Informatik 1 Klassenstruktur NL-Vollständigkeit NP-Vollständigkeit Methoden zur Strukturierung NTM vs. DTM NL-Vollständigkeit Satz von Savitch, 1970 STCONN deterministisch Banal: Breiten Suche (rekursiv) braucht O(n) Zeit und O(n) Platz (worst case) Savitch’s Idee: Halbiere den Weg Starte mit REACH(s,t,|V |) Reach(a,b,k ): Ist b von a in k Steps erreichbar? if k=1: if (a, b) ∈ E return YES else return NO else for c in V − {a, b} IF REACH(a,c,k /2) and REACH(c,b,k /2) return YES next c Bernhard Nessler Theoretische Informatik 1 Klassenstruktur NL-Vollständigkeit NP-Vollständigkeit Methoden zur Strukturierung NTM vs. DTM NL-Vollständigkeit Satz von Savitch, 1970 Satz von Savitch, 1970 NL ⊆ DSPACE(log 2 (n)) NSPACE(f (n)) ⊆ DSPACE(f (n)2 ) =⇒ NPSPACE = PSPACE polyNL=polyL Bernhard Nessler Theoretische Informatik 1 Klassenstruktur NL-Vollständigkeit NP-Vollständigkeit Methoden zur Strukturierung Ausflug in die Logik NP-Vollständigkeit Boolsche Logik Values: 0, 1 Variablen: x1 , . . . , xk Operatoren: ¬, ∨, ∧ Expressions: z.B: g(x1 , x2 , x3 ) = (x1 ∨ x3 ) ∧ (x2 ∨ x3 ) Distributivgesetze zum Ausmultiplizieren Explizite Darstellung von g: DNF (. ∧ . . .) ∨ (. ∧ . . .) ∨ . . . Implizite Darstellung von g: CNF (. ∨ . . .) ∧ (. ∨ . . .) ∧ . . . Quantoren: ∃, ∀ Alle nicht an Quantoren gebunden Variablen sind frei. Bernhard Nessler Theoretische Informatik 1 Klassenstruktur NL-Vollständigkeit NP-Vollständigkeit Methoden zur Strukturierung Ausflug in die Logik NP-Vollständigkeit Probleme Wandle CNF in DNF um (=lösen) CVP: berechne Wert von g(x1 , x2 , x3 ) (P-vollst) SAT, 3-SAT: Existiert Belegung, sodaß g(. . .) = 1? (NP-vollst) TQBF: quantifizierter Ausdruck wahr? (PSPACE-vollst) 2-SAT: höchstens 2 Variablen pro () (NL-vollst) Bernhard Nessler Theoretische Informatik 1 Klassenstruktur NL-Vollständigkeit NP-Vollständigkeit Methoden zur Strukturierung Ausflug in die Logik NP-Vollständigkeit NP-Vollständigkeit SAT (Erfüllbarkeit) (Satz von Cook-Levin) SAT ∈ NP: rate richtige Belegung z.z: ∀L ∈ NP : L ≤poly SAT m L ∈ NP ⇒ L ∈ PSPACE also... ∀L ∈ NP : ∃ NTM T : fT = fL , ST = O(p(n)) also: Konfigurationentableau p(n) ∗ p(n) Konstruiere eine Boolsche Formel F (. . .), sodaß: durch die freien Variablen die Anfangsbelegung w und jede theoretisch mögliche Tableaubelegung beschrieben werden kann, F (w, . . .) genau dann und nur dann erfüllbar ist, wenn wenn w ∈ L Konstruktion muß in O(poly (p(n))) Schritten möglich sein. Bernhard Nessler Theoretische Informatik 1 Klassenstruktur NL-Vollständigkeit NP-Vollständigkeit Methoden zur Strukturierung Sprachbeziehungen Klassenbeziehungen Methoden der Komplexitätstheorie(1) geg: Sprache A, Komplexitätsklasse C !! A ∈ C (obere Schranke gesucht) Entwerfe TM A und berechne Komplexität Verwende Reduktionen: log Finde A0 ∈ C ∧ A ≤m A0 log Zeige C ist abgeschlossen unter ≤m =⇒ A ∈ C !! A ∈ / C (untere Schranke gesucht) Bottleneck nachweisen (meist nur sehr tiefe Schranken) Verwende Klassenhierarchie: C 0 ) C log Zeige C 0 ist abgeschlossen unter ≤m 0 Finde C -vollständiges (schwerstes) Problem A0 log Zeige A0 ≤m A =⇒ A ∈ /C Bernhard Nessler Theoretische Informatik 1 Klassenstruktur NL-Vollständigkeit NP-Vollständigkeit Methoden zur Strukturierung Sprachbeziehungen Klassenbeziehungen Methoden der Komplexitätstheorie(2) geg: Komplexitätsklassen C und C 0 !! Inklusion C ⊆ C 0 Zeit-, Platzhierarchie: O(f (n)) ⊂ O(log n f (n)) Simulation: DTM vs. NTM: NP ⊆ PSPACE Konfigurationsgraph NSPACE(s) ⊆ DSPACE(s2 ), NL ⊆ P Vollständigkeit !! Klassen trennen C 6= C 0 Diagonalisierung: Hierarchiesätze Unterschiedliche Eigenschaften (Abgeschlossenheit, vollst.) Anzahlargumente Bernhard Nessler Theoretische Informatik 1