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

Größe: px
Ab Seite anzeigen:

Download "Vorlesung Berechenbarkeit und Komplexität alias Theoretische Informatik: Komplexitätstheorie und effiziente Algorithmen. Wintersemester 2014/15"

Transkript

1 Vorlesung Berechenbarkeit und Komplexität alias Theoretische Informatik: und effiziente Algorithmen Wintersemester 2014/15 Prof. Barbara König Übungsleitung: Henning Kerstan & Sebastian Küpper Barbara König BeKo/TI 1

2 Willkommen zu Berechenbarkeit und Komplexität (Bachelor Angewandte Informatik Ingenieur- und Medieninformatik, Duisburg) Theoretische Informatik: und effiziente Algorithmen (Bachelor Angewandte Informatik Systems Engineering & Lehramt, Essen) Barbara König BeKo/TI 2

3 Das heutige Programm Organisatorisches Vorstellung Ablauf der Vorlesung und der Übungen Prüfung Literatur & Folien Einführung und Motivation: Berechenbarkeit und Komplexität Inhalt der weiteren Vorlesung Barbara König BeKo/TI 3

4 Wer sind wir? Kontextsensitive und Typ-0-Sprachen Dozentin: Prof. Barbara König Raum LF 264 (Campus Duisburg) barbara Sprechstunde: nach Vereinbarung Übungsleitung: Henning Kerstan & Sebastian Küpper Raum LF 261 (Campus Duisburg) Web-Seite: Barbara König BeKo/TI 4

5 Vorlesungstermine Kontextsensitive und Typ-0-Sprachen Termine: Donnerstag, 14:15-15:45 Uhr Jeweils im Raum LB 134 (Duisburg) bzw. S07 S00 D07 (Essen) Videoübertragung in beide Räume Dozentin ist im Wechsel in Duisburg und Essen Barbara König BeKo/TI 5

6 Termine der Übungsgruppen/Tutorien Übungsgruppen in Duisburg: Mittwoch, 8:30-10:00 Uhr, Raum LC 137 (Gruppe D1) Donnerstag, 12:00-14:00 Uhr, Raum LC 137 (Gruppe D2) Donnerstag, 16:00-18:00 Uhr, Raum LC 137 (Gruppe D3) Übungsgruppen in Essen: Dienstag, 8:30-10:00 Uhr, Raum SH 403 (Gruppe E1) Donnerstag, 12:00-14:00 Uhr, Raum SH 403 (Gruppe E2) Donnerstag, 12:00-14:00 Uhr, Raum SE 108 (Gruppe E3) Barbara König BeKo/TI 6

7 Hinweise zu den Übungen Bitte versuchen Sie, sich möglichst gleichmäßig auf die Übungen zu verteilen. Besuchen Sie die Übungen und machen Sie die Hausaufgaben! Diesen Stoff kann man nur durch regelmäßiges Üben erlernen. Auswendiglernen hilft nicht besonders viel. Die Übungen beginnen in der dritten Semesterwoche am 28. Oktober. Barbara König BeKo/TI 7

8 Hinweise zu den Übungen Das Übungsblatt wird jeweils am Montag ins Netz gestellt. Das erste Übungsblatt wird am bereitgestellt. Die schriftlichen Aufgaben müssen bis spätestens Montag, 12 Uhr, der darauffolgenden Woche abgegeben werden. In dieser Woche wird dann auch das Übungsblatt besprochen. Abgabe durch Elektronische Abgabe über die Lernplattform Moodle oder Einwurf in einen Briefkasten: Duisburg: Briefkasten neben dem Raum LF259. Essen: im Moment ist kein Briefkasten vorgesehen Barbara König BeKo/TI 8

9 Hinweise zu den Übungen Bitte geben Sie auf Ihrer Lösung oben deutlich Ihren Namen, Ihre Gruppennummer, Ihre Matrikelnummer und das Fach an. Bitte heften Sie die Blätter ordentlich zusammen. Elektronische Abgaben sind nur als PDF zulässig! Bitte benennen Sie Dateien nach folgendem Schema (um eine eindeutige Namenswahl zu gewährleisten): <nachname>-<blattnr>.pdf Sie dürfen in Zweier-Gruppen abgeben, pro Gruppe nur eine Abgabe! Plagiate oder das Kopieren alter Musterlösungen sind selbstverständlich nicht erlaubt! In diesem Fall vergeben wir keine Punkte. Barbara König BeKo/TI 9

10 Lernplattform Moodle Wir verwenden Moodle, um: die Aufgabenblätter zur Verfügung zu stellen, Hausaufgaben elektronisch abzugeben und Video-Mitschnitte der Vorlesung (vom WS 12/13) zur Verfügung zu stellen. Moodle-2-Plattform an der Universität Duisburg-Essen: (siehe auch Link auf der Webseite) Bitte legen Sie dort einen Zugang an (falls noch nicht vorhanden) und tragen Sie sich in den Kurs Berechenbarkeit und Komplexität/Theoretische Informatik (Ingenieurwissenschaften Informatik und Angewandte Kognitionswissenschaft) ein. Zugangsschlüssel:... Barbara König BeKo/TI 10

11 Mündliche Prüfung/Klausur Es gibt mehrere Möglichkeiten, die Vorlesung prüfen zu lassen... Mündliche Prüfung (nur für Bachelor Duisburg) Mündliche Prüfung des Moduls Theoretische Informatik ( Automaten und Formale Sprachen, zusammen mit Berechenbarkeit und Komplexität ) Statt dieser mündlichen Prüfung kann man alternativ auch eine mündliche Prüfung in Rechnernetze und Sicherheit absolvieren. Termine (voraussichtlich): März 2015 Barbara König BeKo/TI 11

12 Mündliche Prüfung/Klausur Schriftliche Prüfung Klausur am Ende des Semesters (für alle Studierenden, auch Bachelor Duisburg, die die mündliche Prüfung nicht absolvieren) Termin: Freitag, 27. Februar 2015, 10:00 12:00 Uhr Räume: LA Mensa, LA 0034 (Duisburg) Anmeldung in beiden Fällen (schriftlich, mündlich) über das Prüfungsamt Für die Essener Bachelorstudiengänge ist eine Nachklausur vorgesehen (Termin und Raum wird noch festgelegt). Barbara König BeKo/TI 12

13 Mündliche Prüfung/Klausur Für beide Prüfungsformen gibt es eine Bonusregelung: Wenn Sie 50% der Hausaufgabenpunkte erzielt haben, so erhalten Sie einen Bonus für die Klausur und für die Modulprüfung. (Für das Vorrechnen in der Übung gibt es 10 Extrapunkte.) Auswirkung: Verbesserung um eine Notenstufe; z.b. von 2,3 auf 2,0 Für die mündliche Bachelor-Modulprüfung Theoretische Informatik (Duisburg): die Bonus-Voraussetzungen sind für jede Teilvorlesung ( Automaten und Formale Sprachen & Berechenbarkeit und Komplexität ) zu erfüllen. Barbara König BeKo/TI 13

14 Mündliche Prüfung/Klausur Staatsexamen Lehramtsstudierende, die Staatsexamen machen wollen, melden sich bitte (rechtzeitig) über das Landesprüfungsamt an. Die Prüfung wird in diesem Fall vom Landesprüfungsamt organisiert, wir kümmern uns nur um die Aufgabenstellung (und korrigieren die Klausur). Barbara König BeKo/TI 14

15 Literatur Kontextsensitive und Typ-0-Sprachen Die Vorlesung basiert im wesentlichen auf folgendem Buch: Uwe Schöning: Theoretische Informatik kurz gefasst. Spektrum, (5. Auflage) Barbara König BeKo/TI 15

16 Literatur Kontextsensitive und Typ-0-Sprachen Weitere relevante Bücher: Neuauflage eines alten Klassikers: Hopcroft, Motwani, Ullman: Introduction to Automata Theory, Languages, and Computation, Addison-Wesley, Auf Deutsch: Hopcroft, Motwani, Ullman: Einführung in die Automatentheorie, Formale Sprachen und, Pearson, Barbara König BeKo/TI 16

17 Literatur Kontextsensitive und Typ-0-Sprachen Vossen, Witt: Grundkurs Theoretische Informatik, vieweg, Barbara König BeKo/TI 17

18 Literatur Kontextsensitive und Typ-0-Sprachen Asteroth, Baier: Theoretische Informatik, Pearson, Barbara König BeKo/TI 18

19 Literatur Kontextsensitive und Typ-0-Sprachen Sipser: Introduction to the Theory of Computation, Thomson, Barbara König BeKo/TI 19

20 Folien Kontextsensitive und Typ-0-Sprachen Folien werden im Web als PDF bereitgestellt regelmäßig aktualisiert Die Folien werden sich gegenüber dem letzten Jahr relativ wenig verändern. Von daher macht es Sinn, sich die Folien des Vorjahres schon einmal anzusehen (Link: siehe Vorlesungs-Webseite). Barbara König BeKo/TI 20

21 Inhalt der Vorlesung Inhalt der Vorgänger-Vorlesung Automaten und Formale Sprachen : die untersten beiden Stufen der Chomsky-Hierarchie Reguläre Sprachen (Chomsky Typ-3) reguläre Grammatiken, (deterministische und nichtdeterministische) endliche Automaten, reguläre Ausdrücke, Pumping-Lemma, Minimalautomat, Abschlusseigenschaften, Entscheidbarkeitsresultate Kontextfreie Sprachen (Chomsky Typ-2) kontextfreie Grammatiken, Normalformen, Pumping-Lemma, Abschlusseigenschaften, CYK-Algorithmus, Kellerautomaten, deterministisch kontextfreie Sprachen, Entscheidbarkeitsresultate Barbara König BeKo/TI 21

22 Inhalt der Vorlesung Und was kommt jetzt? Wir beschäftigen uns mit den verbleibenden beiden Stufen der Chomsky-Hierarchie: Chomsky Typ-1 und Chomsky Typ-0. Die Theorie der Typ-0-Sprachen ist im wesentlichen : Welche Sprachen sind überhaupt mit (informatischen) Maschinen akzeptierbar? Welche Funktionen sind überhaupt berechenbar? Bei : Fokus liegt etwas mehr auf berechenbaren Funktionen Und als letztes Kapitel: Welche Sprachen kann man akzeptieren, wenn die Resourcen (Zeit, Platz) beschränkt sind? Beispielsweise: was kann man alles in polynomieller Zeit erreichen? Barbara König BeKo/TI 22

23 Chomsky-Hierarchie Grammatik (Wiederholung) Eine Grammatik G ist ein 4-Tupel G = (V, Σ, P, S), das folgende Bedingungen erfüllt: V ist eine endliche Menge von Nicht-Terminalen bzw. Variablen Σ ist das (endliche) Alphabet bzw. die Menge der Terminal(symbol)e. P ist eine endliche Menge von Regeln bzw. Produktionen mit P (V Σ) + (V Σ). S V ist die Startvariable bzw. das Axiom. Barbara König BeKo/TI 23

24 Chomsky-Hierarchie Die von einer Grammatik erzeugte Sprache (Wiederholung) Die von einer Grammatik G = (V, Σ, P, S) erzeugte Sprache ist L(G) = {w Σ S G w}. (Menge aller Wörter aus Alphabetsymbolen, die aus der Startvariable S ableitbar sind.) Barbara König BeKo/TI 24

25 Chomsky-Hierarchie Beispiel: Die Grammatik G = ({S, A, B}, {a, b}, P, S) mit folgender Produktionenmenge P: S ABS ε AB BA BA AB A a B b erzeugt die Sprache: L = {w {a, b} # a (w) = # b (w)}. (# a (w): Anzahl der a s im Wort w) Barbara König BeKo/TI 25

26 Chomsky-Hierarchie Typ-0-Grammatiken: keine Einschränkung Typ-1-Grammatiken: linke Seite rechte Seite (Wortproblem ist hier noch entscheidbar.) Eine Sprache L Σ ist vom Typ i, wenn sie von einer Typ-i-Grammatik erzeugt wird. Menge aller Sprachen Typ-0-Sprachen semi-entscheidbare Sprachen Typ-1-Sprachen kontextsensitive Sprachen Typ-2-Sprachen kontextfreie Sprachen Typ-3-Sprachen reguläre Sprachen Barbara König BeKo/TI 26

27 Berechnungsmodelle Was bedeutet es überhaupt im Allgemeinen, dass eine Funktion berechenbar oder eine Sprache akzeptierbar ist? Wie kann man ein generelles Berechnungsmodell definieren? Was ist das Maschinenmodell für Chomsky-0-Sprachen? Barbara König BeKo/TI 27

28 Berechnungsmodelle Im Laufe der Zeit sind mehrere Berechnungsmodelle entwickelt worden, die jedoch alle zueinander äquivalent sind: Turing-Maschinen (benannt nach Alan Turing) While-Programme, Goto-Programme µ-rekursive Funktionen Turing-Maschinen mit entsprechender Beschränkung dienen auch als Maschinenmodell für Chomsky-1-Sprachen Barbara König BeKo/TI 28

29 Unentscheidbarkeit Kontextsensitive und Typ-0-Sprachen Gibt es Sprachen, für die das Wortproblem (w L?) nicht entscheidbar ist? Antwort: ja Kann man Funktionen definieren, die nicht berechenbar sind? Das heißt, es gibt keine Turing-Maschine/kein While-Programm/keine µ-rekursive Funktion, die diese Funktion berechnet? Antwort: ja Außerdem: Wie zeigt man diese negativen Resultate? Barbara König BeKo/TI 29

30 Unentscheidbarkeit Kontextsensitive und Typ-0-Sprachen Die Mutter aller unentscheidbaren Probleme: das Halteproblem Gegeben sei eine Turing-Maschine (oder einfach ein Programm) M und eine Eingabe w Σ. Frage: Terminiert M bei Eingabe w? Das Halteproblem ist unentscheidbar, das heißt, es gibt kein Verfahren, das gegeben M und w immer entscheidet, ob M mit Eingabe w terminiert oder nicht. Wir werden die Unentscheidbarkeit des Halteproblems im Rahmen der Vorlesung zeigen. (Der Beweis ist überraschend kurz und elegant.) Barbara König BeKo/TI 30

31 Unentscheidbarkeit Kontextsensitive und Typ-0-Sprachen Intuition: Warum ist das Halteproblem unentscheidbar? Man könnte doch einfach M mit Eingabe w laufenlassen und nachsehen was passiert... Wenn M nach einer endlichen Anzahl von Schritten von terminiert, dann hat man Gewissheit. Aber: wenn M nach Schritten noch nicht terminiert hat, was dann? Nochmal Schritte weiterlaufen lassen? Barbara König BeKo/TI 31

32 Unentscheidbarkeit Kontextsensitive und Typ-0-Sprachen Neben dem Halteproblem gibt es noch viele andere wichtige unentscheidbare Probleme, z.b., das Schnittproblem für kontextfreie Sprachen. Gegeben zwei kontextfreie Grammatiken für Sprachen L 1, L 2. Gilt L 1 L 2 =? Beweistechnik: Man zeigt die Unentscheidbarkeit solcher Probleme meistens durch einen Widerspruchsbeweis. Wenn dieses Problem entscheidbar wäre, dann wäre auch das Halteproblem entscheidbar. Dazu kodiert man das Halteproblem so um, dass daraus eine Instanz eines solchen Problems wird. Barbara König BeKo/TI 32

33 Turingmaschinen Kontextsensitive und Typ-0-Sprachen Schematische Darstellung einer Turing-Maschine: Kopf kann sich nach links und rechts bewegen und Zeichen überschreiben e i n g a b e Automat mit endlich vielen Zuständen Signal für Endzustand Barbara König BeKo/TI 33

34 Turingmaschinen Kontextsensitive und Typ-0-Sprachen Eigenschaften von Turing-Maschinen: Wie endliche Automaten lesen Turing-Maschinen eine Eingabe von einem Band und haben endlich viele Zustände. Unterschied zu endlichen Automaten: der Lesekopf kann sich nach links und rechts bewegen und auch Zeichen überschreiben. Falls nur Zeichen der Eingabe überschrieben werden: Turing-Maschine heißt linear beschränkt (Maschinenmodell für Chomsy-1-Sprachen). Falls der Lesekopf auch über den linken und rechten Rand hinauslaufen und dort schreiben kann: allgemeine Turingmaschine mit unbeschränktem Band (Maschinenmodell für Chomsy-0-Sprachen). Barbara König BeKo/TI 34

35 Turingmaschinen Kontextsensitive und Typ-0-Sprachen Turing-Maschinen und Computer: Das Konzept der Turing-Maschine wurde von Alan Turing 1936 erfunden, noch bevor die ersten echten Computer gebaut wurden. Es ist nicht nur aus historischen Gründen interessant, sondern auch, weil es ein sehr einfaches Berechnungsmodell darstellt. Wenn man zeigen will, dass etwas nicht berechenbar ist, dann ist es viel besser, dies mit einem möglichst einfachen Berechnungsmodell zu tun. (Natürlich sollte man vorher sicherstellen, dass dieses Berechnungsmodell äquivalent zu komplexeren Modellen ist.) Analogie zu einem heutigen Computer: Kontrolle mit endlich vielen Zuständen Programm (Eingabe-)Band Speicher Barbara König BeKo/TI 35

36 Turingmaschinen Kontextsensitive und Typ-0-Sprachen Beispiel 1: Turing-Maschine, die eine Binärzahl auf dem Band um eins inkrementiert. Idee: Kopf der Turing-Maschine steht zunächst auf dem am weitesten links befindlichen (höchstwertigen) Bit der Binärzahl. Kopf nach rechts laufen lassen, bis ein Leerzeichen gefunden wird. Dann wieder nach links laufen und jede 1 durch 0 ersetzen, solange bis eine 0 oder ein Leerzeichen auftaucht. Dieses Zeichen dann durch 1 ersetzen, bis zum Zahlanfang laufen und in einen Endzustand übergehen. Barbara König BeKo/TI 36

37 Turingmaschinen Kontextsensitive und Typ-0-Sprachen Simulation Zustand: Zahlende finden z 0 : Leerzeichen auf dem Band Barbara König BeKo/TI 37

38 Turingmaschinen Kontextsensitive und Typ-0-Sprachen Simulation Zustand: Zahlende finden z 0 : Leerzeichen auf dem Band Barbara König BeKo/TI 37

39 Turingmaschinen Kontextsensitive und Typ-0-Sprachen Simulation Zustand: Zahlende finden z 0 : Leerzeichen auf dem Band Barbara König BeKo/TI 37

40 Turingmaschinen Kontextsensitive und Typ-0-Sprachen Simulation Zustand: Zahlende finden z 0 : Leerzeichen auf dem Band Barbara König BeKo/TI 37

41 Turingmaschinen Kontextsensitive und Typ-0-Sprachen Simulation Zustand: Zahlende finden z 0 : Leerzeichen auf dem Band Barbara König BeKo/TI 37

42 Turingmaschinen Kontextsensitive und Typ-0-Sprachen Simulation Zustand: Zahlende finden z 0 : Leerzeichen auf dem Band Barbara König BeKo/TI 37

43 Turingmaschinen Kontextsensitive und Typ-0-Sprachen Simulation Zustand: 1 durch 0 ersetzen z 1 : Leerzeichen auf dem Band Barbara König BeKo/TI 37

44 Turingmaschinen Kontextsensitive und Typ-0-Sprachen Simulation Zustand: 1 durch 0 ersetzen z 1 : Leerzeichen auf dem Band Barbara König BeKo/TI 37

45 Turingmaschinen Kontextsensitive und Typ-0-Sprachen Simulation Zustand: 1 durch 0 ersetzen z 1 : Leerzeichen auf dem Band Barbara König BeKo/TI 37

46 Turingmaschinen Kontextsensitive und Typ-0-Sprachen Simulation Zustand: 1 durch 0 ersetzen z 1 : Leerzeichen auf dem Band Barbara König BeKo/TI 37

47 Turingmaschinen Kontextsensitive und Typ-0-Sprachen Simulation Zustand: zurück zum Zahlanfang z 2 : Leerzeichen auf dem Band Barbara König BeKo/TI 37

48 Turingmaschinen Kontextsensitive und Typ-0-Sprachen Simulation Zustand: zurück zum Zahlanfang z 2 : Leerzeichen auf dem Band Barbara König BeKo/TI 37

49 Turingmaschinen Kontextsensitive und Typ-0-Sprachen Simulation Zustand: Ende z e : Leerzeichen auf dem Band Barbara König BeKo/TI 37

50 Turingmaschinen Kontextsensitive und Typ-0-Sprachen Beispiel 2: Turing-Maschinen zur Spracherkennung Wir suchen eine Turing-Maschine, die die Sprache L = {0 2n n 0} (nicht kontextfrei) erkennt. Idee: Kopf steht zunächst am Beginn der Folge von Nullen. Anfang und Ende der Folge von Nullen markieren. Links neben der Folge von Nullen die Binärzahl 0 aufs Band schreiben. Nullen nacheinander durch ein anderes Zeichen (#) ersetzen. Nach jeder Ersetzung nach links zum Zähler laufen und diesen um eins inkrementieren. Sobald alle Nullen verschwunden sind (Endmarker ist erreicht), überprüfen, ob der Zähler die Form hat. In diesem Fall Übergang in einen Endzustand. Barbara König BeKo/TI 38

51 Turingmaschinen Kontextsensitive und Typ-0-Sprachen Turingmaschine (Definition) Eine (deterministische) Turingmaschine M ist ein 7-Tupel M = (Z, Σ, Γ, δ, z 0,, E), wobei Z die endliche Menge der Zustände, Σ das Eingabealphabet, Γ mit Γ Σ das Arbeitsalphabet oder Bandalphabet, z 0 Z der Startzustand, δ : Z Γ Z Γ {L, R, N} die Überführungsfunktion, Γ\Σ das Leerzeichen oder Blank und E Z die Menge der Endzustände ist. Abkürzung: TM Barbara König BeKo/TI 39

52 Turingmaschinen Kontextsensitive und Typ-0-Sprachen Bedeutung der Überführungsfunktion: sei δ(z, a) = (z, b, x) mit x {L, R, N}. Falls die Turingmaschine im Zustand z auf dem Symbol a steht, so wechselt sie in den Zustand z, überschreibt a durch b und führt folgende Kopfbewegung aus. Kopf einen Schritt nach links, falls x = L. Kopf bleibt stehen, falls x = N. Kopf einen Schritt nach rechts, falls x = R. Barbara König BeKo/TI 40

53 Turingmaschinen Kontextsensitive und Typ-0-Sprachen Wir fordern noch folgende Bedingung für Turingmaschinen: Bedingung für Endzustände Für z E gilt für alle a Σ δ(z, a) = (z, a, N) D.h., in einem Endzustand werden die Kopfposition, das Band und der Zustand nicht mehr verändert. Barbara König BeKo/TI 41

54 Turingmaschinen Kontextsensitive und Typ-0-Sprachen Neben deterministischen Turingmaschinen gibt es auch nichtdeterministische Turingmaschinen. Überführungsfunktion für nichtdeterministische Turingmaschinen: δ : Z Γ P(Z Γ {L, R, N}). Jedem Zustand und Bandsymbol wird eine (eventuell leere) Menge von möglichen Aktionen zugeordnet. Dabei gilt auch, dass es in einem Endzustand keine Veränderungen mehr geben darf. Das heißt für z E gilt: (z, b, x) δ(z, a) z = z und a = b und x = N Barbara König BeKo/TI 42

55 Turingmaschinen Kontextsensitive und Typ-0-Sprachen Beispiel: Turingmaschine zur Inkrementierung einer Binärzahl M = ({z 0, z 1, z 2, z e }, {0, 1}, {0, 1, }, δ, z 0,, {z e }) mit Überführungsfunktion: Zahlende finden δ(z 0, 0) = (z 0, 0, R) δ(z 0, 1) = (z 0, 1, R) δ(z 0, ) = (z 1,, L) Überführungsfunktion: 1 durch 0 ersetzen, bis 1 oder erreicht δ(z 1, 0) = (z 2, 1, L) δ(z 1, 1) = (z 1, 0, L) δ(z 1, ) = (z e, 1, N) Barbara König BeKo/TI 43

56 Turingmaschinen Kontextsensitive und Typ-0-Sprachen Überführungsfunktion: zurück zum Zahlanfang δ(z 2, 0) = (z 2, 0, L) δ(z 2, 1) = (z 2, 1, L) δ(z 2, ) = (z e,, R) Der Vollständigkeit halber: Überführungsregeln für den Endzustand Überführungsfunktion: Endzustandsregeln δ(z e, 0) = (z e, 0, N) δ(z e, 1) = (z e, 1, N) δ(z e, ) = (z e,, N) Barbara König BeKo/TI 44

57 Turingmaschinen Kontextsensitive und Typ-0-Sprachen Wie bei anderen Maschinenmodellen gibt es auch bei Turingmaschinen den Begriff einer Konfiguration, d.h., einer Momentaufnahme einer Turingmaschinen-Berechnung Konfiguration (Definition) Eine Konfiguration einer Turingmaschine ist gegeben durch ein Wort k Γ ZΓ. Bedeutung: k = αzβ α Γ ist der Teil des Bandes links vom Kopf. β Γ ist der Teil des Bandes rechts vom Kopf. Der Kopf steht auf dem ersten Zeichen von β. z Z ist der aktuelle Zustand. Barbara König BeKo/TI 45

58 Turingmaschinen Kontextsensitive und Typ-0-Sprachen Definition einer Übergangsrelation, die beschreibt, welche Konfigurationsübergänge möglich sind. Keine Bewegung Es gilt: a 1... a m zb 1 b 2... b n a 1... a m z cb 2... b n, falls δ(z, b 1 ) = (z, c, N) (m 0, n 1). a 1... a m b 1 b 2... b n Zustand: z Barbara König BeKo/TI 46

59 Turingmaschinen Kontextsensitive und Typ-0-Sprachen Definition einer Übergangsrelation, die beschreibt, welche Konfigurationsübergänge möglich sind. Keine Bewegung Es gilt: a 1... a m zb 1 b 2... b n a 1... a m z cb 2... b n, falls δ(z, b 1 ) = (z, c, N) (m 0, n 1). a 1... a m c b 2... b n Zustand: z Barbara König BeKo/TI 46

60 Turingmaschinen Kontextsensitive und Typ-0-Sprachen Schritt nach links Es gilt: a 1... a m 1 a m zb 1 b 2... b n a 1... a m 1 z a m cb 2... b n, falls δ(z, b 1 ) = (z, c, L) (m 1, n 1). a 1... a m 1 a m b 1 b 2... b n Zustand: z Barbara König BeKo/TI 47

61 Turingmaschinen Kontextsensitive und Typ-0-Sprachen Schritt nach links Es gilt: a 1... a m 1 a m zb 1 b 2... b n a 1... a m 1 z a m cb 2... b n, falls δ(z, b 1 ) = (z, c, L) (m 1, n 1). a 1... a m 1 a m c b 2... b n Zustand: z Barbara König BeKo/TI 47

62 Turingmaschinen Kontextsensitive und Typ-0-Sprachen Definition einer Übergangsrelation, die beschreibt, welche Konfigurationsübergänge möglich sind. Schritt nach rechts Es gilt: a 1... a m zb 1 b 2... b n a 1... a m cz b 2... b n, falls δ(z, b 1 ) = (z, c, R) (m 0, n 2). a 1... a m b 1 b 2... b n Zustand: z Barbara König BeKo/TI 48

63 Turingmaschinen Kontextsensitive und Typ-0-Sprachen Definition einer Übergangsrelation, die beschreibt, welche Konfigurationsübergänge möglich sind. Schritt nach rechts Es gilt: a 1... a m zb 1 b 2... b n a 1... a m cz b 2... b n, falls δ(z, b 1 ) = (z, c, R) (m 0, n 2). a 1... a m c b 2... b n Zustand: z Barbara König BeKo/TI 48

64 Turingmaschinen Kontextsensitive und Typ-0-Sprachen Sonderfälle: Bandende erreicht zusätzliches Leerzeichen muss hinzugefügt werden Linkes Bandende Es gilt: zb 1 b 2... b n z cb 2... b n, falls δ(z, b 1 ) = (z, c, L). b 1 b 2... b n Zustand: z Barbara König BeKo/TI 49

65 Turingmaschinen Kontextsensitive und Typ-0-Sprachen Sonderfälle: Bandende erreicht zusätzliches Leerzeichen muss hinzugefügt werden Linkes Bandende Es gilt: zb 1 b 2... b n z cb 2... b n, falls δ(z, b 1 ) = (z, c, L). c b 2... b n Zustand: z Barbara König BeKo/TI 49

66 Turingmaschinen Kontextsensitive und Typ-0-Sprachen Rechtes Bandende Es gilt: a 1... a m zb 1 a 1... a m cz, falls δ(z, b 1 ) = (z, c, R). a 1... a m b 1 Zustand: z Barbara König BeKo/TI 50

67 Turingmaschinen Kontextsensitive und Typ-0-Sprachen Rechtes Bandende Es gilt: a 1... a m zb 1 a 1... a m cz, falls δ(z, b 1 ) = (z, c, R). a 1... a m c Zustand: z Barbara König BeKo/TI 50

68 Turingmaschinen Kontextsensitive und Typ-0-Sprachen Akzeptierte Sprache (Definition) Sei M = (Z, Σ, Γ, δ, z 0,, E) eine Turingmaschine. Dann ist die von M akzeptierte Sprache: T (M) = {x Σ z 0 x αzβ für α, β Γ und z E}. Akzeptierte Sprache: Alle Eingabe-Wörter, mit denen die Turing-Maschine in einen Endzustand gelangen kann. Dabei startet die Turing-Maschine im Anfangszustand z 0, der Kopf befindet sich auf dem ersten Zeichen des Eingabe-Wortes. Wenn eine Maschine M für ein Eingabewort w in einen Endzustand gelangt, dann sagt man auch, dass M auf w hält. Barbara König BeKo/TI 51

69 Turingmaschinen Kontextsensitive und Typ-0-Sprachen Für nicht-deterministische Turingmaschinen müssen die Definitionen folgendermaßen angepaßt werden: Falls sich die Turingmaschine im Zustand z befindet und das Zeichen b auf dem Band steht, sind alle Konfigurationsübergänge möglich, die durch die Menge δ(z, b) beschrieben werden. Ein Wort ist akzeptiert, wenn es eine mögliche Folge von Konfigurationen gibt, die zu einem Endzustand führt, auch wenn andere Folgen in Sackgassen geraten oder unendlich lang sind, ohne dabei je einen Endzustand zu erreichen. Barbara König BeKo/TI 52

70 Linear beschränkte Turingmaschinen Wir definieren nun das Maschinenmodell für Chomsky-1-Sprachen (erzeugt durch monotone Grammatiken): linear beschränkte Turingmaschinen, die niemals außerhalb der Eingabe arbeiten dürfen. Problem: Turingmaschine muss erkennen können, dass sie sich am Ende der Eingabe befindet. (Für den Anfang der Eingabe besteht dasselbe Problem, aber diesen kann sie sich zu Beginn selbst markieren.) Lösung: das Eingabealphabet Σ wird erweitert, für jedes Zeichen a Σ wird noch ein Zeichen â hinzugenommen. Das letzte Zeichen a n der Eingabe wird dann durch â n ersetzt. Barbara König BeKo/TI 53

71 Linear beschränkte Turingmaschinen Linear beschränkte Turingmaschinen Eine nichtdeterministische Turingmaschine heißt linear beschränkt, wenn für alle a 1... a n Σ + und für alle Konfigurationen αzβ mit z 0 a 1... â n αzβ gilt: αβ = n. Die von einer linear beschränkten Turingmaschine M akzeptierte Sprache ist T (M) = {a 1... a n Σ + z 0 a 1... â n αzβ für α, β Γ und z E}. Barbara König BeKo/TI 54

72 Chomsky-1-Sprachen Wir zeigen nun, dass die von linear beschränkten Turingmaschinen akzeptierten Sprachen genau den Typ-1-Sprachen entsprechen. Monotone Grammatiken linear beschränkte Turingmaschinen Zu jeder monotonen Grammatik G gibt es eine linear beschränkte Turingmaschine M mit L(G) = T (M). Barbara König BeKo/TI 55

73 Chomsky-1-Sprachen Linear beschränkte Turingmaschinen monotone Grammatiken Zu jeder linear beschränkten Turingmaschine M gibt es eine monotone Grammatik G mit L(G) = T (M). Barbara König BeKo/TI 56

74 Chomsky-1-Sprachen Beweisidee: die Übergangsregeln der Turingmaschine werden durch Produktionen ersetzt, die im wesentlichen Konfigurationen in Nachfolge-Konfigurationen überführen. Problem: die Berechnungsrichtung ist verschieden bei Turingmaschinen und Grammatiken Turingmaschinen beginnen mit einem Wort auf dem Band und modifizieren dieses so lange, bis ein Endzustand erreicht ist. Grammatiken beginnen mit der Startvariable S und leiten daraus das Wort ab. Barbara König BeKo/TI 57

75 Chomsky-1-Sprachen Lösung: Die Grammatik rät zu Beginn ein Wort und überprüft dann, ob es in der Sprache liegt. Allerdings ist dieses Wort nach Simulation der Turingmaschinen-Berechnung überschrieben oder modifiziert. Daher: Einführung neuer Symbole, bei denen jedes Zeichen doppelt gespeichert wird. Die Turingmaschinen-Berechnung arbeitet dann nur auf einer Kopie jedes Zeichens. Die andere Kopie wird erhalten und kann nach erfolgreicher Berechnung wiederhergestellt werden. Eine echte Kopie des ganzen Wortes kann nicht angefertigt werden, denn dann müßte man am Ende der Berechnung, beim Wiederherstellen des Wortes, Zeichen löschen und nicht-monotone Regeln verwenden. Barbara König BeKo/TI 58

76 Chomsky-0-Sprachen Turingmaschinen und Chomsky-0-Sprachen Zu jeder Chomsky-0-Grammatik G gibt es eine Turingmaschine M mit L(G) = T (M). Zu jeder Turingmaschine M gibt es eine Chomsky-0-Grammatik G mit L(G) = T (M). Barbara König BeKo/TI 59

77 Chomsky-0-Sprachen Beweisidee: durch Modifikation des Beweises für linear beschränkte Turingmaschinen und monotone Grammatiken. Grammatiken Turingmaschinen: hier muss bei der Simulation der Grammatik auf dem Turingmaschinen-Band bei verkürzenden Regeln (linke Seite ist länger als rechte Seite) der Bandinhalt auseinandergeschoben werden. Turingmaschinen Grammatiken: hier muss dafür gesorgt werden, dass die Grammatik bei Simulation der Turingmaschine links und rechts Leerzeichen erzeugen kann und diese nach erfolgreicher Berechnung auch wieder löscht. Barbara König BeKo/TI 60

78 Ergebnisse für Chomsky-1- und Chomsky-0-Sprachen Abschluss unter Komplement von Typ-1-Sprachen (Immerman, Szelepcsényi) Wenn L eine Typ-1-Sprache ist, dann ist auch L = Σ \L eine Typ-1-Sprache. (Ohne Beweis) Abschluss unter Komplement von Typ-0-Sprachen Wenn L eine Typ-0-Sprache ist, dann ist L = Σ \L nicht notwendigerweise eine Typ-0-Sprache. (Begründung und Beispiele später im Kapitel.) Barbara König BeKo/TI 61

79 Ergebnisse für Chomsky-1- und Chomsky-0-Sprachen Determinismus und Nichtdeterminismus bei Turingmaschinen Zu jeder nichtdeterministischen Turingmaschine gibt es eine deterministische Turingmaschine, die dieselbe Sprache akzeptiert. Beweisidee: die deterministische Turingmaschine simuliert mit Hilfe von Breitensuche alle Verzweigungen der nichtdeterministischen Turingmaschine. Determinismus und Nichtdeterminismus bei linear beschränkten Turingmaschinen (LBA-Problem) Für linear beschränkten Turingmaschinen ist nicht bekannt, ob die deterministischen und nichtdeterministischen Maschinenmodelle gleich ausdrucksmächtig sind. Barbara König BeKo/TI 62

80 Berechenbarkeit: Motivation Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Nach der Beantwortung der Frage, welche Sprachen maschinell akzeptierbar sind, beschäftigen wir uns mit der Frage, welche Funktionen berechenbar sind. Wir betrachten folgende Typen von Funktionen: (mehrstellige) Funktionen auf natürlichen Zahlen (die Null ist eingeschlossen): f : N k 0 N 0 Funktionen auf Wörtern: f : Σ Σ Erlaubt sind auch partielle Funktionen, die nicht notwendigerweise überall definiert sind. Barbara König BeKo/TI 63

81 Berechenbarkeit: Motivation Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Intuitiver Berechenbarkeitsbegriff Eine Funktion f : N k 0 N 0 soll als berechenbar angesehen werden, wenn es ein Rechenverfahren/einen Algorithmus/ein Programm gibt, das f berechnet, d.h. das Verfahren erhält (n 1,..., n k ) als Eingabe, terminiert nach endlich vielen Schritten, falls die Funktion auf dieser Eingabe definiert ist und gibt f (n 1,..., n k ) aus. Falls die Funktion auf (n 1,..., n k ) nicht definiert ist, so soll das Verfahren nicht stoppen (z.b., durch eine unendliche Schleife). Barbara König BeKo/TI 64

82 Berechenbarkeit: Motivation Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Die Äquivalenz vieler Berechnungsmodelle (das wird noch gezeigt) und das intuitive Verständnis des Begriff der Berechenbarkeit führen zu folgender (nicht beweisbaren) These. Churchsche These Die durch die formale Definition der Turingmaschinen-Berechenbarkeit (äquivalent: While-Berechenbarkeit, Goto-Berechenbarkeit, µ-rekursivität) erfasste Klasse von Funktionen stimmt genau mit der Klasse der im intuitiven Sinne berechenbaren Funktionen überein. Barbara König BeKo/TI 65

83 Berechenbarkeit: Motivation Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Bemerkungen: Ein Berechnungsmodell, das äquivalent zu Turingmaschinen ist, nennt man auch Turing-mächtig. Der entsprechende Berechenbarkeitsbegriff heißt Turing-Berechenbarkeit. Fast alle Programmiersprachen sind Turing-mächtig. Heute ist man mehr als früher neben der Berechenbarkeit von Funktionen auch an eher interaktiven und reaktiven Berechnungsmodellen (z.b. Prozesskalküle) interessiert, bei denen der Benutzer auch während der Berechnung mit dem System interagieren kann. Diese werden von Turingmaschinen nicht so gut repräsentiert, ihre Existenz ist aber auch kein Widerspruch zur Churchschen These, die sich nur auf berechenbare Funktionen bezieht. Barbara König BeKo/TI 66

84 Berechenbarkeit: Motivation Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Wir wiederholen kurz den Begriff der Abzählbarkeit: Abzählbarkeit Eine Menge M heißt abzählbar, wenn es eine surjektive Abbildung f : N 0 M gibt. Das heißt es gibt eine (nicht notwendigerweise konstruktive) Aufzählung f (0), f (1), f (2),... aller Elemente von M, in der jedes Element von M mindestens einmal vorkommt. Barbara König BeKo/TI 67

85 Berechenbarkeit: Motivation Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Nicht-berechenbare Funktionen Es gibt Funktionen der Form f : N 0 N 0, die nicht berechenbar sind. Beweisidee: wir wählen ein beliebiges Berechnungsmodell und stellen nur eine Anforderung: Programme bzw. Maschinen in diesem Berechnungsmodell, können als (endliche) Wörter über einem endlichen Alphabet kodiert werden. Dann gilt: es gibt höchstens abzählbar viele Maschinen/Programme. Barbara König BeKo/TI 68

86 Berechenbarkeit: Motivation Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Aber: es gibt überabzählbar viele (totale) Funktionen. Wir zeigen dies durch einen Widerspruchsbeweis: angenommen die Menge aller totalen Funktionen F auf natürlichen Zahlen ist abzählbar. Das heißt, es gibt eine surjektive Abbildung F : N 0 F. Wir konstruieren die (totale) Funktion g : N 0 N 0 mit g(n) = f n (n) + 1, wobei f n = F (n). Da F surjektiv ist, muss es eine natürliche Zahl i geben mit F (i) = g. Für dieses i gilt dann: g(i) = f i (i). Aber das ist ein Widerspruch zur Definition von g mit g(i) = f i (i) + 1. Barbara König BeKo/TI 69

87 Berechenbarkeit: Motivation Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Veranschaulichung: wir stellen F dadurch dar, indem wir zu jedem n die Funktion f n als Folge f n (0), f n (1), f n (2),... notieren. Zum Beispiel: n f n (0) f n (1) f n (2) f n (3) f n (4) Barbara König BeKo/TI 70

88 Berechenbarkeit: Motivation Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Veranschaulichung: wir stellen F dadurch dar, indem wir zu jedem n die Funktion f n als Folge f n (0), f n (1), f n (2),... notieren. Alle Zahlen auf der Diagonale verwenden... n f n (0) f n (1) f n (2) f n (3) f n (4) Barbara König BeKo/TI 70

89 Berechenbarkeit: Motivation Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Veranschaulichung: wir stellen F dadurch dar, indem wir zu jedem n die Funktion f n als Folge f n (0), f n (1), f n (2),... notieren.... und um eins erhöhen. Dadurch erhält man g. n f n (0) f n (1) f n (2) f n (3) f n (4) Barbara König BeKo/TI 70

90 Berechenbarkeit: Motivation Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Veranschaulichung: wir stellen F dadurch dar, indem wir zu jedem n die Funktion f n als Folge f n (0), f n (1), f n (2),... notieren. Die Funktion g kann aber aufgrund dieser Konstruktion mit keiner der anderen Funktionen übereinstimmen. n f n (0) f n (1) f n (2) f n (3) f n (4) Diese Art von selbstbezüglichen Beweisen nennt man aufgrund ihrer Veranschaulichung durch solche Diagramme oft Diagonalisierungsbeweise. Barbara König BeKo/TI 70

91 Turing-Berechenbarkeit Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Nach dem intuitiven Berechenbarkeitsbegriff beschäftigen wir uns nun mit dem formalen Berechenbarkeitsbegriff, zunächst basierend auf Turingmaschinen. Wir wissen bereits, was es bedeutet, dass eine Turingmaschine eine Sprache akzeptiert. Nun definieren wir, was es bedeutet, dass eine Turingmaschine eine Funktion berechnet. Barbara König BeKo/TI 71

92 Turing-Berechenbarkeit Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Turing-berechenbare Funktionen auf natürlichen Zahlen Eine Funktion f : N k 0 N 0 heißt Turing-berechenbar, falls es eine (deterministische) Turingmaschine M = (Z, Σ, Γ, δ, z 0,, E) gibt, so dass für alle n 1,..., n k, m N 0 gilt: f (n 1,..., n k ) = m z 0 bin(n 1 )#bin(n 2 )#... #bin(n k )... z e bin(m)... wobei z e E. Dabei bezeichnet bin(n) die Binärdarstellung einer Zahl n N 0. Barbara König BeKo/TI 72

93 Turing-Berechenbarkeit Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Intuition: wenn man die Zahlen n 1,..., n k in Binärdarstellung voneinander getrennt durch # aufs Band schreibt, so berechnet die Turingmaschine daraus die Zahl f (n 1,..., n k ) (möglicherweise umgeben von Leerzeichen) und geht in einen Endzustand über. Dabei muss der Kopf auf dem ersten Zeichen der Ausgabe stehen. Barbara König BeKo/TI 73

94 Turing-Berechenbarkeit Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Turing-berechenbare Funktionen auf Wörtern Eine Funktion f : Σ Σ heißt Turing-berechenbar, falls es eine (deterministische) Turingmaschine M = (Z, Σ, Γ, δ, z 0,, E) gibt, so dass für alle x, y Σ gilt: wobe z e E. f (x) = y z 0 x... z e y..., Intuition: wenn man das Wort x aufs Band schreibt, so berechnet die Turingmaschine daraus das Wort y (möglicherweise umgeben von Leerzeichen) und geht in einen Endzustand über. Barbara König BeKo/TI 74

95 Turing-Berechenbarkeit Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Was muss eine Turingmaschine tun, wenn der Funktionswert nicht definiert ist? Die beiden obigen Definitionen drücken aus, dass in diesem Fall nie eine Konfiguration wie oben beschrieben erreicht werden darf. Da die Maschine deterministisch ist, gibt es jedoch immer einen Nachfolgezustand. Das bedeutet, dass die Turingmaschine entweder nicht hält (d.h. keinen Endzustand erreicht) oder in einer inkorrekten Konfiguration hält (z.b. steht der Kopf nicht am Beginn der Ausgabe). Barbara König BeKo/TI 75

96 Turing-Berechenbarkeit Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Beispiele für Turing-berechenbare Funktionen: Beispiel 1: die Nachfolgerfunktion n n + 1 ist Turing-berechenbar (siehe die im vorherigen Kapitel angegebene Turingmaschine, die auf Binärdarstellungen arbeitet). Beispiel 2: sei Ω die überall undefinierte Funktion. Diese ist auch Turing-berechenbar, durch eine Turingmaschine, die keinen Endzustand hat. Beispielsweise durch eine Turingmaschine mit der Übergangsregel δ(z 0, a) = (z 0, a, R) für alle a Γ. (Statt nach rechts kann die Turingmaschine alternativ auch nach links laufen oder auf dem Band stehenbleiben.) Barbara König BeKo/TI 76

97 Turing-Berechenbarkeit Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Beispiel 3: gegeben sei eine Typ-0-Sprache L. Wir betrachten die sogenannte halbe charakteristische Funktion von L: χ L : Σ {0, 1} { 1 falls w L χ L (w) = undefiniert sonst Barbara König BeKo/TI 77

98 Turing-Berechenbarkeit Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Idee für eine Turingmaschine, die χ L berechnet: Wir verwenden die Turingmaschine aus der Transformation (Monotone) Grammatik (linear beschränkte) Turingmaschine. Wenn diese Turingmaschine in einen Endzustand übergehen sollte (da Startsymbol S erreicht und damit w L), dann überschreibt sie S mit 1 und geht in einen Endzustand über. In allen anderen Fällen (w L) muss die Turingmaschine nicht terminieren. Hierbei handelt es sich um eine nicht-deterministische Turingmaschine, da nicht-deterministisch die nächste, rückwärts anzuwendende, Produktion gewählt wird. Wegen der Äquivalenz von deterministischen und nicht-deterministischen Turingmaschinen könnte man sie auch in eine deterministische Turingmaschine umwandeln. Barbara König BeKo/TI 78

99 Mehrband-Turingmaschine Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Wir führen jetzt mehrere neue Berechnungsmodelle ein und zeigen, dass sie alle äquivalent zu Turingmaschinen sind. Das erste davon ist die sogenannte Mehrband-Turingmaschine. Mehrband-Turingmaschine Eine Mehrband-Turingmaschine besitzt k (k 1) Bänder mit k unabhängigen Köpfen, aber nur einen Zustand. Aussehen der Übergangsfunktion: δ : Z Γ k Z Γ k {L, R, N} k (ein Zustand, k Bandsymbole, k Bewegungen) Die Ein- und Ausgabe stehen jeweils auf dem ersten Band. Zu Beginn sind die restlichen Bänder leer. Barbara König BeKo/TI 79

100 Mehrband-Turingmaschine Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Mehrband-Turingmaschinen Turingmaschinen Zu jeder Mehrband-Turingmaschine M gibt es eine (Einband-)Turingmaschine M, die dieselbe Sprache akzeptiert bzw. dieselbe Funktion berechnet. Barbara König BeKo/TI 80

101 Mehrband-Turingmaschine Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Beweisidee: wir beginnen mit der Darstellung einer typischen Konfiguration einer Mehrband-Turingmaschine a 1 a 2 a 3 a 4 a 5 a 6 a 7 a 8 a 9 a 10 M b 1 b 2 b 3 b 4 b 5 b 6 b 7 b 8 b 9 b 10 c 1 c 2 c 3 c 4 c 5 c 6 c 7 c 8 c 9 c 10 Barbara König BeKo/TI 81

102 Mehrband-Turingmaschine Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Simulation durch Einband-Turingmaschine durch Erweiterung des Alphabets Wir fassen die übereinanderliegenden Bandeinträge zu einem Feld zusammen a 1 a 2 a 3 a 4 a 5 a 6 a 7 a 8 a 9 a 10 * M b 1 b 2 b 3 b 4 b 5 b 6 b 7 b 8 b 9 b 10 * c 1 c 2 c 3 c 4 c 5 c 6 c 7 c 8 c 9 c 10 * Barbara König BeKo/TI 82

103 Mehrband-Turingmaschine Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Neues Bandalphabet: Bedeutung: Γ = Γ (Γ {, }) 2k Mit Hilfe von Symbolen aus Γ wird die Eingabe dargestellt. Diese wird dann in einem ersten Durchlauf in die Mehrband-Kodierung umgewandelt. Ein Alphabetsymbol der Form (a,, b,, c,,... ) (Γ {, }) 2k hat die Bedeutung: Entsprechende Felder sind mit a, b, c,... belegt, 1. und 3. Kopf sind anwesend. ( : Kopf anwesend, : Kopf nicht anwesend) Barbara König BeKo/TI 83

104 Mehrband-Turingmaschine Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Problem: Eine Einband-Turingmaschine hat nur einen Kopf und der kann nur an einer Stelle stehen Simulation eines Übergangs der Mehrband-Turingmaschine in mehreren Schritten. Simulation: Zu Beginn der Simulation eines Schritts steht der Kopf der Einband-Turingmaschine M links von allen -Markierungen. Dann läuft der Kopf nach rechts, überschreitet alle -Markierungen und merkt sich die unter jedem Kopf stehenden Zeichen. (Dazu benötigt man viele Zustände.) Sobald alle diese Zeichen bekannt sind, kann man mit Hilfe der δ-funktion die notwendigen Aktionen bestimmen. Dann läuft der Kopf wieder zurück nach links und führt alle notwendigen Änderungen aus. Barbara König BeKo/TI 84

105 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Loop-, While-, Goto-Berechenbarkeit Wir betrachten nun ein weiteres Berechnungsmodell, das im wesentlichen eine einfache Programmiersprache mit verschiedenen Konstrukten darstellt. Diese Programme haben Variablen, die mit natürlichen Zahlen belegt sind. Diesen Variablen dürfen arithmetische Ausdrücke (mit Konstanten, Variablen und Operatoren +, ) zugewiesen werden. Außerdem enthalten die Programme verschiedene Schleifenkonstrukte. Barbara König BeKo/TI 85

106 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Loop-, While-, Goto-Berechenbarkeit Insbesondere betrachten wir folgende Typen von Programmen: Loop-Programme Enthalten nur Loop- bzw. For-Schleifen, bei denen bereits bei Eintritt feststeht, wie oft sie durchlaufen werden. While-Programme Enthalten nur While-Schleifen mit einer immer wieder zu evaluierenden Abbruchbedingung. Goto-Programme Enthalten Gotos (unbedingte Sprünge) und If-Then-Else-Anweisungen. Wir interessieren uns vor allem für die Funktionen, die von solchen Programmen berechnet werden. Barbara König BeKo/TI 86

107 Loop-Programme Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Syntaktische Komponenten für Loop-Programme Variablen: x 0 x 1 x 2... Konstanten: Trennsymbole: ; := Operatorsymbole: + Schlüsselwörter: Loop Do End Barbara König BeKo/TI 87

108 Loop-Programme Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Induktive Syntax-Definition Ein Loop-Programm P ist von der Form Wertzuweisung: x i := x j + c bzw. x i := x j c (mit c N 0 ) Sequentielle Komposition: P 1 ; P 2 (wobei P 1, P 2 Loop-Programme sind) Loop: Loop x i Do P End (wobei P ein Loop-Programm ist) Barbara König BeKo/TI 88

109 Loop-Programme Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme (Informelle) Beschreibung der Semantik Ein Loop-Programm, das eine k-stellige Funktion berechnen soll, startet mit den Parametern in den Variablen x 1,..., x k. Alle anderen Variablen haben den Startwert 0. Das Ergebnis liegt bei Terminierung in x 0. Interpretation der Wertzuweisungen: x i := x j + c wie üblich x i := x j c modifizierte Subtraktion, falls c > x j, so ist das Resultat gleich 0 Sequentielle Komposition P 1 ; P 2 : erst P 1, dann P 2 ausführen. Loop x i Do P End: das Programm P wird so oft ausgeführt, wie die Variable x i zu Beginn angibt. Barbara König BeKo/TI 89

110 Loop-Programme Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Loop-Berechenbarkeit (Definition) Eine Funktion f : N k 0 N 0 heißt Loop-berechenbar, falls es ein Loop-Programm P gibt, das gestartet mit n 1,..., n k N 0 in den Variablen x 1,..., x k stoppt mit f (n 1,..., n k ) in der Variablen x 0. Alle Loop-Programme stoppen nach endlicher Zeit alle Loop-berechenbaren Funktionen sind total. Wir werden später zeigen, dass es sogar totale Turing-berechenbare Funktionen gibt, die nicht Loop-berechenbar sind. Loop-Berechenbarkeit ist schwächer als Turing-Berechenbarkeit! Barbara König BeKo/TI 90

111 Loop-Programme Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Loop-Programme können aber gewisse Programmkonstrukte simulieren, die in der Syntax nicht enthalten sind. If-Then-Else Simulation von If x = 0 Then A End Barbara König BeKo/TI 91

112 Loop-Programme Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Loop-Programme können aber gewisse Programmkonstrukte simulieren, die in der Syntax nicht enthalten sind. Addition Simulation von x 0 := x 1 + x 2 Barbara König BeKo/TI 91

113 Loop-Programme Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Loop-Programme können aber gewisse Programmkonstrukte simulieren, die in der Syntax nicht enthalten sind. Multiplikation Simulation von x 0 := x 1 x 2 Wir werden im folgenden solche Konstrukte in Programmen verwenden. Wir nehmen dann an, dass sie wie oben geeignet simuliert werden. Analog: Ganzzahlige Division (x Div y) und Divisionsrest (x Mod y). Barbara König BeKo/TI 91

114 While-Programme Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Syntax und Semantik von While-Programmen Statt Loop-Schleifen verwenden wir While-Schleifen der Form While x i 0 Do P End Programm P wird so lange ausgeführt bis der Wert von x i gleich 0 ist. Eine Loop-Schleife Loop x Do P End kann simuliert werden durch y := x; While y 0 Do y := y 1; P End Wichtig: dabei ist y eine neue Variable, die insbesondere in P nicht vorkommt. Barbara König BeKo/TI 92

115 While-Programme Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme While-Berechenbarkeit (Definition) Eine Funktion f : N k 0 N 0 heißt While-berechenbar, falls es ein While-Programm P gibt, das gestartet mit n 1,..., n k N 0 in den Variablen x 1,..., x k stoppt mit f (n 1,..., n k ) in der Variablen x 0, falls f (n 1,..., n k ) definiert ist. Ansonsten, falls der Funktionswert undefiniert ist, terminiert P nicht. Barbara König BeKo/TI 93

116 While-Programme Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme While-Programme Turingmaschinen Jede While-berechenbare Funktion ist auch Turing-berechenbar. Anders ausgedrückt: Turingmaschinen können While-Programme simulieren. Barbara König BeKo/TI 94

117 While-Programme Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Beweisidee: Wir verwenden eine Mehrband-Turingmaschine, bei der auf jedem Band eine andere Variable in Binärdarstellung gespeichert wird. k Variablen k Bänder x i := x j + c kann von der Turingmaschine durchgeführt werden, indem die Inkrementierungsfunktion (+1) c-mal ausgeführt wird. x i := x j c funktioniert ähnlich. Barbara König BeKo/TI 95

118 While-Programme Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Sequentielle Komposition P 1 ; P 2 : wir bestimmen Turingmaschinen M 1, M 2 für P 1, P 2. Diese modifizieren wir wie folgt zu einer Turingmaschine für P 1 ; P 2 : Vereinigung der Zustandsmengen, Bandalphabete und Übergangsfunktionen Anfangszustand ist Anfangszustand von M 1. Endzustände sind Endzustände von M 2. Statt in einen Endzustand von M 1 wird ein Übergang in den Anfangszustand von M 2 gemacht. (Vergleiche mit der Konkatenationskonstruktion für endliche Automaten.) Barbara König BeKo/TI 96

119 While-Programme Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme While-Schleife While x i 0 Do P End: Bestimme zunächst eine Turingmaschine M für P. Modifiziere M wie folgt: Im neuen Anfangszustand wird zunächst überprüft, ob 0 auf dem Band steht, das x i zugeordnet ist. Falls ja: Übergang in Endzustand Falls nein: M wird ausgeführt Statt Übergang in Endzustand: Übergang in den neuen Anfangszustand. Barbara König BeKo/TI 97

120 Goto-Programme Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Syntax von Goto-Programmen Mögliche Anweisungen für Goto-Programme: Wertzuweisung: x i := x j + c bzw. x i := x j c (mit c N 0 ) Unbedingter Sprung: Goto M i Bedingter Sprung: If x i = c Then Goto M i Stopanweisung: Halt Ein Goto-Programm besteht aus einer Folge von Anweisungen A i, vor denen sich jeweils eine (Sprung-)Marke M i befindet. M 1 : A 1 ; M 2 : A 2 ;... ; M k : A k (Wenn Marken nicht angesprungen werden, werden wir sie oft einfach weglassen.) Barbara König BeKo/TI 98

121 Goto-Programme Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Semantik von Goto-Programmen If-Anweisungen werden wie üblich interpretiert. Goto M springt an die entsprechende Marke des Programms. Halt-Anweisungen beenden Goto-Programme. (Die letzte Anweisung eines Programms muss ein Halt oder ein unbedingter Sprung sein.) Wie While-Programme können auch Goto-Programme in unendliche Schleifen geraten. Goto-berechenbare Funktionen sind analog zu While-berechenbaren Funktionen definiert. Barbara König BeKo/TI 99

122 Goto-Programme Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme While-Programme Goto-Programme Jedes While-Programm kann durch ein Goto-Programm simuliert werden. Das heißt, jede While-berechenbare Funktion ist Goto-berechenbar. Eine While-Schleife While x 0 Do P End kann simuliert werden durch M 1 : If x = 0 Then Goto M 2 ; P; Goto M 1 ; M 2 :... Barbara König BeKo/TI 100

123 Goto-Programme Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Auch die nicht ganz so offensichtliche Umkehrung gilt: Goto-Programme While-Programme Jedes Goto-Programm kann durch ein While-Programm simuliert werden. Das heißt, jede Goto-berechenbare Funktion ist While-berechenbar. Das ist einer der Gründe dafür, warum in modernen Programmiersprachen im allgemeinen keine Gotos verwendet werden. Weitere Gründe: Edsger W. Dijkstra: Go To Statement Considered Harmful (1968) Spaghetti-Code bei Verwendung von Gotos Barbara König BeKo/TI 101

124 Goto-Programme Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Die Simulation von Goto-Programmen durch While-Programme verwendet nur eine While-Schleife. Das bedeutet: ein While-Programm kann durch Umwandlung in ein Goto-Programm und Zurückumwandlung in ein äquivalentes While-Programm mit einer While-Schleife umgewandelt werden. Dabei muss man allerdings annehmen, dass die Sprache auch If-Anweisungen zur Verfügung stellt. (Kleenesche Normalform für While-Programme) Barbara König BeKo/TI 102

125 Kontextsensitive und Typ-0-Sprachen Goto-Programme Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Welche Transformationen haben wir bisher durchgeführt? Goto While TM Loop Um die Äquivalenz von Goto-, While- und Turing-Berechenbarkeit zu zeigen, fehlt uns noch die Richtung TM Goto Barbara König BeKo/TI 103

126 Goto-Programme Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme TM Goto-Programme Jede Turingmaschine kann durch ein Goto-Programm simuliert werden. Das heißt, jede Turing-berechenbare Funktion ist Goto-berechenbar. Barbara König BeKo/TI 104

127 Goto-Programme Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Beweisidee: Sei k die Anzahl der Zustände und m die Anzahl der Bandsymbole der Turingmaschine. Eine Konfiguration a 1... a p zb 1... b q wird in drei Variablen x 1, x 2, x 3 gespeichert. Dabei enthält: x 1 den Bandinhalt vor dem Kopf, dabei wird a 1... a p als Zahl zur Basis b = m + 1 interpretiert. Also: x 1 = p pos(a i ) b p i, i=1 wobei pos(a i ) die Position des Bandsymbols a i im Bandalphabet ist (Bandsymbole sind von 1 bis m durchnummeriert). Barbara König BeKo/TI 105

128 Goto-Programme Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme x 2 den Bandinhalt ab dem Kopf, dabei wird b q... b 1 (in umgekehrter Reihenfolge!) als Zahl zur Basis b interpretiert. x 3 ist eine Zahl zwischen 1 und k und repräsentiert den aktuellen Zustand. Barbara König BeKo/TI 106

129 Goto-Programme Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Simulation von Turingmaschinenoperationen: Kopf liest Zeichen: y := x 2 Mod b Zeichen a j aufs Band schreiben: x 2 := (x 2 Div b) b + j (falls a j das j-te Bandsymbol ist) Kopf nach links: x 2 := x 2 b + (x 1 Mod b); x 1 := x 1 Div b Kopf nach rechts: x 1 := x 1 b + (x 2 Mod b); x 2 := x 2 Div b Barbara König BeKo/TI 107

130 Goto-Programme Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Das zu erstellende Goto-Programm besteht nun aus folgenden drei Programmteilen: 1. Teil: Die in den Variablen befindlichen Parameter werden in Binärdarstellung transformiert und es wird eine Darstellung der Startkonfiguration mit Hilfe von x 1, x 2, x 3 erzeugt. 2. Teil: Die Turingmaschinenberechnung wird durch Manipulation von x 1, x 2, x 3 simuliert. Barbara König BeKo/TI 108

131 Goto-Programme Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Schema: M 2 : y := x 2 Mod b; (Zeichen einlesen) If (x 3 = 1) And (y = 1) Then Goto M 1,1 ; If (x 3 = 1) And (y = 2) Then Goto M 1,2 ;... M 1,1 : P 1,1 ; (Aktion δ(z 1, a 1 ) ausführen) Goto M 2 ; M 1,2 : P 1,2 ; (Aktion δ(z 1, a 2 ) ausführen) Goto M 2 ;... Barbara König BeKo/TI 109

132 Goto-Programme Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Im Programmteil P i,j wird die durch δ(z i, a j ) beschriebene Aktion ausgeführt, wobei z i der i-te Zustand und a j das j-te Bandsymbol ist. Dabei wird wie oben beschrieben das Zeichen, auf dem der Kopf steht, überschrieben und bei Bedarf ein Schritt nach links oder rechts ausgeführt. 3. Teil: Die Endkonfiguration gespeichert in x 1, x 2, x 3 wird in die eigentliche Ausgabe in der Variablen x 0 überführt. Bemerkung: Nur der 2. Teil hängt von der Überführungsfunktion δ ab. Barbara König BeKo/TI 110

133 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Primitiv rekursive und µ-rekursive Funktionen Loop-, While- und Goto-Programme sind vereinfachte imperative Programme und stehen für imperative Programmiersprachen, bei denen Programme als Folgen von Befehlen aufgefaßt werden. Parallel dazu gibt es jedoch auch funktionale Programme, deren Hauptbestandteil die Definition rekursiver Funktionen ist. Es gibt auch Berechnungsbegriffe, die sich eher an funktionalen Programmen orientieren. Zum Beispiel: λ-kalkül (Alonzo Church, 1932) µ-rekursive und primitiv rekursive Funktionen (werden hier in der Vorlesung betrachtet) Barbara König BeKo/TI 111

134 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Primitiv rekursive und µ-rekursive Funktionen Wir definieren nun Klassen von Funktionen der Form f : N k 0 N 0. Primitiv rekursive Funktionen (Definition) Die Klasse der primitiv rekursiven Funktionen ist induktiv wie folgt definiert: Alle konstanten Funktionen der Form c : N 0 N 0 mit c(n) = m (für ein festes m N 0 ) sind primitiv rekursiv. (Auch 0-stellige konstante Funktionen sind zugelassen.) Alle Projektionen der Form π k i : N k 0 N 0 mit π k i (n 1,..., n k ) = n i sind primitiv rekursiv. Die Nachfolgerfunktion s : N 0 N 0 mit s(n) = n + 1 ist primitiv rekursiv. Jede Funktion, die durch Einsetzung/Komposition von primitiv rekursiven Funktionen entsteht, ist primitiv rekursiv. Barbara König BeKo/TI 112

135 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Primitiv rekursive und µ-rekursive Funktionen Primitiv rekursive Funktionen (Definition, Fortsetzung) Jede Funktion f, die durch primitive Rekursion aus primitiv rekursiven Funktionen entsteht, ist primitiv rekursiv. Das heißt f : N k+1 0 N 0 muss folgende Gleichungen erfüllen (für primitiv rekursive Funktionen g : N k 0 N 0, h : N k+2 0 N 0 ): f (0, n 1,..., n k ) = g(n 1,..., n k ) f (n + 1, n 1,..., n k ) = h(f (n, n 1,..., n k ), n, n 1,..., n k ) Anschaulich: bei primitiver Rekursion wird die Definition von f (n + 1,... ) zurückgeführt auf f (n,... ). Das bedeutet, dass primitive Rekursion immer terminiert. Berechnungsmodell analog zu Loop-Programmen. Barbara König BeKo/TI 113

136 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Primitiv rekursive und µ-rekursive Funktionen Beispiele für primitiv rekursive Funktionen: Additionsfunktion Die Funktion add : N 2 0 N 0 mit add(n, m) = n + m ist primitiv rekursiv. Barbara König BeKo/TI 114

137 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Primitiv rekursive und µ-rekursive Funktionen Beispiele für primitiv rekursive Funktionen: Multiplikationsfunktion Die Funktion mult : N 2 0 N 0 mit mult(n, m) = n m ist primitiv rekursiv. Barbara König BeKo/TI 114

138 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Primitiv rekursive und µ-rekursive Funktionen Beispiele für primitiv rekursive Funktionen: Dekrementierung Die Funktion dec : N 0 N 0 mit dec(n) = n 1 (modifizierte Subtraktion) ist primitiv rekursiv. Barbara König BeKo/TI 114

139 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Primitiv rekursive und µ-rekursive Funktionen Primitiv rekursive Funktionen Loop-berechenbare Funktionen Die Klasse der primitiv rekursiven Funktionen stimmt genau mit der Klasse der Loop-berechenbaren Funktionen überein. (Ohne Beweis) Barbara König BeKo/TI 115

140 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Primitiv rekursive und µ-rekursive Funktionen Wir definieren nun ein weitere Klasse, die gleichmächtig zu While-Programmen, Goto-Programmen und Turingmaschinen ist. µ-rekursive Funktionen (Definition) Die µ-rekursiven Funktionen verwenden die gleichen Basisfunktionen (konstante Funktionen, Projektionen, Nachfolgerfunktion) und Operatoren (Einsetzung, primitive Rekursion) wie primitiv rekursive Funktionen. Zusätzlich darf noch der µ-operator verwendet werden. Barbara König BeKo/TI 116

141 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Primitiv rekursive und µ-rekursive Funktionen µ-rekursive Funktionen (Definition, Fortsetzung) Der µ-operator verwandelt eine Funktion f : N k+1 0 N 0 in eine Funktion µf : N k 0 N 0 mit µf (x 1,..., x k ) = min{n f (n, x 1,..., x k ) = 0 Dabei gilt min = undefiniert. und für alle m < n ist f (m, x 1,..., x k ) definiert} Barbara König BeKo/TI 117

142 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Primitiv rekursive und µ-rekursive Funktionen Intuitive Berechnung von µf (x 1,..., x k ): Berechne f (0, x 1,..., x k ), f (1, x 1,..., x k ),... Falls für ein n gilt f (n, x 1,..., x k ) = 0, so gib n als Funktionswert zurück. Falls f (m, x 1,..., x k ) undefiniert ist (ohne, dass vorher einmal der Funktionswert gleich 0 war), oder der Funktionswert 0 nie erreicht wird: die intuitive Berechnung terminiert nicht. In diesem Fall gilt auch µf (x 1,..., x k ) = min = undefiniert. Analogie zu While-Programmen: es ist nicht klar, ob die Abbruchbedingung jemals erfüllt wird. Barbara König BeKo/TI 118

143 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Primitiv rekursive und µ-rekursive Funktionen Durch den µ-operator können nun auch echt partielle Funktionen erzeugt werden. Überall undefinierte Funktion Die Funktion Ω: N 0 N 0 mit Ω(n) = undefiniert für alle n N 0 ist µ-rekursiv. Verwende die 2-stellige Funktion f : N 2 0 N 0 mit f (x, y) = 1 für alle x, y. Es gilt f = k π1 2, wobei k die konstante 1-stellige Funktion ist, die alles auf 1 abbildet. Dann gilt Ω = µf. Barbara König BeKo/TI 119

144 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Primitiv rekursive und µ-rekursive Funktionen Weiteres Beispiel: Wurzelfunktion Die Funktion sqrt : N 0 N 0 mit sqrt(n) = n ist µ-rekursiv. (Dabei rundet... eine reelle Zahl auf die nächstgrößere (oder gleiche) ganze Zahl auf.) Sei f (m, n) = n m m. (Die Multiplikationsfunktion ist primitiv rekursiv und die Subtraktionsfunktion kann durch iterierte Anwendung der Dekrementierungsfunktion erhalten werden.) Dann gilt sqrt = µf. Diese Funktion ist jedoch auch primitiv rekursiv. Intuition: bei Berechnung von sqrt(n) sind immer höchstens n Iterationen notwendig.) Barbara König BeKo/TI 120

145 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Primitiv rekursive und µ-rekursive Funktionen Die Klasse der µ-rekursiven Funktionen stimmt genau mit der Klasse der While-(Goto-, Turing-)berechenbaren Funktionen überein. (Ohne Beweis) Barbara König BeKo/TI 121

146 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Primitiv rekursive und µ-rekursive Funktionen Totale, nicht Loop-berechenbare Funktionen Es gibt totale (Turing-)berechenbare Funktionen, die nicht Loop-berechenbar sind. Wir zeigen die Existenz solcher Funktionen durch einen Diagonalisierungsbeweis. Barbara König BeKo/TI 122

147 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Primitiv rekursive und µ-rekursive Funktionen Diagonalisierungsbeweis: 1. Schritt: Wir sehen Loop-Programme als Wörter über einem endlichen Alphabet Σ (bestehend aus den Zeichen :=, +,, Loop, x 0, x 1,... ) an. Damit kann man sie der Länge nach und alphabetisch anordnen und erhält eine Aufzählung aller Loop-Programme. 2. Schritt: Die Funktion p, die einer natürlichen Zahl n das n-te Loop-Programm in dieser Aufzählung zuordnet, ist berechenbar. Beispielsweise kann man nacheinander alle Wörter aus Σ aufzählen, überprüfen, ob sie gültige Loop-Programme sind und das n-te gültige Programm ausgeben. Barbara König BeKo/TI 123

148 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Primitiv rekursive und µ-rekursive Funktionen 3. Schritt: Wir definieren eine Funktion g : N 0 N 0, deren Funktionswert bei Eingabe von n folgendermaßen bestimmt wird: Das Loop-Programm P = p(n) wird mit n als Eingabe, d.h., n in der Variablen x 1, alle anderen Variablen mit 0 belegt, gestartet. Der bei Terminierung in der Variablen x 0 befindliche Wert wird um eins inkrementiert und ist dann der Funktionswert g(n). Das heißt g(n) = P(n) + 1 (wobei P(n) der Wert in x 0 bei Terminierung ist). Diese Funktion ist (Turing-)berechenbar und da jedes Loop-Programm terminiert, ist sie auch total. Barbara König BeKo/TI 124

149 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Primitiv rekursive und µ-rekursive Funktionen 4. Schritt: Wir zeigen nun, dass g nicht Loop-berechenbar sein kann. Angenommen, es gibt ein Loop-Programm P, das g berechnet. Sei i der Index von P in der Aufzählung, d.h., P = p(i). Es gilt aufgrund der Wahl von P und der Definition von g: Das ist jedoch ein Widerspruch! P(i) = g(i) = P(i) + 1 Barbara König BeKo/TI 125

150 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Primitiv rekursive und µ-rekursive Funktionen Bemerkung: Dieser Beweis funktioniert auch für jedes andere Berechnungsmodell, das nur totale Funktionen berechnet und dessen syntaktisch korrekte Programme/Maschinen systematisch aufgezählt werden können. (Man sagt auch, dass die Menge der Programme rekursiv aufzählbar ist, dazu später mehr). D.h., es ist nicht möglich, ein sinnvolles Berechnungsmodell zu definieren, das genau die totalen berechenbaren Funktionen beschreibt. Barbara König BeKo/TI 126

151 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Primitiv rekursive und µ-rekursive Funktionen Ein klassisches Beispiel für eine totale Turing-berechenbare/µ-rekursive Funktion, die jedoch nicht primitiv rekursiv ist, ist die sogenannte Ackermannfunktion. Ackermannfunktion a: N 2 0 N 0 a(0, y) = y + 1 a(x, 0) = a(x 1, 1), falls x > 0 a(x, y) = a(x 1, a(x, y 1)), falls x, y > 0 Diese Funktion ist Turing-berechenbar und man kann auch nachweisen, dass sie immer einen definierten Wert zurückgibt (d.h., die Rekursion terminiert). Daher ist diese Funktion total. Barbara König BeKo/TI 127

152 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Primitiv rekursive und µ-rekursive Funktionen Wertetabelle der Ackermannfunktion für kleine Werte: y = a(x, y) x = y + 1 x = y + 2 x = y + 3 x = y+3 3 x = > }{{} 3 y + 3 Zweier... 2 Barbara König BeKo/TI 128

153 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Primitiv rekursive und µ-rekursive Funktionen Ackermannfunktion (Satz) Die Ackermannfunktion ist Turing-berechenbar, aber nicht primitiv rekursiv bzw. nicht Loop-berechenbar. (Ohne Beweis) Intuition: 1 Die Ackermannfunktion ist intuitiv berechenbar und damit auch Turing-berechenbar. 2 Die Ackermannfunktion wächst stärker als jede primitiv rekursive Funktion. Barbara König BeKo/TI 129

154 Unentscheidbarkeit Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Worum geht es in diesem Abschnitt? Zunächst einmal definieren wir formal den Begriff Entscheidbarkeit. Was bedeutet es überhaupt, dass ein Problem entscheidbar ist? Dann kommen wir zum Begriff Semi-Entscheidbarkeit. Hier wird erlaubt, dass das Entscheidungsverfahren bei einer negativen Antwort nicht terminiert und keine Antwort liefert. Anschließend geht es um negative Resultate: wie kann man zeigen, dass ein Problem nicht entscheidbar ist? Barbara König BeKo/TI 130

155 Entscheidbarkeit Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Entscheidbarkeit (Definition) Eine Sprache A Σ heißt entscheidbar, falls die charakteristische Funktion von A, nämlich χ A : Σ {0, 1} mit { 1 falls w A χ A (w) = 0 falls w A berechenbar ist. Eine Sprache, die nicht entscheidbar ist, heißt unentscheidbar. Barbara König BeKo/TI 131

156 Entscheidbarkeit Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Intuitiv: eine Sprache A ist entscheidbar, wenn es eine Maschine M A gibt, die sich bei Eingabe von w Σ folgendermaßen verhält: w M A Ja (Ausgabe 1, falls w A) Nein (Ausgabe 0, falls w A) Bei jeder Eingabe rechnet die Maschine endliche Zeit und gibt dann entweder Ja (falls w A) oder Nein (falls w A) aus. Barbara König BeKo/TI 132

157 Entscheidbarkeit Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Bei Semi-Entscheidbarkeit erlaubt man, dass die charakteristische Funktion im negativen Fall undefiniert ist. Bei konkreten Berechnungsmodellen entspricht das der Nicht-Terminierung. Semi-Entscheidbarkeit (Definition) Eine Sprache A Σ heißt semi-entscheidbar, falls die halbe charakteristische Funktion von A, nämlich χ A : Σ {0, 1} mit { χ 1 A (w) = undefiniert falls w A falls w A berechenbar ist. Barbara König BeKo/TI 133

158 Entscheidbarkeit Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Intuitiv: eine Sprache A ist semi-entscheidbar, wenn es eine Maschine M A gibt, die sich bei Eingabe von w Σ folgendermaßen verhält: w M A Ja (Ausgabe 1, falls w A)??? (Nicht-Terminierung, falls w A) Bei jeder Eingabe rechnet die Maschine und gibt falls w A gilt nach endlicher Zeit Ja aus. Falls w A gilt, so terminiert die Maschine nie. Das heißt, man kann sich nie sicher sein, ob nicht doch irgendwann Ja ausgegeben wird, da die Antwortzeit der Maschine nicht beschränkt ist. Barbara König BeKo/TI 134

159 Entscheidbarkeit Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Semi-Entscheidbarkeit und Chomsky-0-Sprachen Eine Sprache A ist semi-entscheidbar genau dann, wenn sie vom Typ-0 ist. Beweisidee: Die Chomsky-0-Sprachen sind genau die Sprachen, die von einer Turingmaschine akzeptiert werden. Turingmaschinen, die eine halbe charakteristische Funktion berechnen, akzeptieren auch die entsprechende Sprache, da sie nach Schreiben der 1 in einen Endzustand übergehen. Eine (deterministische) Turingmaschine, die eine Sprache akzeptiert, kann leicht in eine Turingmaschine umgewandelt werden, die die halbe charakteristische Funktion berechnet, indem sie beim Übergang in einen Endzustand das Band löscht und eine 1 schreibt. Barbara König BeKo/TI 135

160 Entscheidbarkeit Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Zur Erinnerung: die Chomsky-Hierarchie Menge aller Sprachen Typ-0-Sprachen semi-entscheidbare Sprachen Typ-1-Sprachen kontextsensitive Sprachen Typ-2-Sprachen kontextfreie Sprachen Typ-3-Sprachen reguläre Sprachen Barbara König BeKo/TI 136

161 Entscheidbarkeit Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Bemerkungen: Im Zusammenhang mit Fragestellungen der Entscheidbarkeit werden Sprachen oft auch als Probleme bezeichnet. Auch wenn charakteristische Funktionen Wörter als Argumente haben, kann man sie leicht als Funktionen über natürlichen Zahlen auffassen und so mit While- bzw. Goto-Programmen berechnen. Jedes Wort aus Σ kann als Zahl zur Basis b aufgefasst werden, wobei b > Σ. (Siehe auch die Umwandlung Turingmaschinen Goto-Programme.) Außerdem: Wir werden als Probleme im folgenden auch Teilmengen von N 0 bzw. N k 0 betrachten. Denn jede natürliche Zahl kann in Binärkodierung als Wort über Σ = {0, 1} betrachtet werden. Barbara König BeKo/TI 137

162 Entscheidbarkeit Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Typische Beispiele für Probleme: Beispiel 1: (Spezielle) Wortprobleme Gegeben sei eine feste Chomsky-Grammatik G und das Problem sei A = L(G). Wir wissen bereits, dass A entscheidbar ist, falls G eine Chomsky-1-Grammatik ist. Außerdem gibt es Grammatiken, für die L(G) nicht entscheidbar ist (noch ohne Beweis). Beispiel 2: das allgemeine Wortproblem Das allgemeine Wortproblem ist die Menge A = {(w, G) w L(G), G Chomsky-Grammatik über dem Alphabet Σ}, wobei die Paare (w, G) geeignet als Zeichenketten kodiert werden müssen. Barbara König BeKo/TI 138

163 Entscheidbarkeit Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Unentscheidbarkeit des allgemeinen Wortproblems (Satz) Falls es eine Grammatik G gibt, für die das (spezielle) Wortproblem L(G) unentscheidbar ist, so ist auch das allgemeine Wortproblem unentscheidbar. Beweis: Sei G eine Grammatik, für die das Wortproblem L(G) unentscheidbar ist. Falls das allgemeine Wortproblem A entscheidbar wäre, so wäre auch L(G) entscheidbar. Für ein gegebenes Wort w müßte man dann nur überprüfen, ob (w, G) A gilt. Widerspruch! Barbara König BeKo/TI 139

164 Entscheidbarkeit Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Das heißt, aus einer Maschine zur Lösung des allgemeinen Wortproblems könnte man eine Maschine zur Lösung eines (speziellen) Wortproblems bauen. Da es letztere aber nicht für alle Grammatiken G gibt, kann es auch erstere nicht geben. w G Maschine für allgemeines Wortproblem Ja Nein Maschine für (spezielles) Wortproblem Argumentationen dieser Art ( wenn es ein Verfahren für A gibt, dann kann man daraus ein Verfahren für B konstruieren ) bezeichnet man als Reduktionen. Wir werden sie im folgenden häufiger anwenden. Barbara König BeKo/TI 140

165 Entscheidbarkeit Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Beispiel 3: das Schnittproblem Das Schnittproblem für kontextfreie Grammatiken ist die Menge A = {(G 1, G 2 ) G 1, G 2 kontextfreie Grammatiken L(G 1 ) L(G 2 ) = }, Das Schnittproblem ist unentscheidbar (noch ohne Beweis). Barbara König BeKo/TI 141

166 Entscheidbarkeit Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Entscheidbarkeit und Semi-Entscheidbarkeit (Satz) Eine Sprache A ist entscheidbar, wenn sowohl A als auch A (das Komplement von A) semi-entscheidbar sind. Barbara König BeKo/TI 142

167 Entscheidbarkeit Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Rekursive Aufzählbarkeit (Definition) Eine Sprache A Σ heißt rekursiv aufzählbar, falls A = oder es gibt eine totale und berechenbare Funktion f : N 0 Σ mit Bemerkungen: A = {f (n) n N 0 } = {f (0), f (1), f (2),... }. Sprechweise: die Funktion f zählt die Sprache A auf. Äquivalente Definition von rekursiver Aufzählbarkeit: A = oder es gibt eine totale, berechenbare und surjektive Funktion f : N 0 A. Abzählbarkeit: der mathematische Begriff der Abzählbarkeit ist ganz ähnlich definiert. Nur fordert man dort nicht, dass f berechenbar ist. Deshalb: A rekursiv aufzählbar A abzählbar. Barbara König BeKo/TI 143

168 Entscheidbarkeit Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Rekursive Aufzählbarkeit und Semi-Entscheidbarkeit (Satz) Eine Sprache A ist rekursiv aufzählbar, genau dann, wenn sie semi-entscheidbar ist. Barbara König BeKo/TI 144

169 Entscheidbarkeit Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Rekursive Aufzählbarkeit Semi-Entscheidbarkeit: Gegeben: rekursiv aufzählbare Sprache L Σ, beschrieben durch eine Funktion f. Zu zeigen: es gibt eine Turingmaschine, die bestimmt, ob ein Wort w Σ in L liegt (und nicht terminiert, falls w nicht in L liegt). Lösung: Berechne f (0), f (1), f (2),..., solange bis w = f (i) für ein i gilt. In diesem Fall gibt die Turingmaschine 1 aus, ansonsten terminiert sie nicht. Barbara König BeKo/TI 145

170 Entscheidbarkeit Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Semi-Entscheidbarkeit Rekursive Aufzählbarkeit: Gegeben: semi-entscheidbare Sprache L Σ, beschrieben durch eine Turingmaschine M, die die halbe charakteristische Funktion berechnet. Zu zeigen: es gibt eine weitere Turingmaschine, die eine Funktion f berechnet, wie sie in der Definition der rekursiven Aufzählbarkeit beschrieben ist. Barbara König BeKo/TI 146

171 Entscheidbarkeit Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Lösung: Berechnung des Funktionswertes f (i). Verwende zwei Zähler, j und l, die zu Beginn beide auf 0 gesetzt sind. Der Zähler l wird sukzessive erhöht und für jeden Wert von l wird folgendes durchgeführt: Simuliere die Maschine M l Schritte lang auf allen Wörtern der Länge kleiner gleich l. (Reihenfolge: zunächst Wörter der Länge 0, dann Länge 1,..., dann Länge l. Innerhalb von Wörtern der gleichen Länge wird die alphabetische Ordnung gewählt.) Für jedes Wort, bei dem der Wert 1 ausgegeben wird, wird der Zähler j um eins erhöht. Sobald i = j gilt, wird das nächste akzeptierte Wort als Funktionswert f (i) zurückgegeben. Barbara König BeKo/TI 147

172 Entscheidbarkeit Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Begründung: Sei w ein Wort der Sprache L. Wir nehmen an, dass w die Länge n hat ( w = n) und von M innerhalb von k Schritten akzeptiert wird. Dann wird w akzeptiert, wenn der Zähler l irgendwann max{n, k} erreicht. Daher gibt es einen Index i, bei dem w zurückgegeben wird. Bemerkung: es kann passieren, dass bestimmte Wörter mehrfach ausgegeben werden. Das ist nach Definition der rekursiven Aufzählbarkeit erlaubt. Barbara König BeKo/TI 148

173 Entscheidbarkeit Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Daraus ergibt sich, dass folgende Aussagen für eine Sprache A äquivalent sind. Semi-Entscheidbarkeit und äquivalente Begriffe A ist semi-entscheidbar. A ist rekursiv aufzählbar A ist vom Typ-0. A = T (M) für eine Turing-Maschine M. χ A ist (Turing, While-, Goto-)berechenbar. Barbara König BeKo/TI 149

174 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Halteproblem/Kodierung von Turingmaschinen Unser Ziel ist es nun zu zeigen, dass das sogenannte Halteproblem unentscheidbar ist. Halteproblem (informell) Eingabe: Turing-Maschine M mit Eingabe w. Ausgabe: Hält M auf w? Dazu werden wir jedoch zunächst genauer definieren, wie eine Turing-Maschine kodiert werden kann, um als Eingabe einer berechenbaren (charakteristischen) Funktion verwendet zu werden. Barbara König BeKo/TI 150

175 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Halteproblem/Kodierung von Turingmaschinen Ziel: Kodierung von Turing-Maschinen über dem Alphabet {0, 1}. Annahme: alle Elemente von Γ (Bandalphabet) bzw. Z (Zustandsmenge) sind durchnummeriert Γ = {a 1,..., a k } Z = {z 1,..., z n } Die wichtigste Teil einer Turingmaschine ist die Überführungsfunktion. Diese kann folgendermaßen kodiert werden: Jeder δ-regel der Form δ(z i, a j ) = (z i, a j, y) ordnen wir das Wort w {0, 1, #} zu, wobei w = ##bin(i)#bin(j)#bin(i )#bin(j )#bin(cod(y)). 0 falls y = L Dabei ist cod(y) = 1 falls y = R 2 falls y = N Barbara König BeKo/TI 151

176 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Halteproblem/Kodierung von Turingmaschinen Die Konkatenation aller zu δ gehörenden Wörter (zusammen mit der Kodierung der restlichen Komponenten) ergibt eine Kodierung der Turingmaschine über dem Alphabet {0, 1, #}. Umwandlung in Kodierung über dem Alphabet {0, 1} durch folgende Ersetzungen: # 11 Bemerkungen: Viele der Festlegungen bei dieser Kodierung sind hochgradig willkürlich. Es gibt viele andere Möglichkeiten, Turing-Maschinen zu kodieren. Wichtig ist hier nur, dass es eine mögliche Kodierung gibt. Barbara König BeKo/TI 152

177 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Halteproblem/Kodierung von Turingmaschinen Dekodierung: Sei w {0, 1} und M eine beliebige aber feste Turingmaschine. Mit M w bzeichnen wir die Turingmaschine, die die Kodierung w hat. Falls w nicht die Kodierung einer Turingmaschine ist, so setzen wir M w = M. (Das ist erforderlich, damit die Dekodierungsfunktion total ist.) Barbara König BeKo/TI 153

178 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Halteproblem/Kodierung von Turingmaschinen Damit können wir nun zwei verschiedene Varianten des Halteproblems definieren. Halteproblem Das (allgemeine) Halteproblem ist die Sprache H = {w#x M w angesetzt auf x hält}. Spezielles Halteproblem Das spezielle Halteproblem ist die Sprache K = {w M w angesetzt auf w hält}. Man beachte die Selbstbezüglichkeit! Hier wird eine Turingmaschine auf ihre eigene Kodierung angesetzt. Barbara König BeKo/TI 154

179 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Unentscheidbarkeit des Halteproblems Unentscheidbarkeit des Halteproblems (Satz) Das spezielle Halteproblem K ist nicht entscheidbar. Barbara König BeKo/TI 155

180 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Unentscheidbarkeit des Halteproblems (Zum Widerspruch führende) Konstruktion der Turingmaschine M : w M Endlosschleife (M hält nicht) Ja (Ausgabe 1) TM M, die spez. Halteproblem löst Nein (Ausgabe 0) Ja (Ausgabe 1) (M hält) Die Maschine M erhält als Eingabe ihre eigene Kodierung w. M hält auf w M gibt bei Eingabe w Nein aus M hält nicht auf w M hält nicht auf w M gibt bei Eingabe w Ja aus M hält auf w (Widerspruch!) Barbara König BeKo/TI 156

181 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Unentscheidbarkeit des Halteproblems Es handelt sich hierbei um einen Diagonalisierungsbeweis. Diesen werden wir im folgenden veranschaulichen. Sei w 0, w 1, w 2,... eine Aufzählung aller Wörter aus {0, 1}, beispielsweise w 0 = ε, w 1 = 0, w 2 = 1, w 3 = 00,... Wir tragen in eine Tabelle folgendes ein: Wie verhält sich M wi auf w j? Es gibt zwei Möglichkeiten: H (M wi hält) oder HN (M wi hält nicht). Barbara König BeKo/TI 157

182 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Unentscheidbarkeit des Halteproblems M w w 0 w 1 w 2... w M w0 H M w1... H M w HN M = M w HN HN H?... Barbara König BeKo/TI 158

183 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Unentscheidbarkeit des Halteproblems Die konstruierte Turingmaschine M und ein w mit M = M w sind in die Tabelle eingetragen. Aufgrund der Konstruktion von M : die Felder in der Diagonalen bedingen die Felder in der Zeile von M. Problem: nichts passt an die Stelle des Fragezeichens! es kann keine Turingmaschine geben, die das Halteproblem löst. Barbara König BeKo/TI 159

184 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Unentscheidbarkeit des Halteproblems Semi-Entscheidbarkeit des speziellen Halteproblems (Satz) Das spezielle Halteproblem K ist semi-entscheidbar. Beweis: Berechne die halbe charakteristische Funktion χ K : Σ {0, 1} wie folgt Bei Eingabe von w simuliere die Turingmaschine M w mit Eingabe w. Falls M w angesetzt auf w hält, so lösche das Band und schreibe 1. Ansonsten hält M w nicht und die Funktion χ K ist an dieser Stelle undefiniert. Barbara König BeKo/TI 160

185 Unentscheidbarkeit Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Ein Comic zu unentscheidbaren Probleme (aus Garey/Johnson: Computers and Intractability ): Nicht so gut... I can t find an efficient algorithm. I guess I m just too dumb. Barbara König BeKo/TI 161

186 Unentscheidbarkeit Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Besser... I can t find an efficient algorithm, because no such algorithm is possible. Barbara König BeKo/TI 162

187 Reduktionen Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Wir haben nun die Unentscheidbarkeit eines Problems, des speziellen Halteproblems, nachgewiesen. Daraus sollen weitere Unentscheidbarkeitsresultate gewonnen werden. Dies erfolgt mit Argumentationen folgender Art: 1 Wenn man Problem B lösen könnte, dann könnte man auch A lösen. (Reduktionsschritt) 2 Daraus folgt, dass B mindestens so schwierig bzw. mindestens so allgemein ist wie A. (A B) 3 Wir wissen jedoch bereits, dass A unentscheidbar ist. 4 Also muss das mindestens so schwierige Problem B auch unentscheidbar sein. Barbara König BeKo/TI 163

188 Reduktionen Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Reduktion/Reduzierbarkeit (Definition) Gegeben seien Sprachen A Σ, B Γ. Dann heißt A auf B reduzierbar (in Zeichen A B), falls es eine totale und berechenbare Funktion f : Σ Γ gibt, so dass für alle x Σ gilt: x A f (x) B. Barbara König BeKo/TI 164

189 Reduktionen Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Anschaulich: A B, falls man aus einer (hypothetischen) Maschine M B für B und einer berechenbaren Funktion f eine Maschine M A für A bauen kann. Das heißt, M B wird nach einer Vorverarbeitung der Eingabe durch f als Unterprozedur aufgerufen. w f f (w) M B Ja Nein M A Barbara König BeKo/TI 165

190 Reduktionen Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Alternative Definition mit Hilfe der charakteristischen Funktionen: Für A Σ, B Γ gilt A B, falls es eine totale und berechenbare Funktion f : Σ Γ gibt mit für alle x Σ. χ A (x) = χ B (f (x)) Barbara König BeKo/TI 166

191 Reduktionen Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Reduktionen und Entscheidbarkeit Es sei A B. Falls B entscheidbar ist, dann ist auch A entscheidbar. Falls A unentscheidbar ist, dann ist auch B unentscheidbar. Barbara König BeKo/TI 167

192 Reduktionen Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Kochrezept um die Unentscheidbarkeit eines Problems B zu zeigen Finde ein geeignetes Problem A, von dem bekannt ist, dass es unentscheidbar ist. (Bisher kennen wir nur das spezielle Halteproblem K, wir werden allerdings bald weitere geeignete Probleme kennenlernen.) Finde eine geeignete berechenbare Funktion f, mit Hilfe derer A auf B reduziert werden kann und beweise, dass sie korrekt ist. Dann folgt daraus unmittelbar, dass B unentscheidbar ist. Barbara König BeKo/TI 168

193 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Unentscheidbarkeit des Halteproblems Unentscheidbarkeit des Halteproblems (Satz) Das (allgemeine) Halteproblem H ist nicht entscheidbar. Barbara König BeKo/TI 169

194 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Unentscheidbarkeit des Halteproblems Halteproblem auf leerem Band (Definition) Das Halteproblem auf leerem Band ist die Sprache H 0 = {w M w hält angesetzt auf ein leeres Band}. Unentscheidbarkeit des Halteproblems auf leerem Band (Satz) Das Halteproblem auf leerem Band H 0 ist nicht entscheidbar. Barbara König BeKo/TI 170

195 Satz von Rice Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Das nächste Resultat zeigt, dass es unentscheidbar ist, ob die Funktion, die von einer Turingmaschine M berechnet wird, eine bestimmte Eigenschaft S hat. Das bedeutet, es gibt keine Methode, mit der man für alle Turingmaschinen verläßliche Aussagen über die von ihnen berechneten Funktionen machen kann. Barbara König BeKo/TI 171

196 Satz von Rice Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Satz von Rice Sei R die Klasse aller Turing-berechenbaren Funktionen und sei S eine beliebige Teilmenge hiervon (mit Ausnahme von S = und S = R). Dann ist die Sprache C(S) = {w die von M w berechnete Funktion liegt in S} unentscheidbar. Barbara König BeKo/TI 172

197 Satz von Rice Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Konsequenzen aus dem Satz von Rice: folgende Probleme sind unentscheidbar Konstante Funktion: {w M w berechnet eine konstante Funktion} Identität: {w M w berechnet die Identitätsfunktion} Totale Funktion: {w M w berechnet eine totale Funktion} Überall undefinierte Funktion: {w M w berechnet Ω} Dieses Unentscheidbarkeitsresultat bezieht sich jedoch nur auf die Eigenschaften der von einer Turingmaschine berechneten Funktion, nicht jedoch auf andere Eigenschaften einer Turingmaschine (wie beispielsweise die Anzahl ihrer Zustände oder das Bandalphabet). Barbara König BeKo/TI 173

198 Satz von Rice Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Der Satz von Rice und seine Varianten gelten natürlich auch für andere Berechnungsmodelle. Halteproblem für Goto-/While-Programme (Satz) Für ein gegebenes Goto-/While-Programm und Anfangswerte für die Variablen ist es nicht entscheidbar, ob das Programm auf dieser Eingabe hält. Beweisidee: Das Halteproblem für Turingmaschinen ist auf dieses Problem reduzierbar. Dazu muss nur die Turingmaschine in das entsprechende Goto-/While-Programm und die Eingabe der Maschine in die entsprechenden Variablenbelegungen übersetzt werden. (Transformation Turingmaschine Goto-Programm als Funktion f.) Barbara König BeKo/TI 174

199 Satz von Rice Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Es ist bereits folgendes Problem unentscheidbar: Halteproblem für Goto-Programme mit zwei Variablen (Satz) Für ein gegebenes Goto-Programm mit zwei Variablen, die beide mit 0 vorbelegt sind, ist es nicht entscheidbar, ob das Programm hält. (Ohne Beweis) Für Goto-Programme mit nur einer Variablen ist das Halteproblem übrigens entscheidbar, denn eine Variable kann durch einen Kellerautomaten simuliert werden. Barbara König BeKo/TI 175

200 Satz von Rice Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Konsequenz des Satzes von Rice auf die Verifikation von Programmen: Kein Programm kann automatisch die Korrektheit von Software überprüfen. Die Lage ist jedoch keineswegs hoffnungslos und es gibt verschiedene Möglichkeiten: Testen Mich interessiert nicht die vollständige Korrektheit von Software, mir reicht es aus, zu wissen, dass das Programm mit einer (relativ) hohen Wahrscheinlichkeit fehlerfrei ist. Testen: Finden/Erzeugen von Testfällen und Überprüfung des korrekten Verhaltens des Programms auf diesen Testfällen. Barbara König BeKo/TI 176

201 Satz von Rice Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Analyse durch Approximation Ich will ein automatisches Verfahren, das Antworten der Form ja, nein und ich weiss nicht liefert, so dass man sich auf ja/nein -Antworten immer verlassen kann. Analyse durch Approximation: Softwaresystem wird durch ein einfacheres (i.a. endliches) System überapproximiert, dann wird versucht, die Eigenschaft für dieses einfachere System zu beweisen. Die Kunst dabei ist, das Analyse-Werkzeug so zu erstellen, dass die Antwort ich weiss nicht relativ selten ist. (Schwer!) Barbara König BeKo/TI 177

202 Satz von Rice Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme (Vollständige) Verifikation Ich habe ein hoch sicherheitskritisches Systems und will eine Ja/Nein-Anwort, um Sicherheit über die Korrektheit meiner Software zu erhalten. Verifikation mit Unterstützung des Benutzers: mit Hilfe eines Werkzeugs (z.b. Theorembeweiser) wird ein Beweis über die Korrektheit des Systems erstellt. (Aufwändig!) Barbara König BeKo/TI 178

203 Universelle Turingmaschine Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Einige der Ergebnisse, die in diesem Abschnitt vorkommen, beruhen darauf, dass es eine Turingmaschine gibt, die eine andere Turingmaschine simulieren kann, wenn deren Kodierung gegeben ist. So eine Turingmaschine heißt auch universelle Turingmaschine (eine Art Turingmaschinen-Interpreter). Universelle Turingmaschine Eine Turingmaschine U heißt universelle Turingmaschine, wenn sie sich bei Eingabe von w#x wie die Maschine M w angesetzt auf die Eingabe x verhält. Barbara König BeKo/TI 179

204 Nicht-berechenbare Funktionen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Ähnlich zur Unentscheidbarkeit von Problemen kann auch gezeigt werden, dass bestimmte Funktionen nicht berechenbar sind. Ein Beispiel dafür ist die sogenannte Busy-Beaver-Funktion. Busy Beaver Wir betrachten alle deterministischen Turing-Maschinen mit dem zweielementigen Bandalphabet Γ = {1, } und n Zuständen, wobei der Endzustand nicht mitgezählt wird. Von diesen Maschinen halten einige auf dem leeren Band, andere terminieren nicht. Der Wert der Busy-Beaver-Funktion Σ an der Stelle n ist die maximale Anzahl an Einsen, die von einer Maschine mit n Zuständen geschrieben werden kann, die auf dem leeren Band terminiert. Barbara König BeKo/TI 180

205 Nicht-berechenbare Funktionen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Von der Busy-Beaver-Funktion Σ: N 0 N 0 ist folgendes bekannt: Sie ist nicht berechenbar. Über die Funktionswerte weiß man folgendes: n Σ(n) , Bereits der Funktionswert an der Stelle n = 5 ist bisher noch nicht genau ermittelt worden. Barbara König BeKo/TI 181

206 Unentscheidbare Probleme Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Wir verwenden nun die Reduktions-Beweistechnik und zeigen die Unentscheidbarkeit folgender Probleme: Unentscheidbarkeit des Adventure-Problems (Level 4) Es ist unentscheidbar, ob ein gegebenes Adventure des Levels 4 eine Lösung besitzt. Postsches Korrespondenzproblem PCP PCP: ein kombinatorisches Problem auf Wörtern, wichtiges (Hilfs-)Problem, um damit die Unentscheidbarkeit anderer Probleme zu zeigen Schnittproblem für kontextfreie Grammatiken Barbara König BeKo/TI 182

207 Adventure-Problem (Level 4) Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Adventures bestehen aus Graphen bzw. Automaten, die mit folgenden Symbolen markiert sind: Torbogen: Drache: Schwert: Fluss: Tür: Schlüssel: Schatz: Barbara König BeKo/TI 183

208 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Barbara König BeKo/TI 184

209 Adventure-Problem (Level 4) Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Regeln: Die Schatz-Regel Man muss mindestens zwei Schätze finden. Tür-Regel Die Schlüssel sind magisch und verschwinden sofort, nachdem eine Tür mit ihnen geöffnet wurde. Sobald man eine Tür durchschritten hat, schließt sie sich sofort wieder. Barbara König BeKo/TI 185

210 Adventure-Problem (Level 4) Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Drachen-Regel Unmittelbar nach der Begegnung mit einem Drachen muss man in einen Fluss springen, da uns der Drache in Brand stecken wird. Dies gilt nicht mehr, sobald man ein Schwert besitzt, mit dem man den Drachen vorher töten kann. Schwerter werden jedoch durch das Drachenblut unbenutzbar, sobald man einen Drachen damit getötet hat. Außerdem werden Drachen sofort wieder ersetzt. Barbara König BeKo/TI 186

211 Adventure-Problem (Level 4) Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Schlüssel-Regel Der magische Torbogen kann nur passiert werden, wenn man keinen Schlüssel besitzt. Schwert-Regel Ein Fluss kann nur passiert werden, wenn man kein Schwert besitzt (weil man sonst ertrinkt!). Barbara König BeKo/TI 187

212 Adventure-Problem (Level 4) Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Gegeben ist ein Adventure durch eine Karte bzw. einen endlichen Automaten M. Das Adventure-Problem (Level 4) lautet folgendermaßen: A 4 = {M es gibt einen Pfad von einem Anfangs- zu einem Endzustand von M, der alle Regeln erfüllt}. Dabei sollen die Automaten M in entsprechender Kodierung als Eingabe zur Verfügung gestellt werden. Barbara König BeKo/TI 188

213 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Barbara König BeKo/TI 189

214 Adventure-Problem (Level 4) Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Wir zeigen die Unentscheidbarkeit von A 4 durch Reduktion des Halteproblems für Goto-Programme (mit zwei Variablen x 1, x 2 und initialer Variablenbelegung 0) auf A 4. Annahmen: Um die Kodierung graphisch darstellen zu können, repräsentieren wir Goto-Programme durch Flussdiagramme, bei denen die Sprungmarken durch Pfeile ersetzt werden. Wir betrachten nur Zuweisungen der Form x i := x i + 1 bzw. x i := x i 1 und Vergleiche mit 0 (alle anderen Zuweisungen bzw. Vergleiche können simuliert werden) Barbara König BeKo/TI 190

215 Adventure-Problem (Level 4) Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Intuition: Tür- und Schlüssel-Regel: wird zur Simulation einer Variable x 1 benutzt (mit Inkrementierung und Nulltest). Drachen- und Schwert-Regel: wird zur Simulation einer Variable x 2 benutzt Barbara König BeKo/TI 191

216 Adventure-Problem (Level 4) Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Übersetzung: Goto-Programm Adventure x 1 := x x 1 := x 1 1 Barbara König BeKo/TI 192

217 Adventure-Problem (Level 4) Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Übersetzung: Goto-Programm Adventure yes x 1 = 0 no If... Then... Barbara König BeKo/TI 192

218 Adventure-Problem (Level 4) Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Übersetzung: Goto-Programm Adventure x 2 := x x 2 := x 2 1 Barbara König BeKo/TI 192

219 Adventure-Problem (Level 4) Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Übersetzung: Goto-Programm Adventure yes x 2 = 0 no If... Then... Barbara König BeKo/TI 192

220 Adventure-Problem (Level 4) Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Übersetzung: Goto-Programm Adventure Halt Mit Schatz beschriftete Transitionen können auch zum Zusammenfügen der einzelnen Teilautomaten verwendet werden. Barbara König BeKo/TI 192

221 Adventure-Problem (Level 4) Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Beispiel: Übersetze das folgende Goto-Programm in ein Adventure durch Zusammensetzen der einzelnen Teil-Automaten: x 1 := x 1 + 1; x 1 := x 1 + 1; M 1 : If x 1 = 0 Then Goto M 2 ; x 1 := x 1 1; x 2 := x 2 + 1; Goto M 1 ; M 2 : Halt M 2 M 1 Barbara König BeKo/TI 193

222 Adventure-Problem (Level 4) Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Goto-Programm Adventure Ein Goto-Programm (bei dem alle Variablen am Anfang mit 0 belegt werden) hält genau dann, wenn das entsprechend übersetzte Adventure eine Lösung hat. Wir können diese Kodierung daher als Reduktionsfunktion f auffassen und es folgt: Unentscheidbarkeit des Adventure-Problems (Level 4) Das Adventure-Problem A 4 ist unentscheidbar. Barbara König BeKo/TI 194

223 Adventure-Problem (Level 4) Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Tag der offenen Tür 2011 an der TU München... Barbara König BeKo/TI 195

224 Adventure-Problem (Level 4) Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Barbara König BeKo/TI 195

225 Postsches Korrespondenzproblem Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Wir betrachten nun ein wichtiges unentscheidbares Problem, das dazu benutzt wird, die Unentscheidbarkeit vieler anderer Probleme zu zeigen: Postsches Korrespondenzproblem (PCP) Eingabe: Eine endliche Folge von Wortpaaren (x 1, y 1 ),..., (x k, y k ) mit x i, y i Σ +. (Dabei ist Σ ein beliebiges Alphabet.) Ausgabe: Gibt es eine Folge von Indizes i 1,..., i n {1,..., k}, n 1 mit x i1... x in = y i1... y in? Barbara König BeKo/TI 196

226 Postsches Korrespondenzproblem Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Beispiel 1: Löse das Postsche Korrespondenzproblem für x 1 = 0 x 2 = 1 x 3 = 0101 y 1 = 010 y 2 = 101 y 3 = 01 Eine mögliche Lösung: 3, 3, 1, 2: Eine weitere (kürzere) Lösung ist: 3, 1 Barbara König BeKo/TI 197

227 Postsches Korrespondenzproblem Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Beispiel 2: Löse das Postsche Korrespondenzproblem für x 1 = 001 x 2 = 01 x 3 = 01 x 4 = 10 y 1 = 0 y 2 = 011 y 3 = 101 y 4 = 001 Eine kürzeste Lösung besteht bereits aus 66 Indizes: 2, 4, 3, 4, 4, 2, 1, 2, 4, 3, 4, 3, 4, 4, 3, 4, 4, 2, 1, 4, 4, 2, 1, 3, 4, 1, 1, 3, 4, 4, 4, 2, 1, 2, 1, 1, 1, 3, 4, 3, 4, 1, 2, 1, 4, 4, 2, 1, 4, 1, 1, 3, 4, 1, 1, 3, 1, 1, 3, 1, 2, 1, 4, 1, 1, 3. An der Komplexität dieser Lösung kann man bereits die Schwierigkeit des Problems ablesen. Barbara König BeKo/TI 198

228 Postsches Korrespondenzproblem Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Semi-Entscheidbarkeit des PCP (Satz) Das Postsche Korrespondenzproblem ist semi-entscheidbar. Beweisidee: Probiere erst alle Indexfolgen der Länge 1 aus, dann alle Indexfolgen der Länge 2,... Falls irgendwann eine passende Indexfolge gefunden wird, so gib 1 aus. Barbara König BeKo/TI 199

229 Postsches Korrespondenzproblem Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Der erste Schritt des Unentscheidbarkeitsbeweises ist es, das folgende modifizierte Problem zu betrachten. Modifiziertes PCP (MPCP) Eingabe: wie beim PCP. Ausgabe: Gibt es eine Lösung i 1,..., i n des PCP mit i 1 = 1? Barbara König BeKo/TI 200

230 Postsches Korrespondenzproblem Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Wir beweisen nun zwei Reduktions-Lemmata, aus denen die Unentscheidbarkeit des Postschen Korrespondenzproblems folgt: MPCP auf PCP reduzierbar (Lemma) MPCP PCP Barbara König BeKo/TI 201

231 Postsches Korrespondenzproblem Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Halteproblem auf MPCP reduzierbar (Lemma) H MPCP Barbara König BeKo/TI 202

232 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Postsches Korrespondenzproblem (Lemma) PCP unentscheidbar Das Postsche Korrespondenzproblem ist unentscheidbar. Beweis: Die Behauptung folgt direkt aus den beiden vorherigen Lemmata. Aus H MPCP PCP folgt H PCP (durch Komposition der Reduktionsabbildungen). Und da außerdem bekannt ist, dass H (das allgemeine Halteproblem) nicht entscheidbar ist, folgt daraus, dass das PCP nicht entscheidbar ist. Barbara König BeKo/TI 203

233 Postsches Korrespondenzproblem Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Bemerkungen: Das Postsche Korrespondenzproblem ist bereits unentscheidbar, wenn man sich auf das Alphabet Σ = {0, 1} einschränkt. Für unäres (einelementiges) Alphabet ist das PCP jedoch entscheidbar. Hier entspricht die Konkatenation von Wörtern der Addition von Zahlen. Wir werden nun das PCP dazu nutzen, um die Unentscheidbarkeit des Schnittproblems für kontextfreie Grammatiken zu zeigen. Barbara König BeKo/TI 204

234 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Schnittproblem für kontextfreie Grammatiken Zuletzt betrachten wir noch das Schnittproblem für kontextfreie Grammatiken Schnittproblem für kontextfreie Grammatiken Eingabe: zwei kontextfreie Grammatiken G 1, G 2. Ausgabe: Gilt L(G 1 ) L(G 2 ) =? (D.h., es gibt kein Wort, das sowohl von G 1 als auch von G 2 erzeugt wird.) Barbara König BeKo/TI 205

235 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Schnittproblem für kontextfreie Grammatiken PCP auf Schnittproblem reduzierbar (Lemma) Das Postsche Korrespondenzproblem ist auf das Komplement des Schnittproblems für kontextfreie Grammatiken reduzierbar. Barbara König BeKo/TI 206

236 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Schnittproblem für kontextfreie Grammatiken Beweis (alternativ zum Beweis im Buch von Schöning): Gegeben sei ein Postsches Korrespondenzproblem K = ((x 1, y 1 ),..., (x k, y k )) über dem Alphabet {0, 1}. Betrachte zunächst folgende Grammatik G 1 : Dabei steht y R i S x i Sy R i x i $y R i für y i rückwärts. i = 1,..., k L(G 1 ) = {x i1... x in $yi R n... yi R 1 i 1,..., i n {1,..., k}} Betrachte jetzt folgende Grammatik G 2 : S 0S0 1S1 $ L(G 2 ) = {w$w R w {0, 1} } Barbara König BeKo/TI 207

237 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Schnittproblem für kontextfreie Grammatiken Zusammen: L(G 1 ) L(G 2 ) = {x i1... x in $yi R n... yi R 1 i 1,..., i n {1,..., k}, x i1... x in = y i1... y in } Das heißt, der Schnitt der Sprachen ist nicht-leer, genau dann, wenn das PCP eine Lösung hat. Barbara König BeKo/TI 208

238 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Schnittproblem für kontextfreie Grammatiken Schnittproblem unentscheidbar Das Schnittproblem für kontextfreie Grammatiken ist unentscheidbar. Barbara König BeKo/TI 209

239 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Schnittproblem für kontextfreie Grammatiken Bemerkungen: Das Komplement des Schnittproblems ist semi-entscheidbar: man leitet mit beiden Grammatiken parallel Wörter ab und bricht ab, sobald ein Wort von beiden Grammatiken abgeleitet wurde. Daraus folgt auch, dass das Schnittproblem selbst nicht semi-entscheidbar sein kann. Ansonsten wäre es nämlich entscheidbar. Außer dem Schnittproblem sind noch einige andere verwandte Probleme für kontextfreie Sprachen unentscheidbar: Inklusion, Gleichheit, Mehrdeutigkeit, Regularität,... (siehe Schöning). Barbara König BeKo/TI 210

240 Spezielles Wortproblem Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Wir haben nun von mehreren semi-entscheidbaren Problemen (Halteproblem, PCP, etc.) gezeigt, dass sie unentscheidbar sind. Damit haben wir Typ-0-Sprachen identifiziert, deren Wortproblem unentscheidbar ist. (Unentscheidbarkeit des speziellen Wortproblems.) Es gibt natürlich auch Typ-0-Sprachen mit einem entscheidbaren Wortproblem. Beispielsweise, wenn es sich um Typ-1-, Typ-2- oder Typ-3-Sprachen handelt. Barbara König BeKo/TI 211

241 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Typ-1-Sprachen und Entscheidbarkeit Typ-1-Sprachen und Entscheidbarkeit (Zusammenfassung) Jede Typ-1-Sprache ist entscheidbar. (Aufgrund der Bedingung linke Seite rechte Seite kann man die Wörter, die von der Grammatik erzeugt werden, in aufsteigender Länge aufzählen. Stopp, sobald die Wörter länger als das gesuchte werden.) Es gibt entscheidbare Sprachen, die nicht vom Typ 1 sind. Barbara König BeKo/TI 212

242 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Typ-1-Sprachen und Entscheidbarkeit Konstruktion einer entscheidbaren Sprache, die nicht vom Typ 1 ist (mittels Diagonalisierung): Betrachte ein Alphabet Σ, in dem sich Grammatiken kodieren lassen. Wir bezeichnen die Kodierung einer Grammatik G mit cod(g). Sei E die Menge der Kodierungen aller Grammatiken G, die folgende Eigenschaften erfüllen: G erzeugt Wörter über dem Alphabet Σ G ist vom Typ 1 (kontextsensitiv) cod(g) L(G) Die Sprache E ist entscheidbar. Die letzte Bedingung ist überprüfbar, da das Wortproblem für Typ-1-Sprachen entscheidbar ist. Barbara König BeKo/TI 213

243 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Typ-1-Sprachen und Entscheidbarkeit Angenommen, E ist vom Typ 1. Dann gibt es eine Typ-1-Grammatik G mit L(G ) = E. Die Frage ist jetzt, ob die Kodierung von G in E liegt. Da die ersten beiden Bedingungen auf jeden Fall erfüllt sind, hängt dies nur noch von der letzten Bedingung ab. cod(g ) E cod(g ) L(G ) cod(g ) E. Die letzte Äquivalenz gilt wegen L(G ) = E. Damit ergibt sich ein Widerspruch und E kann nicht vom Typ 1 sein. Barbara König BeKo/TI 214

244 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Typ-1-Sprachen und Entscheidbarkeit Bemerkungen: Bei diesem Resultat gibt es eine Analogie zu der Tatsache, dass es totale und berechenbare Funktionen gibt, die nicht Loop-berechenbar sind. Jeder andere Versuch, syntaktisch eine Klasse von Grammatiken zu definieren, die genau die entscheidbaren Sprachen erzeugen, muss scheitern. In diesem Fall wäre ein analoger Diagonalisierungsbeweis möglich. Barbara König BeKo/TI 215

245 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Typ-1-Sprachen und Entscheidbarkeit Damit ergibt sich folgende Hierarchie in Bezug auf semi-entscheidbare Sprachen (= Typ 0), Typ-1-Sprachen und entscheidbare Sprachen: Menge aller Sprachen Typ-0-Sprachen semi-entscheidbare Sprachen Entscheidbare Sprachen Typ-1-Sprachen kontextsensitive Sprachen Barbara König BeKo/TI 216

246 Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Äquivalenzproblem für Turingmaschinen Wir haben bereits ein Problem kennengelernt, das nicht semi-entscheidbar ist: das Schnittproblem für kontextfreie Sprachen. Allerdings ist das Komplement dieses Problems semi-entscheidbar. Es gibt allerdings sogar noch schwerere Probleme, die nicht semi-entscheidbar sind und deren Komplement auch nicht semi-entscheidbar ist. Beispielsweise folgendes Problem: Äquivalenzproblem für Turingmaschinen Eingabe: Zwei Turingmaschinen M 1, M 2 Ausgabe: Berechnen M 1, M 2 dieselbe Funktion? Beweis: Reduktion vom Satz von Rice. Barbara König BeKo/TI 217

247 Logik-Probleme Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Unerfüllbarkeit für Formeln der Prädikatenlogik 1. Stufe Das Problem, zu entscheiden, ob eine gegebene Formel F der Prädikatenlogik 1. Stufe unerfüllbar ist, ist unentscheidbar. Es ist jedoch noch semi-entscheidbar (z.b. mit Hilfe des Resolutionskalküls). Das gleiche gilt für das Gültigkeitsproblem. Prädikatenlogik 1. Stufe: die einfachste Form der Prädikatenlogik; man darf über Elemente quantifizieren ( x, x), nicht jedoch über Mengen oder Relationen. Barbara König BeKo/TI 218

248 Logik-Probleme Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Das Unerfüllbarkeits- bzw. Gültigkeitsproblem für Logiken höherer Stufe (beispielsweise für die Prädikatenlogik 2. Stufe, bei der Quantifikation über Relationen erlaubt ist), ist nicht mehr semi-entscheidbar. Der Beweis benutzt die Tatsache, dass man mit Hilfe dieser Logiken die natürlichen Zahlen axiomatisieren und damit Aussagen über arithmetische Ausdrücken formulieren kann, etwas, das mit Hilfe der Prädikatenlogik 1. Stufe nicht ohne weiteres möglich ist (da man darin das Induktionsaxiom nicht ausdrücken kann). Barbara König BeKo/TI 219

249 Logik-Probleme Kontextsensitive und Typ-0-Sprachen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Daraus folgt auch, dass solche Logiken höherer Stufe keinen Kalkül haben können. Denn aus einem Kalkül, der es ermöglicht, alle wahren Formeln abzuleiten, kann man immer ein Semi-Entscheidungsverfahren gewinnen. Die Nicht-Existenz eines solchen (vollständigen) Kalküls für die Arithmetik ist die Aussage des (Ersten) Gödelschen Unvollständigkeitssatzes (1931). Für die Mathematik bedeutet das: Es gibt wahre Aussagen, die nicht beweisbar sind. Unterhaltsame Lektüre zu diesem Thema: Douglas R. Hofstadter: Gödel, Escher, Bach: An Eternal Golden Braid In deutscher Übersetzung: Douglas R. Hofstadter: Gödel, Escher, Bach: Ein endloses geflochtenes Band Barbara König BeKo/TI 220

250 Diophantische Gleichungen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Wir beschäftigen uns nun mit dem Lösen diophantischer Gleichungen (auch bekannt als Hilberts 10. Problem). Diophantische Gleichung Eine diophantische Gleichung ist eine Gleichung der Form p(x 1,..., x n ) = 0 Wobei p(x 1,..., x n ) ein Polynom in den Variablen x 1,..., x n mit ganzzahligen Koeffizienten ist. Beispiele: 3x 4y 1 = 0 2x 4y 1 = 0 x 2 1 = 0 xy 2y 2 2 = 0 x 2 + y 2 z 2 = 0 x 3 + y 3 z 3 = 0 Barbara König BeKo/TI 221

251 Diophantische Gleichungen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Problem: Lösen diophantischer Gleichungen Eingabe: Eine diophantische Gleichung Ausgabe: Hat diese Gleichung eine Lösung in den ganzen Zahlen? Alternative Fragestellung: Hat diese Gleichung eine Lösung in den natürlichen Zahlen? Unentscheidbarkeit des Lösens diophantischer Gleichungen Es gibt kein allgemeines Verfahren, um diophantische Gleichungen zu lösen. D.h., das entsprechende Problem ist unentscheidbar. (Matiyasevich, 1970) (Ohne Beweis) Barbara König BeKo/TI 222

252 Diophantische Gleichungen Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Bemerkungen: Eine der berühmtesten Klassen von diophantischen Gleichungen ist x n + y n = z n. Nach einem Result von Wiles von 1995 hat keine solche Gleichung für n > 2 eine Lösung in den natürlichen Zahlen (ohne die Null). (Beweis des letzten Satzes von Fermat) Für bestimmte Klassen von diophantischen Gleichungen gibt es Lösungsverfahren: Für eine Gleichung vom Typ x n + y n = z n mit n > 2 ist die Ausgabe der Algorithmus immer nein (= keine Lösung). Lineare diophantische Gleichungen der Form a 1 x a n x n = b haben ein Lösungsverfahren ( erweiterter euklidischer Algorithmus). Barbara König BeKo/TI 223

253 Abschlusseigenschaften Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Abgeschlossenheit (Definition) Gegeben sei eine Menge M und ein binärer Operator : M M M. Man sagt, eine Menge M M ist unter abgeschlossen, wenn für zwei beliebige Elemente m 1, m 2 M gilt: m 1 m 2 M. Uns interessieren hier vor allem folgende Operatoren: Komplement, Schnitt, Vereinigung Barbara König BeKo/TI 224

254 Abschlusseigenschaften Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme Entscheidbare Sprachen: Abschluss unter Komplement Die entscheidbaren Sprachen sind unter Komplement abgeschlossen. D.h., wenn L entscheidbar ist, dann ist auch Σ \L entscheidbar. (Dabei ist Σ das Alphabet, über dem L definiert ist.) Semi-entscheidbare Sprachen: kein Abschluss unter Komplement Die semi-entscheidbaren Sprachen sind nicht unter Komplement abgeschlossen. Barbara König BeKo/TI 225

255 Abschlusseigenschaften Berechnungsmodelle Unentscheidbarkeit Unentscheidbare Probleme (Semi-)entscheidbare Sprachen: Abschluss unter Schnitt Die entscheidbaren Sprachen sind unter Schnitt abgeschlossen. D.h., wenn L 1, L 2 entscheidbar sind, dann ist auch L 1 L 2 entscheidbar. Das gleiche gilt für die semi-entscheidbaren Sprachen. (Semi-)entscheidbare Sprachen: Abschluss unter Vereinigung Die entscheidbaren Sprachen sind unter Vereinigung abgeschlossen. D.h., wenn L 1, L 2 entscheidbar sind, dann ist auch L 1 L 2 entscheidbar. Das gleiche gilt für die semi-entscheidbaren Sprachen. Barbara König BeKo/TI 226

256 Einführung: Komplexitätsklassen NP-Vollständigkeit Nach der Betrachtung von Berechnungen, die beliebig viel Platz und Zeit beanspruchen dürfen, betrachten wir jetzt Turingmaschinen mit eingeschränkten Resourcen. Dabei interessiert uns vor allem die Anzahl der Schritte, die eine Turingmaschine braucht, um ein Problem zu lösen. Barbara König BeKo/TI 227

257 Einführung: Komplexitätsklassen NP-Vollständigkeit Beispiel 1: Travelling Salesman Ist der kürzeste Weg, der alle Knoten besucht und wieder zum Ausgangsort zurückkehrt, maximal so lang wie d? ,5 1 1,5 1 1,5 5 1, Ist es wirklich nötig, alle kürzeren Touren auszuprobieren oder gibt es ein effizienteres Verfahren? 2, Barbara König BeKo/TI 228

258 Einführung: Komplexitätsklassen NP-Vollständigkeit Beispiel 2: Tourenplanungsproblem Gegeben ist: Ein Graph (= Wegenetz) wie beim Travelling-Salesman-Problem. Jedem Knoten ist ein Gewicht (= abzuholende Ladung) zugeordnet. Eine Menge von Lastwagen mit Ladebeschränkung. Frage: Kann man den Lastwagen Touren zuordnen, so dass die Ladebeschränkungen eingehalten werden, und die Gesamtstrecke kleiner als d bleibt? Barbara König BeKo/TI 229

259 Komplexitätsklassen NP-Vollständigkeit 2500 kg kg 1 10 t 3 1,5 1 2 Depot 2 5 t 3000 kg 4 1,5 1 1, , kg t 2, kg 4000 kg 5 t kg kg Barbara König BeKo/TI 230

260 Einführung: Komplexitätsklassen NP-Vollständigkeit Offensichtlich ist sowohl das Travelling-Salesman- als auch das Tourenplanungs-Problem entscheidbar (alle möglichen Touren durchprobieren!). Wir werden jedoch zeigen, dass sie mit zu den schwersten Problemen in der Klasse NP gehören: sie sind NP-vollständig. (NP = Klasse von Problemen, die von nicht-deterministischen Turingmaschinen mit polynomialer Laufzeitbeschränkung akzeptiert werden können) Eine der wichtigsten offenen Fragen in der theoretischen Informatik ist, ob diese Probleme auch von einer deterministischen Turingmaschine in polynomialer Laufzeit gelöst werden können (es wird allgemein erwartet, dass dies nicht möglich ist). Es handelt sich hierbei um das sogenannte P NP-Problem. Barbara König BeKo/TI 231

261 Komplexitätsklassen Komplexitätsklassen NP-Vollständigkeit Wir definieren zunächst die Klasse aller Sprachen, die von einer deterministischen Turingmaschine mit Zeitbeschränkung akzeptiert werden können. Zeitbeschränkte det. TM und akz. Sprachen (Definition) Sei f : N 0 N 0 eine (totale) Funktion. Die Klasse TIME(f (n)) besteht aus allen Sprachen A, für die es eine deterministische Mehrband-Turingmaschine M gibt mit A = T (M) und time M (x) f ( x ) für alle Wörter x. Dabei gibt time M (x) die Anzahl der Rechenschritte von M bei Eingabe x an. Das heißt, die Anzahl der Schritte der Turingmaschine ist beschränkt und die Beschränkung ist abhängig von der Länge der Eingabe. Barbara König BeKo/TI 232

262 Komplexitätsklassen Komplexitätsklassen NP-Vollständigkeit Bemerkung: Um die Anzahl der Rechenschritte time M (x) einer Turingmaschine M zu ermitteln, müssen wir noch festlegen, wann die Berechnung von M beendet ist: dies ist der Fall, wenn eine Konfiguration gleich ihrer Folgekonfiguration ist. (Bei deterministischen Turingmaschinen hat jede Konfiguration genau eine Folgekonfiguration.) Das Erreichen eines Endzustandes bedeutet damit auch das Ende einer Berechnung. Die Berechnung kann jedoch auch dann beendet sein, wenn kein Endzustand erreicht wurde. Barbara König BeKo/TI 233

263 Komplexitätsklassen Komplexitätsklassen NP-Vollständigkeit Um polynomial beschränkte Laufzeitklassen definieren zu können, wiederholen wir zunächst die Definition eines Polynoms (in einer Variablen). Polynom (Definition) Ein Polynom ist eine Funktion p : N 0 N 0 mit der Abbildungsvorschrift p(n) = a k n k + a k 1 n k a 1 n + a 0 für Konstanten k, a k,..., a 0 N 0. Barbara König BeKo/TI 234

264 Komplexitätsklassen Komplexitätsklassen NP-Vollständigkeit Damit ist es nun auch möglich, die Klasse aller Sprachen zu definieren, die von deterministischen Turingmaschinen mit polynomialer Laufzeitbeschränkung erkannt werden. Komplexitätsklasse P (Definition) P = {A es gibt eine det. Turingmaschine M und ein = Polynom p mit T (M) = A und time M (x) p( x )} TIME(p(n)) p Polynom Intuitiv umfasst P alle Probleme, für die effiziente Algorithmen existieren. Barbara König BeKo/TI 235

265 O-Notation Kontextsensitive und Typ-0-Sprachen Komplexitätsklassen NP-Vollständigkeit Es gibt einen engen Zusammenhang zur sogenannten O-Notation: O-Notation Seien f, g : N 0 N 0 Funktionen. Wir sagen, dass f höchstens so schnell wächst wie g, falls folgendes gilt: Es gibt eine Konstante C N 0 und ein N N 0, so dass für jedes n N gilt: f (n) C g(n) Anschaulich: ab einem bestimmten Wert N ist f kleiner als g, multipliziert mit einem konstanten Faktor. (Nur das asymptotische Verhalten zählt, Konstanten werden vernachlässigt.) Barbara König BeKo/TI 236

266 O-Notation Kontextsensitive und Typ-0-Sprachen Komplexitätsklassen NP-Vollständigkeit Schreibweisen: Eine Funktion f wird hier oft durch ihren definierenden Ausdruck beschrieben: n, n 3, 2 n,... Dabei wird im allgemeinen n als Funktionsparameter verwendet. O(g) bezeichnet die Menge aller Funktionen, die höchstens so schnell wachsen wie g. Man schreibt dann f O(g) (oder sogar f = O(g)). Beispiele: n O(n 2 ) 100n O(n) n 2 O(2 n ). n 3 O(2 n ). Bemerkung: Für das letzte Beispiel gilt n 3 < 2 n, falls n 10. Barbara König BeKo/TI 237

267 O-Notation Kontextsensitive und Typ-0-Sprachen Komplexitätsklassen NP-Vollständigkeit Polynomiales vs. exponentielles Wachstum Seien l N 0, q R mit q > 1. Dann gilt n l O(q n ) Das bedeutet, dass jede Exponentialfunktion (mit Basis größer als 1) mindestens so stark wächst wie jedes Polynom. (Exponentialfunktionen wachsen sogar echt stärker als Polynome.) Barbara König BeKo/TI 238

268 O-Notation Kontextsensitive und Typ-0-Sprachen Komplexitätsklassen NP-Vollständigkeit Die O-Notation wird häufig eingesetzt, um die Laufzeit von Algorithmen zu analysieren. Die Laufzeit eines Algorithmus ist dabei die Anzahl der Schritte, die das Verfahren ausführt. Beispiele: Es gibt Sortierverfahren mit Laufzeit O(n log n) (Mergesort) und Laufzeit O(n 2 ) (Bubblesort) Es gibt keine bekannten Verfahren mit polynomieller Laufzeit für das Travelling-Salesman-Problem. Es existieren jedoch Algorithmen mit exponentieller Laufzeit. Dabei bezeichnet der Parameter n immer die Größe der Eingabe. Barbara König BeKo/TI 239

269 O-Notation Kontextsensitive und Typ-0-Sprachen Komplexitätsklassen NP-Vollständigkeit Man spricht von linearer Laufzeit: O(n) quadratischer Laufzeit: O(n 2 ) kubischer Laufzeit: O(n 3 ) polynomialer Laufzeit: O(n l ) für eine Konstante l bzw. O(p(n)) für ein Polynom p exponentieller Laufzeit: O(2 n ) bzw. O(q n ) für q > 1 Barbara König BeKo/TI 240

270 O-Notation Kontextsensitive und Typ-0-Sprachen Komplexitätsklassen NP-Vollständigkeit Laufzeiten in Abhängigkeit von der Größe der Eingabe: Laufzeit Anzahl Schritte Behandelbare Größe der Eingabe bei Eingabegröße 100 bei Schritte O(n) O(n 2 ) O(n 3 ) O(2 n ) 1, ,9 Barbara König BeKo/TI 241

271 Komplexitätsklassen Komplexitätsklassen NP-Vollständigkeit Zusammenhang zwischen P und der O-Notation Eine Problem liegt in P genau dann, wenn es von einer (deterministischen) Maschine gelöst werden kann, die polynomiell viele Schritte macht, d.h. O(n l ) Schritte für eine Konstante l, falls n die Eingabegröße ist. Komplexitätsklassen für andere Berechnungsmodelle Die Klasse P ist größtenteils unabhängig von dem betrachteten Maschinenmodell. Eine analoge Definition für While- bzw. Goto-Programme würde zur gleichen Klasse P führen. Die Voraussetzung hierfür ist jedoch, dass das logarithmische Kostenmaß (siehe nächste Folie) angewandt wird. Barbara König BeKo/TI 242

272 Komplexitätsklassen Komplexitätsklassen NP-Vollständigkeit Uniformes Kostenmaß Die Zuweisung x i := x j wird als ein Schritt gewertet. Logarithmisches Kostenmaß Zuweisungen der Form x i := x j werden nicht als ein Schritt angesehen, sondern vielmehr wird für jedes Bit in der Binärdarstellung von x j ein Schritt gerechnet. Zum logarithmischen Kostenmaß gehört auch, dass die Länge einer Eingabe n N 0 nicht n selbst ist, sondern die Länge der Binärdarstellung, d.h., log n. Barbara König BeKo/TI 243

273 Komplexitätsklassen Komplexitätsklassen NP-Vollständigkeit Ähnlich wie bei deterministischen Turingmaschinen kann man auch zeitbeschränkte nichtdeterministische Turingmaschinen und die dazugehörigen Sprachklassen definieren. Zeitbeschränkte nichtdet. TM und akz. Sprachen (Definition) Sei f : N 0 N 0 eine (totale) Funktion. Die Klasse NTIME(f (n)) besteht aus allen Sprachen A, für die es eine nichtdeterministische Mehrband-Turingmaschine M gibt mit A = T (M) und ntime M (x) f ( x ) für alle Wörter x. Dabei gilt min{länge akzeptierender ntime M (x) = Rechnungen von M auf x} falls x T (M) 0 falls x T (M) Barbara König BeKo/TI 244

274 Komplexitätsklassen Komplexitätsklassen NP-Vollständigkeit Bemerkung: Falls eine Turingmaschine M gegeben ist, die ntime M (x) f ( x ) für alle Wörter x erfüllt, so kann man einen Zähler mitlaufen lassen und damit sicherstellen, dass die Maschine immer spätestens nach f ( x ) (ursprünglichen) Schritten anhält. Denn ab diesem Schritt muss man einen akzeptierenden Zustand gefunden haben, wenn x in der Sprache von M liegt. Daraus folgt, dass NTIME(f (n)) nur entscheidbare Sprachen enthält und man auch bei einer nicht-akzeptierenden Berechnung nicht mehr als f ( x ) Schritte machen muss (plus den im Wesentlichen vernachlässigbarer Overhead für den Zähler). Barbara König BeKo/TI 245

275 Komplexitätsklassen Komplexitätsklassen NP-Vollständigkeit Komplexitätsklasse NP (Definition) NP = NTIME(p(n)) p Polynom Offensichtlich gilt P NP. Aber gilt auch P NP? P NP-Problem (ungelöst) Barbara König BeKo/TI 246

276 Kurzwiederholung: Aussagenlogik Komplexitätsklassen NP-Vollständigkeit Eine aussagenlogische Formel F besteht aus atomaren Aussagen bzw. Variablen x 1, x 2, x 3,... und Operatoren (NICHT), (ODER), (UND), (IMPLIKATION), (BIIMPLIKATION/ÄQUIVALENZ). Für eine Belegung der atomaren Aussagen mit 0, 1 ergibt sich ein Wahrheitswert einer Formel F. Dabei werden die Operatoren mittels folgender Wahrheitstafeln ausgewertet: Beispiel: Die Auswertung von (x 1 x 2 ) x 2 mit der Belegung x 1 0, x 2 1 ergibt den Wert 0. Barbara König BeKo/TI 247

277 Kurzwiederholung: Aussagenlogik Komplexitätsklassen NP-Vollständigkeit Eine Formel der Form x i bzw. x i heißt Literal. Eine Klausel ist eine Disjunktion (ODER-Verknüpfung) von Literalen. (Beispiel: x 1 x 2 x 3 ) Eine Formel ist in konjunktiver Normalform, wenn sie eine Konjunktion (UND-Verknüpfung) von Klauseln ist. (Beispiel: (x 1 x 2 x 3 ) ( x 1 x 3 ) x 2 ) Barbara König BeKo/TI 248

278 Komplexitätsklassen NP-Vollständigkeit Determinismus vs. Nichtdeterminismus Das nichtdeterministische Maschinenmodell erscheint stärker, weil es möglich ist, den Weg zum akzeptierenden Zustand zu raten. Anfangskonfiguration z 0 w Ein Pfad zu einem akzeptierenden Zustand Baum aller erreichbarer Konfigurationen polynomiale Laufzeit/Höhe z e w Baum kann exponentiell viele Konfigurationen enthalten. Barbara König BeKo/TI 249

279 Komplexitätsklassen NP-Vollständigkeit Determinismus vs. Nichtdeterminismus Beispiel: Erfüllbarkeitsproblem SAT Eingabe: eine aussagenlogische Formel F Ausgabe: Hat F eine erfüllende Belegung? Das heißt, gibt es eine Belegung der atomaren Aussagen mit 0 bzw. 1, so dass F unter dieser Belegung den Wert 1 hat? In diesem Fall kann eine nichtdeterministische Maschine einfach eine beliebige Belegung erraten und überprüfen, ob sie F erfüllt. Ein akzeptierender Zustand kann erreicht werden, genau dann, wenn eine erfüllende Belegung existiert. Das Raten und die anschließende Berechnung benötigt nur polynomial viele Schritte. Daraus folgt: SAT NP. Barbara König BeKo/TI 250

280 Komplexitätsklassen NP-Vollständigkeit Determinismus vs. Nichtdeterminismus Nichtdeterministische Turingmaschine, die für eine Konstante k eine k-stellige Binärzahl rät, wenn sie auf ein leeres Band angesetzt wird: M = ({z 0, z 1,..., z k }, {0, 1}, {0, 1, }, δ, z 0,, {z k }) mit δ(z 0, ) = {(z 1, 0, R), (z 1, 1, R)} δ(z 1, ) = {(z 2, 0, R), (z 2, 1, R)}... δ(z k 1, ) = {(z k, 0, R), (z k, 1, R)} Mit zusätzlicher Verwendung eines Zählers kann man auch leicht eine Turingmaschine angeben, die bei Eingabe von n eine n-stellige Binärzahl rät (d.h. die Länge der Zahl ist parametrisiert). Barbara König BeKo/TI 251

281 Komplexitätsklassen NP-Vollständigkeit Determinismus vs. Nichtdeterminismus Es gibt eine alternative Charakterisierung von NP, die auf dieser Idee beruht: Alternative Charakterisierung von NP (informal) Die Klasse NP umfasst intuitiv alle Probleme, für die man eine mögliche Lösung polynomieller Länge (auch Zertifikat genannt) raten kann, um dann in Polynomialzeit zu überprüfen, ob die Lösung korrekt ist. Die Frage P NP wird dann zu: Gibt es Probleme, für die es schwieriger ist, eine Lösung zu bestimmen, als zu überprüfen, ob eine gegebene Lösung korrekt ist? Barbara König BeKo/TI 252

282 Komplexitätsklassen Komplexitätsklassen NP-Vollständigkeit Neben zeitbeschränkten Turingmaschinen betrachtet man auch platzbeschränkte Turingmaschinen. Platzbeschränkte det. TM und akz. Sprachen (Definition) Sei f : N 0 N 0 eine (totale) Funktion. Die Klasse SPACE(f (n)) besteht aus allen Sprachen A, für die es eine deterministische Mehrband-Turingmaschine M gibt mit A = T (M) und space M (x) f ( x ) für alle Wörter x. Dabei gibt space M (x) die maximale Länge einer Konfiguration (ohne die äußeren Leerzeichen) an, die bei der Rechnung von M auf x vorkommt (= Maximalanzahl der benötigten Felder auf dem Band). Barbara König BeKo/TI 253

283 Komplexitätsklassen Komplexitätsklassen NP-Vollständigkeit Analog definiert man für nichtdeterministische Turingmaschinen NSPACE(f (n)). Chomsky-1-Sprachen Die Chomsky-1-Sprachen (erzeugt durch monotone Grammatiken) sind genau die Sprachen, die durch eine nichtdeterministische Turingmaschine mit linearer Platzbeschränkung akzeptiert werden können. Das heißt, NSPACE(n) ist genau die Menge der Chomsky-1-Sprachen. Barbara König BeKo/TI 254

284 Komplexitätsklassen Komplexitätsklassen NP-Vollständigkeit Wir definieren nun die Klasse aller Sprachen, die von einer deterministischen Turingmaschine mit polynomialer Platzbeschränkung akzeptiert werden können. Komplexitätsklasse PSPACE (Definition) PSPACE = SPACE(p(n)) p Polynom Es gilt NP PSPACE (Übungsaufgabe). Außerdem liegt jede Typ-1-Sprache in PSPACE. Barbara König BeKo/TI 255

285 Komplexitätsklassen Komplexitätsklassen NP-Vollständigkeit Die Komplexitätsklassen P und NP können in die Chomsky-Hierarchie folgendermaßen eingeordnet werden: Menge aller Sprachen semi-entscheidbare Sprachen entscheidbare Sprachen LOOP-berechenbare bzw. -akzeptierbare Sprachen NP P Barbara König BeKo/TI 256

286 Reduzierbarkeit Kontextsensitive und Typ-0-Sprachen Komplexitätsklassen NP-Vollständigkeit Wie bei der beschäftigen wir uns auch hier mit dem Konzept der Reduzierbarkeit. Damit wollen wir Aussagen folgender Form ableiten: Wenn B lösbar ist, dann ist auch A lösbar und man benötigt nur einen polynomial großen zusätzlichen Zeitaufwand. (A ist auf B polynomial reduzierbar.) Damit haben wir auch die Möglichkeit, die schwersten Probleme der Komplexitätsklasse NP (sogenannte NP-vollständige Probleme) zu definieren. Das sind Probleme in NP, auf die alle NP-Probleme polynomial reduzierbar sind. Barbara König BeKo/TI 257

287 Reduzierbarkeit Kontextsensitive und Typ-0-Sprachen Komplexitätsklassen NP-Vollständigkeit Analog zum Begriff der Reduzierbarkeit in der definieren wir nun den Begriff der polynomialen Reduzierbarkeit. Polynomiale Reduzierbarkeit (Definition) Gegeben seien Sprachen A Σ, B Γ. Dann heißt A auf B polynomial reduzierbar (in Zeichen A p B), falls es eine totale und mit polynomialer Laufzeit (deterministisch) berechenbare Funktion f : Σ Γ gibt, so dass für alle x Σ gilt: x A f (x) B. Barbara König BeKo/TI 258

288 Reduzierbarkeit Kontextsensitive und Typ-0-Sprachen Komplexitätsklassen NP-Vollständigkeit Polynomiale Reduzierbarkeit (Lemma) Falls A p B, so gilt: Aus B P folgt A P. Aus B NP folgt A NP. Barbara König BeKo/TI 259

289 Reduzierbarkeit Kontextsensitive und Typ-0-Sprachen Komplexitätsklassen NP-Vollständigkeit Begründung für: (A p B und B P) A P M A x f f (x) M B Laufzeit p( x ) Laufzeit q( f (x) ) Außerdem: f (x) p( x ) Ja Nein In polynomialer Laufzeit kann die Maschine, die f berechnet höchstens eine polynomial große Ausgabe f (x) produzieren. Dann gilt für die Gesamtlaufzeit: p( x ) + q( f (x) ) p( x ) + q(p( x )), und das ist wiederum ein Polynom Barbara König BeKo/TI 260

290 NP-Vollständigkeit Kontextsensitive und Typ-0-Sprachen Komplexitätsklassen NP-Vollständigkeit NP-hart, NP-vollständig (Definition) Eine Sprache A heißt NP-hart, falls für alle Sprachen L NP gilt: L p A. Eine Sprache A heißt NP-vollständig, falls A NP-hart ist und A NP gilt. Das bedeutet: eine NP-vollständige Sprache ist mindestens so schwierig wie jedes andere Problem in NP. Barbara König BeKo/TI 261

291 NP-Vollständigkeit Kontextsensitive und Typ-0-Sprachen Komplexitätsklassen NP-Vollständigkeit Bemerkung: Sobald man von einer Sprache A nachgewiesen hat, dass sie NP-hart ist, kann man dieses Resultat nutzen, um die NP-Härte einer anderen Sprache B zu beweisen. Es reicht in diesem Fall aus zu zeigen, dass A p B gilt. Aufgrund der Transitivität von p folgt dann auch L p B für alle L NP. Barbara König BeKo/TI 262

292 NP-Vollständigkeit Kontextsensitive und Typ-0-Sprachen Komplexitätsklassen NP-Vollständigkeit Sobald man von einer NP-vollständigen Sprache zeigen könnte, dass sie in P (nicht) enthalten ist, wäre das P NP-Problem gelöst. NP-Vollständigkeit und P Sei A NP-vollständig. Dann gilt A P P = NP Bemerkung: Daraus folgt unmittelbar, dass auch A P P NP für jedes NP-vollständige Problem A gilt. Barbara König BeKo/TI 263

293 NP-Vollständigkeit Kontextsensitive und Typ-0-Sprachen Komplexitätsklassen NP-Vollständigkeit Bedeutung des Konzepts der NP-Vollständigkeit Klassifizierung von Problemen: viele in der Praxis relevanten Probleme sind NP-vollständig. Das bedeutet, dass es für diese Probleme aufwändig ist, exakte Lösungen zu finden und man in vielen Fällen Heuristiken einsetzen muss, die annähernde Lösungen liefern. Strukturtheorie für die Hoffnung für das P NP-Problem? Barbara König BeKo/TI 264

294 NP-Vollständigkeit Kontextsensitive und Typ-0-Sprachen Komplexitätsklassen NP-Vollständigkeit Dazu nochmal ein Comic (aus Garey/Johnson: Computers and Intractability ): Nicht so gut... I can t find an efficient algorithm. I guess I m just too dumb. Barbara König BeKo/TI 265

295 NP-Vollständigkeit Kontextsensitive und Typ-0-Sprachen Komplexitätsklassen NP-Vollständigkeit Besser... I can t find an efficient algorithm, but neither can all these famous people. Barbara König BeKo/TI 266

296 SAT ist NP-vollständig Komplexitätsklassen NP-Vollständigkeit Wir zeigen nun, dass das Erfüllbarkeitsproblem SAT für aussagenlogische Formeln NP-vollständig ist. Dazu nehmen wir an, dass aussagenlogische Formeln geeignet kodiert einer Turingmaschine als Eingabe übergeben werden können. NP-Vollständigkeit von SAT (Satz von Cook) Das Erfüllbarkeitsproblem der Aussagenlogik SAT ist NP-vollständig. Barbara König BeKo/TI 267

297 SAT ist NP-vollständig Komplexitätsklassen NP-Vollständigkeit 1. Schritt: Man muss zeigen, dass SAT in NP liegt. Das folgt unmittelbar aus den Überlegungen im vorherigen Abschnitt (Belegung raten und überprüfen, ob sie die Formel erfüllt). 2. Schritt: Wir müssen zeigen, dass SAT NP-hart ist, das heißt, dass L p SAT für alle L NP gilt. Gegeben sei ein beliebiges Problem L NP. Zeige, dass es zu jedem Wort x = x 0... x n 1 eine aussagenlogische Formel F gibt mit: x L F ist erfüllbar Die Kodierung von F ist immer kürzer als (oder gleich) q(n), wobei q ein Polynom ist, d.h., F ist polynomial durch die Größe von x beschränkt (wg. polynomialer Reduzierbarkeit) und die Berechnung von F erfordert weniger als q(n) Schritte. Barbara König BeKo/TI 268

298 SAT ist NP-vollständig Komplexitätsklassen NP-Vollständigkeit Jedes Problem L NP wird durch eine nicht-deterministische polynomzeitbeschränkte Turingmaschine M akzeptiert. Sei also M eine solche Turingmaschine für L. Wir nehmen an, dass Γ = {a 1,..., a l } das Bandalphabet und Z = {z 0, z 1,..., z k } die Zustandsmenge bezeichnen. Barbara König BeKo/TI 269

299 SAT ist NP-vollständig Komplexitätsklassen NP-Vollständigkeit Idee: Jede Berechnung von M auf x kann man als Tableau darstellen, bei dem die Bandinhalte in den aufeinanderfolgenden Schritten untereinandergeschrieben werden. Beobachtungen: M akzeptiert x, wenn es ein Tableau gibt, das mit Bandinhalt x und Anfangszustand z 0 beginnt und mit einem beliebigen Bandinhalt und einem Endzustand endet. Da die Rechenzeit von M polynomial beschränkt ist (durch ein Polynom p), reicht es aus, Tableaus zu mit folgenden Schritten und Positionen zu betrachten: Schritte: 0,..., p(n) Positionen: p(n),..., 1, 0, 1,..., p(n) (an andere Positionen kann der Kopf in p(n) Schritten nicht gelangen) Barbara König BeKo/TI 270

300 SAT ist NP-vollständig Komplexitätsklassen NP-Vollständigkeit Position: Schritt: Zustand: z z 0 z 0 z 0 z 0 z 0 z z Barbara König BeKo/TI 271

301 SAT ist NP-vollständig Komplexitätsklassen NP-Vollständigkeit Wir bestimmen nun die atomaren Aussagen (Variablen) der aussagenlogischen Formel. Diese beschreiben vollständig den Inhalt eines Tableaus: Atomare Aussage Indizes Bedeutung zust t,z t = 0,..., p(n) zust t,z = 1 z Z nach t Schritten befindet sich M im Zustand z pos t,i t = 0,..., p(n) pos t,i = 1 i = p(n),..., p(n) der Kopf von M befindet sich nach t Schritten auf Position i band t,i,a t = 0,..., p(n) band t,i,a = 1 i = p(n),..., p(n) nach t Schritten befindet a Γ sich auf Position i das Zeichen a Barbara König BeKo/TI 272

302 SAT ist NP-vollständig Komplexitätsklassen NP-Vollständigkeit Position: Schritte: Zustand: z z z zust 2,z0 = 1 z 0 z z z z Barbara König BeKo/TI 273

303 SAT ist NP-vollständig Komplexitätsklassen NP-Vollständigkeit Position: Schritte: Zustand: z z z pos 6,4 = 1 z 0 z z z z Barbara König BeKo/TI 273

304 SAT ist NP-vollständig Komplexitätsklassen NP-Vollständigkeit Position: Schritte: Zustand: z z z band 5, 1, = 1 z 0 z 0 z z z Barbara König BeKo/TI 273

305 SAT ist NP-vollständig Komplexitätsklassen NP-Vollständigkeit Wir geben nun eine aussagenlogische Formel F mit folgendem Inhalt an: (Anfang) Die erste Zeile des Tableaus entspricht der Anfangskonfiguration mit x auf dem Band (Übergang 1) Jede nachfolgende Zeile folgt aus der vorhergehenden Zeile, wobei sich der Zustand, die Kopfposition und der Bandinhalt ändert, so wie dies durch die Überführungsfunktion δ beschrieben wird. (Übergang 2) Alle Bandfelder, die nicht vom Übergang betroffen sind, behalten ihren Inhalt. (Ende) In der letzten Zeile des Tableaus wird ein Endzustand erreicht. Barbara König BeKo/TI 274

306 SAT ist NP-vollständig Komplexitätsklassen NP-Vollständigkeit (Randbedingungen) Das Tableau ist in sich konsistent, insbesondere befindet sich zu jedem Zeitpunkt die Turingmaschine in genau einem Zustand der Kopf an genau einer Position genau ein Zeichen in jedem Feld Barbara König BeKo/TI 275

307 SAT ist NP-vollständig Komplexitätsklassen NP-Vollständigkeit Dann gilt: die akzeptierenden Berechnungen der Turingmaschine entsprechen genau den erfüllenden Belegungen der Formel. Wir beschreiben nun die fünf Bedingungen (Anfang), (Übergang 1), (Übergang 2), (Ende) und (Randbedingungen) als aussagenlogische Formeln. Die Formel F ergibt sich dann durch Konjunktion (UND-Verknüpfung) dieser fünf Formeln. Barbara König BeKo/TI 276

308 SAT ist NP-vollständig Komplexitätsklassen NP-Vollständigkeit Die erste Zeile des Tableaus entspricht der Anfangskonfiguration mit x auf dem Band. (Anfang) Formel A n 1 A = zust 0,z0 pos 0,0 band 0,j,xj p(n) band 0,j, j=n j=0 1 j= p(n) band 0,j, Barbara König BeKo/TI 277

309 SAT ist NP-vollständig Komplexitätsklassen NP-Vollständigkeit Jede Zeile folgt aus der vorhergehenden Zeile, wobei sich der Zustand, die Kopfposition und der Bandinhalt ändert, so wie dies durch die Überführungsfunktion δ beschrieben wird. (Übergang 1) Formel U 1 U 1 = t,z,i,a z, a, y mit (z, a, y) δ(z, a) ( (zust t,z pos t,i band t,i,a ) 1 falls y = L wobei d(y) = 0 falls y = N 1 falls y = R ) (zust t+1,z pos t+1,i+d(y) band t+1,i,a ) Barbara König BeKo/TI 278

310 SAT ist NP-vollständig Komplexitätsklassen NP-Vollständigkeit Alle Bandfelder, die nicht vom Übergang betroffen sind, behalten ihren Inhalt. (Übergang 2) Formel U 2 U 2 = ) (( pos t,i band t,i,a ) band t+1,i,a t,i,a Barbara König BeKo/TI 279

311 SAT ist NP-vollständig Komplexitätsklassen NP-Vollständigkeit In der letzten Zeile des Tableaus wird ein Endzustand erreicht. (Ende) Formel E E = z E zust p(n),z Barbara König BeKo/TI 280

312 SAT ist NP-vollständig Komplexitätsklassen NP-Vollständigkeit Für die Beschreibung der Randbedingung benötigen wir eine Hilfsformel G mit G(x 1,..., x m ) = 1 für genau ein i ist x i = 1 G kann beispielsweise folgende Form haben: G = ( m ) x i i=1 }{{} mindestens ein x i = 1 ( m 1 m j=1 l=j+1 ) (x j x l ) }{{} falls j l (x j = 1 x l = 1) Barbara König BeKo/TI 281

313 SAT ist NP-vollständig Komplexitätsklassen NP-Vollständigkeit Die Formel ist in sich konsistent, insbesondere befindet sich zu jedem Zeitpunkt die Turingmaschine in genau einem Zustand der Kopf an genau einer Position genau ein Zeichen in jedem Feld (Randbedingungen) Formel R R = t i ( G(zust t,z1,..., zust t,zk ) G(pos t, p(n),..., pos t,p(n) ) ) G(band t,i,a1,..., band t,i,al ) Barbara König BeKo/TI 282

314 SAT ist NP-vollständig Komplexitätsklassen NP-Vollständigkeit Die Formel F sieht dann wie folgt aus: F = A U 1 U 2 E R Bei genauerer Betrachtung stellt man auch fest, dass die Größe von F durch q( x ) beschränkt ist, wobei x die Eingabe und q ein Polynom ist. Da x in der entsprechenden Sprache enthalten ist, genau dann, wenn F erfüllbar ist, folgt daraus die Existenz einer polynomialen Reduktion von L nach SAT, was zu beweisen war. Barbara König BeKo/TI 283

315 SAT ist NP-vollständig Komplexitätsklassen NP-Vollständigkeit Konsequenzen aus dem Satz von Cook: Da SAT in exponentieller Zeit 2 O(n) entscheidbar ist (Wahrheitstafel, alle Belegungen durchprobieren) und alle NP-Probleme polynomial auf SAT reduzierbar sind, sind damit auf jeden Fall alle NP-Probleme in der Zeit 2 p(n), für ein Polynom p, entscheidbar. Es gibt Erfüllbarkeits-Checker für aussagenlogische Formeln in konjunktiver Normalform (sogenannte SAT-Solver), die in der Praxis gut funktionieren. Für bestimmte Formeln zeigen sie jedoch ein schlechtes Laufzeitverhalten. Diese SAT-Solver kann man über Reduktionen nutzen, um damit auch andere NP-vollständige Probleme in der Praxis zu lösen. Barbara König BeKo/TI 284

316 Weitere NP-vollständige Probleme Komplexitätsklassen NP-Vollständigkeit Wir betrachten nun folgende Reduktionskette und weisen dadurch nach, dass alle diese Probleme NP-vollständig sind. SAT p 3KNF-SAT p GER.HAM.KREIS p UNGER.HAM.KREIS p TSP 3KNF-SAT: Erfüllbarkeit von aussagenlogischen Formeln in konjunktiver Normalform mit höchstens drei Literalen pro Klausel. GER.HAM.KREIS: Enthält ein Graph einen gerichteten Hamiltonkreis? UNGER.HAM.KREIS: Enthält ein Graph einen ungerichteten Hamiltonkreis? TSP: Travelling Salesman Problem Barbara König BeKo/TI 285

317 3KNF-SAT ist NP-vollständig Komplexitätsklassen NP-Vollständigkeit Erfüllbarkeitsproblem 3KNF-SAT Eingabe: eine aussagenlogische Formel F in konjunktiver Normalform mit höchstens drei Literalen pro Klausel. Ausgabe: Hat F eine erfüllende Belegung? Beispiel: Die Formel F = (x 1 x 2 ) (x 1 x 2 x 3 ) x 1 x 3 ist in der geforderten Form und hat keine erfüllende Belegung. Das heißt F 3KNF-SAT. Barbara König BeKo/TI 286

318 3KNF-SAT ist NP-vollständig Komplexitätsklassen NP-Vollständigkeit NP-Vollständigkeit von 3KNF-SAT (Satz) Das Problem 3KNF-SAT ist NP-vollständig. Beweis: Wir bestimmen eine Reduktionsfunktion für SAT p 3KNF-SAT wie folgt: sei F eine beliebige aussagenlogische Formel. Wir müssen eine Formel F in konjunktiver Normalform mit maximal drei Literalen pro Klausel bestimmen, so dass F erfüllbar F erfüllbar Barbara König BeKo/TI 287

319 3KNF-SAT ist NP-vollständig Komplexitätsklassen NP-Vollständigkeit 1. Schritt: Stelle alle Operatoren durch, und dar. F 1 F 2 F 1 F 2 F 1 F 2 (F 1 F 2 ) (F 2 F 1 ) ( F 1 F 2 ) ( F 2 F 1 ) 2. Schritt: Bringe alle Negationen zu den atomaren Aussagen, durch Anwendung der Regeln von de Morgan und der Doppelnegationsregel: (F 1 F 2 ) F 1 F 2 (F 1 F 2 ) F 1 F 2 F F Barbara König BeKo/TI 288

320 3KNF-SAT ist NP-vollständig Komplexitätsklassen NP-Vollständigkeit 3. Schritt: Betrachte die so entstandene Formel als binären Baum, bei dem an den inneren Knoten die Operatoren, stehen und die Blätter mit x i bzw. x i beschriftet sind. x 1 x 2 x2 x 1 Barbara König BeKo/TI 289

321 3KNF-SAT ist NP-vollständig Komplexitätsklassen NP-Vollständigkeit 4. Schritt: Ordne jedem inneren Knoten eine neue Variable y 0, y 1, y 2,... zu. Der Wurzel wird y 0 zugeordnet. y 0 y 1 y 2 x 1 x 2 x 2 x 1 Barbara König BeKo/TI 290

322 3KNF-SAT ist NP-vollständig Komplexitätsklassen NP-Vollständigkeit 5. Schritt: Sei y i die Beschriftung eines inneren Knotens mit Operator. Außerdem seien die Kinder mit u, v beschriftet. Dann ordne diesem Knoten die Formel y i u v zu. Alle diese Formeln werden mit verknüpft und die neue Formel y 0 hinzugefügt. In unserem Beispiel ergibt sich: y 0 (y 0 (y 1 y 2 )) (y 1 (x 1 x 2 )) (y 2 (x 2 x 1 )) Barbara König BeKo/TI 291

323 3KNF-SAT ist NP-vollständig Komplexitätsklassen NP-Vollständigkeit 6. Schritt: Forme diese Formel in die verlangte konjunktive Normalform mit maximal drei Literalen pro Klausel um. Und zwar mit Hilfe folgender Regeln: y (u v) ( y u v) ( (u v) y) ( y u v) (( u v) y) ( y u v) ( u y) ( v y) (Distributivgesetz!) Analog: y (u v) ( y u) ( y v) ( u v y) Damit erhält man eine Formel F, die erfüllbar ist, genau dann, wenn F erfüllbar ist. Außerdem wurden alle Umformungsschritte mit nur polynomialem Aufwand durchgeführt. Barbara König BeKo/TI 292

324 3KNF-SAT ist NP-vollständig Alternativer Vorschlag (schlechte Idee): Komplexitätsklassen NP-Vollständigkeit Warum wird die Formel F nicht mit Hilfe der Regeln von de Morgan und des Distributivgesetzes in konjunktive Normalform gebracht? (Und dann weiter umgeformt, so dass man weniger als drei Literale pro Klausel hat?) Antwort: Bei dieser Umwandlung kann die Formel exponentiell größer werden! Beispiel: Die Größe der Formel (x 1 x 2 ) (x 3 x 4 ) (x 2n 1 x 2n ) ist linear in n. Bei Umformung in konjunktive Normalform mittels des Distributivgesetzes ( ausmultiplizieren ) erhält man jedoch 2 n Klauseln, jede der Größe n. Eine solche Klausel ist beispielsweise (x 1 x 3 x 2n 1 ) Barbara König BeKo/TI 293

325 Betrachtung von 2KNF-SAT Komplexitätsklassen NP-Vollständigkeit Wir betrachten nun das Problem 2KNF-SAT, analog zu 3KNF-SAT, bei dem jede Klausel höchstens zwei Literale enthält. Behauptung: Mit Hilfe des Resolutionsverfahrens ist in Polynomialzeit entscheidbar, ob eine Formel F dieser Form erfüllbar ist. D.h., 2KNF-SAT liegt in P. Das Argument man muss aber doch alle Belegungen durchprobieren ist also nicht in allen Fällen stichhaltig. Barbara König BeKo/TI 294

326 Betrachtung von 2KNF-SAT Komplexitätsklassen NP-Vollständigkeit Für das Resolutionsverfahren benötigen wir die folgenden beiden Sätze: Resolutionsregel (Satz) Es gilt: (F 1 x i ) (F 2 x i ) F (F }{{} 1 F 2 ) F Das heißt man kann neu gebildete Klauseln zu einer Formel hinzufügen, ohne ihren Wahrheitswert und ihre Erfüllbarkeit zu verändern. Beispiel: (x 1 x 2 ) (x 3 x 2 ) (x 1 x 2 ) (x 3 x 2 ) (x 1 x 3 ). Barbara König BeKo/TI 295

327 Betrachtung von 2KNF-SAT Komplexitätsklassen NP-Vollständigkeit Resolutionsverfahren (Satz) Eine Formel F ist nicht erfüllbar, genau dann, wenn man mit Hilfe der Resolutionsregel die einelementigen Klauseln x i und x i (für ein beliebiges i) ableiten kann. (Daraus kann man dann noch in einem weiteren Schritt die sogenannte leere Klausel ableiten.) Barbara König BeKo/TI 296

328 Betrachtung von 2KNF-SAT Komplexitätsklassen NP-Vollständigkeit Beispiel: Aus F = (x 1 x 2 ) (x 1 x 2 x 3 ) x 1 x 3 kann man folgende Klauseln ableiten: (x 1 x 2 ), x 1 x 2 (x 1 x 2 x 3 ), x 1 (x 2 x 3 ) (x 2 x 3 ), x 3 x 2 x 2, x 2 (leere Klausel) Daraus folgt, dass F unerfüllbar ist. Barbara König BeKo/TI 297

329 Betrachtung von 2KNF-SAT Komplexitätsklassen NP-Vollständigkeit Bei der Resolution von zwei zweielementigen Klauseln ergibt sich wieder nur eine maximal zweielementige Klausel (das ist bei dreielementigen Klauseln anders!). Da es bei n verschiedenen atomaren Formeln nur ( ) 2n 2 = 2n(2n 1) 2 viele zweielementige und 2n viele einelementige Klauseln gibt, werden nach spätestens dieser polynomialen Anzahl von Schritten keine neuen Klauseln mehr abgeleitet. Je nachdem, ob die leere Klausel entstanden ist oder nicht, kann man jetzt entscheiden, ob die ursprüngliche Formel unerfüllbar ist. Barbara König BeKo/TI 298

330 Komplexitätsklassen NP-Vollständigkeit GER.HAM.KREIS ist NP-vollständig Im folgenden betrachten wir das Problem zu bestimmen, ob ein Graph einen Kreis enthält, der durch jeden Knoten genau einmal führt. GER.HAM.KREIS Gerichteter Hamiltonkreis Eingabe: ein gerichteter Graph G = (V, E) mit Knotenmenge V und Kantenmenge E V V. Sei außerdem m = V die Anzahl der Knoten. Ausgabe: Besitzt der Graph G einen Hamiltonkreis? Das heißt, gibt es eine Anordnung v 1,..., v m der Knoten, so dass gilt: V = {v 1,..., v m } (jeder Knoten kommt genau einmal vor) (v i, v i+1 ) E für i {1,..., m 1} und (v m, v 1 ) E (es gibt einen Kreis, der genau einmal durch jeden Knoten führt) Barbara König BeKo/TI 299

331 Komplexitätsklassen NP-Vollständigkeit GER.HAM.KREIS ist NP-vollständig Beispiele für Graphen mit und ohne Hamiltonkreis: Kein Hamiltonkreis! Kein Hamiltonkreis! Hamiltonkreis existiert! Barbara König BeKo/TI 300

332 Komplexitätsklassen NP-Vollständigkeit GER.HAM.KREIS ist NP-vollständig NP-Vollständigkeit von GER.HAM.KREIS (Satz) Das Problem GER.HAM.KREIS ist NP-vollständig. Beweis: Es ist zu zeigen, dass 3KNF-SAT p GER.HAM.KREIS. Wir bestimmen dazu eine Reduktionsfunktion, die einer gegebenen aussagenlogischen Formel F einen gerichteten Graphen G zuordnet, so dass F erfüllbar ist, genau dann, wenn G einen Hamiltonkreis besitzt. Dabei können wir davon ausgehen, dass F in konjunktiver Normalform ist und höchstens drei Literale pro Klausel hat. Barbara König BeKo/TI 301

333 Komplexitätsklassen NP-Vollständigkeit GER.HAM.KREIS ist NP-vollständig Sei F also von der Form F = K 1 K 2 K m, wobei jede Klausel K i genau drei Literale hat. Das kann erreicht werden, indem Literale in einer Klausel verdoppelt oder verdreifacht werden. Außerdem kommen die atomaren Aussagen x 1,..., x n in F vor. Aufbau des Graphen G: G besteht aus folgenden Komponenten. n Entscheidungsknoten, einen für jede atomare Aussage x j. Die Kante, über die der Entscheidungsknoten verlassen wird, bestimmt den Wahrheitswert, den x j in einer erfüllenden Belegung erhalten soll. m Klausel-Subgraphen, einen für jede Klausel K i. Die Art und Weise wie diese Subgraphen durchlaufen werden ist davon abhängig, welche Wahrheitswerte die einzelnen Literale in einer erfüllenden Belegung haben. Barbara König BeKo/TI 302

334 Komplexitätsklassen NP-Vollständigkeit GER.HAM.KREIS ist NP-vollständig Die Entscheidungsknoten haben je zwei ein- und ausgehende Kanten. Sie sollen in der Reihenfolge 1,..., n durchlaufen werden. Vom Knoten n aus führen Pfade zurück zum Knoten n Falls ein Knoten i auf der Kante nach oben verlassen wird, entspricht das einer Belegung x i = 1, ansonsten einer Belegung x i = 0. Barbara König BeKo/TI 303

335 Komplexitätsklassen NP-Vollständigkeit GER.HAM.KREIS ist NP-vollständig a b c A B C Klausel-Subgraphen sehen wie links angegeben aus und werden durch einen Kasten wie unten symbolisiert. Wir werden zeigen, dass ein Klausel-Subgraph, der auf einem Hamiltonkreis in a betreten wird, immer durch A verlassen werden muss. Analoges gilt für b/b und c/c. K Barbara König BeKo/TI 304

336 Komplexitätsklassen NP-Vollständigkeit GER.HAM.KREIS ist NP-vollständig Angenommen, der Klausel-Subgraph wird folgendermaßen durchlaufen: a A Pfad a A B Knoten b wird zu einer Sackgasse b B c C Barbara König BeKo/TI 305

337 Komplexitätsklassen NP-Vollständigkeit GER.HAM.KREIS ist NP-vollständig Angenommen, der Klausel-Subgraph wird folgendermaßen durchlaufen: a A Pfad a A B C Knoten b und c werden zu Sackgassen b B c C Barbara König BeKo/TI 305

338 Komplexitätsklassen NP-Vollständigkeit GER.HAM.KREIS ist NP-vollständig Angenommen, der Klausel-Subgraph wird folgendermaßen durchlaufen: a A Pfad a c C Knoten A nicht mehr erreichbar b B c C Barbara König BeKo/TI 305

339 Komplexitätsklassen NP-Vollständigkeit GER.HAM.KREIS ist NP-vollständig Angenommen, der Klausel-Subgraph wird folgendermaßen durchlaufen: a A Pfad a c b B Knoten A und C nicht mehr erreichbar b B c C Barbara König BeKo/TI 305

340 Komplexitätsklassen NP-Vollständigkeit GER.HAM.KREIS ist NP-vollständig Angenommen, der Klausel-Subgraph wird folgendermaßen durchlaufen: a A Pfad a c b B C Knoten A nicht mehr erreichbar b B c C Barbara König BeKo/TI 305

341 Komplexitätsklassen NP-Vollständigkeit GER.HAM.KREIS ist NP-vollständig Angenommen, der Klausel-Subgraph wird folgendermaßen durchlaufen: a A Pfad a c C A B Knoten b wird zu einer Sackgasse b B c C Barbara König BeKo/TI 305

342 Komplexitätsklassen NP-Vollständigkeit GER.HAM.KREIS ist NP-vollständig Es gibt also nur drei zulässige Pfade (beginnend bei a), die sich auf einem Hamiltonkreis befinden können: a b c A B C Bedeutung: das erste Literal hat den Wahrheitswert 1 (und auch das dritte, daher muss seine Verbindung jetzt nicht durchlaufen werden) Barbara König BeKo/TI 306

343 Komplexitätsklassen NP-Vollständigkeit GER.HAM.KREIS ist NP-vollständig Es gibt also nur drei zulässige Pfade (beginnend bei a), die sich auf einem Hamiltonkreis befinden können: a b c A B C Bedeutung: das erste Literal hat den Wahrheitswert 1, das dritte jedoch nicht, daher muss seine Verbindung jetzt durchlaufen werden (das zweite Literal hat wieder Wahrheitswert 1) Barbara König BeKo/TI 306

344 Komplexitätsklassen NP-Vollständigkeit GER.HAM.KREIS ist NP-vollständig Es gibt also nur drei zulässige Pfade (beginnend bei a), die sich auf einem Hamiltonkreis befinden können: a b A B Bedeutung: nur das erste Literal hat den Wahrheitswert 1, nicht jedoch die anderen beiden. c C Barbara König BeKo/TI 306

345 Komplexitätsklassen NP-Vollständigkeit GER.HAM.KREIS ist NP-vollständig Diese Klausel-Subgraphen werden nun folgendermaßen verknüpft: Angenommen, die atomare Aussage x i kommt in Klausel 1 an Position 2 und in Klausel 4 an Position 3 vor. Außerdem kommt x i in Klausel 2 an Position 1, in Klausel 5 an Position 3 und in Klausel 6 an Position 2 vor. Position 1 entspricht a/a, Position 2 entspricht b/b und Position 3 entspricht c/c. Barbara König BeKo/TI 307

346 Komplexitätsklassen NP-Vollständigkeit GER.HAM.KREIS ist NP-vollständig Dann werden zwischen den Knoten i und i + 1 die Klausel-Subgraphen wie folgt verknüpft: K 1 K 4 i i + 1 K 2 K 5 K 6 ( x i... ) ( x }{{} i... ) (... ) }{{}}{{} K 1 K 2 K 3 ( x i ) ( x }{{} i ) ( x }{{} i... ) }{{} K 4 K 5 K 6 Barbara König BeKo/TI 308

347 Komplexitätsklassen NP-Vollständigkeit GER.HAM.KREIS ist NP-vollständig Man erhält: Wenn die Formel erfüllbar ist, dann gibt es auch die Möglichkeit, alle Knoten zu durchlaufen. D.h., ein Hamiltonkreis existiert. Die Existenz eines Hamiltonkreises bedeutet andererseits, dass jeder Klauselgraph mindestens einmal durchlaufen wird, d.h., mindestens einem Literal in der Klausel wird der Wahrheitswert 1 zugeordnet. Daher kann man zeigen: Die Formel ist erfüllbar, genau dann, wenn der konstruierte Graph einen Hamiltonkreis hat. Außerdem benötigt man nur polynomiale Zeit, um den Graphen aus der Formel zu konstruieren. Barbara König BeKo/TI 309

348 Komplexitätsklassen NP-Vollständigkeit UNGER.HAM.KREIS ist NP-vollständig Im nächsten Schritt zeigen wir, dass auch das analoge Problem für ungerichtete Graphen unentscheidbar ist. UNGER.HAM.KREIS Ungerichteter Hamiltonkreis Eingabe: ein ungerichteter Graph G = (V, E) mit Knotenmenge V und Kantenmenge E, die aus zweielementigen Mengen von Knoten besteht. Sei außerdem m = V die Anzahl der Knoten. Ausgabe: Besitzt der Graph G einen Hamiltonkreis? Das heißt, gibt es eine Anordnung v 1,..., v m der Knoten, so dass gilt: V = {v 1,..., v m } (jeder Knoten kommt genau einmal vor) {v i, v i+1 } E für i {1,..., m 1} und {v m, v 1 } E (es gibt einen Kreis, der genau einmal durch jeden Knoten führt) Barbara König BeKo/TI 310

349 Komplexitätsklassen NP-Vollständigkeit UNGER.HAM.KREIS ist NP-vollständig Beispiele für Graphen mit und ohne Hamiltonkreis: Hamiltonkreis existiert! Kein Hamiltonkreis! Hamiltonkreis existiert! Barbara König BeKo/TI 311

350 Komplexitätsklassen NP-Vollständigkeit UNGER.HAM.KREIS ist NP-vollständig NP-Vollständigkeit von UNGER.HAM.KREIS (Satz) Das Problem UNGER.HAM.KREIS ist NP-vollständig. Beweis: Wir reduzieren GER.HAM.KREIS p UNGER.HAM.KREIS. Daher müssen wir zu jedem gerichteten Graphen G einen ungerichteten Graphen G konstruieren, so dass G einen Hamiltonkreis hat, genau dann, wenn G einen Hamiltonkreis hat. Idee: Ersetze einen Knoten mit ein- und ausgehenden Kanten wie folgt Barbara König BeKo/TI 312

351 Hamiltonkreise vs. Eulerkreise Komplexitätsklassen NP-Vollständigkeit Wir zeigen nun, dass ein eng verwandtes Problem, nämlich das der Existenz von Eulerkreisen, viel einfacher zu lösen ist als die Bestimmung von Hamiltonkreisen. EULER Ungerichteter Eulerkreis Eingabe: ein ungerichteter Graph G = (V, E) mit Knotenmenge V und Kantenmenge E, wobei auch Mehrfachkanten erlaubt sind. Sei außerdem k = E die Anzahl der Kanten. Ausgabe: Besitzt der Graph G einen Eulerkreis? Das heißt, gibt es eine Tour, die durch den ganzen Graphen verläuft und jede Kante genau einmal passiert? (Knoten dürfen mehrfach durchlaufen werden.) Barbara König BeKo/TI 313

352 Hamiltonkreise vs. Eulerkreise Komplexitätsklassen NP-Vollständigkeit Ursprung Das Lösung des Problems der Eulerkreise geht zurück auf Leonhard Euler, der sich im 18. Jahrhundert fragte, ob man alle Brücken seiner Heimatstadt Königsberg begehen könne, ohne eine Brücke doppelt zu laufen. Barbara König BeKo/TI 314

353 Hamiltonkreise vs. Eulerkreise Komplexitätsklassen NP-Vollständigkeit Barbara König BeKo/TI 315

354 Hamiltonkreise vs. Eulerkreise Komplexitätsklassen NP-Vollständigkeit Barbara König BeKo/TI 315

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

Turingmaschinen Vorlesung Berechenbarkeit und Komplexität alias Theoretische Informatik: Komplexitätstheorie und effiziente Algorithmen Vorlesung Berechenbarkeit und Komplexität alias Theoretische Informatik: und effiziente Algorithmen Wintersemester 2011/12 Schematische Darstellung einer Turing-Maschine: Kopf kann sich nach links und

Mehr

Vorlesung Berechenbarkeit und Komplexität Wintersemester 2016/17. Wer sind wir? Willkommen zu

Vorlesung Berechenbarkeit und Komplexität Wintersemester 2016/17. Wer sind wir? Willkommen zu Vorlesung Berechenbarkeit und Komplexität Wintersemester 2016/17 Prof. Barbara König Übungsleitung: Sebastian Küpper Willkommen zu Berechenbarkeit und Komplexität (Bachelor Angewandte Informatik, Duisburg

Mehr

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

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie 1 Einführung 2 Typ-0- und Typ-1-Sprachen 3 Berechnungsmodelle 4 Unentscheidbarkeit 5 Unentscheidbare Probleme 6 Komplexitätstheorie 15 Ziele vgl. AFS: Berechnungsmodelle für Typ-0- und Typ-1-Sprachen (Nicht-)Abschlußeigenschaften

Mehr

Vorlesung Berechenbarkeit und Komplexität Wintersemester 2015/16

Vorlesung Berechenbarkeit und Komplexität Wintersemester 2015/16 Vorlesung Berechenbarkeit und Komplexität Wintersemester 2015/16 Prof. Barbara König Übungsleitung: Henning Kerstan & Sebastian Küpper Barbara König BeKo/TI 1 Willkommen zu Berechenbarkeit und Komplexität

Mehr

Vorlesung Berechenbarkeit und Komplexität Wintersemester 2017/18

Vorlesung Berechenbarkeit und Komplexität Wintersemester 2017/18 Vorlesung Berechenbarkeit und Komplexität Wintersemester 2017/18 Prof. Barbara König Übungsleitung: Christina Mika-Michalski Barbara König BeKo/TI 1 Das heutige Programm Organisatorisches Vorstellung Ablauf

Mehr

Vorlesung Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2015

Vorlesung Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2015 Vorlesung Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2015 Prof. Barbara König Übungsleitung: Jan Stückrath Barbara König Automaten und Formale Sprachen 1 Das heutige Programm:

Mehr

Berechenbarkeit und Komplexität

Berechenbarkeit und Komplexität Berechenbarkeit und Komplexität Prof. Dr. Dietrich Kuske FG Theoretische Informatik, TU Ilmenau Wintersemester 2010/11 1 Organisatorisches zur Vorlesung Informationen, aktuelle Version der Folien und Übungsblätter

Mehr

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

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie 1 Einführung 2 Typ-0- und Typ-1-Sprachen 3 Berechnungsmodelle 4 Unentscheidbarkeit 5 Unentscheidbare Probleme 6 Komplexitätstheorie 139 Unentscheidbarkeit Überblick Zunächst einmal definieren wir formal

Mehr

Theorie der Informatik

Theorie der Informatik Theorie der Informatik 11. Kontextsensitive und Typ-0-Sprachen Malte Helmert Gabriele Röger Universität Basel 7. April 2014 Kontextsensitive und allgemeine Grammatiken Wiederholung: (kontextsensitive)

Mehr

Berechenbarkeit. Script, Kapitel 2

Berechenbarkeit. Script, Kapitel 2 Berechenbarkeit Script, Kapitel 2 Intuitiver Berechenbarkeitsbegriff Turing-Berechenbarkeit WHILE-Berechenbarkeit Church sche These Entscheidungsprobleme Unentscheidbarkeit des Halteproblems für Turingmaschinen

Mehr

LOOP-Programme: Syntaktische Komponenten

LOOP-Programme: Syntaktische Komponenten LOOP-Programme: Syntaktische Komponenten LOOP-Programme bestehen aus folgenden Zeichen (syntaktischen Komponenten): Variablen: x 0 x 1 x 2... Konstanten: 0 1 2... Operationssymbole: + Trennsymbole: ; :=

Mehr

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

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie 1 Einführung 2 Typ-0- und Typ-1-Sprachen 3 Berechnungsmodelle 4 Unentscheidbarkeit 5 Unentscheidbare Probleme 6 Komplexitätstheorie WS 11/12 155 Überblick Zunächst einmal definieren wir formal den Begriff

Mehr

11.1 Kontextsensitive und allgemeine Grammatiken

11.1 Kontextsensitive und allgemeine Grammatiken Theorie der Informatik 7. April 2014 11. Kontextsensitive und Typ-0-Sprachen Theorie der Informatik 11. Kontextsensitive und Typ-0-Sprachen 11.1 Kontextsensitive und allgemeine Grammatiken Malte Helmert

Mehr

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

Unentscheidbarkeit. Vorlesung Berechenbarkeit und Komplexität alias Theoretische Informatik: Komplexitätstheorie und effiziente Algorithmen Vorlesung Berechenbarkeit und Komplexität alias Theoretische Informatik: und effiziente Algorithmen Wintersemester 2011/12 Prof. Barbara König Übungsleitung: Henning Kerstan & Jan Stückrath Worum geht

Mehr

8. Turingmaschinen und kontextsensitive Sprachen

8. Turingmaschinen und kontextsensitive Sprachen 8. Turingmaschinen und kontextsensitive Sprachen Turingmaschinen (TM) von A. Turing vorgeschlagen, um den Begriff der Berechenbarkeit formal zu präzisieren. Intuitiv: statt des Stacks bei Kellerautomaten

Mehr

Berechenbarkeit. Script, Kapitel 2

Berechenbarkeit. Script, Kapitel 2 Berechenbarkeit Script, Kapitel 2 Intuitiver Berechenbarkeitsbegriff Turing-Berechenbarkeit WHILE-Berechenbarkeit Church sche These Entscheidungsprobleme Unentscheidbarkeit des Halteproblems für Turingmaschinen

Mehr

Deterministische und nichtdeterministische Turing-Maschinen, Typ1- und Typ0-Sprachen

Deterministische und nichtdeterministische Turing-Maschinen, Typ1- und Typ0-Sprachen Dr. Sebastian Bab WiSe 12/13 Theoretische Grundlagen der Informatik für TI Termin: VL 15 + 16 vom 17.12.2012 und 20.12.2012 Deterministische und nichtdeterministische Turing-Maschinen, Typ1- und Typ0-Sprachen

Mehr

Vorlesung Modellierung Modellierungsmethoden der Informatik. Wintersemester 2011/12. Lernplattform Moodle. Wer sind wir?

Vorlesung Modellierung Modellierungsmethoden der Informatik. Wintersemester 2011/12. Lernplattform Moodle. Wer sind wir? Vorlesung Modellierung Modellierungsmethoden der Informatik Wintersemester 2011/12 Prof. Barbara König Übungsleitung: Dr. Sander Bruggink Das heutige Programm Organisatorisches Vorstellung Ablauf der Vorlesung

Mehr

Rekursiv aufzählbare Sprachen

Rekursiv aufzählbare Sprachen Kapitel 4 Rekursiv aufzählbare Sprachen 4.1 Grammatiken und die Chomsky-Hierarchie Durch Zulassung komplexer Ableitungsregeln können mit Grammatiken größere Klassen als die kontextfreien Sprachen beschrieben

Mehr

2.4 Kontextsensitive und Typ 0-Sprachen

2.4 Kontextsensitive und Typ 0-Sprachen Definition 2.43 Eine Typ 1 Grammatik ist in Kuroda Normalform, falls alle Regeln eine der folgenden 4 Formen haben: Dabei: A, B, C, D V und a Σ. Satz 2.44 A a, A B, A BC, AB CD. Für jede Typ 1 Grammatik

Mehr

Typ-1-Sprachen. Satz 1 (Kuroda ( ) 1964)

Typ-1-Sprachen. Satz 1 (Kuroda ( ) 1964) Typ-1-Sprachen Satz 1 (Kuroda (1934-2009) 1964) Eine Sprache L hat Typ 1 (= ist kontextsensitiv) genau dann, wenn sie von einem nichtdeterministischen LBA erkannt wird. Beweis: Sei zunächst L Typ-1-Sprache.

Mehr

Theoretische Informatik - Zusammenfassung und Formelsammlung

Theoretische Informatik - Zusammenfassung und Formelsammlung Theoretische Informatik - Zusammenfassung und Formelsammlung Dominik Schacht April 2010 - Revision #36 Contents Einleitung 2 Chomsky 3 Unentscheidbarkeit 4 Halteproblem............................................

Mehr

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

Definition 98 Eine Turingmaschine heißt linear beschränkt (kurz: LBA), falls für alle q Q gilt: 5.2 Linear beschränkte Automaten Definition 98 Eine Turingmaschine heißt linear beschränkt (kurz: LBA), falls für alle q Q gilt: (q, c, d) δ(q, ) = c =. Ein Leerzeichen wird also nie durch ein anderes

Mehr

1.5 Turing-Berechenbarkeit

1.5 Turing-Berechenbarkeit A.M. Turing (1937): Maschinenmodell zur exakten Beschreibung des Begriffs effektiv berechenbar Stift Mensch a c b b Rechenblatt a b b c Lese-/Schreibkopf endliche Kontrolle Turingmaschine Eine Turingmaschine

Mehr

1.5 Turing-Berechenbarkeit

1.5 Turing-Berechenbarkeit A.M. Turing (1937): Maschinenmodell zur exakten Beschreibung des Begriffs effektiv berechenbar Stift Mensch a c b b Rechenblatt a b b c Lese-/Schreibkopf endliche Kontrolle Turingmaschine Eine Turingmaschine

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik 0 KIT 17.05.2010 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik nationales Forschungszentrum Vorlesung in am

Mehr

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

Kapitel: Die Chomsky Hierarchie. Die Chomsky Hierarchie 1 / 14 Kapitel: Die Chomsky Hierarchie Die Chomsky Hierarchie 1 / 14 Allgemeine Grammatiken Definition Eine Grammatik G = (Σ, V, S, P) besteht aus: einem endlichen Alphabet Σ, einer endlichen Menge V von Variablen

Mehr

Nachklausur zur Vorlesung

Nachklausur zur Vorlesung Lehrstuhl für Theoretische Informatik Prof. Dr. Markus Lohrey Grundlagen der Theoretischen Informatik Nachklausur Nachklausur zur Vorlesung Grundlagen der Theoretischen Informatik WS 2016/17 / 27. Februar

Mehr

Kontextsensitive und Typ 0 Sprachen Slide 2. Die Turingmaschine

Kontextsensitive und Typ 0 Sprachen Slide 2. Die Turingmaschine Kontextsensitive und Typ 0 Sprachen Slide 2 Die Turingmaschine DTM = Deterministische Turingmaschine NTM = Nichtdeterministische Turingmaschine TM = DTM oder NTM Intuitiv gilt: DTM = (DFA + dynamischer

Mehr

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

WS06/07 Referentin: Katharina Blinova. Formale Sprachen. Hauptseminar Intelligente Systeme Dozent: Prof. Dr. J. Rolshoven WS06/07 Referentin: Katharina Blinova Formale Sprachen Hauptseminar Intelligente Systeme Dozent: Prof. Dr. J. Rolshoven 1. Allgemeines 2. Formale Sprachen 3. Formale Grammatiken 4. Chomsky-Hierarchie 5.

Mehr

VL-11: LOOP und WHILE Programme I. (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger

VL-11: LOOP und WHILE Programme I. (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger VL-11: LOOP und WHILE Programme I (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger WS 2017, RWTH BuK/WS 2017 VL-11: LOOP und WHILE Programme I 1/46 Organisatorisches Nächste Vorlesung: Mittwoch,

Mehr

Theoretische Informatik II

Theoretische Informatik II Theoretische Informatik II Einheit 4.2 Modelle für Typ-0 & Typ-1 Sprachen 1. Nichtdeterministische Turingmaschinen 2. Äquivalenz zu Typ-0 Sprachen 3. Linear beschränkte Automaten und Typ-1 Sprachen Maschinenmodelle

Mehr

Turing Maschine. Thorsten Timmer. SS 2005 Proseminar Beschreibungskomplexität bei Prof. D. Wotschke. Turing Maschine SS 2005 p.

Turing Maschine. Thorsten Timmer. SS 2005 Proseminar Beschreibungskomplexität bei Prof. D. Wotschke. Turing Maschine SS 2005 p. Thorsten Timmer SS 2005 Proseminar Beschreibungskomplexität bei Prof. D. Wotschke Turing Maschine SS 2005 p. 1/35 Inhalt Einführung Formale Definition Berechenbare Sprachen und Funktionen Berechnung ganzzahliger

Mehr

Wiederholung. Organisatorisches. VL-11: LOOP und WHILE Programme I. (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger

Wiederholung. Organisatorisches. VL-11: LOOP und WHILE Programme I. (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger Organisatorisches VL-11: LOOP und WHILE Programme I (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger Nächste Vorlesung: Mittwoch, November 29, 14:15 15:45 Uhr, Roter Hörsaal Webseite: http://algo.rwth-aachen.de/lehre/ws1718/buk.php

Mehr

LOOP-Programme: Syntaktische Komponenten

LOOP-Programme: Syntaktische Komponenten LOOP-Programme: Syntaktische Komponenten LOOP-Programme bestehen aus folgenden Zeichen (syntaktischen Komponenten): Variablen: x 0 x 1 x 2... Konstanten: 0 1 2... Operationssymbole: + Trennsymbole: ; :=

Mehr

Präsenzübung Berechenbarkeit und Komplexität

Präsenzübung Berechenbarkeit und Komplexität Lehrstuhl für Informatik 1 WS 2013/14 Prof. Dr. Berthold Vöcking 28.01.2014 Kamal Al-Bawani Benjamin Ries Präsenzübung Berechenbarkeit und Komplexität Musterlösung Name:...................................

Mehr

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

Grundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben Dieses Dokument soll mehr dazu dienen, Beispiele für die formal korrekt mathematische Bearbeitung von Aufgaben zu liefern, als konkrete Hinweise auf typische Klausuraufgaben zu liefern. Die hier gezeigten

Mehr

Berechenbarkeit und Komplexität

Berechenbarkeit und Komplexität Berechenbarkeit und Komplexität Vorlesung SS 2013 1. Einführung I. Berechenbarkeitsbegriff, typische Fragen: wann ist eine Funktion berechenbar? wie lässt sich der intuitive Berechenbarkeitsbegriff formal

Mehr

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

Grundlagen Theoretischer Informatik 2 WiSe 2011/12 in Trier. Henning Fernau Universität Trier Grundlagen Theoretischer Informatik 2 WiSe 2011/12 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Grundlagen Theoretischer Informatik 2 Gesamtübersicht Organisatorisches; Einführung Ersetzungsverfahren:

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Sascha Böhme, Lars Noschinski Sommersemester 2011 Lösungsblatt 8 18. Juli 2011 Einführung in die Theoretische Informatik

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Sascha Böhme, Lars Noschinski Sommersemester 2011 Lösungsblatt 9 25. Juli 2011 Einführung in die Theoretische Informatik

Mehr

Kontextfreie Sprachen

Kontextfreie Sprachen Kontextfreie Sprachen Bedeutung: Programmiersprachen (Compilerbau) Syntaxbäume Chomsky-Normalform effiziente Lösung des Wortproblems (CYK-Algorithmus) Grenzen kontextfreier Sprachen (Pumping Lemma) Charakterisierung

Mehr

Ausgewählte unentscheidbare Sprachen

Ausgewählte unentscheidbare Sprachen Proseminar Theoretische Informatik 15.12.15 Ausgewählte unentscheidbare Sprachen Marian Sigler, Jakob Köhler Wolfgang Mulzer 1 Entscheidbarkeit und Semi-Entscheidbarkeit Definition 1: L ist entscheidbar

Mehr

Turingmaschinen. Sabine Kuske: Turingmaschinen; 23.Juni 2008

Turingmaschinen. Sabine Kuske: Turingmaschinen; 23.Juni 2008 1 Turingmaschinen Von Alan Turing in den 30er Jahren dieses Jahrhunderts eingeführt Eines der ältesten Berechenbarkeitsmodelle Idee: den mechanischen Anteil des Rechnens mit Bleistift und Radiergummi auf

Mehr

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

Grundlagen Theoretischer Informatik 2 WiSe 2011/12 in Trier. Henning Fernau Universität Trier Grundlagen Theoretischer Informatik 2 WiSe 2011/12 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Grundlagen Theoretischer Informatik 2 Gesamtübersicht Organisatorisches; Einführung Ersetzungsverfahren:

Mehr

FORMALE SYSTEME. 3. Vorlesung: Endliche Automaten. TU Dresden, 17. Oktober Markus Krötzsch

FORMALE SYSTEME. 3. Vorlesung: Endliche Automaten. TU Dresden, 17. Oktober Markus Krötzsch FORMALE SYSTEME 3. Vorlesung: Endliche Automaten Markus Krötzsch TU Dresden, 17. Oktober 2016 Rückblick Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 2 von 31 Wiederholung Mit Grammatiken können

Mehr

Beweis: Nach dem Pumping-Lemma für kontextfreie Sprachen ist

Beweis: Nach dem Pumping-Lemma für kontextfreie Sprachen ist CF versus CS Theorem CF ist echt in CS enthalten. Beweis: Nach dem Pumping-Lemma für kontextfreie Sprachen ist L = {a m b m c m m 1} nicht kontextfrei. Andererseits ist L kontextsensitiv, wie die Grammatik

Mehr

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2011

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2011 Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2011 Dr. Sander Bruggink Übungsleitung: Jan Stückrath Sander Bruggink Automaten und Formale Sprachen 1 Wir beschäftigen uns ab

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Dr. Werner Meixner, Dr. Alexander Krauss Sommersemester 2010 Lösungsblatt 9 2. Juli 2010 Einführung in die Theoretische

Mehr

Kontextfreie Sprachen

Kontextfreie Sprachen Kontextfreie Sprachen besitzen große Bedeutung im Compilerbau Chomsky-Normalform effiziente Lösung des Wortproblems (CYK-Algorithmus) Grenzen kontextfreier Sprachen (Pumping Lemma) Charakterisierung durch

Mehr

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

Beispiel: NTM. M = ({q 0,q 1,q 2 }, {0, 1}, {0, 1, #},δ, q 0, #, {q 2 }) q 2 Beispiel: NTM M = ({q 0,q 1,q 2 }, {0, 1}, {0, 1, #},δ, q 0, #, {q 2 }) 0,1,R 0,0,R q0 1,0,R q1 #,#,R q2 0,0,L Zustand 0 1 # q 0 {(1, R, q 0 )} {(0, R, q 1 )} q 1 {(0, R, q 1 ),(0, L, q 0 )} {(1, R, q

Mehr

Lösung zur Klausur. Grundlagen der Theoretischen Informatik im WiSe 2003/2004

Lösung zur Klausur. Grundlagen der Theoretischen Informatik im WiSe 2003/2004 Lösung zur Klausur Grundlagen der Theoretischen Informatik im WiSe 2003/2004 1. Geben Sie einen deterministischen endlichen Automaten an, der die Sprache aller Wörter über dem Alphabet {0, 1} akzeptiert,

Mehr

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

Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 17/18 Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 6 Vorlesung Theoretische Grundlagen der Informatik im WS 17/18 Ausgabe 10. Januar 2018 Abgabe 23. Januar 2018, 11:00 Uhr (im

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 18. Januar 2018 INSTITUT FÜR THEORETISCHE 0 18.01.2018 Dorothea Wagner - Theoretische Grundlagen der Informatik INSTITUT FÜR THEORETISCHE KIT Die Forschungsuniversität

Mehr

Unentscheidbarkeitssätze der Logik

Unentscheidbarkeitssätze der Logik Unentscheidbarkeitssätze der Logik Elmar Eder () Unentscheidbarkeitssätze der Logik 1 / 30 Die Zahlentheorie ist nicht formalisierbar Satz (Kurt Gödel) Zu jedem korrekten formalen System der Zahlentheorie

Mehr

Reguläre Sprachen. R. Stiebe: Theoretische Informatik für ING-IF und Lehrer,

Reguläre Sprachen. R. Stiebe: Theoretische Informatik für ING-IF und Lehrer, Reguläre Sprachen Reguläre Sprachen (Typ-3-Sprachen) haben große Bedeutung in Textverarbeitung und Programmierung (z.b. lexikalische Analyse) besitzen für viele Entscheidungsprobleme effiziente Algorithmen

Mehr

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

GTI. Hannes Diener. 18. Juni. ENC B-0123, GTI Hannes Diener ENC B-0123, diener@math.uni-siegen.de 18. Juni 1 / 32 Als Literatur zu diesem Thema empfiehlt sich das Buch Theoretische Informatik kurzgefasst von Uwe Schöning (mittlerweile in der 5.

Mehr

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

Klausur: Berechenbarkeit und Komplexität (Niedermeier/Chen/Froese/Sorge, Sommersemester 2016) Technische Universität Berlin, Berlin, 28.07.2016 Name:... Matr.-Nr.:... Klausur: Berechenbarkeit und Komplexität (Niedermeier/Chen/Froese/Sorge, Sommersemester 2016) Einlesezeit: Bearbeitungszeit: Max.

Mehr

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

Vorlesung Berechenbarkeit und Komplexität alias Theoretische Informatik: Komplexitätstheorie und effiziente Algorithmen. Wintersemester 2012/13 Vorlesung Berechenbarkeit und Komplexität alias Theoretische Informatik: und effiziente Algorithmen Wintersemester 2012/13 Prof. Barbara König Übungsleitung: Henning Kerstan & Sebastian Küpper Barbara

Mehr

Automaten und formale Sprachen Klausurvorbereitung

Automaten und formale Sprachen Klausurvorbereitung Automaten und formale Sprachen Klausurvorbereitung Rami Swailem Mathematik Naturwissenschaften und Informatik FH-Gießen-Friedberg Inhaltsverzeichnis 1 Definitionen 2 2 Altklausur Jäger 2006 8 1 1 Definitionen

Mehr

Einführung in die Informatik Turing Machines

Einführung in die Informatik Turing Machines Einführung in die Informatik Turing Machines Eine abstrakte Maschine zur Präzisierung des Algorithmenbegriffs Wolfram Burgard 1 Motivation und Einleitung Bisher haben wir verschiedene Programmiersprachen

Mehr

Die mathematische Seite

Die mathematische Seite Kellerautomaten In der ersten Vorlesung haben wir den endlichen Automaten kennengelernt. Mit diesem werden wir uns in der zweiten Vorlesung noch etwas eingängiger beschäftigen und bspw. Ansätze zur Konstruktion

Mehr

Proseminar Komplexitätstheorie P versus NP Wintersemester 2006/07. Nichtdeterministische Turingmaschinen und NP

Proseminar Komplexitätstheorie P versus NP Wintersemester 2006/07. Nichtdeterministische Turingmaschinen und NP Proseminar Komplexitätstheorie P versus NP Wintersemester 2006/07 Vortrag am 17.11.2006 Nichtdeterministische Turingmaschinen und NP Yves Radunz Inhaltsverzeichnis 1 Wiederholung 3 1.1 Allgemeines........................................

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Dr. Werner Meixner, Dr. Alexander Krauss Sommersemester 2010 Lösungsblatt 11 15. Juli 2010 Einführung in die Theoretische

Mehr

Grundlagen Theoretischer Informatik 2 WiSe 2009/10 in Trier. Henning Fernau Universität Trier

Grundlagen Theoretischer Informatik 2 WiSe 2009/10 in Trier. Henning Fernau Universität Trier Grundlagen Theoretischer Informatik 2 WiSe 2009/10 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Grundlagen Theoretischer Informatik 2 Gesamtübersicht Organisatorisches; Einführung Ersetzungsverfahren:

Mehr

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

11. Woche: Turingmaschinen und Komplexität Rekursive Aufzählbarkeit, Entscheidbarkeit Laufzeit, Klassen DTIME und P 11 Woche: Turingmaschinen und Komplexität Rekursive Aufzählbarkeit, Entscheidbarkeit Laufzeit, Klassen DTIME und P 11 Woche: Turingmaschinen, Entscheidbarkeit, P 239/ 333 Einführung in die NP-Vollständigkeitstheorie

Mehr

Falls H die Eingabe verwirft, so wissen wir, dass M bei Eingabe w nicht hält. M hält im verwerfenden Haltezustand. Beweis:

Falls H die Eingabe verwirft, so wissen wir, dass M bei Eingabe w nicht hält. M hält im verwerfenden Haltezustand. Beweis: 1 Unentscheidbarkeit 2 Grundlagen der Theoretischen Informatik Till Mossakowski Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Wintersemester 2014/15 #include char *s="include

Mehr

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

Theoretische Informatik: Berechenbarkeit und Formale Sprachen Prof. Dr. F. Otto 26.09.2011 Fachbereich Elektrotechnik/Informatik Universität Kassel Klausur zur Vorlesung Theoretische Informatik: Berechenbarkeit und Formale Sprachen SS 2011 Name:................................

Mehr

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

Einführung in die Theoretische Informatik I/ Grundlagen der Theoretischen Informatik. SS 2007 Jun.-Prof. Dr. Bernhard Beckert Ulrich Koch Einführung in die Theoretische Informatik I/ Grundlagen der Theoretischen Informatik SS 2007 Jun.-Prof. Dr. Bernhard Beckert Ulrich Koch 3. Teilklausur 25. 07. 2007 Persönliche Daten bitte gut leserlich

Mehr

THEORETISCHE INFORMATIK UND LOGIK

THEORETISCHE INFORMATIK UND LOGIK THEORETISCHE INFORMATIK UND LOGIK 3. Vorlesung: WHILE und LOOP Markus Krötzsch Lehrstuhl Wissensbasierte Systeme TU Dresden, 12. April 2017 Was bisher geschah... Grundbegriffe, die wir verstehen und erklären

Mehr

THEORETISCHE INFORMATIK UND LOGIK

THEORETISCHE INFORMATIK UND LOGIK 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

Mehr

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

Aufgabentypen: Spickerblatt: kontextfrei (Typ 2): zusätzlich: u ist eine!# v 1 Info4 Stoff Aufgabentypen: Grammatik CH einordnen NFA DFA Grammatik Chomsky-NF CYK-Algorithmus: Tabelle / Ableitungsbäume Grammatik streng kf. Grammatik Grammatik Pumping Lemma Beweis, dass Gr. nicht reg,

Mehr

Berechenbarkeits- und Komplexitätstheorie

Berechenbarkeits- und Komplexitätstheorie Berechenbarkeits- und Komplexitätstheorie Verschiedene Berechenbarkeitsbegriffe, Entscheidbarkeit von Sprachen, Wachstumsordnungen und Komplexitätsklassen Inhaltsübersicht und Literatur Verschiedene Berechenbarkeitsbegriffe:

Mehr

Einige Beispiele zur Turingmaschine

Einige Beispiele zur Turingmaschine Einige Beispiele zur Turingmaschine Beispiel 1: Addition von 1 zu einer Dualzahl Aufgabe: Auf dem Eingabe-Band einer Turingmaschine steht eine Dualzahl (= Binärzahl, bestehend aus 0-en und 1-en, links

Mehr

Vorlesung im Sommersemester Informatik IV. Probeklausurtermin: 21. Juni 2016

Vorlesung im Sommersemester Informatik IV. Probeklausurtermin: 21. Juni 2016 Heinrich-Heine-Universität Düsseldorf Institut für Informatik Prof. Dr. J. Rothe Universitätsstr. 1, D-40225 Düsseldorf Gebäude: 25.12, Ebene: O2, Raum: 26 Tel.: +49 211 8112188, Fax: +49 211 8111667 E-Mail:

Mehr

Einführung in die Informatik Turing Machines

Einführung in die Informatik Turing Machines Einführung in die Informatik Turing Machines Eine abstrakte Maschine zur Präzisierung des Algorithmenbegriffs Wolfram Burgard Cyrill Stachniss 1/14 Motivation und Einleitung Bisher haben wir verschiedene

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 17. Januar 2012 INSTITUT FÜR THEORETISCHE 0 KIT 18.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der

Mehr

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

Vorlesung Berechenbarkeit und Komplexität alias Theoretische Informatik: Komplexitätstheorie und effiziente Algorithmen. Wintersemester 2011/12 Vorlesung Berechenbarkeit und Komplexität alias Theoretische Informatik: und effiziente Algorithmen Wintersemester 2011/12 Prof. Barbara König Übungsleitung: Henning Kerstan & Jan Stückrath Barbara König

Mehr

1.2 LOOP-, WHILE- und GOTO-Berechenbarkeit

1.2 LOOP-, WHILE- und GOTO-Berechenbarkeit Die Programmiersprache LOOP (i) Syntaktische Komponenten: Variable: x 0, x 1, x 2,... Konstanten: 0, 1, 2,... Trennsymbole: ; := Operationszeichen: + Schlüsselwörter: LOOP DO END (ii) LOOP-Programme: Wertzuweisungen:

Mehr

Formale Sprachen. Script, Kapitel 4. Grammatiken

Formale Sprachen. Script, Kapitel 4. Grammatiken Formale Sprachen Grammatiken Script, Kapitel 4 erzeugen Sprachen eingeführt von Chomsky zur Beschreibung natürlicher Sprache bedeutend für die Syntaxdefinition und -analyse von Programmiersprachen Automaten

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik Grundlagen der Theoretischen Informatik Turingmaschinen und rekursiv aufzählbare Sprachen (V) 7.07.2016 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Übersicht 1. Motivation 2. Terminologie

Mehr

Klausur zur Vorlesung Informatik III Wintersemester 2007/2008

Klausur zur Vorlesung Informatik III Wintersemester 2007/2008 Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Klausur zur Vorlesung Informatik III Wintersemester 2007/2008 Hier Aufkleber mit Name und Matrikelnr. anbringen Vorname: Nachname: Matrikelnummer:

Mehr

Turing: prinzipielle Berechenbarkeit Abschnitt 4.2. Turingmaschinen: DTM Abschnitt 4.2. DTM: Akzeptieren und Entscheiden Abschnitt 4.

Turing: prinzipielle Berechenbarkeit Abschnitt 4.2. Turingmaschinen: DTM Abschnitt 4.2. DTM: Akzeptieren und Entscheiden Abschnitt 4. Kap. 4: Berechnungsmodelle Turingmaschinen 4.2 Turing: prinzipielle Berechenbarkeit Abschnitt 4.2 Kap. 4: Berechnungsmodelle Turingmaschinen 4.2 Turingmaschinen: DTM Abschnitt 4.2 DTM = DFA + unbeschränkter

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 17.November 2011 INSTITUT FÜR THEORETISCHE 0 KIT 17.11.2011 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der

Mehr

Formale Sprachen. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marian KOGLER

Formale Sprachen. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marian KOGLER Formale Sprachen Grammatiken und die Chomsky-Hierarchie Rudolf FREUND, Marian KOGLER Grammatiken Das fundamentale Modell zur Beschreibung von formalen Sprachen durch Erzeugungsmechanismen sind Grammatiken.

Mehr

6.4 Entscheidbarkeit. nein sein müssen, ist klar. THEO 6.4 Entscheidbarkeit 205/307 c Ernst W. Mayr

6.4 Entscheidbarkeit. nein sein müssen, ist klar. THEO 6.4 Entscheidbarkeit 205/307 c Ernst W. Mayr 6.4 Entscheidbarkeit Wortproblem Leerheit Äquivalenz Schnittproblem Typ 3 ja ja ja ja DCFL ja ja ja nein (*) Typ 2 ja ja nein (*) nein Typ 1 ja nein (*) nein nein Typ 0 nein (*) nein nein nein (*) Diese

Mehr

Weitere universelle Berechnungsmodelle

Weitere universelle Berechnungsmodelle Weitere universelle Berechnungsmodelle Mehrband Turingmaschine Nichtdeterministische Turingmaschine RAM-Modell Vektoradditionssysteme λ-kalkül µ-rekursive Funktionen 1 Varianten der dtm Mehrkopf dtm Kontrolle

Mehr

Theorie der Informatik

Theorie der Informatik Theorie der Informatik 8. Reguläre Sprachen II Malte Helmert Gabriele Röger Universität Basel 24. März 24 Pumping Lemma Pumping Lemma: Motivation Man kann zeigen, dass eine Sprache regulär ist, indem man

Mehr

Turingautomaten Jörg Roth Turingautomaten

Turingautomaten Jörg Roth Turingautomaten Turingautomaten Jörg Roth 331 5 Turingautomaten Wir führen nochmals ein neues Automatenmodell ein und erweitern die Fähigkeit, Sprachen zu erkennen: Problem vom Kellerautomaten: wir können zwar beliebig

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik Grundlagen der Theoretischen Informatik Turingmaschinen und rekursiv aufzählbare Sprachen (II) 2.07.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Übersicht 1. Motivation 2. Terminologie

Mehr

Theoretische Informatik. Berechenbarkeit

Theoretische Informatik. Berechenbarkeit Theoretische Informatik Berechenbarkeit 1 Turing Maschine Endlicher Automat mit unendlichem Speicher Ein Modell eines realen Computers Was ein Computer berechnen kann, kann auch eine TM berechnen. Was

Mehr

2. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2016/2017

2. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2016/2017 2. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2016/2017 Hier Aufkleber mit Name und Matrikelnummer anbringen Vorname: Nachname: Matrikelnummer: Beachten Sie: Bringen Sie

Mehr

1. Klausur zur Vorlesung Informatik III Wintersemester 2003/2004. Mit Lösung!

1. Klausur zur Vorlesung Informatik III Wintersemester 2003/2004. Mit Lösung! Universität Karlsruhe Theoretische Informatik Fakultät für Informatik WS 23/4 ILKD Prof. Dr. D. Wagner 2. Februar 24. Klausur zur Vorlesung Informatik III Wintersemester 23/24 Mit Lösung! Beachten Sie:

Mehr

THEORETISCHE INFORMATIK UND LOGIK

THEORETISCHE INFORMATIK UND LOGIK Was bisher geschah... Grundbegriffe, die wir verstehen und erklären können: DTM, NTM, Entscheider, Aufzähler, berechenbar/entscheidbar, semi-entscheidbar, unentscheidbar, Church-Turing-These THEORETISCHE

Mehr

ALP I Turing-Maschine

ALP I Turing-Maschine ALP I Turing-Maschine Teil I WS 2012/2013 Äquivalenz vieler Berechnungsmodelle Alonzo Church λ-kalkül Kombinatorische Logik Alan Turing Turing-Maschine Mathematische Präzisierung Effektiv Berechenbare

Mehr

Theoretische Informatik 2 bzw. Formale Sprachen und Berechenbarkeit. Sommersemester Herzlich willkommen!

Theoretische Informatik 2 bzw. Formale Sprachen und Berechenbarkeit. Sommersemester Herzlich willkommen! Theoretische Informatik 2 bzw. Formale Sprachen und Berechenbarkeit Sommersemester 2012 Prof. Dr. Nicole Schweikardt AG Theorie komplexer Systeme Goethe-Universität Frankfurt am Main Herzlich willkommen!

Mehr

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

EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK 0. ORGANISATORISCHES UND ÜBERBLICK EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK Prof. Dr. Klaus Ambos-Spies Sommersemester 2014 0. ORGANISATORISCHES UND ÜBERBLICK Theoretische Informatik (SoSe 2014) 0. Organisatorisches und Überblick 1 / 16

Mehr

Formale Sprachen und Automaten

Formale Sprachen und Automaten Turingmaschinen Formale Sprachen und Automaten Das Konzept der Turingmaschine wurde von dem Englischen Mathematiker Alan M. Turing (1912-1954) ersonnen. Turingmaschinen, Typ-0- und Typ-1-Grammatiken Der

Mehr

Hauptklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2011/2012

Hauptklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2011/2012 Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Hauptklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2011/2012 Hier Aufkleber mit Name und Matrikelnr. anbringen

Mehr

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Algorithmen mit konstantem Platzbedarf: Die Klasse REG Algorithmen mit konstantem Platzbedarf: Die Klasse REG Sommerakademie Rot an der Rot AG 1 Wieviel Platz brauchen Algorithmen wirklich? Daniel Alm Institut für Numerische Simulation Universität Bonn August

Mehr