Komplexitätstheorie Kap. 4: Grundlegende Ergebnisse...

Ähnliche Dokumente
19. Nichtdeterministische Turingmaschinen und ihre Komplexität

Bemerkungen: Ist der Wert von S(n) (und damit auch τ) unbekannt, so führt man das Verfahren nacheinander mit den Werten

Willkommen zur Vorlesung Komplexitätstheorie

Theoretische Informatik 2

Einfache Zusammenhänge

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

Unentscheidbarkeit des Halteproblems: Unterprogrammtechnik

13. Nichtdeterministische Turingmaschinen und ihre Komplexität

Informatik III. Christian Schindelhauer Wintersemester 2006/ Vorlesung

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

EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK

Theoretische Grundlagen der Informatik

Grundlagen der Theoretischen Informatik

Willkommen zur Vorlesung Komplexitätstheorie

Kapitel II : Zeit- und platzbeschränkte Berechnungen

Theoretische Informatik Kap 2: Berechnungstheorie

P, NP und NP -Vollständigkeit

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

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie

Theoretische Grundlagen der Informatik

Reduktionen. Formalisierung von Sprache A ist nicht schwerer als Sprache B.

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Beispiel einer nicht berechenbaren Funktion: Busy Beaver

Diskrete Mathematik II

Unentscheidbarkeit des Halteproblems: Unterprogrammtechnik

Vorlesungsskript. Komplexitätstheorie. Wintersemester 2004/2005

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie

Theoretische Informatik 1

Kapitel 4: Komplexitätstheorie Gliederung

2. Schriftliche Leistungskontrolle (EK)

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

Grundlagen der Theoretischen Informatik

Formale Grundlagen der Informatik 1 Kapitel 20

7. Übung TGI. Lorenz Hübschle-Schneider, Tobias Maier INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS. 1 Lorenz Hübschle-Schneider, Tobias Maier

Unentscheidbarkeit des Halteproblems, Unterprogrammtechnik

Mehrband-Turingmaschinen und die universelle Turingmaschine

Willkommen zur Vorlesung Komplexitätstheorie

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

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

13. ZEIT- UND PLATZKOMPLEXITÄT

Kapitel 3: Grundlegende Ergebnisse aus der Komplexitätstheorie Gliederung

Dank. Theoretische Informatik II. Komplexitätstheorie. Teil VI. Komplexitätstheorie. Vorlesung

Laufzeit einer DTM, Klasse DTIME

Entscheidungsprobleme

VL-06: Unentscheidbarkeit II. (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger

Theoretische Informatik 1

Johannes Blömer. Skript zur Vorlesung. Komplexitätstheorie. Universität Paderborn

Teil III. Komplexitätstheorie

Das Halteproblem für Turingmaschinen

Theoretische Informatik Kap 1: Formale Sprachen/Automatentheorie

Kapitel 4: Komplexitätstheorie Gliederung

Berechenbarkeit und Komplexität: Rekursive Aufzählbarkeit und die Technik der Reduktion

Beispiel: NTM. M = ({q 0,q 1,q 2 }, {0, 1}, {0, 1, #},δ, q 0, #, {q 2 }) q 2

Berechenbarkeit und Komplexität: Rekursive Aufzählbarkeit und die Technik der Reduktion

Kapitel 3: Berechnungstheorie Algorithmisch unlösbare Probleme. Einordnung

VL-03: Turing Maschinen II. (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger

Turing Maschinen II Wiederholung

Churchsche These. Die Menge der Turing-berechenbaren Funktionen ist genau die Menge der im intuitiven Sinne berechenbaren Funktionen.

Das Halteproblem. H = { M w M hält auf w}.

Theoretische Informatik. Probabilistische Turingmaschinen PTM PTM. Rainer Schrader. 10. Juni 2009

Informatik III. Arne Vater Wintersemester 2006/ Vorlesung

Komplexitätsklassen THEORETISCHE INFORMATIK VORGETRAGEN VON: ELIAS DROTLEFF

Theoretische Informatik 1

Unentscheidbare Probleme: Existenz, Diagonalsprache, Halteproblem

EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK 0. ORGANISATORISCHES UND ÜBERBLICK

EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK 0. ORGANISATORISCHES UND ÜBERBLICK

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Akzeptierbarkeit und Entscheidbarkeit. Teil V.

Komplexitätstheorie WiSe 2011/12 in Trier. Henning Fernau Universität Trier

Die oben aufgelisteten Sprachfamilien werden von oben nach unten echt mächtiger, d.h. die Familie der regulären Sprachen ist eine echte Teilfamilie

Berechnungsmodelle. Mathias Hecht. April 29, 2010

Theoretische Informatik für Wirtschaftsinformatik und Lehramt

Halteproblem/Kodierung von Turing-Maschinen

Turingmaschinen. Sabine Kuske: Turingmaschinen; 23.Juni 2008

Herzlich willkommen!!!

5. Universelle Maschinen und uniform rekursive Klassen

Präsenzübung Berechenbarkeit und Komplexität

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

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

Unentscheidbare Probleme: Diagonalisierung

1 Grundlagen. 1.1 Mathematische Grundlagen. : für fast alle n. : es gibt unendlich viele n. f g genau dann, wenn n N. f ae g genau dann, wenn ae

Entscheidungsprobleme

Probeklausur zur Vorlesung Berechenbarkeit und Komplexität

Berechenbarkeits- und Komplexitätstheorie

Einführung in die Theoretische Informatik

Rekursions- und Lerntheorie WiSe 2010/11; Univ. Trier

Informatik III. Christian Schindelhauer Wintersemester 2006/ Vorlesung

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

Unentscheidbarkeitssätze der Logik

Grundlagen der Theoretischen Informatik

Ein formales Berechnungsmodell: Turingmaschinen. Turingmaschinen 26 / 62

Turingautomaten Jörg Roth Turingautomaten

Grundlagen Theoretischer Informatik 2 WiSe 2011/12 in Trier. Henning Fernau Universität Trier

subexponentielle Algorithmen (d.h. Laufzeiten wie z. B. 2 n oder

Willkommen zur Vorlesung Komplexitätstheorie

Berechenbarkeit und Komplexität: Erläuterungen zur Turingmaschine

Übungsblatt 3. Vorlesung Theoretische Grundlagen der Informatik im WS 17/18

Asymptotische Komplexität

Rekursive Aufzählbarkeit Die Reduktion

Grundbegriffe der Informatik

Transkript:

Gliederung der Vorlesung 1. Analyse von Algorithmen 1.1 Motivation 1.2 Laufzeit von Algorithmen 1.3 Asymptotische Notationen 2. Entwurf von Algorithmen 2.1 Divide & Conquer 2.2 Dynamisches Programmieren 2.3 Probabilistische Algorithmen 3. Berechnungstheorie 3.1 Turing-Maschinen (TM) 3.2 RAM 3.3 Churchsche These 3.4 Unentscheidbarkeit 4. Grundlegende Ergebnisse aus der Komplexitätstheorie 4.1 Komplexitätsmaße/-klassen 4.2 Speed-up und Bandkompression 4.3 4.4 Nichtdeterministische TM 5. P = NP? Problem 5.1 Alternative Definition der Klasse NP 5.2 NP-vollständige Probleme 6. NP-vollständig Was nun? 6.1 Heuristiken 6.2 Approximationsalgorithmen 1

zur Erinnerung DTIME(t(n)) Klasse aller Sprachen, die mit O(t(n))-zeitbeschränkten Turing-Maschinen erkannt werden können DTAPE(s(n)) Klasse aller Sprachen, die mit O(s(n))-platzbeschränkten Turing-Maschinen erkannt werden können relevanter Aspekt Kann man weitere Sprachen erkennen, wenn mehr Ressourcen (/* Rechenzeit bzw. Speicherplatz */) zur Verfügung stehen? Hinweis: die betrachteten Turing-Maschinen können beliebig viele Bänder haben 2

die Antwort ist nicht ganz trivial, da mehr Ressourcen nicht immer mit mehr Leistungsfähigkeit einhergehen... Zu jeder vollständig definierten, berechenbaren Funktion r: N N gibt es monoton steigende, vollständig definierte berechenbare Funktionen s,t: N N, so daß gilt: DTAPE(s(n)) = DTAPE(r(n) s(n))) DTIME(t(n)) = DTIME(r(n) t(n)))... es gibt Funktionen, die als Zeit- bzw. Platzschranken nicht taugen!!! 3

für sinnvolle Zeit- bzw. Platzschranken gilt, was man erwartet, d.h. mehr Ressourcen implizieren mehr Leistungsfähigkeit Es seien s, S: N N vollständig definierte, berechenbare Funktionen mit s(n) o(s(n)). Ferner sei S eine sinnvolle Platzschranke. Dann gibt es eine Sprache L mit folgenden Eigenschaften: L DTAPE(S(n)) L DTAPE(s(n))) Es seien t, T: N N vollständig definierte, berechenbare Funktionen mit t(n) 2 o(t(n)). Ferner sei T eine sinnvolle Zeitschranke. Dann gibt es eine Sprache L mit folgenden Eigenschaften: L DTIME(T(n)) L DTIME(t(n))) 4

Begriff sinnvolle Platzschranke Es sei S: N N eine vollständig definierte, berechenbare Funktion. S heißt bandkonstruierbar, falls es eine Turing-Maschine M gibt, so daß für jedes n und jede Eingabe x mit x = n gilt: S M (x) = S(n). man kann M benutzen, um bei Eingabe von x auf einem Band einen Speicherbereich der Größe S( x ) zu markieren wenn man überprüfen will, ob eine Turing-Maschine M bei Eingabe von x mehr Speicherplatz... als S( x ) benötigt, genügt es zu überprüfen, ob M den markierten Bandbereich verläßt 5

Beispiele für bandkonstruierbare Funktionen S(n) = log(n) S(n) = n S(n) = n 3 S(n) = 2 n S(n) = 2 n2... 6

Hierarchiesatz für Platzkomplexitätsklassen Es seien s, S: N N vollständig definierte, berechenbare Funktionen mit s(n) o(s(n)). Ferner sei S bandkonstruierbar. Dann gibt es eine Sprache L mit folgenden Eigenschaften: L DTAPE(S(n)) L DTAPE(s(n)))... das wird mittels Diagonalisierung bewiesen 7

Hierarchiesatz für Platzkomplexitätsklassen der Beweis ist technisch einfach, da folgender Zusammenhang gilt DTAPE(s(n)) = DTAPE 1 (s(n))... man muß sich bei der Konstruktion der separierenden Sprache L nur mit 1-Band-Turing-Maschinen rumschlagen Effekt: man erhält eine sehr feine Hierarchie 8

Grundidee: man definiert eine Sprache L, so daß für jede 1-Band-TM M gilt: wenn M O(s(n))-bandbeschränkt ist, so ist L(M) L das geht wie üblich, d.h. für jede 1-Band-TM M sucht man nach einem x M mit einer der folgenden Eigenschaften: 1) M benötigt bei Eingabe von x M mehr Speicherplatz als erlaubt (/* Schranke: S( x M ) */) 2) M benötigt nicht mehr Speicherplatz als erlaubt und geht 2a) in den Endzustand q a oder 2b) in den Endzustand q r oder 2c) in keinen Endzustand Ansatz: falls 2a) eintritt, soll x M L gelten; sonst x M L 9

Problem wie bekommt man mit, daß 2c) eintritt... dieser Aspekt ist wichtig, weil nachzuweisen ist, daß es eine O(S(n))-platzbeschränkte TM gibt, die L entscheidet Es sei S: N N eine vollständig definierte, berechenbare Funktion. Dann ist die folgende Menge E entscheidbar: E = { cp(e,x) e ist Gödelnummer einer S(n)-bandbeschränkten TM M für die gilt: f M (x) ist definiert }... das Halteproblem für S(n)-bandbeschränkte Turing-Maschinen ist entscheidbar 10

das Halteproblem für S(n)-bandbeschränkte Turing-Maschinen ist entscheidbar, weil... Fakt 1: Fakt 2: Anzahl der bei Eingabe von x erreichbaren Konfigurationen einer solchen TM M ist beschränkt, sagen wir durch m falls M mehr als m Schritte rechnet, so muß M in eine Endlosschleife geraten sein (/* es tritt 2c) ein */) Realisierung: berechne m und laß M maximal m Schritte laufen 11

der Rest ist Technik und ein wenig Hintergrundwissen in Abhängigkeit von der TM M, von der Eingabe x und der Platzschranke S( x ) kann die Zeitschranke m berechnet werden... und zwar mit einer O(S(n))-platzbeschränkten TM die Arbeit von M bei Eingabe von x kann unter Verwendung einer geeignet gewählten universellen TM U simuliert werden (/* die universelle TM U bekommt als Eingabe die Gödelnummer e von M und x */)... eine geeignet gewählte universelle TM U benötigt nicht zu viele Ressourcen Hinweis: hier wird s(n) o(s(n)) gebraucht, da M O(s(n))-platzbeschränkt ist 12

Es gibt eine universelle Turing-Maschine U, die für alle e, x N folgendes leistet: wenn e Gödelnummer einer Turing-Maschine M ist, so gilt: f U (e,x) = f M (x) S U (bin(e)bbin(x)) c * S M (bin(x)) für ein c > 0 T U (bin(e)bbin(x)) c * T M (bin(x)) für ein c > 0... das leistet bereits unsere universelle 3-Band-TM Hinweis: c und c stören nicht (/* Bandkompressions- bzw. Speed-up-Theorem */) 13

Begriff sinnvolle Zeitschranke Es sei T: N N eine vollständig definierte, berechenbare Funktion. T heißt zeitkonstruierbar, falls es eine Turing-Maschine M gibt, so daß für jedes n und jede Eingabe x mit x = n gilt: T M (x) = T(n). man kann M benutzen, um bei Eingabe von x auf einem einem Speicherbereich T( x ) viele Zellen zu markieren wenn man überprüfen will, ob eine Turing-Maschine M bei Eingabe von x mehr Rechenzeit... als T( x ) benötigt, genügt es in jedem Schritt eine Markierung zu löschen; falls alle Markierungen gelöscht sind, ist klar, daß M die Zeitschranke überschritten hat 14

Beispiele für zeitkonstruierbare Funktionen T(n) = n T(n) = n 3 T(n) = 2 n T(n) = 2 n2...... die Zeitschranke T(n) = log(n) ist offenbar nicht konstruierbar 15

Hierarchiesatz für Zeitkomplexitätsklassen Es seien t, T: N N vollständig definierte, berechenbare Funktionen mit t(n) 2 o(t(n)). Ferner sei T zeitkonstruierbar. Dann gibt es eine Sprache L mit folgenden Eigenschaften: L DTIME(T(n)) L DTIME(t(n)))... das wird mittels Diagonalisierung bewiesen 16

Hierarchiesatz für Zeitkomplexitätsklassen hier wird es technisch schwieriger, da man sich bei der Konstruktion der separierenden Sprache L mit allen k-band-turing-maschinen rumschlagen muß... und das bekommt man nicht so richtig gut in den Griff man kann aber folgenden Zusammenhang ausnutzen DTIME(t(n)) DTIME 1 (t(n) 2 ) und sich wieder auf 1-Band-Turing-Maschinen konzentrieren Effekt: man erhält eine nicht so feine Hierarchie 17