Theoretische Informatik 1 Nichtdeterminismus David Kappel Institut für Grundlagen der Informationsverarbeitung TU Graz SS 2012
Übersicht Nichtdeterminismus NTM Nichtdeterministische Turingmaschine Die Klasse NP Nichtdeterministische Algorithmen Die Klasse NP P vs. NP Das P vs. NP Problem Zusammenfassung
Motivation Wir wissen von sehr vielen Problemen nicht ob sie in polynomieller Zeit (bzw. effizient) lösbar sind Das trifft für viele relevante Probleme zu: das Traveling Salesman Problem (TSP), das Erfüllbarkeitsproblem von Boolschen Funktionen (SAT),... Wir können aber zeigen das durch eine kleine Erweiterung des Maschinenmodells polynomielle Algorithmen gefunden werden können Nichtdeterministische Turingmaschine
Nichtdeterminismus Programm einer Turingmaschine: deterministischer endlicher Automat Nichtdeterministische Turingmaschine (NTM): nicht-deterministischer endlicher Automat Ein deterministischer endlicher Automat hat in jedem Zustand maximal einen Zustandsübergang pro Symbol Ein nicht-deterministischer endlicher Automat kann in jedem Zustand mehrere Zustandsübergänge pro Symbol haben
Nichtdeterministische Turingmaschine Erweiterung des Maschinenmodells: Definition (Nichtdeterministische k-band-tm) Eine k-band-ntm ist ein Tupel T = (Q, Σ, Γ, δ, q 0,, F ) dessen Komponenten wie für eine k-band-dtm definiert sind, mit Ausnahme von δ : Q Γ P(Q Γ {,, }). δ(q, b) gibt also nicht eindeutig einen nächsten Schritt an, sondern repräsentiert die Menge der nunmehr möglichen nächsten Schritte. Konfigurationsrelation wird erweitert. T Konfigurationenfolge wird zu einem Berechnungsbaum.
Berechnungsbaum NTM
Entscheidungsprobleme Die algorithmische Leistung der NTM besteht darin, am Ende des Weges zu akzeptieren oder zu verwerfen. Eine NTM die eine Sprache entscheidet hat ausschließlich Pfade die akzeptieren oder verwerfen (keine die divergieren). Die Entscheidung der NTM heißt Ja, falls es zumindest einen akzeptierenden Pfad gibt Die Entscheidung der NTM heißt Nein wenn es keinen akzeptierenden Pfad gibt Asymmetrie zwischen JA und NEIN!
Laufzeitmessung einer NTM Die Zeitkosten einer NTM beziehen auf die maximale Tiefe des Berechnungsbaumes Definition (Laufzeit einer Entscheider NTM) Sei T eine NTM die eine Sprache entscheidet. Die Laufzeit t T von T ist die maximal auftretende Tiefe aller Pfade durch den Berechnungsbaum von T.
Guess & Check Nichtdeterminismus in Algorithmen Rate eine Lösung des Problems überprüfe, ob diese Lösung die Bedingungen des Entscheidungsproblems erfüllt Definition (Verifizierer) Ein Verifizierer für eine Sprache L ist ein Turingmaschine T, wobei L = {w Σ c Σ : T akzeptiert w, c } c wird Zertifikat oder Zeuge genannt und dient als Zusatzinformation. Der Zeitbedarf von T wird nur anhand der Länge von w bestimmt.
Rundreise Problem (TSP) Beispiel: TSP (Rundreise mit Gewichten): gegeben: n Städte Budget K Gewichte/Kosten für Reise zwischen den Städten (< K ) gesucht: Ist eine Rundreise (eine Reise die jede Stadt genau einmal besucht und wieder in der ersten Stadt endet) mit dem gegebenen Budget möglich?
Rundreise Problem (TSP) Das Rundreise Problem (TSP) ist in nichtdeterministischpolynomieller Zeit lösbar. Beweisskizze: Konstruktion einer NTM die TSP löst Rate nichtdeterministisch eine Rundreise (Zertifikat) Summiere Kosten für alle Kanten der Folge Wenn Summe K antworte Ja, sonst Antworte NEIN
Die Klasse NP Definition (Die Zeit-Komplexitätsklasse NTIME) Analog zu DTIME(t(n)), ist NTIME(t(n)) die Menge aller Sprachen die von einer O(t(n))-zeitbeschränkten NTM entschieden werden können. NTIME(t(n)) = { A Σ NTM T : f T = f A T T (n) = O(t(n)) } Definition (Die Klasse NP) Die Klasse NP ist die Menge aller Sprachen, die von einer NTM in polynomieller Zeit entschieden werden können. NP = NTIME(n k ) k N oder: die Menge der Sprachen die in polynomieller Zeit verifiziert werden können.
Beispiel CLIQUE geg: ungerichteter Graph G = (V, E) und Zahl k V = {v 1, v 2,..., v m }; E = {(v i1, v i2 ),...} (u, v) E (v, u) E ges: Existiert in G eine Clique der Größe k? CLIQUE CLIQUE = { G, k C V : C = k a, b C : (a, b) E} Zeige, dass CLIQUE in NP ist! siehe z.b. Sipser, Theorem 7.24
Bedeutung des Nichtdeterminismus Berechnungsstärke bleibt unverändert (NTM lässt sich auf DTM simulieren) Zeitkomplexität sinkt wesentlich (exponentiell?) Platzkomplexität sinkt unwesentlich
Das P vs. NP Problem P ist die Klasse von Sprachen die effizient entschieden werden können NP ist die Klasse von Sprachen die effizient verifiziert werden können Polynomielle Verifizierbarkeit scheint ein viel mächtigeres Konzept zu sein als Polynomielle Entscheidbarkeit Trotzdem: für keine einzige Sprache in NP konnte bisher bewiesen werden, dass sie nicht in P liegt!
Hinweise auf P NP Für keines der vielen Probleme in NP wurde bisher ein effizienter Algorithmus gefunden Aus P = NP ließen sich Konsequenzen ableiten von denen, im Moment ebenfalls angenommen wird das sie nicht zutreffen, z.b.: NP = CoNP Bisher aber kein Beweis...
CoP und CoNP Die komplementären Klassen zu P und NP werden CoP und CoNP genannt. Wir schreiben das Komplement einer Sprache L als L P ist abgeschlossen gegenüber dem Komplement, daher wenn L in P liegt, dann liegt auch L in P es gilt P = CoP
Beweis: P = CoP Da L in P liegt, gibt es eine DTM T die L entscheidet Wir konstruieren eine DTM T die T simuliert Für jeden verwerfenden Zustand von T geht T in einen akzeptierenden Zustand und umgekehrt Der Zeitverlust für die Berechnung ist Konstant, daher liegen T und T in der gleichen Komplexitätsklasse Für NP ist ein Beweis in dieser Form nicht möglich. Es wird angenommen das NP CoNP gilt
Zusammenfassung Nichtdeterministische Turingmaschine nicht-deterministischer endlicher Automat Die Klasse NP P vs. NP, es wird angenommen P NP