THEORETISCHE INFORMATIK UND LOGIK

Ähnliche Dokumente
Theoretische Grundlagen der Informatik

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

Unentscheidbarkeit. Vorlesung Berechenbarkeit und Komplexität alias Theoretische Informatik: Komplexitätstheorie und effiziente Algorithmen

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

Wir haben eine Beziehung zwischen entscheidbar und rekursiv aufzählbar hergeleitet.

Einführung in die Theoretische Informatik

Unentscheidbare Probleme: Diagonalisierung

Theoretische Informatik SS 03 Übung 3

11.1 Kontextsensitive und allgemeine Grammatiken

Ausgewählte unentscheidbare Sprachen

Theoretische Informatik 1

Turing-Maschinen. Definition 1. Eine deterministische Turing-Maschine (kurz DTM) ist ein 6- Dem endlichen Alphabet Σ von Eingabesymbolen.

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

Grundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben

Wie viel Mathematik kann ein Computer?

Grundlagen der Theoretischen Informatik

Probeklausur zur Vorlesung Berechenbarkeit und Komplexität

Theoretische Informatik

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

Einführung in die Theoretische Informatik

Berechenbarkeit und Komplexität

LOOP-Programme: Syntaktische Komponenten

Berechenbarkeit. Script, Kapitel 2

1 Prädikatenlogik: Korrektheit, Vollständigkeit, Entscheidbarkeit

Stefan Schmid TU Berlin & T-Labs, Berlin, Germany. Reduktionen in der Berechenbarkeitstheorie

Lösungen zur 3. Projektaufgabe TheGI1

Theorie der Informatik

Das Postsche Korrespondenzproblem

Grundlagen der Informatik Kapitel 19. Harald Krottmaier Sven Havemann

Theoretische Grundlagen der Informatik

Turing-Maschine. Berechenbarkeit und Komplexität Turing-Maschinen. Turing-Maschine. Beispiel

Einführung in die Theoretische Informatik

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

Mächtigkeit von WHILE-Programmen

Referat rekursive Mengen vs. rekursiv-aufzählbare Mengen

2. Übungsblatt 6.0 VU Theoretische Informatik und Logik

Rekursiv aufzählbare Sprachen

7. Übungsblatt zu Theoretische Grundlagen der Informatik im WS 2015/16

Automaten, Formale Sprachen und Berechenbarkeit I Wichtige Begriffe

Entscheidungsprobleme. Berechenbarkeit und Komplexität Entscheidbarkeit und Unentscheidbarkeit. Die Entscheidbarkeit von Problemen

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

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

Theorie der Informatik

Lösungen zur 1. Klausur. Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Einführung in die Theoretische Informatik

Einführung in die Informatik Turing Machines

Vorlesung Berechenbarkeit und Komplexität alias Theoretische Informatik: Komplexitätstheorie und effiziente Algorithmen. Wintersemester 2011/12

Einführung in die Computerlinguistik Berechenbarkeit, Entscheidbarkeit, Halteproblem

Aufgabentypen: Spickerblatt: kontextfrei (Typ 2): zusätzlich: u ist eine!"# v 1

Hauptklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2011/2012

GTI. Hannes Diener. 6. Juni Juni. ENC B-0123, diener@math.uni-siegen.de

1 Varianten von Turingmaschinen

abgeschlossen unter,,,, R,

Deterministische Turing-Maschinen

Formale Sprachen und Automaten

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

Kapitel 3: Berechnungstheorie Gliederung

Automaten und formale Sprachen Klausurvorbereitung

8. Turingmaschinen und kontextsensitive Sprachen

Einige Beispiele zur Turingmaschine

Einführung in die Informatik

Zur Vereinfachung betrachten wir nun nur noch Funktionen f, die einen Funktionswert f nµberechnen. Sie werden alle in einer Tabelle dargestellt:

Formale Methoden 2. Gaetano Geck Lehrstuhl I Logik in der Informatik WS 2015/2016

Lösungsvorschläge zu Blatt Nr. 6

Das Halteproblem. Ein unlösbares Problem der Informatik - 1 -

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

Übung zur Vorlesung Berechenbarkeit und Komplexität

Einführung in die Theoretische Informatik

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

Musterlösung zur Hauptklausur Theoretische Grundlagen der Informatik Wintersemester 2013/14

Theoretische Informatik. 1. Turingmaschinen. Rainer Schrader. 16. April Institut für Informatik. Turingmaschinen.

WS06/07 Referentin: Katharina Blinova. Formale Sprachen. Hauptseminar Intelligente Systeme Dozent: Prof. Dr. J. Rolshoven

Übungsblatt Nr. 5. Lösungsvorschlag

2.4 Kontextsensitive und Typ 0-Sprachen

Theoretische Informatik SS 03 Übung 4

Deterministische Turing-Maschinen (DTM) F3 03/04 p.46/395

Frank Heitmann 2/47. 1 Ein PDA beginnt im Startzustand z 0 und mit im Keller. 2 Ist der Automat

Theoretische Informatik Kap 2: Berechnungstheorie

LOOP-Programme: Syntaktische Komponenten

Einführung in die mathematische Logik

GTI. Hannes Diener. 18. Juni. ENC B-0123,

Algorithmen und Berechnungskomplexität II

Universelle Rechner und Church sche These

Wir suchen Antworten auf die folgenden Fragen: Was ist Berechenbarkeit? Wie kann man das intuitiv Berechenbare formal fassen?

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Probleme über Sprachen. Teil II.

Theoretische Informatik 1

Theoretische Informatik 2

Berechenbarkeitsmodelle

Maike Buchin 18. Februar 2016 Stef Sijben. Probeklausur. Theoretische Informatik. Bearbeitungszeit: 3 Stunden

Teil III. Komplexitätstheorie

Übung Theoretische Grundlagen

11. Übungsblatt. x y(top(push(x, y)) = y)

Probleme aus NP und die polynomielle Reduktion

Infovorkurs, Teil II: Theoretische Informatik. Motivation. Turing-Maschine. Programmiersprachen

Theorie der Informatik Einleitung. Theorie der Informatik Basisfunktionen und Einsetzung Primitive Rekursion. 14.

Reduzierbarkeit und das Post'sche Korrespondenzproblem

Syntax von LOOP-Programmen

2 2 Reguläre Sprachen. 2.2 Endliche Automaten. Übersicht

Transkript:

THEORETISCHE INFORMATIK UND LOGIK 4. Vorlesung: Das Halteproblem und Reduktionen Markus Krötzsch Lehrstuhl Wissensbasierte Systeme TU Dresden, 19. April 2017

Ankündigung Wegen großer Nachfrage wird eine Zusätzliche Übungsgruppe eingerichtet: Zeit: Donnerstag, 1. Doppelstunde Raum: APB E008 Tutor: Daniel Borchmann Bisher nicht eingeschriebene Studenten können sich ab sofort dafür eintragen (über jexam) Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 2 von 26

LOOP und WHILE, Reprise Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 3 von 26

Zusammenfassung LOOP und WHILE LOOP-Programme Terminieren immer Können fast alle praktisch relevanten Funktionen berechnen Können nicht jede berechenbare Funktion berechnen, z.b. Ackermann-Funktion, Sudan-Funktion, LOOP-Busy-Beaver WHILE-Programme Verallgemeinern LOOP Terminieren nicht immer Können alle berechenbaren totalen und partiellen Funktionen berechnen Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 4 von 26

Die Kraft des LOOP Auf der vorigen Folie steht: LOOP-Programme können fast alle praktisch relevanten Funktionen berechnen. Stimmt das wirklich? Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 5 von 26

Die Kraft des LOOP Auf der vorigen Folie steht: LOOP-Programme können fast alle praktisch relevanten Funktionen berechnen. Stimmt das wirklich? Idee: Die Schleife WHILE x!= 0 DO P END kann mit dem folgenden LOOP-Programm simuliert werden: LOOP max DO IF x!= 0 THEN P END END Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 5 von 26

Die Kraft des LOOP Auf der vorigen Folie steht: LOOP-Programme können fast alle praktisch relevanten Funktionen berechnen. Stimmt das wirklich? Idee: Die Schleife WHILE x!= 0 DO P END kann mit dem folgenden LOOP-Programm simuliert werden: LOOP max DO IF x!= 0 THEN P END END wenn man den Wert von max so setzt, dass er mindestens so groß ist wie die maximale Anzahl von Wiederholungen der simulierten WHILE-Schleife. Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 5 von 26

LOOP kann WHILE simulieren Erkenntnis: LOOP kann WHILE für beliebig viele Schritte simulieren man muss nur wissen, wie viele Schritte benötigt werden. Kann man das ausrechnen? Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 6 von 26

LOOP kann WHILE simulieren Erkenntnis: LOOP kann WHILE für beliebig viele Schritte simulieren man muss nur wissen, wie viele Schritte benötigt werden. Kann man das ausrechnen? Ja! Satz: Für ein beliebiges WHILE-Programm P sei max P (n 1,..., n k ) die maximale Anzahl an Schleifendurchläufen, die P bei der Eingabe n 1,..., n k abarbeitet, oder undefiniert, wenn P bei dieser Eingabe nicht terminiert. Diese partielle Funktion max P : N k N ist berechenbar. Beweisskizze: Man kann P leicht so modifizieren, dass es die Maximalzahl der Schleifendurchläufe bestimmt und ausgibt. Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 6 von 26

LOOP kann WHILE simulieren Erkenntnis: LOOP kann WHILE für beliebig viele Schritte simulieren man muss nur wissen, wie viele Schritte benötigt werden. Kann man das ausrechnen? Ja! Satz: Für ein beliebiges WHILE-Programm P sei max P (n 1,..., n k ) die maximale Anzahl an Schleifendurchläufen, die P bei der Eingabe n 1,..., n k abarbeitet, oder undefiniert, wenn P bei dieser Eingabe nicht terminiert. Diese partielle Funktion max P : N k N ist berechenbar. Beweisskizze: Man kann P leicht so modifizieren, dass es die Maximalzahl der Schleifendurchläufe bestimmt und ausgibt. Wo ist der Haken? Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 6 von 26

LOOP kann WHILE simulieren Erkenntnis: LOOP kann WHILE für beliebig viele Schritte simulieren man muss nur wissen, wie viele Schritte benötigt werden. Kann man das ausrechnen? Ja! Satz: Für ein beliebiges WHILE-Programm P sei max P (n 1,..., n k ) die maximale Anzahl an Schleifendurchläufen, die P bei der Eingabe n 1,..., n k abarbeitet, oder undefiniert, wenn P bei dieser Eingabe nicht terminiert. Diese partielle Funktion max P : N k N ist berechenbar. Beweisskizze: Man kann P leicht so modifizieren, dass es die Maximalzahl der Schleifendurchläufe bestimmt und ausgibt. Wo ist der Haken? Die Funktion max P ist zwar berechenbar, aber im Allgemeinen nicht LOOP-berechenbar. Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 6 von 26

Was kann LOOP? Es gibt aber viele Fälle, in denen man (eine obere Schranke von) max P LOOP-berechnen kann: Satz: Die folgenden Funktionen sind LOOP-berechenbar: n x für beliebige natürliche Zahlen n x n für beliebige natürliche Zahlen n n x für beliebige natürliche Zahlen n n...nx für beliebig hohe Türme von Exponenten n Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 7 von 26

Was kann LOOP? Es gibt aber viele Fälle, in denen man (eine obere Schranke von) max P LOOP-berechnen kann: Satz: Die folgenden Funktionen sind LOOP-berechenbar: n x für beliebige natürliche Zahlen n x n für beliebige natürliche Zahlen n n x für beliebige natürliche Zahlen n n...nx für beliebig hohe Türme von Exponenten n Korollar: Jeder Algorithmus, der in Zeit O(n...nx ) oder weniger läuft, berechnet eine LOOP-berechenbare Funktion. Insbesondere sind alle polynomiellen, exponentiellen oder mehrfach exponentiellen Algorithmen in LOOP implementierbar. Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 7 von 26

Universalität Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 8 von 26

Die Universalmaschine Eine erste wichtige Beobachtung Turings war, dass TMs stark genug sind um andere TMs zu simulieren: Schritt 1: Kodiere Turingmaschinen M als Wörter enc(m) Schritt 2: Konstruiere eine universelle Turingmaschine U, die enc(m) als Eingabe erhält und dann die Berechnung von M simuliert Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 9 von 26

Schritt 1: Turingmaschinen kodieren Jede vernünftige Kodierung einer TM M = Q, Σ, Γ, δ, q 0, F ist nutzbar, zum Beispiel die folgende (für DTMs): Wir verwenden das Alphabet {0, 1, #} Zustände werden in beliebiger Reihenfolge nummeriert (mit Startzustand q 0 ) und binär kodiert: Q = {q 0,..., q n } enc(q) = bin(0)# #bin(n) Wir kodieren auch Γ und die Bewegungsrichtungen {R, L, N} binär Ein Übergang δ(q i, σ n ) = q j, σ m, D wird als 5-Tupel kodiert: enc(q i, σ n ) = bin(i)#bin(n)#bin(j)#bin(m)#bin(d) Die Übergangsfunktion wird kodiert als Liste aller dieser Tupel, getrennt mit #: enc(δ) = ( enc(q i, σ n )# ) q i Q,σ i Γ Insgesamt setzten wir enc(m) = enc(q)##enc(σ)##enc(γ)##enc(δ)##enc(f) Passend dazu kann man auch beliebige Wörter kodieren: Für ein Wort w = a 1 a l setzen wir enc(w) = bin(a 1 )# #bin(a l ) Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 10 von 26

Schritt 2: Die universelle Turingmaschine Wir definieren die universelle TM U als Mehrbandturingmaschine: Band 1: Eingabeband von U: enthält enc(m)##enc(w) Band 2: Arbeitsband von U Band 3: Speichert den Zustand der simulierten Turingmaschine Band 4: Arbeitsband der simulierten Turingmaschine Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 11 von 26

Schritt 2: Die universelle Turingmaschine Wir definieren die universelle TM U als Mehrbandturingmaschine: Band 1: Eingabeband von U: enthält enc(m)##enc(w) Band 2: Arbeitsband von U Band 3: Speichert den Zustand der simulierten Turingmaschine Band 4: Arbeitsband der simulierten Turingmaschine Die Arbeitsweise von U ist leicht skizziert: U prüft Eingabe, kopiert enc(w) auf Band 4, verschiebt den Kopf auf Band 4 zum Anfang und initialisiert Band 3 mit enc(0). In jedem Schritt liest U ein (kodiertes) Zeichen von der aktuellen Kopfposition auf Band (4), sucht für den simulierten Zustand (Band 3) einen passenden Übergang in enc(m) auf Band 1: Übergang gefunden: setze Band 3 auf den neuen Zustand; ersetzt das kodierte Zeichen auf Band 4 durch das neue Zeichen; verschiebe den Kopf auf Band 4 entsprechend Übergang nicht gefunden: nimm Endzustand ein, falls der Zustand von Band 3 Endzustand in enc(m) ist; halte Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 11 von 26

Die Theorie der Software Satz: Es gibt eine universelle Turingmaschine U, die für Eingaben der Form enc(m)##enc(w) das Verhalten der DTM M auf w simuliert: Falls M auf w hält, dann hält U auf enc(m)##enc(w) mit dem gleichen Ergebnis Falls M auf w nicht hält, dann hält U auf enc(m)##enc(w) ebenfalls nicht Unsere Konstruktion ist für DTMs, die Sprachen erkennen DTMs, die Funktionen berechnen, können ähnlich simuliert werden. Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 12 von 26

Die Theorie der Software Satz: Es gibt eine universelle Turingmaschine U, die für Eingaben der Form enc(m)##enc(w) das Verhalten der DTM M auf w simuliert: Falls M auf w hält, dann hält U auf enc(m)##enc(w) mit dem gleichen Ergebnis Falls M auf w nicht hält, dann hält U auf enc(m)##enc(w) ebenfalls nicht Unsere Konstruktion ist für DTMs, die Sprachen erkennen DTMs, die Funktionen berechnen, können ähnlich simuliert werden. Praktische Konsequenzen: Universalrechner sind möglich Wir müssen nicht für jede neue Anwendung einen neuen Computer anschaffen Es gibt Software Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 12 von 26

Unentscheidbare Probleme und Reduktionen Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 13 von 26

Das Halteproblem Ein klassisches unentscheidbares Problem ist das Halteproblem: Das Halteproblem besteht in der folgenden Frage: Gegeben eine TM M und ein Wort w, wird M für die Eingabe w jemals anhalten? Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 14 von 26

Das Halteproblem Ein klassisches unentscheidbares Problem ist das Halteproblem: Das Halteproblem besteht in der folgenden Frage: Gegeben eine TM M und ein Wort w, wird M für die Eingabe w jemals anhalten? Wir können das Halteproblem formal als Entscheidungsproblem ausdrücken, wenn wir M und w kodieren: Das Halteproblem ist das Wortproblem für die Sprache P Halt = {enc(m)##enc(w) M hält bei Eingabe w}, wobei enc(m) und enc(w) geeignete Kodierungen von M und w sind, so dass ## als Trennwort verwendet werden kann. Anmerkung: Falsch kodierte Eingaben werden hier auch abgelehnt. Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 14 von 26

Beweis durch Intuition Satz: Das Halteproblem P Halt ist unentscheidbar. Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 15 von 26

Beweis durch Intuition Satz: Das Halteproblem P Halt ist unentscheidbar. Beweis: Das Gegenteil wäre zu schön um wahr zu sein. Viele ungelöste Probleme könnte man damit direkt lösen. Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 15 von 26

Beweis durch Intuition Satz: Das Halteproblem P Halt ist unentscheidbar. Beweis: Das Gegenteil wäre zu schön um wahr zu sein. Viele ungelöste Probleme könnte man damit direkt lösen. Beispiel: Die Goldbachsche Vermutung (Christian Goldbach, 1742) besagt, dass jede gerade Zahl n 4 die Summe zweier Primzahlen ist. Zum Beispiel ist 4 = 2 + 2 und 100 = 47 + 53. Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 15 von 26

Beweis durch Intuition Satz: Das Halteproblem P Halt ist unentscheidbar. Beweis: Das Gegenteil wäre zu schön um wahr zu sein. Viele ungelöste Probleme könnte man damit direkt lösen. Beispiel: Die Goldbachsche Vermutung (Christian Goldbach, 1742) besagt, dass jede gerade Zahl n 4 die Summe zweier Primzahlen ist. Zum Beispiel ist 4 = 2 + 2 und 100 = 47 + 53. Man kann leicht einen Algorithmus A angeben, der die Goldbachsche Vermuting systematisch verifiziert, d.h., für alle geraden Zahlen ab 4 testet: Erfolg: teste die nächste gerade Zahl Misserfolg: terminiere mit Meldung Goldbach hat sich geirrt! Die Frage Wird A halten? ist gleichbedeutend mit der Frage Gilt die Goldbachsche Vermutung nicht? Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 15 von 26 Vgl. 3. Übung, Aufg. 4: Mit P Halt kann man alle semi-entscheidbaren Probleme lösen

Abschweifung Ist die Goldbachsche Vermutung entscheidbar? Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 16 von 26

Beweis durch Diagonalisierung Satz: Das Halteproblem P Halt ist unentscheidbar. Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 17 von 26

Beweis durch Diagonalisierung Satz: Das Halteproblem P Halt ist unentscheidbar. Beweis: Per Widerspruch: Wir nehmen an, dass es einen Entscheider H für das Halteproblem gibt. Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 17 von 26

Beweis durch Diagonalisierung Satz: Das Halteproblem P Halt ist unentscheidbar. Beweis: Per Widerspruch: Wir nehmen an, dass es einen Entscheider H für das Halteproblem gibt. Dann kann man eine TM D konstruieren, die folgendes tut: (1) Prüfe, ob die Eingabe eine TM-Kodierung enc(m) ist (2) Simuliere H auf der Eingabe enc(m)##enc(enc(m)), d.h. prüfe, ob M auf enc(m) hält (3) Falls ja, dann gehe in eine Endlosschleife; falls nein, dann halte und akzeptiere Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 17 von 26

Beweis durch Diagonalisierung Satz: Das Halteproblem P Halt ist unentscheidbar. Beweis: Per Widerspruch: Wir nehmen an, dass es einen Entscheider H für das Halteproblem gibt. Dann kann man eine TM D konstruieren, die folgendes tut: (1) Prüfe, ob die Eingabe eine TM-Kodierung enc(m) ist (2) Simuliere H auf der Eingabe enc(m)##enc(enc(m)), d.h. prüfe, ob M auf enc(m) hält (3) Falls ja, dann gehe in eine Endlosschleife; falls nein, dann halte und akzeptiere Akzeptiert D die Eingabe enc(d)? Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 17 von 26

Beweis durch Diagonalisierung Satz: Das Halteproblem P Halt ist unentscheidbar. Beweis: Per Widerspruch: Wir nehmen an, dass es einen Entscheider H für das Halteproblem gibt. Dann kann man eine TM D konstruieren, die folgendes tut: (1) Prüfe, ob die Eingabe eine TM-Kodierung enc(m) ist (2) Simuliere H auf der Eingabe enc(m)##enc(enc(m)), d.h. prüfe, ob M auf enc(m) hält (3) Falls ja, dann gehe in eine Endlosschleife; falls nein, dann halte und akzeptiere Akzeptiert D die Eingabe enc(d)? D hält und akzeptiert genau dann wenn D nicht hält Widerspruch. Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 17 von 26

Beweis durch Reduktion Satz: Das Halteproblem P Halt ist unentscheidbar. Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 18 von 26

Beweis durch Reduktion Satz: Das Halteproblem P Halt ist unentscheidbar. Beweis: Nehmen wir an, das Halteproblem wäre entscheidbar. Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 18 von 26

Beweis durch Reduktion Satz: Das Halteproblem P Halt ist unentscheidbar. Beweis: Nehmen wir an, das Halteproblem wäre entscheidbar. Ein Algorithmus: Eingabe: (binärkodierte) natürliche Zahl k Iteriere über alle Turingmaschinen M mit k Zuständen über dem Arbeitsalphabet {x, }: Entscheide ob M bei leerer Eingabe ɛ hält (möglich, wenn das Halteproblem entscheidbar ist) Falls ja, dann simuliere M auf der leeren Eingabe und zähle nach der Terminierung von M die x auf dem Band (möglich, da es universelle Turingmaschinen gibt) Ausgabe: die maximale Zahl der geschriebenen x. Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 18 von 26

Beweis durch Reduktion Satz: Das Halteproblem P Halt ist unentscheidbar. Beweis: Nehmen wir an, das Halteproblem wäre entscheidbar. Ein Algorithmus: Eingabe: (binärkodierte) natürliche Zahl k Iteriere über alle Turingmaschinen M mit k Zuständen über dem Arbeitsalphabet {x, }: Entscheide ob M bei leerer Eingabe ɛ hält (möglich, wenn das Halteproblem entscheidbar ist) Falls ja, dann simuliere M auf der leeren Eingabe und zähle nach der Terminierung von M die x auf dem Band (möglich, da es universelle Turingmaschinen gibt) Ausgabe: die maximale Zahl der geschriebenen x. Dieser Algorithmus würde die Busy-Beaver-Funktion Σ : N N berechnen. Wir wissen, dass das unmöglich ist Widerspruch. Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 18 von 26

Turing-Reduktionen Unser Beweis konstruiert den Algorithmus für ein Problem (Busy Beaver) durch Aufruf von Subroutinen für ein anderes (Halteproblem) Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 19 von 26

Turing-Reduktionen Unser Beweis konstruiert den Algorithmus für ein Problem (Busy Beaver) durch Aufruf von Subroutinen für ein anderes (Halteproblem) Diese Idee lässt sich verallgemeinern: Ein Problem P ist Turing-reduzierbar auf ein Problem Q (in Symbolen: P T Q), wenn man P mit einem Programm lösen kann, welches ein Programm für Q als Unterprogramm aufrufen darf. Anmerkung: Das ist etwas informell. Eine ganz formelle Definition verwendet den Begriff des Orakels für Turingmaschinen. Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 19 von 26

Turing-Reduktionen Unser Beweis konstruiert den Algorithmus für ein Problem (Busy Beaver) durch Aufruf von Subroutinen für ein anderes (Halteproblem) Diese Idee lässt sich verallgemeinern: Ein Problem P ist Turing-reduzierbar auf ein Problem Q (in Symbolen: P T Q), wenn man P mit einem Programm lösen kann, welches ein Programm für Q als Unterprogramm aufrufen darf. Anmerkung: Das ist etwas informell. Eine ganz formelle Definition verwendet den Begriff des Orakels für Turingmaschinen. Beispiel: Unser Beweis basiert auf einer Turing-Reduktion der Berechnung der Busy-Beaver-Funktion auf das Halteproblem. Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 19 von 26

Turing-Reduktionen: Beispiel Beispiel: Das Nicht-Halteproblem P Halt, ist definiert als P Halt = {enc(m)##enc(w) M hält bei nicht Eingabe w} P Halt ist Turing-reduzierbar auf P Halt : (1) Prüfe Eingabeformat, (2) entscheide Halteproblem, (3) invertiere Ergebnis. Analog kann auch P Halt auf P Halt Turing-reduziert werden. Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 20 von 26

Turing-Reduktionen: Beispiel Beispiel: Das Nicht-Halteproblem P Halt, ist definiert als P Halt = {enc(m)##enc(w) M hält bei nicht Eingabe w} P Halt ist Turing-reduzierbar auf P Halt : (1) Prüfe Eingabeformat, (2) entscheide Halteproblem, (3) invertiere Ergebnis. Analog kann auch P Halt auf P Halt Turing-reduziert werden. Daraus ergibt sich: Satz: Das Nicht-Halteproblem P Halt ist unentscheidbar. Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 20 von 26

ɛ-halten Sonderfälle des Halteproblems sind in der Regel nicht einfacher: Das ɛ-halteproblem besteht in der folgenden Frage: Gegeben eine TM M, wird M für die leere Eingabe ɛ jemals anhalten? Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 21 von 26

ɛ-halten Sonderfälle des Halteproblems sind in der Regel nicht einfacher: Das ɛ-halteproblem besteht in der folgenden Frage: Gegeben eine TM M, wird M für die leere Eingabe ɛ jemals anhalten? Satz: Das ɛ-halteproblem ist unentscheidbar. Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 21 von 26

ɛ-halten Sonderfälle des Halteproblems sind in der Regel nicht einfacher: Das ɛ-halteproblem besteht in der folgenden Frage: Gegeben eine TM M, wird M für die leere Eingabe ɛ jemals anhalten? Satz: Das ɛ-halteproblem ist unentscheidbar. Beweis: Angenommen das Problem wäre entscheidbar. Ein Algorithmus: Eingabe: Eine Turingmaschine M und ein Wort w. Konstruiere eine TM M w, die zwei Schritte ausführt: (1) Lösche das Eingabeband und fülle es mit dem Wort w (2) Verarbeite diese Eingabe wie M Entscheide das ɛ-halteproblem für M w. Ausgabe: Ergebnis des ɛ-halteproblems Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 21 von 26

ɛ-halten Sonderfälle des Halteproblems sind in der Regel nicht einfacher: Das ɛ-halteproblem besteht in der folgenden Frage: Gegeben eine TM M, wird M für die leere Eingabe ɛ jemals anhalten? Satz: Das ɛ-halteproblem ist unentscheidbar. Beweis: Angenommen das Problem wäre entscheidbar. Ein Algorithmus: Eingabe: Eine Turingmaschine M und ein Wort w. Konstruiere eine TM M w, die zwei Schritte ausführt: (1) Lösche das Eingabeband und fülle es mit dem Wort w (2) Verarbeite diese Eingabe wie M Entscheide das ɛ-halteproblem für M w. Ausgabe: Ergebnis des ɛ-halteproblems Dies würde das Halteproblem entscheiden Widerspruch. Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 21 von 26

Beweistechniken im Vergleich Wir haben zwei ähnliche Unentscheidbarkeitsbeweise gesehen: Halteproblem Reduktion der Busy-Beaver-Funktion Algorithmus ruft Subroutine für Halteproblem exponentiell oft auf Ausgabe wird durch weitere TM-Simulationen berechnet ɛ-halteproblem Reduktion des Halteproblems Algorithmus ruft Subroutine für ɛ-halteproblem immer genau einmal auf Ausgabe ist das Ergebnis der ɛ-halteproblem-routine Turing-Reduktion! Turing-Reduktion? Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 22 von 26

Many-One-Reduktionen Idee: Beim ɛ-halteproblem verwenden wir das Halteproblem nicht als Subroutine eines komplexen Programms, sondern wir formen unser Problem in ein Halteproblem um Eine berechenbare totale Funktion f : Σ Σ ist eine Many-One- Reduktion von einer Sprache P auf eine Sprache Q (in Symbolen: P m Q), wenn für alle Wörter w Σ gilt: w P genau dann wenn f (w) Q Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 23 von 26

Many-One-Reduktionen Idee: Beim ɛ-halteproblem verwenden wir das Halteproblem nicht als Subroutine eines komplexen Programms, sondern wir formen unser Problem in ein Halteproblem um Eine berechenbare totale Funktion f : Σ Σ ist eine Many-One- Reduktion von einer Sprache P auf eine Sprache Q (in Symbolen: P m Q), wenn für alle Wörter w Σ gilt: w P genau dann wenn f (w) Q Beispiel: Die folgende Funktion definiert eine Many-One- Reduktion vom Halteproblem auf das ɛ-halteproblem: enc(m w ) falls v = enc(m)##enc(w) für eine TM M f (v) = # falls die Eingabe nicht korrekt kodiert ist Dabei ist M w die TM aus dem Beweis. Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 23 von 26

Entscheidbarkeit durch Reduktion Das folgende Resultat drückt die wesentliche Idee hinter Reduktionen aus: Satz: Wenn P m Q und Q entscheidbar ist, dann ist auch P entscheidbar. Beweis: Die Reduktion liefert einen Entscheidungsalgorithmus. Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 24 von 26

Entscheidbarkeit durch Reduktion Das folgende Resultat drückt die wesentliche Idee hinter Reduktionen aus: Satz: Wenn P m Q und Q entscheidbar ist, dann ist auch P entscheidbar. Beweis: Die Reduktion liefert einen Entscheidungsalgorithmus. Eigentlich benutzen wir bisher vor allem die Umkehrung: Satz: Wenn P m Q und P unentscheidbar ist, dann ist auch Q unentscheidbar. Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 24 von 26

Many-One vs. Turing Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 25 von 26

Many-One vs. Turing Many-One-Reduktionen sind schwächer als Turing-Reduktionen: Satz: Jede Many-One-Reduktion kann als Turing-Reduktion ausgedrückt werden. Beweis: Die Turing-Reduktion ergibt sich, wenn man die (berechenbare) Many-One-Reduktionsfunktion als Teil einer TM implementiert. Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 25 von 26

Many-One vs. Turing Many-One-Reduktionen sind schwächer als Turing-Reduktionen: Satz: Jede Many-One-Reduktion kann als Turing-Reduktion ausgedrückt werden. Beweis: Die Turing-Reduktion ergibt sich, wenn man die (berechenbare) Many-One-Reduktionsfunktion als Teil einer TM implementiert. Satz: Es gibt Probleme P und Q, für die P T P m Q. Q gilt, aber nicht Beweis: Wir haben bereits gesehen, dass P Halt T P Halt. Aber es gilt nicht P Halt m P Halt wir werden in der nächsten Vorlesung sehen, warum nicht. Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 25 von 26

Zusammenfassung und Ausblick LOOP-Programme können wirklich fast alle praktisch relevanten Probleme lösen Durch Reduktionen können wir aus der (Un)Lösbarkeit eines Problems die (Un)Lösbarkeit eines anderen ableiten Turing-Reduktionen P T Q verwenden die Lösung von Q als Subroutine in einem Algorithmus für P Many-One-Reduktionen P m Q Formen eine Problemstellung für P ind eine Problemstellung für Q um Was erwartet uns als nächstes? Mehr zu Semi-Entscheidbarkeit Ein unentscheidbares Problem von Emil Post...... und unendlich viele von Gordon Rice Markus Krötzsch, 19. April 2017 Theoretische Informatik und Logik Folie 26 von 26