Theoretische Informatik 1 - Institut für Grundlagen der

Werbung
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
Herunterladen