Theoretische Informatik 1 Teil 5 Bernhard Nessler Institut für Grundlagen der Informationsverabeitung TU Graz SS 2007
Übersicht 1 Problemklassen 2 NTM Nichtdeterministische Algorithmen 3
Problemarten Konstruktionsprobleme Zu einer Eingabe x (der Probleminstanz) soll die optimale Lösung, soferne 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!!
Sprachprobleme (=Entscheidungsprobleme) geg: Sprache L Σ und ein Wort w Σ ges: Ist w L characteristische Funktion: f L : Σ {0, 1} : f L (w) = { 1 w L 0 w L Sprache einer Entscheidungsfunktion: L = {w Σ f L (w) = 1}
Sprachprobleme vs. Konstruktionsprobleme Aus mehreren Ergebnissen eines Sprachproblems kann effizient auf die Lösung des zugrundeliegenden Konstruktionsproblems geschlossen werden. geg: ungerichteter Graph G = (V, E) (und k 1) ges 1: Enthält G eine Clique der Größe k? ges 2: Knotenmenge der größten Clique aus G. geg: TM T löst 1. Problem. Wie kann unter mithilfe von T das 2. Problem effizient gelöst werden? Lösungsidee: Kanten aus G entsprechend den Entscheidungen von T schrittweise entfernen.
NTM Nichtdeterministische Algorithmen Erweiterung des Rechnermodells: Definition (Nichtdeterministische k-band-tm) Eine k-band-ntm ist ein Tuplel T = (Q, Σ, Γ, δ, q 0,, F ) dessen Komponenten wie für eine k-band-dtm definiert sind, mit Ausnahme von δ : Q Γ 2 Q Γ {L,R,N}. δ(q, b) gibt also nicht eindeutig einen nächsten Schritt an, sondern repräsentiert die Menge der nunmehr möglichen nächsten Schritte, aus der durch Intuition (Orakel, Zeuge) ein Element ausgewählt wird. Konfigurationsrelation T wird erweitert. Konfigurationenfolge wird zu Berechnungsbaum.
NTM Nichtdeterministische Algorithmen Berechnungsbaum NTM Die Zeitkomplexität T T beziehen sich jetzt auf die maximale Tiefe des Berechnungsbaumes.
NTM Nichtdeterministische Algorithmen Bedeutung des Die algorithmische Leistung der NTM besteht darin, am Ende des Weges zu akzeptieren oder zu verwerfen. Berechnungsstärke bleibt unverändert Zeitkomplexität sinkt wesentlich (exponentiell?) Platzkomplexität sinkt unwesentlich NTM werden normalerweise nicht für Konstruktionsprobleme oder Funktionsberechnungen verwendet, sondern ausschließlich für Entscheidungsprobleme (Sprachprobleme). Vorteil: Wichtig ist nur, ob es einen Weg zu einer akzeptierenden Konfiguration gibt, Es muß also der Berechnungsbaum durchsucht werden.
NTM Nichtdeterministische Algorithmen in Algorithmen Guess & Check Rate eine Lösung des zugrunde liegenden Konstruktionsproblems und überprüfe, ob diese Lösung die Bedingungen des Entscheidungsproblems erfüllt. Beispiel TSP (Rundreise mit Gewicht K ): Rate nichtdeterministisch eine Kantenfolge e 1,..., e n Prüfe für jede Kante e i, ob e i G, sonst Antworte NEIN Summiere w(e i ) für alle Kanten der Folge Prüfe ob Summe K, sonst Antworte NEIN Antworte JA
Die Komplexitätstheorie betrachtet nur Probleme, die in endlicher Zeit berechnet werden können. Aus der Struktur der Kategorisierung der Probleme in eine Vielzahl von verschiedenen, teilweise überlappenden Mengen, erhofft man sich Erkenntnisse über die prinzipielle Natur der Komplexität, um daraus wiederum effizientere Algorithmen zu gewinnen oder Beweise über prinzipielle Schranken der Effizienz. Die Kategorisierung von Problemen erfolgt durch sog. Komplexitätsklassen, das sind Mengen von Problemen (Sprachen), die jeweils gemeinsame Komplexitätseigenschaften (Zeitbedarf, Platzbedarf) haben.
Deterministische Komlexitätsklassen Eingabelänge n, Zeitschranke t und Platzschranke s : N N Funktionenklassen: f : Σ Σ f FDTIME(t) DTM T : f T = f und T T (n) = O(t(n)) f FDSPACE(t) DTM T : f T = f und S T (n) = O(s(n)) Sprachklassen: A Σ A DTIME(t) DTM T : f T = f A und T T (n) = O(t(n)) A DSPACE(s) DTM T : f T = f A und T T (n) = O(s(n))
Häufig gebrauchte Komplexitätsklassen: L = DSPACE(log n) PSPACE = DSPACE(n k ) P = k N E = c N k N DTIME(n k ) DTIME(2 cn ) EXP = DTIME(2 nk ) FP = k N k N FDTIME(n k ) FL = FDSPACE(log n)
offline-turingmaschinen Zur Analyse von S T (logn): separates Eingabeband, nur lesen separates Ausgabeband, nur sequentiell schreiben Es wird nur der auf den Arbeitsbändern verbrauchte Platz berücksichtig.
Nichtdeterministische Komlexitätsklassen Eingabelänge n, Zeitschranke t und Platzschranke s : N N Sprachklassen: A Σ A NTIME(t) NTM T : f T = f A und T T (n) = O(t(n)) A NSPACE(s) NTM T : f T = f A und T T (n) = O(s(n))
Häufig gebrauchte Komplexitätsklassen: NL = NSPACE(log n) NPSPACE = NSPACE(n k ) NP = k N NE = c N k N NTIME(n k ) NTIME(2 cn ) NEXP = NTIME(2 nk ) k N
der grundlegendsten Klassen DTM ist Spezialfall der NTM P NP, E NE, EXP NEXP L NL, PSPACE NPSPACE Erweiterung der Ressourcen: P E EXP NP NE NEXP L PSPACE Platzkomplxität Zeitkomplexität P PSPACE, NP NPSPACE
REG sind die regulären Sprachen (EA). REG DSPACE(1) REG DTIME(n) CFL sind die Sprachen der kontextfreien Grammatiken. CFL P