Theoretische Informatik 1 Die Komplexitätsklasse P David Kappel Institut für Grundlagen der Informationsverarbeitung TU Graz SS 2012
Übersicht Äquivalenz von RM und TM Äquivalenz, Sätze Simulation DTM durch RM Sprachprobleme Problemarten Die Klasse P Definition P Zusammenfassung
Erinnerung: Erweiterte Church sche These Erweiterte Church sche These Jedes sinnvolle Prozessmodell kann effizient auf einem Standardmodell (Turing-Maschine, Registermaschine) simuliert werden. Effizient heißt, dass der Zeitverlust maximal polynomiell ist. Alonzo Church (1903-1995) 1 Diese These ist für alle bekannten Prozessmodelle bewiesen. 1 Aus Wikipedia - die freie Enzyklopädie
Äquivalenz RM und DTM Satz Zu jeder Registermaschine R gibt es eine Turingmaschine T, sodass für die jeweils berechneten (partiellen) Funktionen gilt: Satz f T (bin(x 1 )#bin(x 2 )#... #bin(x k )) = bin(f R (x 1,..., x k )). Zu jeder Turingmaschine T (mit Ausgabealphabet {0, 1}) gibt es eine Registermaschine R, sodass für die jeweils berechneten (partiellen) Funktionen gilt: f R (w 1, w 2,..., w w ) = bin 1 (f T (w))
Simulation RM durch DTM
Simulation RM durch DTM RM: Programm mit p Befehlen, Speicher r 0,..., r m 4-Band DTM: Σ = {0, 1, #}, Γ = {0, 1, #, } Band 1: Eingabe, Band 3: Ausgabe Band 4: Nebenrechnungen Band2: ###0#r 0 ##... ##bin(m)#bin(r m )### Q = Q 0 Q 1... Q p Q p+1 Q 0 -Zustände übersetzen Eingabe in Registerstruktur Q p+1 -Zustände übertragen Ergebnis r 0 auf Band 3 Q i, 1 i p simuliert Befehl i
Simulation RM durch DTM 2: ADD *24 = Q 2 1. suche ##11000#x# auf Band 2 (9q s) 2. kopiere x von Band 2 bis # auf Band 4 (1q) 3. suche ##x#y# auf Band 2 (4q s) 4. kopiere y von Band 2 bis # auf Band 4 (1q) 5. Rewind Band 2 zum Ende des Akkumulator (6q s) 6. Addiere bitweise Akkumulator zu Band 4 (2q) 7. Ersetzte Akkumulator durch Inhalt von Band 4 (4q s) Q 2 umfasst also 27 Einzelzustände siehe dazu Übungsaufgabe
Simulation DTM durch RM, Variante 1 Zentrale Frage: Wie wird das Band dargestellt? Variante 1: Ein Register pro Bandfeld, startend bei r 10 : Bandfelder nummerieren:..., F 2, F 1, F 0, F 1, F 2,... Kopfposition: r 1, Inhalt: r r1, Zustand: r 2 F k R 10+2k, F 0 r 10, F k r 10+2k 1 Rechts: = 2; Links: = 2 IF r 1 mod 2=1 THEN r 1 =r 1 + ELSE r 1 =r 1 - IF r 1 =8 THEN r 1 =11 ELSEIF r 1 =9 THEN r 1 =10, r 2, r r1 über IF-Tabelle bestimmen Nachteil: indirekte Adressierung notwendig
Simulation DTM durch RM, Variante 2 Variante 2: 2 Stacks in je einem Register Stack L in r 3 ist Bandinhalt links vom Kopf Stack R in r 4 ist Bandinhalt rechts vom Kopf Symbol unter dem Kopf in r 2, aktueller Zustand in r 1 Konfiguration: β m... β 0 qα 0... α n r 3 = β 0 + β 1 Γ +... + β m Γ m r 4 = α 1 + α 2 Γ +... + α n Γ n 1 r 2 = α 0 r 1 = q mover: r 3 = r 3 Γ + r 2 ; r 2 = r 4 mod Γ ; r 4 = r 4 div Γ movel: r 4 = r 4 Γ + r 2 ; r 2 = r 3 mod Γ ; r 3 = r 3 div Γ
Simulation DTM durch RM, Variante 2 δ(q 1, α 1 ) = (q 1, α 1, R) δ(q 2, α 2 ) = (q 2, α 2, L) δ(q 3, α 3 ) = (q 3, α 3, L), F = {q F 1,..., q Fk } Loop: IF r 1 = q 1 r 2 = α 1 THEN r 1 = q 1 ; r 2 = α 1 ;MoveR; ELSE IF r 1 = q 2 r 2 = α 2 THEN r 1 = q 2 ; r 2 = α 2 ;MoveL; ELSE IF r 1 = q 3 r 2 = α 2 THEN r 1 = q 3 ; r 2 = α 3 ;MoveL; ELSE IF... ELSE GOTO Rejected IF r 1 = q F 1... r 1 = q Fk GOTO Loop THEN GOTO ACCEPTED;
Kosten der Simulation Gegeben: RM mit Komplexität T R (n) Gesucht: T T (n) der äquivalenten DTM Satz T T (n) = O ( T 2 R (n)) Gegeben: DTM mit Komplexität T T (n) Gesucht: T R (n) der simulierenden RM Satz T R (n) = O ( T 2 T (n))
Problemarten Konstruktionsprobleme (Optimierungsprobleme) Zu einer Eingabe x (der Probleminstanz) soll die optimale Lösung, sofern sie existiert, bestimmt werden. Funktionsberechnungen Eingabe x, berechne f (x). Lösung ist eindeutig. Entscheidungsprobleme Eingabe x, Ausgabe JA/NEIN bzw 1/0 Größte Bedeutung für Komplexitätstheorie haben Entscheidungsprobleme Anstelle von Konstruktionsproblemen werden die zugehörigen Entscheidungsprobleme betrachtet Beachte: Eingabecodierung ist Teil der Problemdefinition!!
Formale Sprachen Formale Sprachen: Bestimmte Menge von Zeichenketten die aus einem Zeichenvorrat zusammengesetzt werden können. Jedes Entscheidungsproblem lässt sich als formale Sprache darstellen... als Menge der akzeptierten Inputs
Chomsky-Hierarchie Hierarchisches Schema formaler Sprachen. Umfasst 4 Typen formaler Sprachen. Jede Ebene grenzt die darüber ein: Chomsky-Hierarchie Typ-0: Rekursiv aufzählbaren Sprachen (von Turing-Maschine erkennbar) Typ-1: Kontextsensitiven Sprachen Typ-2: Kontextfreien Sprachen (Bsp: Palindrome {anna, otto,...}) Typ-3: Reguläre Sprachen (von endlichen Automaten erkennbar) Noam Chomsky (2005) 1 1 Aus Wikipedia - die freie Enzyklopädie
Formale Sprachen und Turing-Berechenbarkeit Definition (rekursiv aufzählbare Sprachen) Eine Sprache L Σ wird von einer DTM akzeptiert, gdw. DTM T : w L f T (w) = JA Definition (rekursive Sprachen) Eine Sprache L Σ wird von einer DTM entschieden, gdw. DTM T : w L f T (w) = JA w L f T (w) = NEIN (Beide sind Typ-0 Sprachen in der Chomsky-Hierarchie)
Die Klasse P Definition (Die Zeit-Komplexitätsklasse DTIME) Die Zeit-Komplexitätsklasse, DTIME(t(n)) ist die Menge aller Sprachen die von einer O(t(n))-zeitbeschränkten Turingmaschine entschieden werden können DTIME(t(n)) = { A Σ DTM T : f T = f A T T (n) = O(t(n)) } Definition (Die Klasse P) Die Klasse P ist die Menge aller Sprachen, die von einer DTM in polynomieller Zeit entschieden werden können. P = DTIME(n k ) k N Aber, Erweiterte Church sche These: Maschinenmodelle beliebig austauschbar P ist unabhängig von Maschinenmodell!
Beispiel REACH geg: Graph G = (V, E) V = {v 1, v 2,..., v m }; E = {(v i1, v i2 ),...} ges: Existiert ein Pfad von v 1 nach v m in G? REACH REACH = { G (v 1 = v m ) (v 1, v m ) E v i1, v i2,... v ik : {(s, v i1 ),..., (v ij, v ij+1 ),..., (v ik, t)} E} Zeige, dass REACH in P ist! Mit der Notation bezeichnen wir eine geeignete, effiziente Codierung als String der von einer TM verarbeitet werden kann
Beispiel RELPRIME geg: 2 Zahlen x, y ges: Haben x und y einen gemeinsamen Primfaktor? RELPRIME RELPRIME = { x, y k 2 N : k x k y } Zeige, dass RELPRIME in P ist! Benutze euklidischen Algorithmus zur Berechnung des gcd(x, y): Wenn gcd(x, y) = 1, dann x, y RELPRIME
Beispiel CVP (Circuit Value Problem) geg: Boolscher Schaltkreis C, Eingangsbelegung x ges: Liefert der (einzige) Ausgang von C eine 1? CVP CVP = { C, x C(x) = 1 } Zeige, dass CVP in P ist! Beachte: Die Kodierung von C lässt keine Makrobildung oder rekursive Definition zu!!
Beispiel PRIMES geg: Zahl x ges: Ist x eine Primzahl? CVP PRIMES = { x } x P Zeige, dass PRIMES in P ist! M. Agrawal, N. Kayal, and N. Saxena: Primes in P; Annals of Mathematics, 160 (2004), 781-793
(wahrscheinlich) nicht mehr in P Hat Graph G einen HAMILTON-Kreis? Hat Graph G eine CLIQUE der Größe k? Hat die Zahl x einen Teiler kleiner als y? Gibt es eine Belegung x, sodass C(x) = 1 ist?... Aber: CLIQUE(G,4) ist in P. (festes k!) Weil: Anzahl der möglichen Cliquen ist ( m 4) = O(m 4 )
Zusammenfassung Erweiterte Church sche These: Alle Maschinenmodelle beliebig austauschbar Registermaschine auf Turingmaschine in polynomieller Zeit simulierbar und vice versa Entscheidungsprobleme formale Sprachen Die Klasse P: Menge aller Sprachen, die von einer DTM in polynomieller Zeit entschieden werden können Aus Erweiterte Church sche These folgt: P ist unabhängig von Maschinenmodell!