Theoretische Informatik 2

Ähnliche Dokumente
Komplexität und Komplexitätsklassen

Theoretische Informatik 1

Komplexitätsklassen THEORETISCHE INFORMATIK VORGETRAGEN VON: ELIAS DROTLEFF

13. ZEIT- UND PLATZKOMPLEXITÄT

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

Zeitkomplexität (1) Proseminar Theoretische Informatik. Proseminar Theoretische Informatik: Lisa Dohrmann 1

Kapitel II : Zeit- und platzbeschränkte Berechnungen

Laufzeit einer DTM, Klasse DTIME

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Teil VI. Komplexitätstheorie.

Motivation. Formale Grundlagen der Informatik 1 Kapitel 10. Motivation. Motivation. Bisher haben wir mit TMs. Probleme gelöst/entschieden/berechnet.

Chaos?! Überblick. Beispiele für Rekurrenzen. fn := 3fn-1 + 4fn Beweisen. Abwickeln. Raten Summen. Formelsammlung. Suche nach einer Systematik

11. Woche: Turingmaschinen und Komplexität Rekursive Aufzählbarkeit, Entscheidbarkeit Laufzeit, Klassen DTIME und P

Polynomielle Verifizierer und NP

12. Woche: Verifizierer, nicht-deterministische Turingmaschine, Klasse NP

Komplexitätstheorie. Arfst Nickelsen Universität zu Lübeck Institut für Theoretische Informatik Wintersemester 2006/07. Stand 8.

Reelle Komplexität - Grundlagen II

5. Universelle Maschinen und uniform rekursive Klassen

Komplexitätstheorie. Markus Lohrey. Wintersemester 2009/2010. Universität Leipzig 09/STU-KT/

Herzlich willkommen!!!

Diskrete Mathematik II

Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie

P, NP und NP -Vollständigkeit

Kapitel 3: Grundlegende Ergebnisse aus der Komplexitätstheorie Gliederung

Nichtdeterministische Platzklassen

Die Komplexitätsklassen P und NP

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Ulrich Furbach. Sommersemester 2014

Proseminar Theoretische Informatik. Die Klasse NP. von Marlina Spanel

Speicherplatz-Komplexität 1 / 30

3.3 Laufzeit von Programmen

Theoretische Informatik 1

Einführung (1/3) Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (1) Vorlesungen zur Komplexitätstheorie.

Klausur: Berechenbarkeit und Komplexität (Niedermeier/Chen/Froese/Sorge, Sommersemester 2016)

Komplexita tstheorie eine erste Ubersicht. KTV bedeutet: Details erfahren Sie in der Komplexitätstheorie-Vorlesung.

Theoretische Informatik 1

Theoretische Informatik 2

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

8 Isomorphe, dünne und dichte Sprachen

Definition 98 Eine Turingmaschine heißt linear beschränkt (kurz: LBA), falls für alle q Q gilt:

Grundlagen der Theoretischen Informatik Prüfungsvorbereitung September 2013

Komplexität von Algorithmen Musterlösungen zu ausgewählten Übungsaufgaben

Theoretische Informatik. Berechenbarkeit

es gibt Probleme, die nicht berechenbar sind (z.b. Menge aller Funktionen N N und die Menge aller Sprachen sind überabzählbar)

Teil V. Weiterführende Themen, Teil 1: Kontextsensitive Sprachen und die Chomsky-Hierarchie

Einführung in die Theoretische Informatik I/ Grundlagen der Theoretischen Informatik. SS 2007 Jun.-Prof. Dr. Bernhard Beckert Ulrich Koch

Algorithmen und Datenstrukturen 1 Kapitel 5

Einwegfunktionen. Problemseminar. Komplexitätstheorie und Kryptographie. Martin Huschenbett. 30. Oktober 2008

Grundlagen der Theoretischen Informatik

Theoretische Grundlagen der Informatik

Speicherplatz-Komplexität 1 / 78

2. Schriftliche Leistungskontrolle (EK)

Berechenbarkeitstheorie 19. Vorlesung

Übung Algorithmen und Datenstrukturen

2 Wachstumsverhalten von Funktionen

Einführung in Algorithmen und Komplexität

FORMALE SYSTEME. Kompexitätsklassen. Deterministisch vs. nichtdeterministisch. Die Grenzen unseres Wissens. 25. Vorlesung: NP-Vollständigkeit

Theoretische Informatik. nichtdeterministische Turingmaschinen NDTM. Turingmaschinen. Rainer Schrader. 29. April 2009

TU Berlin Nachklausur TheGI 2 Automaten und Komplexität (Niedermeier/Hartung/Nichterlein, Sommersemester 2012)

Vorname Name Matrikelnummer 1. a) Benennen Sie die übrigen 6 Komponenten einer nicht-deterministischen Turingmaschine (TM): (3 Punkte)

abgeschlossen unter,,,, R,

Komplexitätstheorie. Markus Lohrey. Wintersemester 2016/2017. Universität Siegen

Theoretische Informatik 1

Klassische Informationstheorie: Berechenbarkeit und Komplexität

Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie

Willkommen zur Vorlesung Komplexitätstheorie

Präsenzübung Berechenbarkeit und Komplexität

WS 2009/10. Diskrete Strukturen

8 Komplexitätstheorie und Kryptologie

Komplexität des Äquivalenzproblems für reguläre Ausdrücke

14. Die polynomiell beschränkten Komplexitätsklassen. Die Grenzen der tatsächlichen Berechenbarkeit

FORMALE SYSTEME. 25. Vorlesung: NP-Vollständigkeit. TU Dresden, 23. Januar Markus Krötzsch Lehrstuhl Wissensbasierte Systeme

Kapitel 1.4. Exkurs: Entscheidbarkeit und Komplexität. Mathematische Logik (WS 2012/3) K. 1.4: Entscheidbarkeit und Komplexität 1/10

Formale Grundlagen der Informatik 1 Kapitel 12 Zusammenfassung

Modelle der Parallelverarbeitung

PROBEKLAUSUR SoSe 2016

Referatsausarbeitung

Formale Grundlagen der Informatik 1 Kapitel 23 NP-Vollständigkeit (Teil 2)

Theorie der Informatik

Übungsblatt Nr. 5. Lösungsvorschlag

Teil III. Komplexitätstheorie

... B B B w w w w w... w B B...

Komplexitätstheorie. Kapitel 6: Schaltkreise

Lösungen zur Vorlesung Berechenbarkeit und Komplexität

V. Claus, Juli 2005 Einführung in die Informatik II 45

Theoretische Informatik

Kapitel: Die Chomsky Hierarchie. Die Chomsky Hierarchie 1 / 14

Transkript:

Theoretische Informatik 2 Johannes Köbler Institut für Informatik Humboldt-Universität zu Berlin WS 2009/10

Zeitkomplexität von Turingmaschinen Die Laufzeit einer NTM M bei Eingabe x ist die maximale Anzahl an Rechenschritten, die M(x) ausführt. Definition Die Laufzeit einer NTM M bei Eingabe x ist definiert als time M (x) = max{t 0 K : K x t K}, wobei max N = ist. Sei t : N N eine monoton wachsende Funktion. Dann ist M t(n)-zeitbeschränkt, falls für alle Eingaben x gilt: time M (x) t( x ). Die Zeitschranke t(n) beschränkt also die Laufzeit bei allen Eingaben der Länge n (worst-case Komplexität).

Zeitkomplexitätsklassen Wir fassen alle Sprachen und Funktionen, die in einer vorgegebenen Zeitschranke t(n) entscheidbar bzw. berechenbar sind, in folgenden Komplexitätsklassen zusammen. Definition Die in deterministischer Zeit t(n) entscheidbaren Sprachen bilden die Sprachklasse DTIME(t(n)) = {L(M) M ist eine t(n)-zeitbeschränkte DTM}. Die in nichtdeterministischer Zeit t(n) entscheidbaren Sprachen bilden die Sprachklasse NTIME(t(n)) = {L(M) M ist eine t(n)-zeitbeschränkte NTM}. Die in deterministischer Zeit t(n) berechenbaren Funktionen bilden die Funktionenklasse { } es gibt eine t(n)-zeitbeschränkte FTIME(t(n)) = f. DTM M, die f berechnet

Die wichtigsten Zeitkomplexitätsklassen Die wichtigsten deterministischen Zeitkomplexitätsklassen sind LINTIME = DTIME(cn + c) c 1 P = DTIME(n c + c) c 1 E = DTIME(2 cn+c ) c 1 EXP = DTIME(2 nc +c ) c 1 Linearzeit Polynomialzeit Lineare Exponentialzeit Exponentialzeit Die nichtdeterministischen Klassen NLINTIME, NP, NE, NEXP und die Funktionenklassen FP, FE, FEXP sind analog definiert. Für eine Klasse F von Funktionen sei DTIME(F) = t F DTIME(t(n)) (die Klassen NTIME(F) und FTIME(F) seien analog definiert).

Asymptotische Laufzeit und Landau-Notation Definition Seien f und g Funktionen von N nach R +. Wir schreiben f (n) = O(g(n)), falls es Zahlen n 0 und c gibt mit n n 0 : f (n) c g(n). Bedeutung: f wächst nicht wesentlich schneller als g. Formal bezeichnet der Term O(g(n)) die Klasse aller Funktionen f, die obige Bedingung erfüllen. Die Gleichung f (n) = O(g(n)) drückt also in Wahrheit eine Element-Beziehung f O(g(n)) aus. O-Terme können auch auf der linken Seite vorkommen. In diesem Fall wird eine Inklusionsbeziehung ausgedrückt. So steht n 2 + O(n) = O(n 2 ) für die Aussage {n 2 + f f O(n)} O(n 2 ).

Asymptotische Laufzeit und Landau-Notation Beispiel 7 log(n) + n 3 = O(n 3 ) ist richtig. 7 log(n)n 3 = O(n 3 ) ist falsch. 2 n+o(1) = O(2 n ) ist richtig. 2 O(n) = O(2 n ) ist falsch (siehe Übungen). Mit der O-Notation lassen sich die wichtigsten deterministischen Zeitkomplexitätsklassen wie folgt charakterisieren: LINTIME = DTIME(O(n)) P = DTIME(n O(1) ) E = DTIME(2 O(n) ) EXP = DTIME(2 no(1) ) Linearzeit Polynomialzeit Lineare Exponentialzeit Exponentialzeit

Platzkomplexität von Turingmaschinen Als nächstes definieren wir den Platzverbrauch von NTMs. Intuitiv ist dies die Anzahl aller während einer Rechnung benutzten Bandfelder. Wollen wir auch sublinearen Platz sinnvoll definieren, so dürfen wir hierbei das Eingabeband offensichtlich nicht berücksichtigen. Um sicherzustellen, dass eine NTM M das Eingabeband nicht als Speicher benutzt, verlangen wir, dass M die Felder auf dem Eingabeband nicht verändert und sich nicht mehr als ein Feld von der Eingabe entfernt. Definition Eine NTM M heißt offline-ntm (oder NTM mit Eingabeband), falls für jede von M bei Eingabe x erreichbare Konfiguration K = (q, u 1, a 1, v 1,..., u k, a k, v k ) gilt, dass u 1 a 1 v 1 ein Teilwort von x ist.

Platzkomplexität von Turingmaschinen Definition Der Platzverbrauch einer offline-ntm M bei Eingabe x ist definiert als K = (q, u 1, a 1, v 1,..., u k, a k, v k ) space M (x) = max s 1 mit K x K und s = k u i a i v i. Sei s : N N eine monoton wachsende Funktion. i=2 M heißt s(n)-platzbeschränkt, falls für alle Eingaben x gilt: space M (x) s( x ).

Platzkomplexitätsklassen Wir fassen alle Sprachen, die in einer vorgegebenen Platzschranke s(n) entscheidbar sind, in folgenden Platzkomplexitätsklassen zusammen. Definition Die auf deterministischem Platz s(n) entscheidbaren Sprachen bilden die Klasse DSPACE(s(n)) = {L(M) M ist eine s(n)-platzb. offline-dtm}. Die auf nichtdeterministischem Platz s(n) entscheidbaren Sprachen bilden die Klasse NSPACE(s(n)) = {L(M) M ist eine s(n)-platzb. offline-ntm}.

Die wichtigsten Platzkomplexitätsklassen Die wichtigsten deterministischen Platzkomplexitätsklassen sind L = DSPACE(O(log n)) LINSPACE = DSPACE(O(n)) PSPACE = DSPACE(n O(1) ) Logarithmischer Platz Linearer Platz Polynomieller Platz Die nichtdeterministischen Klassen NL, NLINSPACE und NPSPACE sind analog definiert. Der Satz von Savitch besagt, dass NSPACE(s(n)) DSPACE(s 2 (n)) ist (dies wird in der VL Komplexitätstheorie gezeigt). Daher fallen die Klassen NPSPACE und PSPACE zusammen.

Die wichtigsten Zeit- und Platzkomplexitätsklassen Die wichtigsten Zeitkomplexitätsklassen sind LINTIME = DTIME(O(n)) Linearzeit P = DTIME(n O(1) ) Polynomialzeit NP = NTIME(n O(1) ) Nichtdet. Polynomialzeit E = DTIME(2 O(n) ) Lineare Exponentialzeit EXP = DTIME(2 no(1) ) Exponentialzeit Die wichtigsten Platzkomplexitätsklassen sind L = DSPACE(O(log n)) Logarithmischer Platz NL = NSPACE(O(log n)) Nichtdet. logarithmischer Platz LINSPACE = DSPACE(O(n)) Linearer Platz PSPACE = DSPACE(n O(1) ) Polynomieller Platz EXPSPACE = DSPACE(2 no(1) ) Exponentialer Platz

Elementare Beziehungen zwischen Komplexitätsklassen Frage Welche elementaren Beziehungen gelten zwischen den verschiedenen Zeitund Platzklassen? Satz Für jede Funktion s(n) log n gilt DSPACE(s) NSPACE(s) DTIME(2 O(s) ). Für jede Funktion t(n) n + 2 gilt DTIME(t) NTIME(t) DSPACE(t). Korollar Es gilt L NL P NP PSPACE EXP EXPSPACE.

Komplexitätsschranken für die Stufen der Chomsky-Hierarchie REG = DSPACE(O(1)) = NSPACE(O(1)) L, DCFL LINTIME, CFL NLINTIME DTIME(O(n 3 )) P, DCSL = LINSPACE CSL, CSL = NLINSPACE PSPACE E, REC = f DSPACE(f (n)) = f NSPACE(f (n)) = f DTIME(f (n)) = f NTIME(f (n)), wobei f alle (oder äquivalent: alle berechenbaren) Funktionen f : N N durchläuft. E CSL DCSL CFL DCFL RE REC EXP PSPACE NP P NL L REG