Theoretische Informatik 2 - Was möchten sie tun?

Werbung
Theoretische Informatik 2
Jürgen Koslowski
Institut für Theoretische Informatik
Technische Universität Braunschweig
SS 2015
http://www.iti.cs.tu-bs.de/˜koslowj/Theo2
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
1 / 236
Übersicht: Überblick I
4
Hintergrund und Motivation
Ziele der Vorlesungen “Theoretische Informatik 2”
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
2 / 236
Übersicht: Turingmaschinen I
5
Turingmaschinen
Vorüberlegung
Turingmaschinen formal
Darstellung von Turingmaschinen
Entscheidbare Sprachen/Probleme
Die Chomsky-Hierarchie formaler Sprachen
Abschlußeigenschaften (semi-)entscheidbarer Sprachen
Turing-berechenbare partielle Funktionen
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
3 / 236
Übersicht: Die Church-Turing These I
6
Church-Turing-These
Alternativen zu Turingmaschinen
Registermaschinen (RAM)
Befehlssatz einer RAM
Simulation einer dTM durch eine RAM
RAM-Berechenbarkeit
6.2 Rekursive Funktionen
Eigenschaften von PR
Der unbeschränkte µ - Operator
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
4 / 236
Übersicht: Unentscheidbare Probleme I
7
Unentscheidbare Probleme
7.0 Problemstellung
7.1 Universelle Turingmaschine
7.2 Das Halteproblem
7.3 Weitere unentscheidbare Probleme
7.3.0 Das Akzeptanzproblem
7.3.1 Akzeptanz des leeren Worts
7.3.2 Terminierung eines Algorithmus
7.4 Satz von Rice
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
5 / 236
Übersicht: Komplexitätstheorie I
8
Komplexität von Algorithmen
8.0 Übersicht
8.0.1 Wiederholung: Groß-O-Notation
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
8.1.1 Weitere Vorüberlegungen
8.2 Die Komplexitätsklassen P und NP
8.3 Die Klasse FP von Berechnungsproblemen
8.4 FP-Reduzierbarkeit
8.4.1 2 - Sat ∈ P
8.5 Robustheit der Klassen P und NP
8.6 Einige Probleme aus NP
8.7 NP-Vollständigkeit und Cooke’scher Satz
8.8 Weitere NP-vollständige Probleme
8.9 Die Klasse coNP
8.10 Komplexität von Optimierungsproblemen
8.11 Approximation von Optimierungsproblemen
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
6 / 236
Übersicht: Komplexitätstheorie II
8.12 Raumkomplexität
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
7 / 236
Hintergrund und Motivation
Ziele der Vorlesungen “Theoretische Informatik 2”
Kapitel 4
Überblick
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
8 / 236
Hintergrund und Motivation
Ziele der Vorlesungen “Theoretische Informatik 2”
In Fortsetzung der VL “Theoretische Informatik 1” führen wir zunächst
Turingmaschinen als neues Maschinenmodell ein; ihre Fähigkeiten gehen
über die der Kellerautomaten hinaus (obwohl sie historisch älter sind).
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
9 / 236
Hintergrund und Motivation
Ziele der Vorlesungen “Theoretische Informatik 2”
In Fortsetzung der VL “Theoretische Informatik 1” führen wir zunächst
Turingmaschinen als neues Maschinenmodell ein; ihre Fähigkeiten gehen
über die der Kellerautomaten hinaus (obwohl sie historisch älter sind). Sie
werden sich als das mächtigste (klassische) Maschinenmodell erweisen,
ebenso mächtig wie alle heute gebräuchlichen Computer.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
9 / 236
Hintergrund und Motivation
Ziele der Vorlesungen “Theoretische Informatik 2”
In Fortsetzung der VL “Theoretische Informatik 1” führen wir zunächst
Turingmaschinen als neues Maschinenmodell ein; ihre Fähigkeiten gehen
über die der Kellerautomaten hinaus (obwohl sie historisch älter sind). Sie
werden sich als das mächtigste (klassische) Maschinenmodell erweisen,
ebenso mächtig wie alle heute gebräuchlichen Computer. (Um weitergehende Fähigkeiten zu realisieren, braucht man einen “Quantencomputer”.)
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
9 / 236
Hintergrund und Motivation
Ziele der Vorlesungen “Theoretische Informatik 2”
In Fortsetzung der VL “Theoretische Informatik 1” führen wir zunächst
Turingmaschinen als neues Maschinenmodell ein; ihre Fähigkeiten gehen
über die der Kellerautomaten hinaus (obwohl sie historisch älter sind). Sie
werden sich als das mächtigste (klassische) Maschinenmodell erweisen,
ebenso mächtig wie alle heute gebräuchlichen Computer. (Um weitergehende Fähigkeiten zu realisieren, braucht man einen “Quantencomputer”.)
Die Klasse der von TM’n akzeptierten semi-entscheidbaren Sprachen hat die
kanonische Unterklasse der entscheidbaren Sprachen; diese werden von
TM’n akzeptiert, die bei jeder Eingabe halten. Das wirft die Frage nach der
Entscheidbarkeit bzw. Nichtentscheidbarkeit formaler Sprachen auf.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
9 / 236
Hintergrund und Motivation
Ziele der Vorlesungen “Theoretische Informatik 2”
In Fortsetzung der VL “Theoretische Informatik 1” führen wir zunächst
Turingmaschinen als neues Maschinenmodell ein; ihre Fähigkeiten gehen
über die der Kellerautomaten hinaus (obwohl sie historisch älter sind). Sie
werden sich als das mächtigste (klassische) Maschinenmodell erweisen,
ebenso mächtig wie alle heute gebräuchlichen Computer. (Um weitergehende Fähigkeiten zu realisieren, braucht man einen “Quantencomputer”.)
Die Klasse der von TM’n akzeptierten semi-entscheidbaren Sprachen hat die
kanonische Unterklasse der entscheidbaren Sprachen; diese werden von
TM’n akzeptiert, die bei jeder Eingabe halten. Das wirft die Frage nach der
Entscheidbarkeit bzw. Nichtentscheidbarkeit formaler Sprachen auf. Hier
tritt schon das Verfahren der Reduktion von Problemen bzw. Sprachen auf,
das auch in der Komplexitätstheorie gebraucht wird.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
9 / 236
Hintergrund und Motivation
Ziele der Vorlesungen “Theoretische Informatik 2”
In Fortsetzung der VL “Theoretische Informatik 1” führen wir zunächst
Turingmaschinen als neues Maschinenmodell ein; ihre Fähigkeiten gehen
über die der Kellerautomaten hinaus (obwohl sie historisch älter sind). Sie
werden sich als das mächtigste (klassische) Maschinenmodell erweisen,
ebenso mächtig wie alle heute gebräuchlichen Computer. (Um weitergehende Fähigkeiten zu realisieren, braucht man einen “Quantencomputer”.)
Die Klasse der von TM’n akzeptierten semi-entscheidbaren Sprachen hat die
kanonische Unterklasse der entscheidbaren Sprachen; diese werden von
TM’n akzeptiert, die bei jeder Eingabe halten. Das wirft die Frage nach der
Entscheidbarkeit bzw. Nichtentscheidbarkeit formaler Sprachen auf. Hier
tritt schon das Verfahren der Reduktion von Problemen bzw. Sprachen auf,
das auch in der Komplexitätstheorie gebraucht wird.
TM’n lassen sich auch zur Lösung von Berechnungsproblemen (kurz
B-Problemen) verwenden.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
9 / 236
Hintergrund und Motivation
Ziele der Vorlesungen “Theoretische Informatik 2”
In Fortsetzung der VL “Theoretische Informatik 1” führen wir zunächst
Turingmaschinen als neues Maschinenmodell ein; ihre Fähigkeiten gehen
über die der Kellerautomaten hinaus (obwohl sie historisch älter sind). Sie
werden sich als das mächtigste (klassische) Maschinenmodell erweisen,
ebenso mächtig wie alle heute gebräuchlichen Computer. (Um weitergehende Fähigkeiten zu realisieren, braucht man einen “Quantencomputer”.)
Die Klasse der von TM’n akzeptierten semi-entscheidbaren Sprachen hat die
kanonische Unterklasse der entscheidbaren Sprachen; diese werden von
TM’n akzeptiert, die bei jeder Eingabe halten. Das wirft die Frage nach der
Entscheidbarkeit bzw. Nichtentscheidbarkeit formaler Sprachen auf. Hier
tritt schon das Verfahren der Reduktion von Problemen bzw. Sprachen auf,
das auch in der Komplexitätstheorie gebraucht wird.
TM’n lassen sich auch zur Lösung von Berechnungsproblemen (kurz
B-Problemen) verwenden. Das liefert eine Theorie der “Turingberechenbaren (partiellen) Funktionen” der Form Nn f N, n ∈ N .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
9 / 236
Hintergrund und Motivation
Ziele der Vorlesungen “Theoretische Informatik 2”
Alternativ kann man ausgehend von einfachen Grundfunktionen Nn
N
mittels simpler Konstruktionsverfahren neue partielle Funktionen Nn
N
generieren. Das liefert erst die Klasse der primitiv rekursiven Funktionen,
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
10 / 236
Hintergrund und Motivation
Ziele der Vorlesungen “Theoretische Informatik 2”
Alternativ kann man ausgehend von einfachen Grundfunktionen Nn
N
mittels simpler Konstruktionsverfahren neue partielle Funktionen Nn
N
generieren. Das liefert erst die Klasse der primitiv rekursiven Funktionen,
und anschließend die Klasse der µ-rekursiven partiellen Funktionen.
Letztere stimmt mit der obigen Klasse der Turing-brechenbaren partiellen
Funktionen überein.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
10 / 236
Hintergrund und Motivation
Ziele der Vorlesungen “Theoretische Informatik 2”
Alternativ kann man ausgehend von einfachen Grundfunktionen Nn
N
mittels simpler Konstruktionsverfahren neue partielle Funktionen Nn
N
generieren. Das liefert erst die Klasse der primitiv rekursiven Funktionen,
und anschließend die Klasse der µ-rekursiven partiellen Funktionen.
Letztere stimmt mit der obigen Klasse der Turing-brechenbaren partiellen
Funktionen überein.
In der Komplexitätstheorie geht es darum, wie effizient E-Probleme gelöst
werden können. Entscheidendes Kriterium ist, ob mit Hilfe von dTM’n bzw.
nTM’n Laufzeiten realisiert werden können, die polynomial in der Größe der
Eingabe sind. Das liefert die Komplexitätsklassen P und NP .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
10 / 236
Hintergrund und Motivation
Ziele der Vorlesungen “Theoretische Informatik 2”
Alternativ kann man ausgehend von einfachen Grundfunktionen Nn
N
mittels simpler Konstruktionsverfahren neue partielle Funktionen Nn
N
generieren. Das liefert erst die Klasse der primitiv rekursiven Funktionen,
und anschließend die Klasse der µ-rekursiven partiellen Funktionen.
Letztere stimmt mit der obigen Klasse der Turing-brechenbaren partiellen
Funktionen überein.
In der Komplexitätstheorie geht es darum, wie effizient E-Probleme gelöst
werden können. Entscheidendes Kriterium ist, ob mit Hilfe von dTM’n bzw.
nTM’n Laufzeiten realisiert werden können, die polynomial in der Größe der
Eingabe sind. Das liefert die Komplexitätsklassen P und NP .
B-Probleme, deren zugrundeliegendes E-Problem nicht effizient lösbar ist,
sind selbst nicht effizient lösbar. In solchen Fällen kann man nur versuchen,
möglichst gute Lösungen zu approximieren. Das führt zum Begriff des
Optimierungsproblems. Diese lassen sich nach Approximationsgüte
klassifizieren.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
10 / 236
Turingmaschinen
Kapitel 5
Turingmaschinen
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
11 / 236
Turingmaschinen
Vorüberlegung
Vorüberlegung
Idee: der Speicher eines Kellerautomaten, der nur eingeschränkt zugängliche
Keller, wird durch ein frei zugängliches, beidseitig potentiell unendliches
Turingband aus sog. Feldern ersetzt. Die darin enthaltenen einzelnen
Symbole aus einem Bandalphabet werden von einem Schreib- Lesekopf
gescannt und ggf. überschrieben; dieser kann sich dann auf ein benachbartes
Feld bewegen:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
12 / 236
Turingmaschinen
Vorüberlegung
Vorüberlegung
Idee: der Speicher eines Kellerautomaten, der nur eingeschränkt zugängliche
Keller, wird durch ein frei zugängliches, beidseitig potentiell unendliches
Turingband aus sog. Feldern ersetzt. Die darin enthaltenen einzelnen
Symbole aus einem Bandalphabet werden von einem Schreib- Lesekopf
gescannt und ggf. überschrieben; dieser kann sich dann auf ein benachbartes
Feld bewegen:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
12 / 236
Turingmaschinen
Vorüberlegung
Der Schreib-Lesekopf kann verschiedene Zustände einnehmen; dabei
werden wie gewöhnlich Anfangs- und Endzustände unterschieden.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
13 / 236
Turingmaschinen
Vorüberlegung
Der Schreib-Lesekopf kann verschiedene Zustände einnehmen; dabei
werden wie gewöhnlich Anfangs- und Endzustände unterschieden.
In jedem Schritt darf der Schreib-Lesekopf den Zustand ändern sowie
ein Symbol schreiben und/oder (je nach Vereinbarung) sich um
maximal ein Feld zur Seite bewegen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
13 / 236
Turingmaschinen
Vorüberlegung
Der Schreib-Lesekopf kann verschiedene Zustände einnehmen; dabei
werden wie gewöhnlich Anfangs- und Endzustände unterschieden.
In jedem Schritt darf der Schreib-Lesekopf den Zustand ändern sowie
ein Symbol schreiben und/oder (je nach Vereinbarung) sich um
maximal ein Feld zur Seite bewegen.
Zu jedem Zeitpunkt darf das Band nur endlich viele relevante Symbole
enthalten; alle übrigen Felder müssen “leer” sein.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
13 / 236
Turingmaschinen
Vorüberlegung
Der Schreib-Lesekopf kann verschiedene Zustände einnehmen; dabei
werden wie gewöhnlich Anfangs- und Endzustände unterschieden.
In jedem Schritt darf der Schreib-Lesekopf den Zustand ändern sowie
ein Symbol schreiben und/oder (je nach Vereinbarung) sich um
maximal ein Feld zur Seite bewegen.
Zu jedem Zeitpunkt darf das Band nur endlich viele relevante Symbole
enthalten; alle übrigen Felder müssen “leer” sein. Um dies anzuzeigen,
wird ein spezielles Bandsymbol # eingeführt.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
13 / 236
Turingmaschinen
Vorüberlegung
Der Schreib-Lesekopf kann verschiedene Zustände einnehmen; dabei
werden wie gewöhnlich Anfangs- und Endzustände unterschieden.
In jedem Schritt darf der Schreib-Lesekopf den Zustand ändern sowie
ein Symbol schreiben und/oder (je nach Vereinbarung) sich um
maximal ein Feld zur Seite bewegen.
Zu jedem Zeitpunkt darf das Band nur endlich viele relevante Symbole
enthalten; alle übrigen Felder müssen “leer” sein. Um dies anzuzeigen,
wird ein spezielles Bandsymbol # eingeführt.
Beim Berechnungsstart soll die Eingabe w ∈ Σ∗ zusammenhängend
auf dem Band stehen!
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
13 / 236
Turingmaschinen
Vorüberlegung
Der Schreib-Lesekopf kann verschiedene Zustände einnehmen; dabei
werden wie gewöhnlich Anfangs- und Endzustände unterschieden.
In jedem Schritt darf der Schreib-Lesekopf den Zustand ändern sowie
ein Symbol schreiben und/oder (je nach Vereinbarung) sich um
maximal ein Feld zur Seite bewegen.
Zu jedem Zeitpunkt darf das Band nur endlich viele relevante Symbole
enthalten; alle übrigen Felder müssen “leer” sein. Um dies anzuzeigen,
wird ein spezielles Bandsymbol # eingeführt.
Beim Berechnungsstart soll die Eingabe w ∈ Σ∗ zusammenhängend
auf dem Band stehen! Dies ist ein konzeptioneller Unterschied zu
Kellerautomaten und erst recht zu endlichen Automaten, bei denen die
Eingabe immer extern vorlag und in nicht näher spezifizierter Weise
von links nach rechts gelesen wurde
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
13 / 236
Turingmaschinen
Vorüberlegung
Der Schreib-Lesekopf kann verschiedene Zustände einnehmen; dabei
werden wie gewöhnlich Anfangs- und Endzustände unterschieden.
In jedem Schritt darf der Schreib-Lesekopf den Zustand ändern sowie
ein Symbol schreiben und/oder (je nach Vereinbarung) sich um
maximal ein Feld zur Seite bewegen.
Zu jedem Zeitpunkt darf das Band nur endlich viele relevante Symbole
enthalten; alle übrigen Felder müssen “leer” sein. Um dies anzuzeigen,
wird ein spezielles Bandsymbol # eingeführt.
Beim Berechnungsstart soll die Eingabe w ∈ Σ∗ zusammenhängend
auf dem Band stehen! Dies ist ein konzeptioneller Unterschied zu
Kellerautomaten und erst recht zu endlichen Automaten, bei denen die
Eingabe immer extern vorlag und in nicht näher spezifizierter Weise
von links nach rechts gelesen wurde (Stichwort: Online Algorithmus ).
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
13 / 236
Turingmaschinen
Vorüberlegung
Der Schreib-Lesekopf kann verschiedene Zustände einnehmen; dabei
werden wie gewöhnlich Anfangs- und Endzustände unterschieden.
In jedem Schritt darf der Schreib-Lesekopf den Zustand ändern sowie
ein Symbol schreiben und/oder (je nach Vereinbarung) sich um
maximal ein Feld zur Seite bewegen.
Zu jedem Zeitpunkt darf das Band nur endlich viele relevante Symbole
enthalten; alle übrigen Felder müssen “leer” sein. Um dies anzuzeigen,
wird ein spezielles Bandsymbol # eingeführt.
Beim Berechnungsstart soll die Eingabe w ∈ Σ∗ zusammenhängend
auf dem Band stehen! Dies ist ein konzeptioneller Unterschied zu
Kellerautomaten und erst recht zu endlichen Automaten, bei denen die
Eingabe immer extern vorlag und in nicht näher spezifizierter Weise
von links nach rechts gelesen wurde (Stichwort: Online Algorithmus ).
Bei Wikipedia findet man folgende
Jürgen Koslowski (TU-BS)
Visualisierungen
Theoretische Informatik 2
von Turingmaschinen.
SS 2015
13 / 236
Turingmaschinen
Vorüberlegung
Der Schreib-Lesekopf kann verschiedene Zustände einnehmen; dabei
werden wie gewöhnlich Anfangs- und Endzustände unterschieden.
In jedem Schritt darf der Schreib-Lesekopf den Zustand ändern sowie
ein Symbol schreiben und/oder (je nach Vereinbarung) sich um
maximal ein Feld zur Seite bewegen.
Zu jedem Zeitpunkt darf das Band nur endlich viele relevante Symbole
enthalten; alle übrigen Felder müssen “leer” sein. Um dies anzuzeigen,
wird ein spezielles Bandsymbol # eingeführt.
Beim Berechnungsstart soll die Eingabe w ∈ Σ∗ zusammenhängend
auf dem Band stehen! Dies ist ein konzeptioneller Unterschied zu
Kellerautomaten und erst recht zu endlichen Automaten, bei denen die
Eingabe immer extern vorlag und in nicht näher spezifizierter Weise
von links nach rechts gelesen wurde (Stichwort: Online Algorithmus ).
Bei Wikipedia findet man folgende Visualisierungen von Turingmaschinen.
In der ZEIT findet sich auch eine nette Beschreibung .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
13 / 236
Turingmaschinen
Vorüberlegung
Der Schreib-Lesekopf kann verschiedene Zustände einnehmen; dabei
werden wie gewöhnlich Anfangs- und Endzustände unterschieden.
In jedem Schritt darf der Schreib-Lesekopf den Zustand ändern sowie
ein Symbol schreiben und/oder (je nach Vereinbarung) sich um
maximal ein Feld zur Seite bewegen.
Zu jedem Zeitpunkt darf das Band nur endlich viele relevante Symbole
enthalten; alle übrigen Felder müssen “leer” sein. Um dies anzuzeigen,
wird ein spezielles Bandsymbol # eingeführt.
Beim Berechnungsstart soll die Eingabe w ∈ Σ∗ zusammenhängend
auf dem Band stehen! Dies ist ein konzeptioneller Unterschied zu
Kellerautomaten und erst recht zu endlichen Automaten, bei denen die
Eingabe immer extern vorlag und in nicht näher spezifizierter Weise
von links nach rechts gelesen wurde (Stichwort: Online Algorithmus ).
Bei Wikipedia findet man folgende Visualisierungen von Turingmaschinen.
In der ZEIT findet sich auch eine nette Beschreibung . Eine Suchanfrage nach
“Turing Maschine” und “LEGO” liefert ebenfalls interessante Ergebnisse.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
13 / 236
Turingmaschinen
Vorüberlegung
Turingmaschinen formal
Wir werden verschiedene Varianten von Turingmaschinen kennenlernen, die
sich letztendlich alle gegenseitig simulieren können.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
14 / 236
Turingmaschinen
Vorüberlegung
Turingmaschinen formal
Wir werden verschiedene Varianten von Turingmaschinen kennenlernen, die
sich letztendlich alle gegenseitig simulieren können. Zunächst beginnen wir
mit zwei Basismodellen, die sich hinsichtlich ihrer Geschwindigkeit unterscheiden: in der langsamen Variante kann der Kopf pro Schritt nur entweder
schreiben oder sich bewegen, während in der schnellen Variante beides in
einem Schritt erfolgen kann. Ansonsten sind beide Varianten äquivalent.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
14 / 236
Turingmaschinen
Vorüberlegung
Turingmaschinen formal
Wir werden verschiedene Varianten von Turingmaschinen kennenlernen, die
sich letztendlich alle gegenseitig simulieren können. Zunächst beginnen wir
mit zwei Basismodellen, die sich hinsichtlich ihrer Geschwindigkeit unterscheiden: in der langsamen Variante kann der Kopf pro Schritt nur entweder
schreiben oder sich bewegen, während in der schnellen Variante beides in
einem Schritt erfolgen kann. Ansonsten sind beide Varianten äquivalent.
Weiterhin kann man die Form des Bandes ändern (einseitig unendlich statt
beidseitig unendlich), ein mehrspuriges Band verwenden, oder gar die
Anzahl der Bänder und Köpfe simultan vergrößern.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
14 / 236
Turingmaschinen
Vorüberlegung
Turingmaschinen formal
Wir werden verschiedene Varianten von Turingmaschinen kennenlernen, die
sich letztendlich alle gegenseitig simulieren können. Zunächst beginnen wir
mit zwei Basismodellen, die sich hinsichtlich ihrer Geschwindigkeit unterscheiden: in der langsamen Variante kann der Kopf pro Schritt nur entweder
schreiben oder sich bewegen, während in der schnellen Variante beides in
einem Schritt erfolgen kann. Ansonsten sind beide Varianten äquivalent.
Weiterhin kann man die Form des Bandes ändern (einseitig unendlich statt
beidseitig unendlich), ein mehrspuriges Band verwenden, oder gar die
Anzahl der Bänder und Köpfe simultan vergrößern. Insbesondere TMs mit
mehreren Bändern und Köpfen erlauben eine recht einfachere Umsetzung
konkreter Algorithmen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
14 / 236
Turingmaschinen
Vorüberlegung
Definition (langsame/schnelle TM)
Eine Turing-Maschine (TM) M = hQ, B, Σ, δ, q0 , qF i über dem Alphabet
Σ besteht aus
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
15 / 236
Turingmaschinen
Vorüberlegung
Definition (langsame/schnelle TM)
Eine Turing-Maschine (TM) M = hQ, B, Σ, δ, q0 , qF i über dem Alphabet
Σ besteht aus
. einer Menge Q von Zuständen (des SL-Kopfes) mit ausgezeichneten
Anfangs- und Endzuständen q0 , qF ∈ Q ;
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
15 / 236
Turingmaschinen
Vorüberlegung
Definition (langsame/schnelle TM)
Eine Turing-Maschine (TM) M = hQ, B, Σ, δ, q0 , qF i über dem Alphabet
Σ besteht aus
. einer Menge Q von Zuständen (des SL-Kopfes) mit ausgezeichneten
Anfangs- und Endzuständen q0 , qF ∈ Q ;
. einem endlichen Bandalphabet B ⊇ Σ + {#} mit Blankzeichen # ;
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
15 / 236
Turingmaschinen
Vorüberlegung
Definition (langsame/schnelle TM)
Eine Turing-Maschine (TM) M = hQ, B, Σ, δ, q0 , qF i über dem Alphabet
Σ besteht aus
. einer Menge Q von Zuständen (des SL-Kopfes) mit ausgezeichneten
Anfangs- und Endzuständen q0 , qF ∈ Q ;
. einem endlichen Bandalphabet B ⊇ Σ + {#} mit Blankzeichen # ;
. einer endlichen Relation
(
(B + {L, R})
Q ×B δ Q ×
B × {N, R, L}
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
für eine langsame TM
für eine schnelle TM
SS 2015
15 / 236
Turingmaschinen
Vorüberlegung
Definition (langsame/schnelle TM)
Eine Turing-Maschine (TM) M = hQ, B, Σ, δ, q0 , qF i über dem Alphabet
Σ besteht aus
. einer Menge Q von Zuständen (des SL-Kopfes) mit ausgezeichneten
Anfangs- und Endzuständen q0 , qF ∈ Q ;
. einem endlichen Bandalphabet B ⊇ Σ + {#} mit Blankzeichen # ;
. einer endlichen Relation
(
(B + {L, R})
Q ×B δ Q ×
B × {N, R, L}
für eine langsame TM
für eine schnelle TM
M heißt deterministisch (dTM), falls δ eine partielle Funktion ist.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
15 / 236
Turingmaschinen
Vorüberlegung
Definition (langsame/schnelle TM)
Eine Turing-Maschine (TM) M = hQ, B, Σ, δ, q0 , qF i über dem Alphabet
Σ besteht aus
. einer Menge Q von Zuständen (des SL-Kopfes) mit ausgezeichneten
Anfangs- und Endzuständen q0 , qF ∈ Q ;
. einem endlichen Bandalphabet B ⊇ Σ + {#} mit Blankzeichen # ;
. einer endlichen Relation
(
(B + {L, R})
Q ×B δ Q ×
B × {N, R, L}
für eine langsame TM
für eine schnelle TM
M heißt deterministisch (dTM), falls δ eine partielle Funktion ist.
In älteren Skripten tragen solche TMs den Zusatz mit erweitertem
”
Bandalphabet“, da man ursprünglich die Bedingung B = Σ + {#} verlangt
hatte.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
15 / 236
Turingmaschinen
Vorüberlegung
Definition (langsame/schnelle TM)
Eine Turing-Maschine (TM) M = hQ, B, Σ, δ, q0 , qF i über dem Alphabet
Σ besteht aus
. einer Menge Q von Zuständen (des SL-Kopfes) mit ausgezeichneten
Anfangs- und Endzuständen q0 , qF ∈ Q ;
. einem endlichen Bandalphabet B ⊇ Σ + {#} mit Blankzeichen # ;
. einer endlichen Relation
(
(B + {L, R})
Q ×B δ Q ×
B × {N, R, L}
für eine langsame TM
für eine schnelle TM
M heißt deterministisch (dTM), falls δ eine partielle Funktion ist.
In älteren Skripten tragen solche TMs den Zusatz mit erweitertem
”
Bandalphabet“, da man ursprünglich die Bedingung B = Σ + {#} verlangt
hatte. Technisch mag das ausreichen, in der Praxis ist es aber ein sehr
ungeschickte Forderung, auf der wir hier nicht bestehen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
15 / 236
Turingmaschinen
Vorüberlegung
Interpretation von δ
Abhängig vom aktuellen Zustand und vom aktuellen Bandsymbol kann sich
der Zustand ändern, und
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
16 / 236
Turingmaschinen
Vorüberlegung
Interpretation von δ
Abhängig vom aktuellen Zustand und vom aktuellen Bandsymbol kann sich
der Zustand ändern, und
im langsamen Fall Q × B δ Q × (B + {L, R}) kann entweder das
Bandsymbol überschrieben, oder der Kopf eine Position zur Seite
bewegt werden;
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
16 / 236
Turingmaschinen
Vorüberlegung
Interpretation von δ
Abhängig vom aktuellen Zustand und vom aktuellen Bandsymbol kann sich
der Zustand ändern, und
im langsamen Fall Q × B δ Q × (B + {L, R}) kann entweder das
Bandsymbol überschrieben, oder der Kopf eine Position zur Seite
bewegt werden;
im schnellen Fall Q × B δ Q × B × {N, L, R} können das Überschreiben und die Bewegung im selben Schritt stattfinden; N
ermöglicht das Verharren des Kopfes auf demselben Feld.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
16 / 236
Turingmaschinen
Vorüberlegung
Interpretation von δ
Abhängig vom aktuellen Zustand und vom aktuellen Bandsymbol kann sich
der Zustand ändern, und
im langsamen Fall Q × B δ Q × (B + {L, R}) kann entweder das
Bandsymbol überschrieben, oder der Kopf eine Position zur Seite
bewegt werden;
im schnellen Fall Q × B δ Q × B × {N, L, R} können das Überschreiben und die Bewegung im selben Schritt stattfinden; N
ermöglicht das Verharren des Kopfes auf demselben Feld.
Offenbar kann man jeden Schritt einer schnellen Maschine mit höchstens
zwei Schritten einer langsamen Maschine simulieren. Umgekehrt ist die
Simulation noch einfacher (vergl. HA).
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
16 / 236
Turingmaschinen
Vorüberlegung
Bemerkungen
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
17 / 236
Turingmaschinen
Vorüberlegung
Bemerkungen
. Unsere TMs sind á priori nichtdeterministisch, haben aber nur je einen
Anfangs- und Endzustand.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
17 / 236
Turingmaschinen
Vorüberlegung
Bemerkungen
. Unsere TMs sind á priori nichtdeterministisch, haben aber nur je einen
Anfangs- und Endzustand.
Der Übergang von TMs mit einer Menge I ⊆ Q von Anfangszuständen zu solchen mit einem Anfangsstand q0 ist simpel, erzeugt
aber Nichtdeterminismus.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
17 / 236
Turingmaschinen
Vorüberlegung
Bemerkungen
. Unsere TMs sind á priori nichtdeterministisch, haben aber nur je einen
Anfangs- und Endzustand.
Der Übergang von TMs mit einer Menge I ⊆ Q von Anfangszuständen zu solchen mit einem Anfangsstand q0 ist simpel, erzeugt
aber Nichtdeterminismus. Da wir später die Äquivalenz deterministischer und nichtdeterministischer TMs zeigen, können wir uns gleich auf
einzelne Anfangszustände beschränken.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
17 / 236
Turingmaschinen
Vorüberlegung
Bemerkungen
. Unsere TMs sind á priori nichtdeterministisch, haben aber nur je einen
Anfangs- und Endzustand.
Der Übergang von TMs mit einer Menge I ⊆ Q von Anfangszuständen zu solchen mit einem Anfangsstand q0 ist simpel, erzeugt
aber Nichtdeterminismus. Da wir später die Äquivalenz deterministischer und nichtdeterministischer TMs zeigen, können wir uns gleich auf
einzelne Anfangszustände beschränken.
Eine Menge an Endzuständen böte auch keinen echten Vorteil.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
17 / 236
Turingmaschinen
Vorüberlegung
Bemerkungen
. Unsere TMs sind á priori nichtdeterministisch, haben aber nur je einen
Anfangs- und Endzustand.
Der Übergang von TMs mit einer Menge I ⊆ Q von Anfangszuständen zu solchen mit einem Anfangsstand q0 ist simpel, erzeugt
aber Nichtdeterminismus. Da wir später die Äquivalenz deterministischer und nichtdeterministischer TMs zeigen, können wir uns gleich auf
einzelne Anfangszustände beschränken.
Eine Menge an Endzuständen böte auch keinen echten Vorteil.
. Neben Σ muß das Bandalphabet nur # enthalten. Weitere Hilfssymbole, wie z.B. Randbegrenzer, Trennsymbole oder spezielle
Löschsymbole sind optional, aber nützlich.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
17 / 236
Turingmaschinen
Vorüberlegung
Bemerkungen
. Unsere TMs sind á priori nichtdeterministisch, haben aber nur je einen
Anfangs- und Endzustand.
Der Übergang von TMs mit einer Menge I ⊆ Q von Anfangszuständen zu solchen mit einem Anfangsstand q0 ist simpel, erzeugt
aber Nichtdeterminismus. Da wir später die Äquivalenz deterministischer und nichtdeterministischer TMs zeigen, können wir uns gleich auf
einzelne Anfangszustände beschränken.
Eine Menge an Endzuständen böte auch keinen echten Vorteil.
. Neben Σ muß das Bandalphabet nur # enthalten. Weitere Hilfssymbole, wie z.B. Randbegrenzer, Trennsymbole oder spezielle
Löschsymbole sind optional, aber nützlich.
Ohne solche auszukommen (älteres Skript) erfordert einemTaschenspielertrick (HA), daher erlauben wir hier solche Symbole ohne
Einschränkung.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
17 / 236
Turingmaschinen
Vorüberlegung
Vergleich mit Kellerautomaten
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
18 / 236
Turingmaschinen
Vorüberlegung
Vergleich mit Kellerautomaten
. Bei EAs und KAs sorgt die endliche Zahl der Übergänge dafür, dass
nur endlich viele Symbole des Alphabets eine Rolle spielen; für
klassische TMs ist Σ als Teilmenge von B automatisch endlich.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
18 / 236
Turingmaschinen
Vorüberlegung
Vergleich mit Kellerautomaten
. Bei EAs und KAs sorgt die endliche Zahl der Übergänge dafür, dass
nur endlich viele Symbole des Alphabets eine Rolle spielen; für
klassische TMs ist Σ als Teilmenge von B automatisch endlich.
. Um klassische 1-Band TMs konzeptionell kompatibel mit KAs zu
machen, benötigen sie einen Präprozessor mit einem neuen Anfangszustand qr und Übergängen hqr , #i a hqr , ha, Rii, a ∈ Σ , sowie
hqr , #i ε hq0 , h#, Lii (im schnellen Fall).
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
18 / 236
Turingmaschinen
Vorüberlegung
Vergleich mit Kellerautomaten
. Bei EAs und KAs sorgt die endliche Zahl der Übergänge dafür, dass
nur endlich viele Symbole des Alphabets eine Rolle spielen; für
klassische TMs ist Σ als Teilmenge von B automatisch endlich.
. Um klassische 1-Band TMs konzeptionell kompatibel mit KAs zu
machen, benötigen sie einen Präprozessor mit einem neuen Anfangszustand qr und Übergängen hqr , #i a hqr , ha, Rii, a ∈ Σ , sowie
hqr , #i ε hq0 , h#, Lii (im schnellen Fall). Determinismus bleibt nur
dann erhalten, wenn der spontane Übergang von qr nach q0 erst
nach Abarbeitung der Eingabe erfolgen kann; und das erfordert den
Supply-driven Modus! So kommt die gesamte Eingabe von links nach
rechts auf das Band, bevor in q0 die eigentliche Berechung aus
spontanen Übergängen am rechten Rand beginnt.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
18 / 236
Turingmaschinen
Vorüberlegung
Vergleich mit Kellerautomaten
. Bei EAs und KAs sorgt die endliche Zahl der Übergänge dafür, dass
nur endlich viele Symbole des Alphabets eine Rolle spielen; für
klassische TMs ist Σ als Teilmenge von B automatisch endlich.
. Um klassische 1-Band TMs konzeptionell kompatibel mit KAs zu
machen, benötigen sie einen Präprozessor mit einem neuen Anfangszustand qr und Übergängen hqr , #i a hqr , ha, Rii, a ∈ Σ , sowie
hqr , #i ε hq0 , h#, Lii (im schnellen Fall). Determinismus bleibt nur
dann erhalten, wenn der spontane Übergang von qr nach q0 erst
nach Abarbeitung der Eingabe erfolgen kann; und das erfordert den
Supply-driven Modus! So kommt die gesamte Eingabe von links nach
rechts auf das Band, bevor in q0 die eigentliche Berechung aus
spontanen Übergängen am rechten Rand beginnt.
Die Endlichkeit von B und Σ wäre nun unerheblich, solange nur die
Anzahl der Übergänge endlich ist. Die Forderung Σ ⊆ B − {#}
könnte evtl. auch entfallen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
18 / 236
Turingmaschinen
Vorüberlegung
Vergleich mit Kellerautomaten
. Bei EAs und KAs sorgt die endliche Zahl der Übergänge dafür, dass
nur endlich viele Symbole des Alphabets eine Rolle spielen; für
klassische TMs ist Σ als Teilmenge von B automatisch endlich.
. Um klassische 1-Band TMs konzeptionell kompatibel mit KAs zu
machen, benötigen sie einen Präprozessor mit einem neuen Anfangszustand qr und Übergängen hqr , #i a hqr , ha, Rii, a ∈ Σ , sowie
hqr , #i ε hq0 , h#, Lii (im schnellen Fall). Determinismus bleibt nur
dann erhalten, wenn der spontane Übergang von qr nach q0 erst
nach Abarbeitung der Eingabe erfolgen kann; und das erfordert den
Supply-driven Modus! So kommt die gesamte Eingabe von links nach
rechts auf das Band, bevor in q0 die eigentliche Berechung aus
spontanen Übergängen am rechten Rand beginnt.
Die Endlichkeit von B und Σ wäre nun unerheblich, solange nur die
Anzahl der Übergänge endlich ist. Die Forderung Σ ⊆ B − {#}
könnte evtl. auch entfallen. Dies wird hier aber nicht weiterverfolgt.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
18 / 236
Turingmaschinen
Vorüberlegung
Konfigurationen
Eine TM-Konfiguration soll den aktuellen Zustand, den nicht- trivialen
Bandinhalt und die Position des Kopfes bestimmen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
19 / 236
Turingmaschinen
Vorüberlegung
Konfigurationen
Eine TM-Konfiguration soll den aktuellen Zustand, den nicht- trivialen
Bandinhalt und die Position des Kopfes bestimmen. Die Konvention,
Eingaben zunächst zu internalisieren, erübrigt die Buchführung über den
noch zu bearbeitenden Teil der Eingabe.
Definition (vorläufig)
Eine Konfiguration einer TM versteht man ein Paar hq, ωi ∈ Q × B+ ,
wobei genau ein Symbol des nichttrivialen Bandinhalts ω durch
Unterstreichung markiert ist, was die Kopfposition festlegt.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
19 / 236
Turingmaschinen
Vorüberlegung
Konfigurationen
Eine TM-Konfiguration soll den aktuellen Zustand, den nicht- trivialen
Bandinhalt und die Position des Kopfes bestimmen. Die Konvention,
Eingaben zunächst zu internalisieren, erübrigt die Buchführung über den
noch zu bearbeitenden Teil der Eingabe.
Definition (vorläufig)
Eine Konfiguration einer TM versteht man ein Paar hq, ωi ∈ Q × B+ ,
wobei genau ein Symbol des nichttrivialen Bandinhalts ω durch
Unterstreichung markiert ist, was die Kopfposition festlegt.
ω soll den Bereich des Bandes minimal überdecken, der die Kopfposition
und alle von # verschiedenen Symbole umfaßt, darf also keine führenden
oder abschließenden Blankzeichen # haben, sofern es sich nicht um den
Inhalt der Kopfposition handelt.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
19 / 236
Turingmaschinen
Vorüberlegung
Konfigurationen
Eine TM-Konfiguration soll den aktuellen Zustand, den nicht- trivialen
Bandinhalt und die Position des Kopfes bestimmen. Die Konvention,
Eingaben zunächst zu internalisieren, erübrigt die Buchführung über den
noch zu bearbeitenden Teil der Eingabe.
Definition (vorläufig)
Eine Konfiguration einer TM versteht man ein Paar hq, ωi ∈ Q × B+ ,
wobei genau ein Symbol des nichttrivialen Bandinhalts ω durch
Unterstreichung markiert ist, was die Kopfposition festlegt.
ω soll den Bereich des Bandes minimal überdecken, der die Kopfposition
und alle von # verschiedenen Symbole umfaßt, darf also keine führenden
oder abschließenden Blankzeichen # haben, sofern es sich nicht um den
Inhalt der Kopfposition handelt. Genauer:
ω ∈ ((B − {#}) × B∗ + {ε}) × B × (B∗ × (B − {#}) + {ε}))
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
19 / 236
Turingmaschinen
Vorüberlegung
Definition (Fortsetzung)
Konfigurationen der Form hq0 , s0 . . . sn−2 sn−1 i mit n > 0 bzw. hq0 , #i
heißen Initialkonfigurationen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
20 / 236
Turingmaschinen
Vorüberlegung
Definition (Fortsetzung)
Konfigurationen der Form hq0 , s0 . . . sn−2 sn−1 i mit n > 0 bzw. hq0 , #i
heißen Initialkonfigurationen. Ist für hq, ωl sωr i die Menge hq, siδ leer,
sprechen wir von einer Haltekonfiguration.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
20 / 236
Turingmaschinen
Vorüberlegung
Definition (Fortsetzung)
Konfigurationen der Form hq0 , s0 . . . sn−2 sn−1 i mit n > 0 bzw. hq0 , #i
heißen Initialkonfigurationen. Ist für hq, ωl sωr i die Menge hq, siδ leer,
sprechen wir von einer Haltekonfiguration. Im Fall von hq, siδ 6= ∅ können
sich bei einer Folgekonfiguration ( ` ) Zustand, Inhalt des aktuellen Feldes
und neue Kopfposition gemäß den Elementen von hq, siδ ändern.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
20 / 236
Turingmaschinen
Vorüberlegung
Definition (Fortsetzung)
Konfigurationen der Form hq0 , s0 . . . sn−2 sn−1 i mit n > 0 bzw. hq0 , #i
heißen Initialkonfigurationen. Ist für hq, ωl sωr i die Menge hq, siδ leer,
sprechen wir von einer Haltekonfiguration. Im Fall von hq, siδ 6= ∅ können
sich bei einer Folgekonfiguration ( ` ) Zustand, Inhalt des aktuellen Feldes
und neue Kopfposition gemäß den Elementen von hq, siδ ändern.
Unter einer Berechnung mit Eingabe w ∈ Σ∗ versteht man eine endliche
oder unendliche Konfigurationenfolge Ki ` Ki+1 , wobei K0 eine
Initialkonfiguration mit Eingabe w , und im endlichen Fall die letzte
Konfiguration eine Haltekonfiguration ist.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
20 / 236
Turingmaschinen
Vorüberlegung
Definition (Fortsetzung)
Konfigurationen der Form hq0 , s0 . . . sn−2 sn−1 i mit n > 0 bzw. hq0 , #i
heißen Initialkonfigurationen. Ist für hq, ωl sωr i die Menge hq, siδ leer,
sprechen wir von einer Haltekonfiguration. Im Fall von hq, siδ 6= ∅ können
sich bei einer Folgekonfiguration ( ` ) Zustand, Inhalt des aktuellen Feldes
und neue Kopfposition gemäß den Elementen von hq, siδ ändern.
Unter einer Berechnung mit Eingabe w ∈ Σ∗ versteht man eine endliche
oder unendliche Konfigurationenfolge Ki ` Ki+1 , wobei K0 eine
Initialkonfiguration mit Eingabe w , und im endlichen Fall die letzte
Konfiguration eine Haltekonfiguration ist.
Eine Berechnung akzeptiert ihre Eingabe genau dann, wenn sie in einer
Haltekonfiguration mit Zustand qF endet.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
20 / 236
Turingmaschinen
Vorüberlegung
Definition (Fortsetzung)
Konfigurationen der Form hq0 , s0 . . . sn−2 sn−1 i mit n > 0 bzw. hq0 , #i
heißen Initialkonfigurationen. Ist für hq, ωl sωr i die Menge hq, siδ leer,
sprechen wir von einer Haltekonfiguration. Im Fall von hq, siδ 6= ∅ können
sich bei einer Folgekonfiguration ( ` ) Zustand, Inhalt des aktuellen Feldes
und neue Kopfposition gemäß den Elementen von hq, siδ ändern.
Unter einer Berechnung mit Eingabe w ∈ Σ∗ versteht man eine endliche
oder unendliche Konfigurationenfolge Ki ` Ki+1 , wobei K0 eine
Initialkonfiguration mit Eingabe w , und im endlichen Fall die letzte
Konfiguration eine Haltekonfiguration ist.
Eine Berechnung akzeptiert ihre Eingabe genau dann, wenn sie in einer
Haltekonfiguration mit Zustand qF endet.
Die spezielle Form der Initialkonfiguration resultiert aus einem Linksschritt
nach Übertragung der Eingabe auf des Band von links nach rechts.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
20 / 236
Turingmaschinen
Vorüberlegung
Darstellung von Turingmaschinen
Wir entwickeln die graphische Darstellung von Kellerautomaten fort.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
21 / 236
Turingmaschinen
Vorüberlegung
Darstellung von Turingmaschinen
Wir entwickeln die graphische Darstellung von Kellerautomaten fort. Falls
b ∈ B so schreiben wir
q
b||ϕ
p
anstelle von
hhq, bi, hp, ϕii ∈ δ
wobei ϕ ∈ B + {L, R} oder ϕ ∈ B × {N, L, R} gilt.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
21 / 236
Turingmaschinen
Vorüberlegung
Darstellung von Turingmaschinen
Wir entwickeln die graphische Darstellung von Kellerautomaten fort. Falls
b ∈ B so schreiben wir
q
b||ϕ
p
anstelle von
hhq, bi, hp, ϕii ∈ δ
wobei ϕ ∈ B + {L, R} oder ϕ ∈ B × {N, L, R} gilt. Der (äußere) Anfangsund Endzustand wird markiert wie zuvor.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
21 / 236
Turingmaschinen
Vorüberlegung
Darstellung von Turingmaschinen
Wir entwickeln die graphische Darstellung von Kellerautomaten fort. Falls
b ∈ B so schreiben wir
q
b||ϕ
p
anstelle von
hhq, bi, hp, ϕii ∈ δ
wobei ϕ ∈ B + {L, R} oder ϕ ∈ B × {N, L, R} gilt. Der (äußere) Anfangsund Endzustand wird markiert wie zuvor.
Die Einschränkungen bzgl. der Komponierbarkeit solcher Übergänge bei
Kellerautomaten gilt sinngemäß auch für Turingmaschinen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
21 / 236
Turingmaschinen
Vorüberlegung
Darstellung von Turingmaschinen
Wir entwickeln die graphische Darstellung von Kellerautomaten fort. Falls
b ∈ B so schreiben wir
q
b||ϕ
p
anstelle von
hhq, bi, hp, ϕii ∈ δ
wobei ϕ ∈ B + {L, R} oder ϕ ∈ B × {N, L, R} gilt. Der (äußere) Anfangsund Endzustand wird markiert wie zuvor.
Die Einschränkungen bzgl. der Komponierbarkeit solcher Übergänge bei
Kellerautomaten gilt sinngemäß auch für Turingmaschinen.
Satz
Jede Sprache, die von einer langsamen TM akzeptiert wird, wird auch von
einer schnellen TM akzeptiert, und umgekehrt.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
21 / 236
Turingmaschinen
Vorüberlegung
Darstellung von Turingmaschinen
Wir entwickeln die graphische Darstellung von Kellerautomaten fort. Falls
b ∈ B so schreiben wir
q
b||ϕ
p
anstelle von
hhq, bi, hp, ϕii ∈ δ
wobei ϕ ∈ B + {L, R} oder ϕ ∈ B × {N, L, R} gilt. Der (äußere) Anfangsund Endzustand wird markiert wie zuvor.
Die Einschränkungen bzgl. der Komponierbarkeit solcher Übergänge bei
Kellerautomaten gilt sinngemäß auch für Turingmaschinen.
Satz
Jede Sprache, die von einer langsamen TM akzeptiert wird, wird auch von
einer schnellen TM akzeptiert, und umgekehrt.
Beweis.
H.A.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
21 / 236
Turingmaschinen
Vorüberlegung
Beispiel ( L = { an b n c n : n ∈ N } mittels schneller TM)
Setze B = {a, b, c, B, #} , wobei B dazu dient anzuzeigen, dass b bearbeitet wurde.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
22 / 236
Turingmaschinen
Vorüberlegung
Beispiel ( L = { an b n c n : n ∈ N } mittels schneller TM)
Setze B = {a, b, c, B, #} , wobei B dazu dient anzuzeigen, dass b bearbeitet wurde. Start mit qc am rechten Rand, auf # bei leerer Eingabe.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
22 / 236
Turingmaschinen
Vorüberlegung
Beispiel ( L = { an b n c n : n ∈ N } mittels schneller TM)
Setze B = {a, b, c, B, #} , wobei B dazu dient anzuzeigen, dass b bearbeitet wurde. Start mit qc am rechten Rand, auf # bei leerer Eingabe.
Idee: Pro Durchlauf vom rechten zum linken Rand das erste c von rechts
löschen, das erste b von rechts mit B überschreiben und das letzte a von
rechts löschen; dann erfolgt ein entsprechender Durchlauf vom linken zum
rechten Rand.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
22 / 236
Turingmaschinen
Vorüberlegung
Beispiel ( L = { an b n c n : n ∈ N } mittels schneller TM)
Setze B = {a, b, c, B, #} , wobei B dazu dient anzuzeigen, dass b bearbeitet wurde. Start mit qc am rechten Rand, auf # bei leerer Eingabe.
Idee: Pro Durchlauf vom rechten zum linken Rand das erste c von rechts
löschen, das erste b von rechts mit B überschreiben und das letzte a von
rechts löschen; dann erfolgt ein entsprechender Durchlauf vom linken zum
rechten Rand. Akzeptanz, wenn B n übrigbleibt.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
22 / 236
Turingmaschinen
Vorüberlegung
Beispiel ( L = { an b n c n : n ∈ N } mittels schneller TM)
Setze B = {a, b, c, B, #} , wobei B dazu dient anzuzeigen, dass b bearbeitet wurde. Start mit qc am rechten Rand, auf # bei leerer Eingabe.
Idee: Pro Durchlauf vom rechten zum linken Rand das erste c von rechts
löschen, das erste b von rechts mit B überschreiben und das letzte a von
rechts löschen; dann erfolgt ein entsprechender Durchlauf vom linken zum
rechten Rand. Akzeptanz, wenn B n übrigbleibt. Beachte die Symmetrie!
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
22 / 236
Turingmaschinen
Vorüberlegung
Beispiel ( L = { an b n c n : n ∈ N } mittels schneller TM)
Setze B = {a, b, c, B, #} , wobei B dazu dient anzuzeigen, dass b bearbeitet wurde. Start mit qc am rechten Rand, auf # bei leerer Eingabe.
Idee: Pro Durchlauf vom rechten zum linken Rand das erste c von rechts
löschen, das erste b von rechts mit B überschreiben und das letzte a von
rechts löschen; dann erfolgt ein entsprechender Durchlauf vom linken zum
rechten Rand. Akzeptanz, wenn B n übrigbleibt. Beachte die Symmetrie!
qc1
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
22 / 236
Turingmaschinen
Vorüberlegung
Beispiel ( L = { an b n c n : n ∈ N } mittels schneller TM)
Setze B = {a, b, c, B, #} , wobei B dazu dient anzuzeigen, dass b bearbeitet wurde. Start mit qc am rechten Rand, auf # bei leerer Eingabe.
Idee: Pro Durchlauf vom rechten zum linken Rand das erste c von rechts
löschen, das erste b von rechts mit B überschreiben und das letzte a von
rechts löschen; dann erfolgt ein entsprechender Durchlauf vom linken zum
rechten Rand. Akzeptanz, wenn B n übrigbleibt. Beachte die Symmetrie!
qc1
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
B||hB, Li
SS 2015
22 / 236
Turingmaschinen
Vorüberlegung
Beispiel ( L = { an b n c n : n ∈ N } mittels schneller TM)
Setze B = {a, b, c, B, #} , wobei B dazu dient anzuzeigen, dass b bearbeitet wurde. Start mit qc am rechten Rand, auf # bei leerer Eingabe.
Idee: Pro Durchlauf vom rechten zum linken Rand das erste c von rechts
löschen, das erste b von rechts mit B überschreiben und das letzte a von
rechts löschen; dann erfolgt ein entsprechender Durchlauf vom linken zum
rechten Rand. Akzeptanz, wenn B n übrigbleibt. Beachte die Symmetrie!
qc1
qF
Jürgen Koslowski (TU-BS)
B||hB, Li
#||h#, Ni
Theoretische Informatik 2
SS 2015
22 / 236
Turingmaschinen
Vorüberlegung
Beispiel ( L = { an b n c n : n ∈ N } mittels schneller TM)
Setze B = {a, b, c, B, #} , wobei B dazu dient anzuzeigen, dass b bearbeitet wurde. Start mit qc am rechten Rand, auf # bei leerer Eingabe.
Idee: Pro Durchlauf vom rechten zum linken Rand das erste c von rechts
löschen, das erste b von rechts mit B überschreiben und das letzte a von
rechts löschen; dann erfolgt ein entsprechender Durchlauf vom linken zum
rechten Rand. Akzeptanz, wenn B n übrigbleibt. Beachte die Symmetrie!
qb←
c||h#, Li
qF
Jürgen Koslowski (TU-BS)
qc1
B||hB, Li
#||h#, Ni
Theoretische Informatik 2
SS 2015
22 / 236
Turingmaschinen
Vorüberlegung
Beispiel ( L = { an b n c n : n ∈ N } mittels schneller TM)
Setze B = {a, b, c, B, #} , wobei B dazu dient anzuzeigen, dass b bearbeitet wurde. Start mit qc am rechten Rand, auf # bei leerer Eingabe.
Idee: Pro Durchlauf vom rechten zum linken Rand das erste c von rechts
löschen, das erste b von rechts mit B überschreiben und das letzte a von
rechts löschen; dann erfolgt ein entsprechender Durchlauf vom linken zum
rechten Rand. Akzeptanz, wenn B n übrigbleibt. Beachte die Symmetrie!
qb←
B||hB, Li, c||hc, Li
c||h#, Li
qF
Jürgen Koslowski (TU-BS)
qc1
B||hB, Li
#||h#, Ni
Theoretische Informatik 2
SS 2015
22 / 236
Turingmaschinen
Vorüberlegung
Beispiel ( L = { an b n c n : n ∈ N } mittels schneller TM)
Setze B = {a, b, c, B, #} , wobei B dazu dient anzuzeigen, dass b bearbeitet wurde. Start mit qc am rechten Rand, auf # bei leerer Eingabe.
Idee: Pro Durchlauf vom rechten zum linken Rand das erste c von rechts
löschen, das erste b von rechts mit B überschreiben und das letzte a von
rechts löschen; dann erfolgt ein entsprechender Durchlauf vom linken zum
rechten Rand. Akzeptanz, wenn B n übrigbleibt. Beachte die Symmetrie!
q←
b||hB, Li
qb←
B||hB, Li, c||hc, Li
c||h#, Li
qF
Jürgen Koslowski (TU-BS)
qc1
B||hB, Li
#||h#, Ni
Theoretische Informatik 2
SS 2015
22 / 236
Turingmaschinen
Vorüberlegung
Beispiel ( L = { an b n c n : n ∈ N } mittels schneller TM)
Setze B = {a, b, c, B, #} , wobei B dazu dient anzuzeigen, dass b bearbeitet wurde. Start mit qc am rechten Rand, auf # bei leerer Eingabe.
Idee: Pro Durchlauf vom rechten zum linken Rand das erste c von rechts
löschen, das erste b von rechts mit B überschreiben und das letzte a von
rechts löschen; dann erfolgt ein entsprechender Durchlauf vom linken zum
rechten Rand. Akzeptanz, wenn B n übrigbleibt. Beachte die Symmetrie!
a||ha, Li, B||hB, Li, b||hb, Li
q←
b||hB, Li
qb←
B||hB, Li, c||hc, Li
c||h#, Li
qF
Jürgen Koslowski (TU-BS)
qc1
B||hB, Li
#||h#, Ni
Theoretische Informatik 2
SS 2015
22 / 236
Turingmaschinen
Vorüberlegung
Beispiel ( L = { an b n c n : n ∈ N } mittels schneller TM)
Setze B = {a, b, c, B, #} , wobei B dazu dient anzuzeigen, dass b bearbeitet wurde. Start mit qc am rechten Rand, auf # bei leerer Eingabe.
Idee: Pro Durchlauf vom rechten zum linken Rand das erste c von rechts
löschen, das erste b von rechts mit B überschreiben und das letzte a von
rechts löschen; dann erfolgt ein entsprechender Durchlauf vom linken zum
rechten Rand. Akzeptanz, wenn B n übrigbleibt. Beachte die Symmetrie!
a||ha, Li, B||hB, Li, b||hb, Li
qa1
b||hB, Li
q←
#||h#, Ri
B||hB, Li, c||hc, Li
c||h#, Li
qF
Jürgen Koslowski (TU-BS)
qb←
qc1
B||hB, Li
#||h#, Ni
Theoretische Informatik 2
SS 2015
22 / 236
Turingmaschinen
Vorüberlegung
Beispiel ( L = { an b n c n : n ∈ N } mittels schneller TM)
Setze B = {a, b, c, B, #} , wobei B dazu dient anzuzeigen, dass b bearbeitet wurde. Start mit qc am rechten Rand, auf # bei leerer Eingabe.
Idee: Pro Durchlauf vom rechten zum linken Rand das erste c von rechts
löschen, das erste b von rechts mit B überschreiben und das letzte a von
rechts löschen; dann erfolgt ein entsprechender Durchlauf vom linken zum
rechten Rand. Akzeptanz, wenn B n übrigbleibt. Beachte die Symmetrie!
a||ha, Li, B||hB, Li, b||hb, Li
qa1
a||h#, Ri
b||hB, Li
q←
#||h#, Ri
qb←
B||hB, Li, c||hc, Li
c||h#, Li
qF
qc1
B||hB, Li
#||h#, Ni
qa2
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
22 / 236
Turingmaschinen
Vorüberlegung
Beispiel ( L = { an b n c n : n ∈ N } mittels schneller TM)
Setze B = {a, b, c, B, #} , wobei B dazu dient anzuzeigen, dass b bearbeitet wurde. Start mit qc am rechten Rand, auf # bei leerer Eingabe.
Idee: Pro Durchlauf vom rechten zum linken Rand das erste c von rechts
löschen, das erste b von rechts mit B überschreiben und das letzte a von
rechts löschen; dann erfolgt ein entsprechender Durchlauf vom linken zum
rechten Rand. Akzeptanz, wenn B n übrigbleibt. Beachte die Symmetrie!
a||ha, Li, B||hB, Li, b||hb, Li
qa1
a||h#, Ri
B||hB, Ri
b||hB, Li
q←
#||h#, Ri
qb←
B||hB, Li, c||hc, Li
c||h#, Li
qF
qc1
B||hB, Li
#||h#, Ni
qa2
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
22 / 236
Turingmaschinen
Vorüberlegung
Beispiel ( L = { an b n c n : n ∈ N } mittels schneller TM)
Setze B = {a, b, c, B, #} , wobei B dazu dient anzuzeigen, dass b bearbeitet wurde. Start mit qc am rechten Rand, auf # bei leerer Eingabe.
Idee: Pro Durchlauf vom rechten zum linken Rand das erste c von rechts
löschen, das erste b von rechts mit B überschreiben und das letzte a von
rechts löschen; dann erfolgt ein entsprechender Durchlauf vom linken zum
rechten Rand. Akzeptanz, wenn B n übrigbleibt. Beachte die Symmetrie!
a||ha, Li, B||hB, Li, b||hb, Li
qa1
a||h#, Ri
B||hB, Ri
b||hB, Li
q←
#||h#, Ri
#||h#, Ni
qb←
B||hB, Li, c||hc, Li
c||h#, Li
qF
qc1
B||hB, Li
#||h#, Ni
qa2
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
22 / 236
Turingmaschinen
Vorüberlegung
Beispiel ( L = { an b n c n : n ∈ N } mittels schneller TM)
Setze B = {a, b, c, B, #} , wobei B dazu dient anzuzeigen, dass b bearbeitet wurde. Start mit qc am rechten Rand, auf # bei leerer Eingabe.
Idee: Pro Durchlauf vom rechten zum linken Rand das erste c von rechts
löschen, das erste b von rechts mit B überschreiben und das letzte a von
rechts löschen; dann erfolgt ein entsprechender Durchlauf vom linken zum
rechten Rand. Akzeptanz, wenn B n übrigbleibt. Beachte die Symmetrie!
a||ha, Li, B||hB, Li, b||hb, Li
qa1
a||h#, Ri
B||hB, Ri
qa2
b||hB, Li
q←
#||h#, Ri
#||h#, Ni
qb←
B||hB, Li, c||hc, Li
c||h#, Li
qF
qc1
B||hB, Li
#||h#, Ni
a||h#, Ri
q→b
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
22 / 236
Turingmaschinen
Vorüberlegung
Beispiel ( L = { an b n c n : n ∈ N } mittels schneller TM)
Setze B = {a, b, c, B, #} , wobei B dazu dient anzuzeigen, dass b bearbeitet wurde. Start mit qc am rechten Rand, auf # bei leerer Eingabe.
Idee: Pro Durchlauf vom rechten zum linken Rand das erste c von rechts
löschen, das erste b von rechts mit B überschreiben und das letzte a von
rechts löschen; dann erfolgt ein entsprechender Durchlauf vom linken zum
rechten Rand. Akzeptanz, wenn B n übrigbleibt. Beachte die Symmetrie!
a||ha, Li, B||hB, Li, b||hb, Li
qa1
a||h#, Ri
B||hB, Ri
qa2
#||h#, Ri
#||h#, Ni
qb←
B||hB, Li, c||hc, Li
c||h#, Li
qF
qc1
B||hB, Li
#||h#, Ni
a||h#, Ri
a||ha, Ri, B||hB, Ri
Jürgen Koslowski (TU-BS)
b||hB, Li
q←
q→b
Theoretische Informatik 2
SS 2015
22 / 236
Turingmaschinen
Vorüberlegung
Beispiel ( L = { an b n c n : n ∈ N } mittels schneller TM)
Setze B = {a, b, c, B, #} , wobei B dazu dient anzuzeigen, dass b bearbeitet wurde. Start mit qc am rechten Rand, auf # bei leerer Eingabe.
Idee: Pro Durchlauf vom rechten zum linken Rand das erste c von rechts
löschen, das erste b von rechts mit B überschreiben und das letzte a von
rechts löschen; dann erfolgt ein entsprechender Durchlauf vom linken zum
rechten Rand. Akzeptanz, wenn B n übrigbleibt. Beachte die Symmetrie!
a||ha, Li, B||hB, Li, b||hb, Li
qa1
a||h#, Ri
B||hB, Ri
qa2
#||h#, Ri
#||h#, Ni
qb←
B||hB, Li, c||hc, Li
c||h#, Li
qF
qc1
B||hB, Li
#||h#, Ni
a||h#, Ri
a||ha, Ri, B||hB, Ri
Jürgen Koslowski (TU-BS)
b||hB, Li
q←
q→b
q→
b||hB, Ri
Theoretische Informatik 2
SS 2015
22 / 236
Turingmaschinen
Vorüberlegung
Beispiel ( L = { an b n c n : n ∈ N } mittels schneller TM)
Setze B = {a, b, c, B, #} , wobei B dazu dient anzuzeigen, dass b bearbeitet wurde. Start mit qc am rechten Rand, auf # bei leerer Eingabe.
Idee: Pro Durchlauf vom rechten zum linken Rand das erste c von rechts
löschen, das erste b von rechts mit B überschreiben und das letzte a von
rechts löschen; dann erfolgt ein entsprechender Durchlauf vom linken zum
rechten Rand. Akzeptanz, wenn B n übrigbleibt. Beachte die Symmetrie!
a||ha, Li, B||hB, Li, b||hb, Li
qa1
a||h#, Ri
B||hB, Ri
qa2
#||h#, Ri
#||h#, Ni
qb←
B||hB, Li, c||hc, Li
c||h#, Li
qF
qc1
B||hB, Li
#||h#, Ni
a||h#, Ri
a||ha, Ri, B||hB, Ri
Jürgen Koslowski (TU-BS)
b||hB, Li
q←
q→b
q→
b||hB, Ri
Theoretische Informatik 2
b||hb, Ri, B||hB, Ri, c||hc, Ri
SS 2015
22 / 236
Turingmaschinen
Vorüberlegung
Beispiel ( L = { an b n c n : n ∈ N } mittels schneller TM)
Setze B = {a, b, c, B, #} , wobei B dazu dient anzuzeigen, dass b bearbeitet wurde. Start mit qc am rechten Rand, auf # bei leerer Eingabe.
Idee: Pro Durchlauf vom rechten zum linken Rand das erste c von rechts
löschen, das erste b von rechts mit B überschreiben und das letzte a von
rechts löschen; dann erfolgt ein entsprechender Durchlauf vom linken zum
rechten Rand. Akzeptanz, wenn B n übrigbleibt. Beachte die Symmetrie!
a||ha, Li, B||hB, Li, b||hb, Li
qa1
a||h#, Ri
B||hB, Ri
qa2
#||h#, Ri
#||h#, Ni
q→b
qb←
B||hB, Li, c||hc, Li
c||h#, Li
qF
qc1
B||hB, Li
#||h#, Ni
#||h#, Li
a||h#, Ri
a||ha, Ri, B||hB, Ri
Jürgen Koslowski (TU-BS)
b||hB, Li
q←
q→
b||hB, Ri
Theoretische Informatik 2
qc2
b||hb, Ri, B||hB, Ri, c||hc, Ri
SS 2015
22 / 236
Turingmaschinen
Vorüberlegung
Beispiel ( L = { an b n c n : n ∈ N } mittels schneller TM)
Setze B = {a, b, c, B, #} , wobei B dazu dient anzuzeigen, dass b bearbeitet wurde. Start mit qc am rechten Rand, auf # bei leerer Eingabe.
Idee: Pro Durchlauf vom rechten zum linken Rand das erste c von rechts
löschen, das erste b von rechts mit B überschreiben und das letzte a von
rechts löschen; dann erfolgt ein entsprechender Durchlauf vom linken zum
rechten Rand. Akzeptanz, wenn B n übrigbleibt. Beachte die Symmetrie!
a||ha, Li, B||hB, Li, b||hb, Li
qa1
a||h#, Ri
B||hB, Ri
qa2
#||h#, Ri
#||h#, Ni
q→b
qb←
B||hB, Li, c||hc, Li
c||h#, Li
qF
qc1
q→
b||hB, Ri
Theoretische Informatik 2
B||hB, Li
c||h#, Li
#||h#, Ni
#||h#, Li
a||h#, Ri
a||ha, Ri, B||hB, Ri
Jürgen Koslowski (TU-BS)
b||hB, Li
q←
qc2
b||hb, Ri, B||hB, Ri, c||hc, Ri
SS 2015
22 / 236
Turingmaschinen
Vorüberlegung
Beispiel ( L = { an b n c n : n ∈ N } mittels langsamer TM)
Die obige Maschine kann mechanisch(!) durch eine langsame Maschine
simuliert werden (vergl. HA), was an 6 Stellen je einen weiteren Zustand
erfordert (farbig markiert):
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
23 / 236
Turingmaschinen
Vorüberlegung
Beispiel ( L = { an b n c n : n ∈ N } mittels langsamer TM)
Die obige Maschine kann mechanisch(!) durch eine langsame Maschine
simuliert werden (vergl. HA), was an 6 Stellen je einen weiteren Zustand
erfordert (farbig markiert):
a, B, b||L
qa1
qF
B, c||L
q→b
qc1
#||L
q→
b||hB, Ri
Theoretische Informatik 2
B||L
c||h#, Li
#||#
a||h#, Ri
a, B||R
Jürgen Koslowski (TU-BS)
qb←
c||h#, Li
#||#
qa2
b||hB, Li
#||R
a||h#, Ri
B||R
q←
qc2
b, B, c||R
SS 2015
23 / 236
Turingmaschinen
Vorüberlegung
Beispiel ( L = { an b n c n : n ∈ N } mittels langsamer TM)
Die obige Maschine kann mechanisch(!) durch eine langsame Maschine
simuliert werden (vergl. HA), was an 6 Stellen je einen weiteren Zustand
erfordert (farbig markiert):
a, B, b||L
qa1
qb←
qF
q→b
qc1
#||L
q→
b||hB, Ri
B||L
c||h#, Li
#||#
a||h#, Ri
a, B||R
B, c||L
c||h#, Li
#||#
qa2
b||hB, Li
#||R
a||h#, Ri
B||R
q←
qc2
b, B, c||R
In den blau markierten Fällen läßt sich jeweils der Hilfszustand mit dem
Zielzustand verschmelzen, in den rot markierten Fällen ist das nicht möglich.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
23 / 236
Turingmaschinen
Vorüberlegung
Beispiel ( L = { an b n c n : n ∈ N } mittels langsamer TM)
Die obige Maschine kann mechanisch(!) durch eine langsame Maschine
simuliert werden (vergl. HA), was an 6 Stellen je einen weiteren Zustand
erfordert (farbig markiert):
a, B, b||L
qa1
qb←
qF
q→b
qc1
#||L
q→
b||hB, Ri
B||L
c||h#, Li
#||#
a||h#, Ri
a, B||R
B, c||L
c||h#, Li
#||#
qa2
b||hB, Li
#||R
a||h#, Ri
B||R
q←
qc2
b, B, c||R
In den blau markierten Fällen läßt sich jeweils der Hilfszustand mit dem
Zielzustand verschmelzen, in den rot markierten Fällen ist das nicht möglich.
Das führt zu umseitiger TM mit zwei zusätzlichen Zuständen:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
23 / 236
Turingmaschinen
Vorüberlegung
Beispiel ( L = { an b n c n : n ∈ N } mittels langsamer TM, Fortsetzung)
#, B, c||L
a, B, b||L
qa0
#||R
q←
b||B
qb←
c||#
a||#
qa1
#||R
B||R
qF
#||#
qa2
#||#
#||L
qc1
a||#
c||#
q→b
#, a, B||R
Jürgen Koslowski (TU-BS)
B||L
qc0
q→
b||B
#||L
qc2
b, B, c||R
Theoretische Informatik 2
SS 2015
24 / 236
Turingmaschinen
Vorüberlegung
Beispiel ( L = { an b n c n : n ∈ N } mittels langsamer TM, Fortsetzung)
#, B, c||L
a, B, b||L
qa0
#||R
q←
b||B
qb←
c||#
a||#
qa1
#||R
B||R
qF
#||#
qa2
B||L
qc0
#||#
#||L
qc1
a||#
c||#
q→b
#, a, B||R
q→
b||B
#||L
qc2
b, B, c||R
Eine solche langsame TM direkt zu entwerfen, wird i.A. schwieriger sein, als
den Umweg über die schnelle TM zu gehen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
24 / 236
Turingmaschinen
Vorüberlegung
Beispiel ( L = { an b n c n : n ∈ N } mittels langsamer TM, Fortsetzung)
#, B, c||L
a, B, b||L
qa0
#||R
q←
b||B
qb←
c||#
a||#
qa1
#||R
B||R
qF
#||#
qa2
B||L
qc0
#||#
#||L
qc1
a||#
c||#
q→b
#, a, B||R
q→
b||B
#||L
qc2
b, B, c||R
Eine solche langsame TM direkt zu entwerfen, wird i.A. schwieriger sein, als
den Umweg über die schnelle TM zu gehen. Noch aufwändiger wird die
Konstruktion, wenn das Bandalphabet auf Σ + {#} beschränkt ist.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
24 / 236
Turingmaschinen
Vorüberlegung
Beispiel ( L = { an b n c n : n ∈ N } mittels langsamer TM, Fortsetzung)
#, B, c||L
a, B, b||L
qa0
#||R
q←
b||B
qb←
c||#
a||#
qa1
#||R
B||R
qF
#||#
qa2
B||L
qc0
#||#
#||L
qc1
a||#
c||#
q→b
#, a, B||R
q→
b||B
#||L
qc2
b, B, c||R
Eine solche langsame TM direkt zu entwerfen, wird i.A. schwieriger sein, als
den Umweg über die schnelle TM zu gehen. Noch aufwändiger wird die
Konstruktion, wenn das Bandalphabet auf Σ + {#} beschränkt ist.
In diesem Fall wäre auf das Löschsymbol B zu verzichten (siehe HA).
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
24 / 236
Turingmaschinen
Vorüberlegung
Definition
Sprachen, die von einer TM akzeptiert werden, heißen semi-entscheidbar
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
25 / 236
Turingmaschinen
Vorüberlegung
Definition
Sprachen, die von einer TM akzeptiert werden, heißen semi-entscheidbar
Andere Varianten von TMs sind gleich mächtig zu den bisherigen TMs:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
25 / 236
Turingmaschinen
Vorüberlegung
Definition
Sprachen, die von einer TM akzeptiert werden, heißen semi-entscheidbar
Andere Varianten von TMs sind gleich mächtig zu den bisherigen TMs:
Definition
Eine Mehr-Spur Turingmaschine mit Bandalphabet B ⊇ Σ + {#} entspricht einer 1-Band TM mit Bandalphabet Form B0 := Bn .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
25 / 236
Turingmaschinen
Vorüberlegung
Definition
Sprachen, die von einer TM akzeptiert werden, heißen semi-entscheidbar
Andere Varianten von TMs sind gleich mächtig zu den bisherigen TMs:
Definition
Eine Mehr-Spur Turingmaschine mit Bandalphabet B ⊇ Σ + {#} entspricht einer 1-Band TM mit Bandalphabet Form B0 := Bn . Als Blanksymbol dieser 1-Band Maschine dient das n -Tupel h#, . . . , #i .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
25 / 236
Turingmaschinen
Vorüberlegung
Definition
Sprachen, die von einer TM akzeptiert werden, heißen semi-entscheidbar
Andere Varianten von TMs sind gleich mächtig zu den bisherigen TMs:
Definition
Eine Mehr-Spur Turingmaschine mit Bandalphabet B ⊇ Σ + {#} entspricht einer 1-Band TM mit Bandalphabet Form B0 := Bn . Als Blanksymbol dieser 1-Band Maschine dient das n -Tupel h#, . . . , #i .
Zur Interpretation von Wörtern in Σ∗ als Eingaben für die Mehr-Spur
Maschine dient die Einbettung B h Bn , die alle Komponenten mit
positivem Index auf # setzt; d.h., Eingaben aus Σ∗ stehen auf Spur 0.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
25 / 236
Turingmaschinen
Vorüberlegung
Definition
Sprachen, die von einer TM akzeptiert werden, heißen semi-entscheidbar
Andere Varianten von TMs sind gleich mächtig zu den bisherigen TMs:
Definition
Eine Mehr-Spur Turingmaschine mit Bandalphabet B ⊇ Σ + {#} entspricht einer 1-Band TM mit Bandalphabet Form B0 := Bn . Als Blanksymbol dieser 1-Band Maschine dient das n -Tupel h#, . . . , #i .
Zur Interpretation von Wörtern in Σ∗ als Eingaben für die Mehr-Spur
Maschine dient die Einbettung B h Bn , die alle Komponenten mit
positivem Index auf # setzt; d.h., Eingaben aus Σ∗ stehen auf Spur 0.
Der Kopf ließt/schreibt immer in allen Spuren gleichzeitig, und die
Bewegung erfolgt auch in allen Spuren synchron in derselben Richtung.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
25 / 236
Turingmaschinen
Vorüberlegung
Definition
Sprachen, die von einer TM akzeptiert werden, heißen semi-entscheidbar
Andere Varianten von TMs sind gleich mächtig zu den bisherigen TMs:
Definition
Eine Mehr-Spur Turingmaschine mit Bandalphabet B ⊇ Σ + {#} entspricht einer 1-Band TM mit Bandalphabet Form B0 := Bn . Als Blanksymbol dieser 1-Band Maschine dient das n -Tupel h#, . . . , #i .
Zur Interpretation von Wörtern in Σ∗ als Eingaben für die Mehr-Spur
Maschine dient die Einbettung B h Bn , die alle Komponenten mit
positivem Index auf # setzt; d.h., Eingaben aus Σ∗ stehen auf Spur 0.
Der Kopf ließt/schreibt immer in allen Spuren gleichzeitig, und die
Bewegung erfolgt auch in allen Spuren synchron in derselben Richtung.
Satz
Von Mehr-Spur TMs akzeptierte Sprachen sind semi-entscheidbar.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
25 / 236
Turingmaschinen
Vorüberlegung
Beweis.
Das Alphabet Σ0 := Σ × {#}n−1 für die 1-Band Interpretation der
Maschine ist natürlich zu Σ isomorph (verwende h ).
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
26 / 236
Turingmaschinen
Vorüberlegung
Beweis.
Das Alphabet Σ0 := Σ × {#}n−1 für die 1-Band Interpretation der
Maschine ist natürlich zu Σ isomorph (verwende h ). Die Einschränkung
auf Σ-Eingaben in Spur 0 läßt sich durch einen Präprozessor realisieren.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
26 / 236
Turingmaschinen
Vorüberlegung
Beweis.
Das Alphabet Σ0 := Σ × {#}n−1 für die 1-Band Interpretation der
Maschine ist natürlich zu Σ isomorph (verwende h ). Die Einschränkung
auf Σ-Eingaben in Spur 0 läßt sich durch einen Präprozessor realisieren.
Definition
Für eine n -Band TM M = hQ, B, n, Σ, δ, q0 , qF i hat δ die Form
Q × Bn
δ
Q ×(B+{L, R})n
Jürgen Koslowski (TU-BS)
bzw.
Q × Bn
Theoretische Informatik 2
δ
Q ×(B×{L, R, N})n
SS 2015
26 / 236
Turingmaschinen
Vorüberlegung
Beweis.
Das Alphabet Σ0 := Σ × {#}n−1 für die 1-Band Interpretation der
Maschine ist natürlich zu Σ isomorph (verwende h ). Die Einschränkung
auf Σ-Eingaben in Spur 0 läßt sich durch einen Präprozessor realisieren.
Definition
Für eine n -Band TM M = hQ, B, n, Σ, δ, q0 , qF i hat δ die Form
Q × Bn
δ
Q ×(B+{L, R})n
bzw.
Q × Bn
δ
Q ×(B×{L, R, N})n
Der Konfigurationsbegriff ist entsprechend zu erweitern. Berechnungen
starten mit der Eingabe auf Band 0 .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
26 / 236
Turingmaschinen
Vorüberlegung
Beweis.
Das Alphabet Σ0 := Σ × {#}n−1 für die 1-Band Interpretation der
Maschine ist natürlich zu Σ isomorph (verwende h ). Die Einschränkung
auf Σ-Eingaben in Spur 0 läßt sich durch einen Präprozessor realisieren.
Definition
Für eine n -Band TM M = hQ, B, n, Σ, δ, q0 , qF i hat δ die Form
Q × Bn
δ
Q ×(B+{L, R})n
bzw.
Q × Bn
δ
Q ×(B×{L, R, N})n
Der Konfigurationsbegriff ist entsprechend zu erweitern. Berechnungen
starten mit der Eingabe auf Band 0 . Die graphische Darstellung verwendet
Label der Form β||A0 ; A1 ; . . . ; An−1 mit β ∈ Bn und n Aktionen Ai .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
26 / 236
Turingmaschinen
Vorüberlegung
Beweis.
Das Alphabet Σ0 := Σ × {#}n−1 für die 1-Band Interpretation der
Maschine ist natürlich zu Σ isomorph (verwende h ). Die Einschränkung
auf Σ-Eingaben in Spur 0 läßt sich durch einen Präprozessor realisieren.
Definition
Für eine n -Band TM M = hQ, B, n, Σ, δ, q0 , qF i hat δ die Form
Q × Bn
δ
Q ×(B+{L, R})n
bzw.
Q × Bn
δ
Q ×(B×{L, R, N})n
Der Konfigurationsbegriff ist entsprechend zu erweitern. Berechnungen
starten mit der Eingabe auf Band 0 . Die graphische Darstellung verwendet
Label der Form β||A0 ; A1 ; . . . ; An−1 mit β ∈ Bn und n Aktionen Ai .
Wesentlich ist, dass die n Köpfe unabhängig auf den n Bändern agieren
können.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
26 / 236
Turingmaschinen
Vorüberlegung
Beweis.
Das Alphabet Σ0 := Σ × {#}n−1 für die 1-Band Interpretation der
Maschine ist natürlich zu Σ isomorph (verwende h ). Die Einschränkung
auf Σ-Eingaben in Spur 0 läßt sich durch einen Präprozessor realisieren.
Definition
Für eine n -Band TM M = hQ, B, n, Σ, δ, q0 , qF i hat δ die Form
Q × Bn
δ
Q ×(B+{L, R})n
bzw.
Q × Bn
δ
Q ×(B×{L, R, N})n
Der Konfigurationsbegriff ist entsprechend zu erweitern. Berechnungen
starten mit der Eingabe auf Band 0 . Die graphische Darstellung verwendet
Label der Form β||A0 ; A1 ; . . . ; An−1 mit β ∈ Bn und n Aktionen Ai .
Wesentlich ist, dass die n Köpfe unabhängig auf den n Bändern agieren
können. Hier zeigt sich der Nutzen von N bei schnellen Maschinen!
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
26 / 236
Turingmaschinen
Vorüberlegung
Satz
Von n -Band TMs akzeptierte Sprachen sind semi-entscheidbar.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
27 / 236
Turingmaschinen
Vorüberlegung
Satz
Von n -Band TMs akzeptierte Sprachen sind semi-entscheidbar.
Beweis (Idee)
Simulation durch 2n -Spur TM, bei deren geraden Spuren den Bändern
entsprechen, und auf deren ungeraden Spuren über die jeweiligen Kopfpositionen buchgeführt wird, durch Markierungen in der relevanten Spalte.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
27 / 236
Turingmaschinen
Vorüberlegung
Satz
Von n -Band TMs akzeptierte Sprachen sind semi-entscheidbar.
Beweis (Idee)
Simulation durch 2n -Spur TM, bei deren geraden Spuren den Bändern
entsprechen, und auf deren ungeraden Spuren über die jeweiligen Kopfpositionen buchgeführt wird, durch Markierungen in der relevanten Spalte.
Weiterhin ist es möglich, das (potentiell beideitig unendliche) Turingband
durch einen 2- oder höherdimensionalen Speicher zu ersetzen, der ebenfalls
in Zellen aufgeteilt ist.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
27 / 236
Turingmaschinen
Vorüberlegung
Satz
Von n -Band TMs akzeptierte Sprachen sind semi-entscheidbar.
Beweis (Idee)
Simulation durch 2n -Spur TM, bei deren geraden Spuren den Bändern
entsprechen, und auf deren ungeraden Spuren über die jeweiligen Kopfpositionen buchgeführt wird, durch Markierungen in der relevanten Spalte.
Weiterhin ist es möglich, das (potentiell beideitig unendliche) Turingband
durch einen 2- oder höherdimensionalen Speicher zu ersetzen, der ebenfalls
in Zellen aufgeteilt ist. Entsprechend wäre dann auch die Beweglichkeit des
Kopfes zu erhöhen, im 2-dimensionalen Fall nicht nur nach links bzw. rechts,
sondern auch nach unten bzw. oben.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
27 / 236
Turingmaschinen
Vorüberlegung
Satz
Von n -Band TMs akzeptierte Sprachen sind semi-entscheidbar.
Beweis (Idee)
Simulation durch 2n -Spur TM, bei deren geraden Spuren den Bändern
entsprechen, und auf deren ungeraden Spuren über die jeweiligen Kopfpositionen buchgeführt wird, durch Markierungen in der relevanten Spalte.
Weiterhin ist es möglich, das (potentiell beideitig unendliche) Turingband
durch einen 2- oder höherdimensionalen Speicher zu ersetzen, der ebenfalls
in Zellen aufgeteilt ist. Entsprechend wäre dann auch die Beweglichkeit des
Kopfes zu erhöhen, im 2-dimensionalen Fall nicht nur nach links bzw. rechts,
sondern auch nach unten bzw. oben.
Der Beweis, dass auch diese Verallgemeinerung die Leistungsfähigkeit des
Maschinenmodells nicht vergrößert, ist den Lesern überlassen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
27 / 236
Turingmaschinen
Vorüberlegung
Beispiel
Die Sprache L = { w ∈ {0, 1}∗ : |w |0 = |w |21 } ist semi-entscheidbar:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
28 / 236
Turingmaschinen
Vorüberlegung
Beispiel
Die Sprache L = { w ∈ {0, 1}∗ : |w |0 = |w |21 } ist semi-entscheidbar:
Idee: Wir verwenden eine 3-Band dTM, bei der die Nullen und Einsen der
Eingabe auf B0 zunächst auf die Bänder B1 bzw. B2 verschoben werden.
Dort finden alle weiteren Berechnungen statt.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
28 / 236
Turingmaschinen
Vorüberlegung
Beispiel
Die Sprache L = { w ∈ {0, 1}∗ : |w |0 = |w |21 } ist semi-entscheidbar:
Idee: Wir verwenden eine 3-Band dTM, bei der die Nullen und Einsen der
Eingabe auf B0 zunächst auf die Bänder B1 bzw. B2 verschoben werden.
Dort finden alle weiteren Berechnungen statt. Wegen
(n − 1)2 = n2 − 2n + 1 = n2 − 2(n − 1) − 1
können wir dann ggf. in mehreren Durchläufen auf diesen Bändern zunächst
je eine Null und eine Eins, und dann für jede verbliebene Eins weitere zwei
Nullen löschen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
28 / 236
Turingmaschinen
Vorüberlegung
Beispiel
Die Sprache L = { w ∈ {0, 1}∗ : |w |0 = |w |21 } ist semi-entscheidbar:
Idee: Wir verwenden eine 3-Band dTM, bei der die Nullen und Einsen der
Eingabe auf B0 zunächst auf die Bänder B1 bzw. B2 verschoben werden.
Dort finden alle weiteren Berechnungen statt. Wegen
(n − 1)2 = n2 − 2n + 1 = n2 − 2(n − 1) − 1
können wir dann ggf. in mehreren Durchläufen auf diesen Bändern zunächst
je eine Null und eine Eins, und dann für jede verbliebene Eins weitere zwei
Nullen löschen. Dabei werden die Einsen auf B2 in beiden Richtungen, die
Nullen auf B1 aber nur in einer Richtung durchlaufen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
28 / 236
Turingmaschinen
Vorüberlegung
Beispiel
Die Sprache L = { w ∈ {0, 1}∗ : |w |0 = |w |21 } ist semi-entscheidbar:
Idee: Wir verwenden eine 3-Band dTM, bei der die Nullen und Einsen der
Eingabe auf B0 zunächst auf die Bänder B1 bzw. B2 verschoben werden.
Dort finden alle weiteren Berechnungen statt. Wegen
(n − 1)2 = n2 − 2n + 1 = n2 − 2(n − 1) − 1
können wir dann ggf. in mehreren Durchläufen auf diesen Bändern zunächst
je eine Null und eine Eins, und dann für jede verbliebene Eins weitere zwei
Nullen löschen. Dabei werden die Einsen auf B2 in beiden Richtungen, die
Nullen auf B1 aber nur in einer Richtung durchlaufen. Gelingt die Löschung
aller Symbole, wird die Eingabe akzeptiert.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
28 / 236
Turingmaschinen
Vorüberlegung
Beispiel
Die Sprache L = { w ∈ {0, 1}∗ : |w |0 = |w |21 } ist semi-entscheidbar:
Idee: Wir verwenden eine 3-Band dTM, bei der die Nullen und Einsen der
Eingabe auf B0 zunächst auf die Bänder B1 bzw. B2 verschoben werden.
Dort finden alle weiteren Berechnungen statt. Wegen
(n − 1)2 = n2 − 2n + 1 = n2 − 2(n − 1) − 1
können wir dann ggf. in mehreren Durchläufen auf diesen Bändern zunächst
je eine Null und eine Eins, und dann für jede verbliebene Eins weitere zwei
Nullen löschen. Dabei werden die Einsen auf B2 in beiden Richtungen, die
Nullen auf B1 aber nur in einer Richtung durchlaufen. Gelingt die Löschung
aller Symbole, wird die Eingabe akzeptiert.
Bei der umseitigen Realisierung sind Aktionen, die weder Kopfposition noch
Bandinhalt verändern, durch “ − ” abgekürzt.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
28 / 236
Turingmaschinen
Vorüberlegung
Beispiel (Fortsetzung)
start
Jürgen Koslowski (TU-BS)
q0
Theoretische Informatik 2
SS 2015
29 / 236
Turingmaschinen
Vorüberlegung
Beispiel (Fortsetzung)
start
Jürgen Koslowski (TU-BS)
q0
h0, #, #i||h#, Li; h0, Li; h#, Ni
h1, #, #i||h#, Li; h#, Ni; h1, Li
Theoretische Informatik 2
SS 2015
29 / 236
Turingmaschinen
Vorüberlegung
Beispiel (Fortsetzung)
start
q0
h0, #, #i||h#, Li; h0, Li; h#, Ni
h1, #, #i||h#, Li; h#, Ni; h1, Li
h#, #, #i||−, h#, Ri; h#, Ri
q1
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
29 / 236
Turingmaschinen
Vorüberlegung
Beispiel (Fortsetzung)
start
q0
h0, #, #i||h#, Li; h0, Li; h#, Ni
h1, #, #i||h#, Li; h#, Ni; h1, Li
h#, #, #i||−, h#, Ri; h#, Ri
q1
h#, #, #i||−, −, −
qF
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
29 / 236
Turingmaschinen
Vorüberlegung
Beispiel (Fortsetzung)
start
q0
h0, #, #i||h#, Li; h0, Li; h#, Ni
h1, #, #i||h#, Li; h#, Ni; h1, Li
h#, #, #i||−, h#, Ri; h#, Ri
q2
h#, 0, 1i||−, h#, Ri; h#, Ri
q1
h#, #, #i||−, −, −
qF
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
29 / 236
Turingmaschinen
Vorüberlegung
Beispiel (Fortsetzung)
start
q0
h0, #, #i||h#, Li; h0, Li; h#, Ni
h1, #, #i||h#, Li; h#, Ni; h1, Li
h#, #, #i||−, h#, Ri; h#, Ri
q2
h#, 0, 1i||−, h#, Ri; h#, Ri
h#
,#
,#
i||−
q1
,−
,−
h#, #, #i||−, −, −
qF
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
29 / 236
Turingmaschinen
Vorüberlegung
Beispiel (Fortsetzung)
start
q0
h0, #, #i||h#, Li; h0, Li; h#, Ni
h1, #, #i||h#, Li; h#, Ni; h1, Li
h#, #, #i||−, h#, Ri; h#, Ri
q2
h#, 0, 1i||−, h#, Ri; h#, Ri
h#, 0, 1i||−, h#, Ri; h1, Ri
h#
,#
,#
i||−
q1
,−
,−
h#, #, #i||−, −, −
qF
q3
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
29 / 236
Turingmaschinen
Vorüberlegung
Beispiel (Fortsetzung)
start
q0
h0, #, #i||h#, Li; h0, Li; h#, Ni
h1, #, #i||h#, Li; h#, Ni; h1, Li
h#, #, #i||−, h#, Ri; h#, Ri
h#, 0, 1i||−, h#, Ri; h#, Ri
h#, 0, 1i||−, h#, Ri; h1, Ri
h#, 0, 1i||−, h#, Ri; h1, Ni
q2
h#
,#
,#
i||−
q1
,−
,−
h#, #, #i||−, −, −
qF
q3
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
29 / 236
Turingmaschinen
Vorüberlegung
Beispiel (Fortsetzung)
start
q0
h0, #, #i||h#, Li; h0, Li; h#, Ni
h1, #, #i||h#, Li; h#, Ni; h1, Li
h#, #, #i||−, h#, Ri; h#, Ri
h#, 0, 1i||−, h#, Ri; h#, Ri
h#
,#
,#
h#, 0, 1i||−, h#, Ri; h1, Ri
h#, 0, 1i||−, h#, Ri; h1, Ni
q2
q3
i||−
q1
,−
,−
h#, #, #i||−, −, −
qF
h#, 0, #i||−, h#, Ri; h#, Li
Jürgen Koslowski (TU-BS)
q4
Theoretische Informatik 2
SS 2015
29 / 236
Turingmaschinen
Vorüberlegung
Beispiel (Fortsetzung)
start
q0
h0, #, #i||h#, Li; h0, Li; h#, Ni
h1, #, #i||h#, Li; h#, Ni; h1, Li
h#, #, #i||−, h#, Ri; h#, Ri
h#, 0, 1i||−, h#, Ri; h#, Ri
h#
,#
,#
h#, 0, 1i||−, h#, Ri; h1, Ri
h#, 0, 1i||−, h#, Ri; h1, Ni
q2
q3
i||−
q1
,−
,−
h#, #, #i||−, −, −
qF
h#, #, #i||−, −, −
h#, 0, #i||−, h#, Ri; h#, Li
Jürgen Koslowski (TU-BS)
q4
Theoretische Informatik 2
SS 2015
29 / 236
Turingmaschinen
Vorüberlegung
Beispiel (Fortsetzung)
start
q0
h0, #, #i||h#, Li; h0, Li; h#, Ni
h1, #, #i||h#, Li; h#, Ni; h1, Li
h#, #, #i||−, h#, Ri; h#, Ri
h#, 0, 1i||−, h#, Ri; h#, Ri
h#
,#
,#
h#, 0, 1i||−, h#, Ri; h1, Ri
h#, 0, 1i||−, h#, Ri; h1, Ni
q2
q3
i||−
q1
,−
,−
h#, #, #i||−, −, −
qF
h#, #, #i||−, −, −
h#, 0, #i||−, h#, Ri; h#, Li
Jürgen Koslowski (TU-BS)
q4
h#, 0, 1i||−, h#, Ri; h#, Li
Theoretische Informatik 2
q5
SS 2015
29 / 236
Turingmaschinen
Vorüberlegung
Beispiel (Fortsetzung)
start
q0
h0, #, #i||h#, Li; h0, Li; h#, Ni
h1, #, #i||h#, Li; h#, Ni; h1, Li
h#, #, #i||−, h#, Ri; h#, Ri
h#, 0, 1i||−, h#, Ri; h#, Ri
h#
,#
,#
h#, 0, 1i||−, h#, Ri; h1, Ri
h#, 0, 1i||−, h#, Ri; h1, Ni
q2
q3
i||−
q1
,−
,−
h#, #, #i||−, −, −
qF
h#
,
h#, #, #i||−, −, −
h#, 0, #i||−, h#, Ri; h#, Li
Jürgen Koslowski (TU-BS)
q4
#,
#i
||−
,−
,−
h#, 0, 1i||−, h#, Ri; h#, Li
Theoretische Informatik 2
q5
SS 2015
29 / 236
Turingmaschinen
Vorüberlegung
Beispiel (Fortsetzung)
start
q0
h0, #, #i||h#, Li; h0, Li; h#, Ni
h1, #, #i||h#, Li; h#, Ni; h1, Li
h#, #, #i||−, h#, Ri; h#, Ri
h#, 0, 1i||−, h#, Ri; h1, Ri
h#, 0, 1i||−, h#, Ri; h1, Ni
h#
,#
,#
q3
i||−
q1
,−
,−
q6
h#, 0, 1i||−, h#, Ri; h1, Li
h#, 0, 1i||−, h#, Ri; h#, Ri
q2
h#, #, #i||−, −, −
qF
h#
,
h#, #, #i||−, −, −
h#, 0, #i||−, h#, Ri; h#, Li
Jürgen Koslowski (TU-BS)
q4
#,
#i
||−
,−
,−
h#, 0, 1i||−, h#, Ri; h#, Li
Theoretische Informatik 2
q5
SS 2015
29 / 236
Turingmaschinen
Vorüberlegung
Beispiel (Fortsetzung)
start
q0
h0, #, #i||h#, Li; h0, Li; h#, Ni
h1, #, #i||h#, Li; h#, Ni; h1, Li
h#, #, #i||−, h#, Ri; h#, Ri
h#, 0, 1i||−, h#, Ri; h1, Ni
h#, 0, 1i||−, h#, Ri; h1, Ri
q3
i||−
q1
,−
,−
q6
h#, #, #i||−, −, −
qF
h#
,
h#, #, #i||−, −, −
h#, 0, #i||−, h#, Ri; h#, Li
Jürgen Koslowski (TU-BS)
q4
#,
#i
||−
,−
,−
h#, 0, 1i||−, h#, Ri; h#, Li
Theoretische Informatik 2
h#, 0, 1i||−, h#, Ri; h1, Ni
h#
,#
,#
h#, 0, 1i||−, h#, Ri; h1, Li
h#, 0, 1i||−, h#, Ri; h#, Ri
q2
q5
SS 2015
29 / 236
Turingmaschinen
Vorüberlegung
Beispiel (Fortsetzung)
start
q0
h0, #, #i||h#, Li; h0, Li; h#, Ni
h1, #, #i||h#, Li; h#, Ni; h1, Li
h#, #, #i||−, h#, Ri; h#, Ri
h#, 0, 1i||−, h#, Ri; h1, Ni
h#, 0, 1i||−, h#, Ri; h1, Ri
q3
i||−
q1
,−
,−
h#, 0, #i||−, h#, Ri; h#, Ri
h#, #, #i||−, −, −
qF
h#
,
h#, #, #i||−, −, −
h#, 0, #i||−, h#, Ri; h#, Li
Jürgen Koslowski (TU-BS)
q4
#,
#i
||−
,−
,−
h#, 0, 1i||−, h#, Ri; h#, Li
Theoretische Informatik 2
q6
h#, 0, 1i||−, h#, Ri; h1, Ni
h#
,#
,#
h#, 0, 1i||−, h#, Ri; h1, Li
h#, 0, 1i||−, h#, Ri; h#, Ri
q2
q5
SS 2015
29 / 236
Turingmaschinen
Vorüberlegung
Beispiel (Fortsetzung)
start
q0
h0, #, #i||h#, Li; h0, Li; h#, Ni
h1, #, #i||h#, Li; h#, Ni; h1, Li
h#, #, #i||−, h#, Ri; h#, Ri
h#, 0, 1i||−, h#, Ri; h1, Ni
h#, 0, 1i||−, h#, Ri; h1, Ri
q3
i||−
q1
,−
,−
h#, 0, #i||−, h#, Ri; h#, Ri
h#, #, #i||−, −, −
qF
h#
,
h#, #, #i||−, −, −
h#, 0, #i||−, h#, Ri; h#, Li
q4
#,
#i
||−
,−
,−
h#, 0, 1i||−, h#, Ri; h#, Li
q6
h#, 0, 1i||−, h#, Ri; h1, Ni
h#
,#
,#
h#, 0, 1i||−, h#, Ri; h1, Li
h#, 0, 1i||−, h#, Ri; h#, Ri
q2
q5
In Zukunft werden wir nicht alle TMs so detailliert beschreiben können,
sondern uns meist auf informelle Spezifikationen beschränken.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
29 / 236
Turingmaschinen
Vorüberlegung
Satz
Jede semi-entscheidbare Sprache wird von einer dTM akzeptiert.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
30 / 236
Turingmaschinen
Vorüberlegung
Satz
Jede semi-entscheidbare Sprache wird von einer dTM akzeptiert.
Beweis
Betrachte eine 1-Band TM M = hQ, B, Σ, δ, q0 , qF i mit L(M) = L .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
30 / 236
Turingmaschinen
Vorüberlegung
Satz
Jede semi-entscheidbare Sprache wird von einer dTM akzeptiert.
Beweis
Betrachte eine 1-Band TM M = hQ, B, Σ, δ, q0 , qF i mit L(M) = L . Für
jedes Paar hq, bi ∈ Q × B bezeichne ρhq, bi die Anzahl der verfügbaren
Übergänge; diese werden von 0 bis ρhq, bi − 1 durchnummeriert.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
30 / 236
Turingmaschinen
Vorüberlegung
Satz
Jede semi-entscheidbare Sprache wird von einer dTM akzeptiert.
Beweis
Betrachte eine 1-Band TM M = hQ, B, Σ, δ, q0 , qF i mit L(M) = L . Für
jedes Paar hq, bi ∈ Q × B bezeichne ρhq, bi die Anzahl der verfügbaren
Übergänge; diese werden von 0 bis ρhq, bi − 1 durchnummeriert. Setze
r := max{ ρhq, bi : hq, bi ∈ Q × B }
Jürgen Koslowski (TU-BS)
und Zr := { n ∈ N : n < r }
Theoretische Informatik 2
SS 2015
30 / 236
Turingmaschinen
Vorüberlegung
Satz
Jede semi-entscheidbare Sprache wird von einer dTM akzeptiert.
Beweis
Betrachte eine 1-Band TM M = hQ, B, Σ, δ, q0 , qF i mit L(M) = L . Für
jedes Paar hq, bi ∈ Q × B bezeichne ρhq, bi die Anzahl der verfügbaren
Übergänge; diese werden von 0 bis ρhq, bi − 1 durchnummeriert. Setze
r := max{ ρhq, bi : hq, bi ∈ Q × B }
und Zr := { n ∈ N : n < r }
Falls r > 1 ist M nicht deterministisch und wir konstruieren eine
deterministische 4-Band Maschine M0 mit L(M0 ) = L :
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
30 / 236
Turingmaschinen
Vorüberlegung
Satz
Jede semi-entscheidbare Sprache wird von einer dTM akzeptiert.
Beweis
Betrachte eine 1-Band TM M = hQ, B, Σ, δ, q0 , qF i mit L(M) = L . Für
jedes Paar hq, bi ∈ Q × B bezeichne ρhq, bi die Anzahl der verfügbaren
Übergänge; diese werden von 0 bis ρhq, bi − 1 durchnummeriert. Setze
r := max{ ρhq, bi : hq, bi ∈ Q × B }
und Zr := { n ∈ N : n < r }
Falls r > 1 ist M nicht deterministisch und wir konstruieren eine
deterministische 4-Band Maschine M0 mit L(M0 ) = L :
B0 enthält die Eingabe w ∈ Σ∗ ;
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
30 / 236
Turingmaschinen
Vorüberlegung
Satz
Jede semi-entscheidbare Sprache wird von einer dTM akzeptiert.
Beweis
Betrachte eine 1-Band TM M = hQ, B, Σ, δ, q0 , qF i mit L(M) = L . Für
jedes Paar hq, bi ∈ Q × B bezeichne ρhq, bi die Anzahl der verfügbaren
Übergänge; diese werden von 0 bis ρhq, bi − 1 durchnummeriert. Setze
r := max{ ρhq, bi : hq, bi ∈ Q × B }
und Zr := { n ∈ N : n < r }
Falls r > 1 ist M nicht deterministisch und wir konstruieren eine
deterministische 4-Band Maschine M0 mit L(M0 ) = L :
B0 enthält die Eingabe w ∈ Σ∗ ;
auf B1 werden systematisch die Zahlen k ∈ N erzeugt (unär);
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
30 / 236
Turingmaschinen
Vorüberlegung
Satz
Jede semi-entscheidbare Sprache wird von einer dTM akzeptiert.
Beweis
Betrachte eine 1-Band TM M = hQ, B, Σ, δ, q0 , qF i mit L(M) = L . Für
jedes Paar hq, bi ∈ Q × B bezeichne ρhq, bi die Anzahl der verfügbaren
Übergänge; diese werden von 0 bis ρhq, bi − 1 durchnummeriert. Setze
r := max{ ρhq, bi : hq, bi ∈ Q × B }
und Zr := { n ∈ N : n < r }
Falls r > 1 ist M nicht deterministisch und wir konstruieren eine
deterministische 4-Band Maschine M0 mit L(M0 ) = L :
B0 enthält die Eingabe w ∈ Σ∗ ;
auf B1 werden systematisch die Zahlen k ∈ N erzeugt (unär);
auf B2 werden systematisch die k -Tupel ϕ ∈ (Zr )k erzeugt;
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
30 / 236
Turingmaschinen
Vorüberlegung
Satz
Jede semi-entscheidbare Sprache wird von einer dTM akzeptiert.
Beweis
Betrachte eine 1-Band TM M = hQ, B, Σ, δ, q0 , qF i mit L(M) = L . Für
jedes Paar hq, bi ∈ Q × B bezeichne ρhq, bi die Anzahl der verfügbaren
Übergänge; diese werden von 0 bis ρhq, bi − 1 durchnummeriert. Setze
r := max{ ρhq, bi : hq, bi ∈ Q × B }
und Zr := { n ∈ N : n < r }
Falls r > 1 ist M nicht deterministisch und wir konstruieren eine
deterministische 4-Band Maschine M0 mit L(M0 ) = L :
B0 enthält die Eingabe w ∈ Σ∗ ;
auf B1 werden systematisch die Zahlen k ∈ N erzeugt (unär);
auf B2 werden systematisch die k -Tupel ϕ ∈ (Zr )k erzeugt;
Band B3 dient zur Simulation des durch ϕ spezifizierten
Anfangsstücks einer M-Berechung der Länge ≤ k mit Eingabe w .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
30 / 236
Turingmaschinen
Vorüberlegung
Beweis (Fortsetzung)
Genauer: die Initialkonfiguration mit Eingabe w generiert einen Graphen
von Folgekonfigurationen, bei denen jeder Knoten maximal r Nachfolger
hat.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
31 / 236
Turingmaschinen
Vorüberlegung
Beweis (Fortsetzung)
Genauer: die Initialkonfiguration mit Eingabe w generiert einen Graphen
von Folgekonfigurationen, bei denen jeder Knoten maximal r Nachfolger
hat. Die k -Tupel ϕ spezifizieren darin potentielle Wege der Länge k :
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
31 / 236
Turingmaschinen
Vorüberlegung
Beweis (Fortsetzung)
Genauer: die Initialkonfiguration mit Eingabe w generiert einen Graphen
von Folgekonfigurationen, bei denen jeder Knoten maximal r Nachfolger
hat. Die k -Tupel ϕ spezifizieren darin potentielle Wege der Länge k :
. sofern Schritt i von hq, . . . b . . .i ∈ Q × B∗ ausgeht, wird Übergang
Nummer ϕi mod ρhq, bi der verfügbaren Übergänge ausgeführt,
sofern ρ(q, b) 6= 0 ; sonst ist eine Haltekonfiguration erreicht.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
31 / 236
Turingmaschinen
Vorüberlegung
Beweis (Fortsetzung)
Genauer: die Initialkonfiguration mit Eingabe w generiert einen Graphen
von Folgekonfigurationen, bei denen jeder Knoten maximal r Nachfolger
hat. Die k -Tupel ϕ spezifizieren darin potentielle Wege der Länge k :
. sofern Schritt i von hq, . . . b . . .i ∈ Q × B∗ ausgeht, wird Übergang
Nummer ϕi mod ρhq, bi der verfügbaren Übergänge ausgeführt,
sofern ρ(q, b) 6= 0 ; sonst ist eine Haltekonfiguration erreicht.
Per Zustand wird darüber buchgeführt, ob
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
31 / 236
Turingmaschinen
Vorüberlegung
Beweis (Fortsetzung)
Genauer: die Initialkonfiguration mit Eingabe w generiert einen Graphen
von Folgekonfigurationen, bei denen jeder Knoten maximal r Nachfolger
hat. Die k -Tupel ϕ spezifizieren darin potentielle Wege der Länge k :
. sofern Schritt i von hq, . . . b . . .i ∈ Q × B∗ ausgeht, wird Übergang
Nummer ϕi mod ρhq, bi der verfügbaren Übergänge ausgeführt,
sofern ρ(q, b) 6= 0 ; sonst ist eine Haltekonfiguration erreicht.
Per Zustand wird darüber buchgeführt, ob
ein Weg eine akzeptierenden Haltekonfiguration erreicht, dann wird w
von M0 akzeptiert;
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
31 / 236
Turingmaschinen
Vorüberlegung
Beweis (Fortsetzung)
Genauer: die Initialkonfiguration mit Eingabe w generiert einen Graphen
von Folgekonfigurationen, bei denen jeder Knoten maximal r Nachfolger
hat. Die k -Tupel ϕ spezifizieren darin potentielle Wege der Länge k :
. sofern Schritt i von hq, . . . b . . .i ∈ Q × B∗ ausgeht, wird Übergang
Nummer ϕi mod ρhq, bi der verfügbaren Übergänge ausgeführt,
sofern ρ(q, b) 6= 0 ; sonst ist eine Haltekonfiguration erreicht.
Per Zustand wird darüber buchgeführt, ob
ein Weg eine akzeptierenden Haltekonfiguration erreicht, dann wird w
von M0 akzeptiert; andernfalls wird ϕ auf B2 und ggf. k auf B1
aktualisiert und fortgefahren;
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
31 / 236
Turingmaschinen
Vorüberlegung
Beweis (Fortsetzung)
Genauer: die Initialkonfiguration mit Eingabe w generiert einen Graphen
von Folgekonfigurationen, bei denen jeder Knoten maximal r Nachfolger
hat. Die k -Tupel ϕ spezifizieren darin potentielle Wege der Länge k :
. sofern Schritt i von hq, . . . b . . .i ∈ Q × B∗ ausgeht, wird Übergang
Nummer ϕi mod ρhq, bi der verfügbaren Übergänge ausgeführt,
sofern ρ(q, b) 6= 0 ; sonst ist eine Haltekonfiguration erreicht.
Per Zustand wird darüber buchgeführt, ob
ein Weg eine akzeptierenden Haltekonfiguration erreicht, dann wird w
von M0 akzeptiert; andernfalls wird ϕ auf B2 und ggf. k auf B1
aktualisiert und fortgefahren;
alle potentiellen Wege der Länge k in nicht akzeptierenden
Haltekonfigurationen enden, dann hält M0 ohne zu akzeptieren;
andernfalls wird k auf B1 erhöht und fortgefahren.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
31 / 236
Turingmaschinen
Vorüberlegung
Beweis (Fortsetzung)
Genauer: die Initialkonfiguration mit Eingabe w generiert einen Graphen
von Folgekonfigurationen, bei denen jeder Knoten maximal r Nachfolger
hat. Die k -Tupel ϕ spezifizieren darin potentielle Wege der Länge k :
. sofern Schritt i von hq, . . . b . . .i ∈ Q × B∗ ausgeht, wird Übergang
Nummer ϕi mod ρhq, bi der verfügbaren Übergänge ausgeführt,
sofern ρ(q, b) 6= 0 ; sonst ist eine Haltekonfiguration erreicht.
Per Zustand wird darüber buchgeführt, ob
ein Weg eine akzeptierenden Haltekonfiguration erreicht, dann wird w
von M0 akzeptiert; andernfalls wird ϕ auf B2 und ggf. k auf B1
aktualisiert und fortgefahren;
alle potentiellen Wege der Länge k in nicht akzeptierenden
Haltekonfigurationen enden, dann hält M0 ohne zu akzeptieren;
andernfalls wird k auf B1 erhöht und fortgefahren.
Beachte: Falls M immer hält, hat auch M0 diese Eigenschaft.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
31 / 236
Turingmaschinen
Entscheidbare Sprachen/Probleme
Entscheidbare Sprachen/Probleme
Die Terminologie “semi-entscheidbar” deutet die Existenz “entscheidbarer”
Sprachen an. Dabei soll das Wortproblem entschieden werden, ob die
Eingabe w ∈ Σ∗ zur Sprache L ⊆ Σ∗ gehört, oder nicht.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
32 / 236
Turingmaschinen
Entscheidbare Sprachen/Probleme
Entscheidbare Sprachen/Probleme
Die Terminologie “semi-entscheidbar” deutet die Existenz “entscheidbarer”
Sprachen an. Dabei soll das Wortproblem entschieden werden, ob die
Eingabe w ∈ Σ∗ zur Sprache L ⊆ Σ∗ gehört, oder nicht.
Definition
Eine Sprache heißt entscheidbar, wenn sie von einer TM akzeptiert wird, die
immer hält. (Man kann sich auf dTMs beschränken.)
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
32 / 236
Turingmaschinen
Entscheidbare Sprachen/Probleme
Entscheidbare Sprachen/Probleme
Die Terminologie “semi-entscheidbar” deutet die Existenz “entscheidbarer”
Sprachen an. Dabei soll das Wortproblem entschieden werden, ob die
Eingabe w ∈ Σ∗ zur Sprache L ⊆ Σ∗ gehört, oder nicht.
Definition
Eine Sprache heißt entscheidbar, wenn sie von einer TM akzeptiert wird, die
immer hält. (Man kann sich auf dTMs beschränken.)
Entscheidbare Sprachen sind semi-entscheidbar, aber die umgekehrte
Inklusion gilt nicht (Beispiel später).
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
32 / 236
Turingmaschinen
Entscheidbare Sprachen/Probleme
Entscheidbare Sprachen/Probleme
Die Terminologie “semi-entscheidbar” deutet die Existenz “entscheidbarer”
Sprachen an. Dabei soll das Wortproblem entschieden werden, ob die
Eingabe w ∈ Σ∗ zur Sprache L ⊆ Σ∗ gehört, oder nicht.
Definition
Eine Sprache heißt entscheidbar, wenn sie von einer TM akzeptiert wird, die
immer hält. (Man kann sich auf dTMs beschränken.)
Entscheidbare Sprachen sind semi-entscheidbar, aber die umgekehrte
Inklusion gilt nicht (Beispiel später).
Alternativ heißen semi-entscheidbare/entscheidbare Sprachen in der
Literatur auch “rekursiv aufzählbar”/“rekursiv”.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
32 / 236
Turingmaschinen
Entscheidbare Sprachen/Probleme
Entscheidbare Sprachen/Probleme
Die Terminologie “semi-entscheidbar” deutet die Existenz “entscheidbarer”
Sprachen an. Dabei soll das Wortproblem entschieden werden, ob die
Eingabe w ∈ Σ∗ zur Sprache L ⊆ Σ∗ gehört, oder nicht.
Definition
Eine Sprache heißt entscheidbar, wenn sie von einer TM akzeptiert wird, die
immer hält. (Man kann sich auf dTMs beschränken.)
Entscheidbare Sprachen sind semi-entscheidbar, aber die umgekehrte
Inklusion gilt nicht (Beispiel später).
Alternativ heißen semi-entscheidbare/entscheidbare Sprachen in der
Literatur auch “rekursiv aufzählbar”/“rekursiv”. Hintergrund: rekursiv
aufzählbare Sprachen können von einer dTM “aufgelistet” werden, wobei
Wiederholungen erlaubt sind.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
32 / 236
Turingmaschinen
Entscheidbare Sprachen/Probleme
Definition
Die von einer dTM T aufgezählte Sprache G(T) besteht aus den Wörtern
w ∈ Σ∗ , die in T-Konfigurationen der Form hqF , ωl bw #ωr ; . . .i mit
b ∈ B , ωl , ωr ∈ B∗ vorkommen, wenn T von hq0 , #; . . . ; #i aus startet.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
33 / 236
Turingmaschinen
Entscheidbare Sprachen/Probleme
Definition
Die von einer dTM T aufgezählte Sprache G(T) besteht aus den Wörtern
w ∈ Σ∗ , die in T-Konfigurationen der Form hqF , ωl bw #ωr ; . . .i mit
b ∈ B , ωl , ωr ∈ B∗ vorkommen, wenn T von hq0 , #; . . . ; #i aus startet.
Satz
Jede Sprache der Form G(T) ist semi-entscheidbar.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
33 / 236
Turingmaschinen
Entscheidbare Sprachen/Probleme
Definition
Die von einer dTM T aufgezählte Sprache G(T) besteht aus den Wörtern
w ∈ Σ∗ , die in T-Konfigurationen der Form hqF , ωl bw #ωr ; . . .i mit
b ∈ B , ωl , ωr ∈ B∗ vorkommen, wenn T von hq0 , #; . . . ; #i aus startet.
Satz
Jede Sprache der Form G(T) ist semi-entscheidbar.
Beweis.
M habe ein Band mehr als die n -Band Maschine T , verwendet Bn für die
Eingabe und simuliert T auf den ersten n Bändern. Erreicht T eine
Konfiguration mit Zustand qF , wird das Σ-Wort rechts des Kopfes auf B0
mit der M-Eingabe auf Bn verglichen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
33 / 236
Turingmaschinen
Entscheidbare Sprachen/Probleme
Definition
Die von einer dTM T aufgezählte Sprache G(T) besteht aus den Wörtern
w ∈ Σ∗ , die in T-Konfigurationen der Form hqF , ωl bw #ωr ; . . .i mit
b ∈ B , ωl , ωr ∈ B∗ vorkommen, wenn T von hq0 , #; . . . ; #i aus startet.
Satz
Jede Sprache der Form G(T) ist semi-entscheidbar.
Beweis.
M habe ein Band mehr als die n -Band Maschine T , verwendet Bn für die
Eingabe und simuliert T auf den ersten n Bändern. Erreicht T eine
Konfiguration mit Zustand qF , wird das Σ-Wort rechts des Kopfes auf B0
mit der M-Eingabe auf Bn verglichen.
Satz
Jede semi-entscheidbare Sprache ist von der Form G(T) .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
33 / 236
Turingmaschinen
Entscheidbare Sprachen/Probleme
Beweis.
Ist L ⊆ Σ∗ semi-entscheidbar, wählen wir eine 1-Band dTM M mit
L = L(M) .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
34 / 236
Turingmaschinen
Entscheidbare Sprachen/Probleme
Beweis.
Ist L ⊆ Σ∗ semi-entscheidbar, wählen wir eine 1-Band dTM M mit
L = L(M) . Die Aufzählung von L leistet eine 4-Band dTM T :
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
34 / 236
Turingmaschinen
Entscheidbare Sprachen/Probleme
Beweis.
Ist L ⊆ Σ∗ semi-entscheidbar, wählen wir eine 1-Band dTM M mit
L = L(M) . Die Aufzählung von L leistet eine 4-Band dTM T :
B0 ist leer und dient zur Aufzählung von L (s.u.);
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
34 / 236
Turingmaschinen
Entscheidbare Sprachen/Probleme
Beweis.
Ist L ⊆ Σ∗ semi-entscheidbar, wählen wir eine 1-Band dTM M mit
L = L(M) . Die Aufzählung von L leistet eine 4-Band dTM T :
B0 ist leer und dient zur Aufzählung von L (s.u.);
auf B1 werden aufsteigend die Zahlen k ∈ N erzeugt (unär);
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
34 / 236
Turingmaschinen
Entscheidbare Sprachen/Probleme
Beweis.
Ist L ⊆ Σ∗ semi-entscheidbar, wählen wir eine 1-Band dTM M mit
L = L(M) . Die Aufzählung von L leistet eine 4-Band dTM T :
B0 ist leer und dient zur Aufzählung von L (s.u.);
auf B1 werden aufsteigend die Zahlen k ∈ N erzeugt (unär);
auf B2 werden systematisch die Wörter der Länge ≤ k erzeugt;
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
34 / 236
Turingmaschinen
Entscheidbare Sprachen/Probleme
Beweis.
Ist L ⊆ Σ∗ semi-entscheidbar, wählen wir eine 1-Band dTM M mit
L = L(M) . Die Aufzählung von L leistet eine 4-Band dTM T :
B0 ist leer und dient zur Aufzählung von L (s.u.);
auf B1 werden aufsteigend die Zahlen k ∈ N erzeugt (unär);
auf B2 werden systematisch die Wörter der Länge ≤ k erzeugt;
auf B3 werden bis zu k Schritte der M-Berechnung des Worts w
auf B2 simuliert.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
34 / 236
Turingmaschinen
Entscheidbare Sprachen/Probleme
Beweis.
Ist L ⊆ Σ∗ semi-entscheidbar, wählen wir eine 1-Band dTM M mit
L = L(M) . Die Aufzählung von L leistet eine 4-Band dTM T :
B0 ist leer und dient zur Aufzählung von L (s.u.);
auf B1 werden aufsteigend die Zahlen k ∈ N erzeugt (unär);
auf B2 werden systematisch die Wörter der Länge ≤ k erzeugt;
auf B3 werden bis zu k Schritte der M-Berechnung des Worts w
auf B2 simuliert.
− Im Fall der Akzeptanz wird w nach B0 kopiert, der Kopf links davon
positioniert und der Zustand qF angenommen. Anschließend wird B0
gelöscht.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
34 / 236
Turingmaschinen
Entscheidbare Sprachen/Probleme
Beweis.
Ist L ⊆ Σ∗ semi-entscheidbar, wählen wir eine 1-Band dTM M mit
L = L(M) . Die Aufzählung von L leistet eine 4-Band dTM T :
B0 ist leer und dient zur Aufzählung von L (s.u.);
auf B1 werden aufsteigend die Zahlen k ∈ N erzeugt (unär);
auf B2 werden systematisch die Wörter der Länge ≤ k erzeugt;
auf B3 werden bis zu k Schritte der M-Berechnung des Worts w
auf B2 simuliert.
− Im Fall der Akzeptanz wird w nach B0 kopiert, der Kopf links davon
positioniert und der Zustand qF angenommen. Anschließend wird B0
gelöscht.
− Danach wird das nächste Wort auf B2 erzeugt.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
34 / 236
Turingmaschinen
Entscheidbare Sprachen/Probleme
Beweis.
Ist L ⊆ Σ∗ semi-entscheidbar, wählen wir eine 1-Band dTM M mit
L = L(M) . Die Aufzählung von L leistet eine 4-Band dTM T :
B0 ist leer und dient zur Aufzählung von L (s.u.);
auf B1 werden aufsteigend die Zahlen k ∈ N erzeugt (unär);
auf B2 werden systematisch die Wörter der Länge ≤ k erzeugt;
auf B3 werden bis zu k Schritte der M-Berechnung des Worts w
auf B2 simuliert.
− Im Fall der Akzeptanz wird w nach B0 kopiert, der Kopf links davon
positioniert und der Zustand qF angenommen. Anschließend wird B0
gelöscht.
− Danach wird das nächste Wort auf B2 erzeugt.
− Nach Bearbeitung aller Wörter der Länge ≤ k wird k auf B1 erhöht.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
34 / 236
Turingmaschinen
Entscheidbare Sprachen/Probleme
Beweis.
Ist L ⊆ Σ∗ semi-entscheidbar, wählen wir eine 1-Band dTM M mit
L = L(M) . Die Aufzählung von L leistet eine 4-Band dTM T :
B0 ist leer und dient zur Aufzählung von L (s.u.);
auf B1 werden aufsteigend die Zahlen k ∈ N erzeugt (unär);
auf B2 werden systematisch die Wörter der Länge ≤ k erzeugt;
auf B3 werden bis zu k Schritte der M-Berechnung des Worts w
auf B2 simuliert.
− Im Fall der Akzeptanz wird w nach B0 kopiert, der Kopf links davon
positioniert und der Zustand qF angenommen. Anschließend wird B0
gelöscht.
− Danach wird das nächste Wort auf B2 erzeugt.
− Nach Bearbeitung aller Wörter der Länge ≤ k wird k auf B1 erhöht.
Per Zustand kann darüber buchgeführt werden, ob alle Wörter der Länge
≤ k zu nicht akzeptierenden Haltekonfigurationen führen. Weil M
deterministisch ist, muß L(M) dann endlich sein und T kann halten.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
34 / 236
Turingmaschinen
Entscheidbare Sprachen/Probleme
Satz
Eine Sprache L ⊆ Σ∗ ist genau dann entscheidbar, wenn L und ihr
Komplement L̄ := Σ∗ − L semi-entscheidbar sind.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
35 / 236
Turingmaschinen
Entscheidbare Sprachen/Probleme
Satz
Eine Sprache L ⊆ Σ∗ ist genau dann entscheidbar, wenn L und ihr
Komplement L̄ := Σ∗ − L semi-entscheidbar sind.
Beweis.
Ist L entscheidbar, so existiert eine TM M mit L(M) = L , die immer
hält, also ist L semi-entscheidbar.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
35 / 236
Turingmaschinen
Entscheidbare Sprachen/Probleme
Satz
Eine Sprache L ⊆ Σ∗ ist genau dann entscheidbar, wenn L und ihr
Komplement L̄ := Σ∗ − L semi-entscheidbar sind.
Beweis.
Ist L entscheidbar, so existiert eine TM M mit L(M) = L , die immer
hält, also ist L semi-entscheidbar. Mit obiger Konstruktion erhalten wir
eine dTM M0 mit L = L(M0 ) , die immer hält.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
35 / 236
Turingmaschinen
Entscheidbare Sprachen/Probleme
Satz
Eine Sprache L ⊆ Σ∗ ist genau dann entscheidbar, wenn L und ihr
Komplement L̄ := Σ∗ − L semi-entscheidbar sind.
Beweis.
Ist L entscheidbar, so existiert eine TM M mit L(M) = L , die immer
hält, also ist L semi-entscheidbar. Mit obiger Konstruktion erhalten wir
eine dTM M0 mit L = L(M0 ) , die immer hält. Ein neuer Endzustand q∗
und neue Übergänge hq, bi 7→ hq∗ , bi bzw. hq∗ , hb, Nii falls q 6= qF und
0
0
hq, biδ 0 = ∅ , liefern dann eine dTM M̄ mit L(M̄ ) = L̄ .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
35 / 236
Turingmaschinen
Entscheidbare Sprachen/Probleme
Satz
Eine Sprache L ⊆ Σ∗ ist genau dann entscheidbar, wenn L und ihr
Komplement L̄ := Σ∗ − L semi-entscheidbar sind.
Beweis.
Ist L entscheidbar, so existiert eine TM M mit L(M) = L , die immer
hält, also ist L semi-entscheidbar. Mit obiger Konstruktion erhalten wir
eine dTM M0 mit L = L(M0 ) , die immer hält. Ein neuer Endzustand q∗
und neue Übergänge hq, bi 7→ hq∗ , bi bzw. hq∗ , hb, Nii falls q 6= qF und
0
0
hq, biδ 0 = ∅ , liefern dann eine dTM M̄ mit L(M̄ ) = L̄ .
Umgekehrt lassen wir dTMs M und M̄ mit L(M) = L und L(M̄) = L̄
mittels Interleaving dieselbe Eingabe bearbeiten. Die resultierende Maschine
K hält genau dann, wenn eine der Teilmaschinen hält, und sie möge genau
dann akzeptieren, wenn M hält und akzeptiert, oder wenn M̄ hält und
nicht akzeptiert. Dann hält K immer und erfüllt L(K) = L .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
35 / 236
Turingmaschinen
Entscheidbare Sprachen/Probleme
Satz
Eine Sprache L ⊆ Σ∗ ist genau dann entscheidbar, wenn L und ihr
Komplement L̄ := Σ∗ − L semi-entscheidbar sind.
Beweis.
Ist L entscheidbar, so existiert eine TM M mit L(M) = L , die immer
hält, also ist L semi-entscheidbar. Mit obiger Konstruktion erhalten wir
eine dTM M0 mit L = L(M0 ) , die immer hält. Ein neuer Endzustand q∗
und neue Übergänge hq, bi 7→ hq∗ , bi bzw. hq∗ , hb, Nii falls q 6= qF und
0
0
hq, biδ 0 = ∅ , liefern dann eine dTM M̄ mit L(M̄ ) = L̄ .
Umgekehrt lassen wir dTMs M und M̄ mit L(M) = L und L(M̄) = L̄
mittels Interleaving dieselbe Eingabe bearbeiten. Die resultierende Maschine
K hält genau dann, wenn eine der Teilmaschinen hält, und sie möge genau
dann akzeptieren, wenn M hält und akzeptiert, oder wenn M̄ hält und
nicht akzeptiert. Dann hält K immer und erfüllt L(K) = L .
In beiden Fällen ist die Verwendung von dTMs wesentlich.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
35 / 236
Turingmaschinen
Die Chomsky-Hierarchie formaler Sprachen
Die Chomsky-Hierarchie formaler Sprachen
Nicht alle Sprachen sind semi-entscheidbar:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
36 / 236
Turingmaschinen
Die Chomsky-Hierarchie formaler Sprachen
Die Chomsky-Hierarchie formaler Sprachen
Nicht alle Sprachen sind semi-entscheidbar: im Vorgriff auf Kapitel 7 stellen
wir fest, dass jede TM M über Σ = {0, 1} sich durch ein Binärwort c(M)
codieren läßt.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
36 / 236
Turingmaschinen
Die Chomsky-Hierarchie formaler Sprachen
Die Chomsky-Hierarchie formaler Sprachen
Nicht alle Sprachen sind semi-entscheidbar: im Vorgriff auf Kapitel 7 stellen
wir fest, dass jede TM M über Σ = {0, 1} sich durch ein Binärwort c(M)
codieren läßt. Damit ist die Menge der möglichen Turingmaschinen über
{0, 1} abzählbar (vergl. Folien für Theoretische Informatik 1, Mathematischer Anhang), also auch die Menge der semi-entscheidbaren Sprachen
über {0, 1} . (Die Einschränkung auf das Alphabet {0, 1} ist unerheblich.)
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
36 / 236
Turingmaschinen
Die Chomsky-Hierarchie formaler Sprachen
Die Chomsky-Hierarchie formaler Sprachen
Nicht alle Sprachen sind semi-entscheidbar: im Vorgriff auf Kapitel 7 stellen
wir fest, dass jede TM M über Σ = {0, 1} sich durch ein Binärwort c(M)
codieren läßt. Damit ist die Menge der möglichen Turingmaschinen über
{0, 1} abzählbar (vergl. Folien für Theoretische Informatik 1, Mathematischer Anhang), also auch die Menge der semi-entscheidbaren Sprachen
über {0, 1} . (Die Einschränkung auf das Alphabet {0, 1} ist unerheblich.)
Andererseits ist die Potenzmenge P(Σ∗ ) überabzählbar.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
36 / 236
Turingmaschinen
Die Chomsky-Hierarchie formaler Sprachen
Die Chomsky-Hierarchie formaler Sprachen
Nicht alle Sprachen sind semi-entscheidbar: im Vorgriff auf Kapitel 7 stellen
wir fest, dass jede TM M über Σ = {0, 1} sich durch ein Binärwort c(M)
codieren läßt. Damit ist die Menge der möglichen Turingmaschinen über
{0, 1} abzählbar (vergl. Folien für Theoretische Informatik 1, Mathematischer Anhang), also auch die Menge der semi-entscheidbaren Sprachen
über {0, 1} . (Die Einschränkung auf das Alphabet {0, 1} ist unerheblich.)
Andererseits ist die Potenzmenge P(Σ∗ ) überabzählbar. Die meisten
Sprachen über {0, 1} sind also nicht semi-entscheidbar.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
36 / 236
Turingmaschinen
Die Chomsky-Hierarchie formaler Sprachen
Die Chomsky-Hierarchie formaler Sprachen
Nicht alle Sprachen sind semi-entscheidbar: im Vorgriff auf Kapitel 7 stellen
wir fest, dass jede TM M über Σ = {0, 1} sich durch ein Binärwort c(M)
codieren läßt. Damit ist die Menge der möglichen Turingmaschinen über
{0, 1} abzählbar (vergl. Folien für Theoretische Informatik 1, Mathematischer Anhang), also auch die Menge der semi-entscheidbaren Sprachen
über {0, 1} . (Die Einschränkung auf das Alphabet {0, 1} ist unerheblich.)
Andererseits ist die Potenzmenge P(Σ∗ ) überabzählbar. Die meisten
Sprachen über {0, 1} sind also nicht semi-entscheidbar. Konkret gilt dies
etwa für
Lcode := { w ∈ {0, 1}∗ : w = c(M) für eine TM M mit w ∈
/ L(M) }
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
36 / 236
Turingmaschinen
Die Chomsky-Hierarchie formaler Sprachen
Die Chomsky-Hierarchie formaler Sprachen
Nicht alle Sprachen sind semi-entscheidbar: im Vorgriff auf Kapitel 7 stellen
wir fest, dass jede TM M über Σ = {0, 1} sich durch ein Binärwort c(M)
codieren läßt. Damit ist die Menge der möglichen Turingmaschinen über
{0, 1} abzählbar (vergl. Folien für Theoretische Informatik 1, Mathematischer Anhang), also auch die Menge der semi-entscheidbaren Sprachen
über {0, 1} . (Die Einschränkung auf das Alphabet {0, 1} ist unerheblich.)
Andererseits ist die Potenzmenge P(Σ∗ ) überabzählbar. Die meisten
Sprachen über {0, 1} sind also nicht semi-entscheidbar. Konkret gilt dies
etwa für
Lcode := { w ∈ {0, 1}∗ : w = c(M) für eine TM M mit w ∈
/ L(M) }
Lcode besteht also aus den Binärcodes aller TMs, die ihr eigenes Codewort
nicht akzeptieren.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
36 / 236
Turingmaschinen
Die Chomsky-Hierarchie formaler Sprachen
Satz
Lcode ist nicht semi-entscheidbar.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
37 / 236
Turingmaschinen
Die Chomsky-Hierarchie formaler Sprachen
Satz
Lcode ist nicht semi-entscheidbar.
Beweis.
Wenn eine TM M mit L(M) = Lcode existiert, erfüllt w = c(M) die
Bedingung w ∈ L(M) = Lcode gdw. w ∈
/ L(M) = Lcode , Widerspruch.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
37 / 236
Turingmaschinen
Die Chomsky-Hierarchie formaler Sprachen
Satz
Lcode ist nicht semi-entscheidbar.
Beweis.
Wenn eine TM M mit L(M) = Lcode existiert, erfüllt w = c(M) die
Bedingung w ∈ L(M) = Lcode gdw. w ∈
/ L(M) = Lcode , Widerspruch.
Die Trennung der entscheidbaren von den semi-entscheidbaren Sprachen
erfolgt in Kapitel 7 mit Hilfe der Sprache
Lhalt := { c(M)w : M TM, die bei Eingabe w hält }
die semi-entscheidbar aber nicht entscheidbar ist (Halteproblem).
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
37 / 236
Turingmaschinen
Die Chomsky-Hierarchie formaler Sprachen
Satz
Jede kontextfreie Sprache ist entscheidbar.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
38 / 236
Turingmaschinen
Die Chomsky-Hierarchie formaler Sprachen
Satz
Jede kontextfreie Sprache ist entscheidbar.
Beweis.
Ein Kellerautomat kann durch eine 2-Band Turingmaschine simuliert
werden: der Kopf auf B0 fährt zum linken Rand der Eingabe und B1 dient
zur Simulierung des Kellers, der sich von der aktuellen Kopfposition nach
rechts erstrecken möge (vergl. HA). Damit ist jede kontextfreie Sprache
semi-entscheidbar.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
38 / 236
Turingmaschinen
Die Chomsky-Hierarchie formaler Sprachen
Satz
Jede kontextfreie Sprache ist entscheidbar.
Beweis.
Ein Kellerautomat kann durch eine 2-Band Turingmaschine simuliert
werden: der Kopf auf B0 fährt zum linken Rand der Eingabe und B1 dient
zur Simulierung des Kellers, der sich von der aktuellen Kopfposition nach
rechts erstrecken möge (vergl. HA). Damit ist jede kontextfreie Sprache
semi-entscheidbar.
Um die Entscheidbarkeit sicherzustellen, müssen wir mit einem Kellerautomaten beginnen, der immer hält.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
38 / 236
Turingmaschinen
Die Chomsky-Hierarchie formaler Sprachen
Satz
Jede kontextfreie Sprache ist entscheidbar.
Beweis.
Ein Kellerautomat kann durch eine 2-Band Turingmaschine simuliert
werden: der Kopf auf B0 fährt zum linken Rand der Eingabe und B1 dient
zur Simulierung des Kellers, der sich von der aktuellen Kopfposition nach
rechts erstrecken möge (vergl. HA). Damit ist jede kontextfreie Sprache
semi-entscheidbar.
Um die Entscheidbarkeit sicherzustellen, müssen wir mit einem Kellerautomaten beginnen, der immer hält. Dies ist sicher der Fall, wenn keine
spontanen Übergänge auftreten.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
38 / 236
Turingmaschinen
Die Chomsky-Hierarchie formaler Sprachen
Satz
Jede kontextfreie Sprache ist entscheidbar.
Beweis.
Ein Kellerautomat kann durch eine 2-Band Turingmaschine simuliert
werden: der Kopf auf B0 fährt zum linken Rand der Eingabe und B1 dient
zur Simulierung des Kellers, der sich von der aktuellen Kopfposition nach
rechts erstrecken möge (vergl. HA). Damit ist jede kontextfreie Sprache
semi-entscheidbar.
Um die Entscheidbarkeit sicherzustellen, müssen wir mit einem Kellerautomaten beginnen, der immer hält. Dies ist sicher der Fall, wenn keine
spontanen Übergänge auftreten. Und letzteres kann garantiert werden, wenn
der Kellerautomat ausgehend von einer kontextfreien Grammatik in
Greibach Normalform konstruiert wird (vergl. Skript zu TheoInf 1).
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
38 / 236
Turingmaschinen
Die Chomsky-Hierarchie formaler Sprachen
Satz
Jede kontextfreie Sprache ist entscheidbar.
Beweis.
Ein Kellerautomat kann durch eine 2-Band Turingmaschine simuliert
werden: der Kopf auf B0 fährt zum linken Rand der Eingabe und B1 dient
zur Simulierung des Kellers, der sich von der aktuellen Kopfposition nach
rechts erstrecken möge (vergl. HA). Damit ist jede kontextfreie Sprache
semi-entscheidbar.
Um die Entscheidbarkeit sicherzustellen, müssen wir mit einem Kellerautomaten beginnen, der immer hält. Dies ist sicher der Fall, wenn keine
spontanen Übergänge auftreten. Und letzteres kann garantiert werden, wenn
der Kellerautomat ausgehend von einer kontextfreien Grammatik in
Greibach Normalform konstruiert wird (vergl. Skript zu TheoInf 1).
Alternativ könnte man den CYK-Algorithmus per TM implementieren.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
38 / 236
Turingmaschinen
Die Chomsky-Hierarchie formaler Sprachen
Die betrachteten Klassen formaler Sprachen über Σ bilden eine echte
Hierarchie; wir geben Trenn-Beispiele zu den echt kleineren Klassen an:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
39 / 236
Turingmaschinen
Die Chomsky-Hierarchie formaler Sprachen
Die betrachteten Klassen formaler Sprachen über Σ bilden eine echte
Hierarchie; wir geben Trenn-Beispiele zu den echt kleineren Klassen an:
Alle Sprachen, Lcode ;
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
39 / 236
Turingmaschinen
Die Chomsky-Hierarchie formaler Sprachen
Die betrachteten Klassen formaler Sprachen über Σ bilden eine echte
Hierarchie; wir geben Trenn-Beispiele zu den echt kleineren Klassen an:
Alle Sprachen, Lcode ;
die semi-entscheidbaren Sprachen, Lhalt , s.u.;
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
39 / 236
Turingmaschinen
Die Chomsky-Hierarchie formaler Sprachen
Die betrachteten Klassen formaler Sprachen über Σ bilden eine echte
Hierarchie; wir geben Trenn-Beispiele zu den echt kleineren Klassen an:
Alle Sprachen, Lcode ;
die semi-entscheidbaren Sprachen, Lhalt , s.u.;
die entscheidbaren Sprachen, { an b n c n : n ∈ N } ;
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
39 / 236
Turingmaschinen
Die Chomsky-Hierarchie formaler Sprachen
Die betrachteten Klassen formaler Sprachen über Σ bilden eine echte
Hierarchie; wir geben Trenn-Beispiele zu den echt kleineren Klassen an:
Alle Sprachen, Lcode ;
die semi-entscheidbaren Sprachen, Lhalt , s.u.;
die entscheidbaren Sprachen, { an b n c n : n ∈ N } ;
die kontextfreien Sprachen, { w sp(w ) : w ∈ Σ∗ } ;
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
39 / 236
Turingmaschinen
Die Chomsky-Hierarchie formaler Sprachen
Die betrachteten Klassen formaler Sprachen über Σ bilden eine echte
Hierarchie; wir geben Trenn-Beispiele zu den echt kleineren Klassen an:
Alle Sprachen, Lcode ;
die semi-entscheidbaren Sprachen, Lhalt , s.u.;
die entscheidbaren Sprachen, { an b n c n : n ∈ N } ;
die kontextfreien Sprachen, { w sp(w ) : w ∈ Σ∗ } ;
die deterministisch kontextfreien Sprachen; { an b n : n ∈ N } ;
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
39 / 236
Turingmaschinen
Die Chomsky-Hierarchie formaler Sprachen
Die betrachteten Klassen formaler Sprachen über Σ bilden eine echte
Hierarchie; wir geben Trenn-Beispiele zu den echt kleineren Klassen an:
Alle Sprachen, Lcode ;
die semi-entscheidbaren Sprachen, Lhalt , s.u.;
die entscheidbaren Sprachen, { an b n c n : n ∈ N } ;
die kontextfreien Sprachen, { w sp(w ) : w ∈ Σ∗ } ;
die deterministisch kontextfreien Sprachen; { an b n : n ∈ N } ;
die regulären Sprachen, {a2n : n ∈ N } ;
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
39 / 236
Turingmaschinen
Die Chomsky-Hierarchie formaler Sprachen
Die betrachteten Klassen formaler Sprachen über Σ bilden eine echte
Hierarchie; wir geben Trenn-Beispiele zu den echt kleineren Klassen an:
Alle Sprachen, Lcode ;
die semi-entscheidbaren Sprachen, Lhalt , s.u.;
die entscheidbaren Sprachen, { an b n c n : n ∈ N } ;
die kontextfreien Sprachen, { w sp(w ) : w ∈ Σ∗ } ;
die deterministisch kontextfreien Sprachen; { an b n : n ∈ N } ;
die regulären Sprachen, {a2n : n ∈ N } ;
die endlichen Sprachen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
39 / 236
Turingmaschinen
Die Chomsky-Hierarchie formaler Sprachen
Die betrachteten Klassen formaler Sprachen über Σ bilden eine echte
Hierarchie; wir geben Trenn-Beispiele zu den echt kleineren Klassen an:
Alle Sprachen, Lcode ;
die semi-entscheidbaren Sprachen, Lhalt , s.u.;
die entscheidbaren Sprachen, { an b n c n : n ∈ N } ;
die kontextfreien Sprachen, { w sp(w ) : w ∈ Σ∗ } ;
die deterministisch kontextfreien Sprachen; { an b n : n ∈ N } ;
die regulären Sprachen, {a2n : n ∈ N } ;
die endlichen Sprachen.
Nicht betrachtet wurde die Klasse der kontext-sensitiven Sprachen, echt
zwischen den Klassen der kontextfreien und der entscheidbaren Sprachen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
39 / 236
Turingmaschinen
Die Chomsky-Hierarchie formaler Sprachen
Die betrachteten Klassen formaler Sprachen über Σ bilden eine echte
Hierarchie; wir geben Trenn-Beispiele zu den echt kleineren Klassen an:
Alle Sprachen, Lcode ;
die semi-entscheidbaren Sprachen, Lhalt , s.u.;
die entscheidbaren Sprachen, { an b n c n : n ∈ N } ;
die kontextfreien Sprachen, { w sp(w ) : w ∈ Σ∗ } ;
die deterministisch kontextfreien Sprachen; { an b n : n ∈ N } ;
die regulären Sprachen, {a2n : n ∈ N } ;
die endlichen Sprachen.
Nicht betrachtet wurde die Klasse der kontext-sensitiven Sprachen, echt
zwischen den Klassen der kontextfreien und der entscheidbaren Sprachen.
Man spricht in diesem Zusammenhang auch von der Chomsky-Hierarchie.
Sie wurde von Noam Chomsky Mitte der 1950’er Jahre entwickelt.
Allerdings lag der Schwerpunkt damals auf linguistischen Fragestellungen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
39 / 236
Turingmaschinen
Abschlußeigenschaften (semi-)entscheidbarer Sprachen
Abschlußeigenschaften (semi-)entscheidbarer Sprachen
Satz
Die Klasse der (semi-)entscheidbaren Sprachen ist abgeschlossen unter
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
40 / 236
Turingmaschinen
Abschlußeigenschaften (semi-)entscheidbarer Sprachen
Abschlußeigenschaften (semi-)entscheidbarer Sprachen
Satz
Die Klasse der (semi-)entscheidbaren Sprachen ist abgeschlossen unter
endlicher Vereinigung und endlichem Durchschnitt;
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
40 / 236
Turingmaschinen
Abschlußeigenschaften (semi-)entscheidbarer Sprachen
Abschlußeigenschaften (semi-)entscheidbarer Sprachen
Satz
Die Klasse der (semi-)entscheidbaren Sprachen ist abgeschlossen unter
endlicher Vereinigung und endlichem Durchschnitt;
Konkatenation und Iteration (Kleene Stern);
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
40 / 236
Turingmaschinen
Abschlußeigenschaften (semi-)entscheidbarer Sprachen
Abschlußeigenschaften (semi-)entscheidbarer Sprachen
Satz
Die Klasse der (semi-)entscheidbaren Sprachen ist abgeschlossen unter
endlicher Vereinigung und endlichem Durchschnitt;
Konkatenation und Iteration (Kleene Stern);
Spiegelung und Shuffle;
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
40 / 236
Turingmaschinen
Abschlußeigenschaften (semi-)entscheidbarer Sprachen
Abschlußeigenschaften (semi-)entscheidbarer Sprachen
Satz
Die Klasse der (semi-)entscheidbaren Sprachen ist abgeschlossen unter
endlicher Vereinigung und endlichem Durchschnitt;
Konkatenation und Iteration (Kleene Stern);
Spiegelung und Shuffle;
Residuierung bzgl. endlicher Sprachen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
40 / 236
Turingmaschinen
Abschlußeigenschaften (semi-)entscheidbarer Sprachen
Abschlußeigenschaften (semi-)entscheidbarer Sprachen
Satz
Die Klasse der (semi-)entscheidbaren Sprachen ist abgeschlossen unter
endlicher Vereinigung und endlichem Durchschnitt;
Konkatenation und Iteration (Kleene Stern);
Spiegelung und Shuffle;
Residuierung bzgl. endlicher Sprachen.
homomorphen Bildern und Urbildern.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
40 / 236
Turingmaschinen
Abschlußeigenschaften (semi-)entscheidbarer Sprachen
Abschlußeigenschaften (semi-)entscheidbarer Sprachen
Satz
Die Klasse der (semi-)entscheidbaren Sprachen ist abgeschlossen unter
endlicher Vereinigung und endlichem Durchschnitt;
Konkatenation und Iteration (Kleene Stern);
Spiegelung und Shuffle;
Residuierung bzgl. endlicher Sprachen.
homomorphen Bildern und Urbildern.
Darüberhinaus sind die entscheidbaren Sprachen unter Komplementbildung
abgeschlossen, die semi-entscheidbaren Sprachen aber nicht.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
40 / 236
Turingmaschinen
Abschlußeigenschaften (semi-)entscheidbarer Sprachen
Abschlußeigenschaften (semi-)entscheidbarer Sprachen
Satz
Die Klasse der (semi-)entscheidbaren Sprachen ist abgeschlossen unter
endlicher Vereinigung und endlichem Durchschnitt;
Konkatenation und Iteration (Kleene Stern);
Spiegelung und Shuffle;
Residuierung bzgl. endlicher Sprachen.
homomorphen Bildern und Urbildern.
Darüberhinaus sind die entscheidbaren Sprachen unter Komplementbildung
abgeschlossen, die semi-entscheidbaren Sprachen aber nicht.
Beweis
Vorbemerkung: Bei s-e Sprachen erfordert die Simulation mehrerer dTMs
Interleaving.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
40 / 236
Turingmaschinen
Abschlußeigenschaften (semi-)entscheidbarer Sprachen
Abschlußeigenschaften (semi-)entscheidbarer Sprachen
Satz
Die Klasse der (semi-)entscheidbaren Sprachen ist abgeschlossen unter
endlicher Vereinigung und endlichem Durchschnitt;
Konkatenation und Iteration (Kleene Stern);
Spiegelung und Shuffle;
Residuierung bzgl. endlicher Sprachen.
homomorphen Bildern und Urbildern.
Darüberhinaus sind die entscheidbaren Sprachen unter Komplementbildung
abgeschlossen, die semi-entscheidbaren Sprachen aber nicht.
Beweis
Vorbemerkung: Bei s-e Sprachen erfordert die Simulation mehrerer dTMs
Interleaving. Diese Einschränkung entfällt bei der Verwendung von nTMs.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
40 / 236
Turingmaschinen
Abschlußeigenschaften (semi-)entscheidbarer Sprachen
Beweis (Fortsetzung).
Zu endlicher Vereinigung, Shuffle und Residuierung vergl. HA.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
41 / 236
Turingmaschinen
Abschlußeigenschaften (semi-)entscheidbarer Sprachen
Beweis (Fortsetzung).
Zu endlicher Vereinigung, Shuffle und Residuierung vergl. HA.
Durchschnitte handhabt man wie Vereinigungen, nur die Akzeptanzbedingung ist insoweit anzupassen, als beide Maschinen akzeptieren müssen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
41 / 236
Turingmaschinen
Abschlußeigenschaften (semi-)entscheidbarer Sprachen
Beweis (Fortsetzung).
Zu endlicher Vereinigung, Shuffle und Residuierung vergl. HA.
Durchschnitte handhabt man wie Vereinigungen, nur die Akzeptanzbedingung ist insoweit anzupassen, als beide Maschinen akzeptieren müssen.
Für die Spiegelung verwendet man ein neues Band um die Eingabe zu
spiegeln, bevor die Maschine für die ursprüngliche Sprache simuliert wird.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
41 / 236
Turingmaschinen
Abschlußeigenschaften (semi-)entscheidbarer Sprachen
Beweis (Fortsetzung).
Zu endlicher Vereinigung, Shuffle und Residuierung vergl. HA.
Durchschnitte handhabt man wie Vereinigungen, nur die Akzeptanzbedingung ist insoweit anzupassen, als beide Maschinen akzeptieren müssen.
Für die Spiegelung verwendet man ein neues Band um die Eingabe zu
spiegeln, bevor die Maschine für die ursprüngliche Sprache simuliert wird.
Der Abschluß entscheidbarer Sprachen unter Komplementbildung folgt aus
ihrer Charakterisierung mittels semi-entscheidbarer Sprachen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
41 / 236
Turingmaschinen
Abschlußeigenschaften (semi-)entscheidbarer Sprachen
Beweis (Fortsetzung).
Zu endlicher Vereinigung, Shuffle und Residuierung vergl. HA.
Durchschnitte handhabt man wie Vereinigungen, nur die Akzeptanzbedingung ist insoweit anzupassen, als beide Maschinen akzeptieren müssen.
Für die Spiegelung verwendet man ein neues Band um die Eingabe zu
spiegeln, bevor die Maschine für die ursprüngliche Sprache simuliert wird.
Der Abschluß entscheidbarer Sprachen unter Komplementbildung folgt aus
ihrer Charakterisierung mittels semi-entscheidbarer Sprachen. In Kapitel 7
zeigen wir, dass das Komplement von Lhalt nicht semi-entscheidbar ist.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
41 / 236
Turingmaschinen
Abschlußeigenschaften (semi-)entscheidbarer Sprachen
Beweis (Fortsetzung).
Zu endlicher Vereinigung, Shuffle und Residuierung vergl. HA.
Durchschnitte handhabt man wie Vereinigungen, nur die Akzeptanzbedingung ist insoweit anzupassen, als beide Maschinen akzeptieren müssen.
Für die Spiegelung verwendet man ein neues Band um die Eingabe zu
spiegeln, bevor die Maschine für die ursprüngliche Sprache simuliert wird.
Der Abschluß entscheidbarer Sprachen unter Komplementbildung folgt aus
ihrer Charakterisierung mittels semi-entscheidbarer Sprachen. In Kapitel 7
zeigen wir, dass das Komplement von Lhalt nicht semi-entscheidbar ist.
Im Falle der Konkatenation kann die Eingabe zufällig in zwei zusammenhängende Teile zerlegt werden, die dann als Eingabe für die zu simulierenden Maschinen dienen; dies liefert eine nTM.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
41 / 236
Turingmaschinen
Abschlußeigenschaften (semi-)entscheidbarer Sprachen
Beweis (Fortsetzung).
Zu endlicher Vereinigung, Shuffle und Residuierung vergl. HA.
Durchschnitte handhabt man wie Vereinigungen, nur die Akzeptanzbedingung ist insoweit anzupassen, als beide Maschinen akzeptieren müssen.
Für die Spiegelung verwendet man ein neues Band um die Eingabe zu
spiegeln, bevor die Maschine für die ursprüngliche Sprache simuliert wird.
Der Abschluß entscheidbarer Sprachen unter Komplementbildung folgt aus
ihrer Charakterisierung mittels semi-entscheidbarer Sprachen. In Kapitel 7
zeigen wir, dass das Komplement von Lhalt nicht semi-entscheidbar ist.
Im Falle der Konkatenation kann die Eingabe zufällig in zwei zusammenhängende Teile zerlegt werden, die dann als Eingabe für die zu simulierenden Maschinen dienen; dies liefert eine nTM.
Für die Iteration ist dagegen eine Zerlegung in endlich viele Teile
erforderlich, die alle als Eingaben für dieselbe Maschine zu testen sind:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
41 / 236
Turingmaschinen
Abschlußeigenschaften (semi-)entscheidbarer Sprachen
Beweis (Fortsetzung).
Im Fall L(M) = L habe M0 für L∗ ein neues zweispuriges Eingabeband
Bn . Parallel zur nichtleeren Eingabe schreibt man ein mit 1 beginnendens
zufälliges Binärwort derselben Länge auf die zweite Spur.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
42 / 236
Turingmaschinen
Abschlußeigenschaften (semi-)entscheidbarer Sprachen
Beweis (Fortsetzung).
Im Fall L(M) = L habe M0 für L∗ ein neues zweispuriges Eingabeband
Bn . Parallel zur nichtleeren Eingabe schreibt man ein mit 1 beginnendens
zufälliges Binärwort derselben Länge auf die zweite Spur. Dessen Einsen
markieren die Anfänge der Teilwörter der Zerlegung, die nun als Eingaben
von M zu testen sind, ob sie zu L gehören.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
42 / 236
Turingmaschinen
Abschlußeigenschaften (semi-)entscheidbarer Sprachen
Beweis (Fortsetzung).
Im Fall L(M) = L habe M0 für L∗ ein neues zweispuriges Eingabeband
Bn . Parallel zur nichtleeren Eingabe schreibt man ein mit 1 beginnendens
zufälliges Binärwort derselben Länge auf die zweite Spur. Dessen Einsen
markieren die Anfänge der Teilwörter der Zerlegung, die nun als Eingaben
von M zu testen sind, ob sie zu L gehören. Zudem ist ε zu akzeptieren.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
42 / 236
Turingmaschinen
Abschlußeigenschaften (semi-)entscheidbarer Sprachen
Beweis (Fortsetzung).
Im Fall L(M) = L habe M0 für L∗ ein neues zweispuriges Eingabeband
Bn . Parallel zur nichtleeren Eingabe schreibt man ein mit 1 beginnendens
zufälliges Binärwort derselben Länge auf die zweite Spur. Dessen Einsen
markieren die Anfänge der Teilwörter der Zerlegung, die nun als Eingaben
von M zu testen sind, ob sie zu L gehören. Zudem ist ε zu akzeptieren.
Jeder Homomorphismus Σ∗ h Γ∗ ist durch seine Einschränkung auf
Σ ⊆ Σ∗ bestimmt, d.h. durch endlich viele Werte h(a) , a ∈ Σ .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
42 / 236
Turingmaschinen
Abschlußeigenschaften (semi-)entscheidbarer Sprachen
Beweis (Fortsetzung).
Im Fall L(M) = L habe M0 für L∗ ein neues zweispuriges Eingabeband
Bn . Parallel zur nichtleeren Eingabe schreibt man ein mit 1 beginnendens
zufälliges Binärwort derselben Länge auf die zweite Spur. Dessen Einsen
markieren die Anfänge der Teilwörter der Zerlegung, die nun als Eingaben
von M zu testen sind, ob sie zu L gehören. Zudem ist ε zu akzeptieren.
Jeder Homomorphismus Σ∗ h Γ∗ ist durch seine Einschränkung auf
Σ ⊆ Σ∗ bestimmt, d.h. durch endlich viele Werte h(a) , a ∈ Σ .
Wird K ⊆ Γ∗ von einer n -Band Maschine N akzeptiert, so möge die
Maschine M für h−1 (K ) ein neues Band Bn für die Eingabe w haben.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
42 / 236
Turingmaschinen
Abschlußeigenschaften (semi-)entscheidbarer Sprachen
Beweis (Fortsetzung).
Im Fall L(M) = L habe M0 für L∗ ein neues zweispuriges Eingabeband
Bn . Parallel zur nichtleeren Eingabe schreibt man ein mit 1 beginnendens
zufälliges Binärwort derselben Länge auf die zweite Spur. Dessen Einsen
markieren die Anfänge der Teilwörter der Zerlegung, die nun als Eingaben
von M zu testen sind, ob sie zu L gehören. Zudem ist ε zu akzeptieren.
Jeder Homomorphismus Σ∗ h Γ∗ ist durch seine Einschränkung auf
Σ ⊆ Σ∗ bestimmt, d.h. durch endlich viele Werte h(a) , a ∈ Σ .
Wird K ⊆ Γ∗ von einer n -Band Maschine N akzeptiert, so möge die
Maschine M für h−1 (K ) ein neues Band Bn für die Eingabe w haben.
Dann wird h(w ) auf B0 geschrieben, und N mit dieser Eingabe simuliert.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
42 / 236
Turingmaschinen
Abschlußeigenschaften (semi-)entscheidbarer Sprachen
Beweis (Fortsetzung).
Im Fall L(M) = L habe M0 für L∗ ein neues zweispuriges Eingabeband
Bn . Parallel zur nichtleeren Eingabe schreibt man ein mit 1 beginnendens
zufälliges Binärwort derselben Länge auf die zweite Spur. Dessen Einsen
markieren die Anfänge der Teilwörter der Zerlegung, die nun als Eingaben
von M zu testen sind, ob sie zu L gehören. Zudem ist ε zu akzeptieren.
Jeder Homomorphismus Σ∗ h Γ∗ ist durch seine Einschränkung auf
Σ ⊆ Σ∗ bestimmt, d.h. durch endlich viele Werte h(a) , a ∈ Σ .
Wird K ⊆ Γ∗ von einer n -Band Maschine N akzeptiert, so möge die
Maschine M für h−1 (K ) ein neues Band Bn für die Eingabe w haben.
Dann wird h(w ) auf B0 geschrieben, und N mit dieser Eingabe simuliert.
Falls L = L(M) ⊆ Σ∗ , ist die Eingabe w ∈ Γ∗ in h -Bilder der Buchstaben
aus Σ zu zerlegen, entweder nichtdeterministisch, oder systematisch.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
42 / 236
Turingmaschinen
Abschlußeigenschaften (semi-)entscheidbarer Sprachen
Beweis (Fortsetzung).
Im Fall L(M) = L habe M0 für L∗ ein neues zweispuriges Eingabeband
Bn . Parallel zur nichtleeren Eingabe schreibt man ein mit 1 beginnendens
zufälliges Binärwort derselben Länge auf die zweite Spur. Dessen Einsen
markieren die Anfänge der Teilwörter der Zerlegung, die nun als Eingaben
von M zu testen sind, ob sie zu L gehören. Zudem ist ε zu akzeptieren.
Jeder Homomorphismus Σ∗ h Γ∗ ist durch seine Einschränkung auf
Σ ⊆ Σ∗ bestimmt, d.h. durch endlich viele Werte h(a) , a ∈ Σ .
Wird K ⊆ Γ∗ von einer n -Band Maschine N akzeptiert, so möge die
Maschine M für h−1 (K ) ein neues Band Bn für die Eingabe w haben.
Dann wird h(w ) auf B0 geschrieben, und N mit dieser Eingabe simuliert.
Falls L = L(M) ⊆ Σ∗ , ist die Eingabe w ∈ Γ∗ in h -Bilder der Buchstaben
aus Σ zu zerlegen, entweder nichtdeterministisch, oder systematisch. Mit
den resultierenen h -Urbildern von w ist dann M zu simulieren.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
42 / 236
Turingmaschinen
Abschlußeigenschaften (semi-)entscheidbarer Sprachen
Beweis (Fortsetzung).
Im Fall L(M) = L habe M0 für L∗ ein neues zweispuriges Eingabeband
Bn . Parallel zur nichtleeren Eingabe schreibt man ein mit 1 beginnendens
zufälliges Binärwort derselben Länge auf die zweite Spur. Dessen Einsen
markieren die Anfänge der Teilwörter der Zerlegung, die nun als Eingaben
von M zu testen sind, ob sie zu L gehören. Zudem ist ε zu akzeptieren.
Jeder Homomorphismus Σ∗ h Γ∗ ist durch seine Einschränkung auf
Σ ⊆ Σ∗ bestimmt, d.h. durch endlich viele Werte h(a) , a ∈ Σ .
Wird K ⊆ Γ∗ von einer n -Band Maschine N akzeptiert, so möge die
Maschine M für h−1 (K ) ein neues Band Bn für die Eingabe w haben.
Dann wird h(w ) auf B0 geschrieben, und N mit dieser Eingabe simuliert.
Falls L = L(M) ⊆ Σ∗ , ist die Eingabe w ∈ Γ∗ in h -Bilder der Buchstaben
aus Σ zu zerlegen, entweder nichtdeterministisch, oder systematisch. Mit
den resultierenen h -Urbildern von w ist dann M zu simulieren. Gehört
mindestens ein solches Urbild zu L , folgt w ∈ h[L] .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
42 / 236
Turingmaschinen
Abschlußeigenschaften (semi-)entscheidbarer Sprachen
Satz
(Semi-)entscheidbare Sprachen sind nicht unter abzählbar unendlichen
Vereinigungen abgeschlossen, entscheidbare Sprachen auch nicht unter
abzählbar unendlichen Durchschnitten und unter Residuierung mit
unendlichen Sprachen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
43 / 236
Turingmaschinen
Abschlußeigenschaften (semi-)entscheidbarer Sprachen
Satz
(Semi-)entscheidbare Sprachen sind nicht unter abzählbar unendlichen
Vereinigungen abgeschlossen, entscheidbare Sprachen auch nicht unter
abzählbar unendlichen Durchschnitten und unter Residuierung mit
unendlichen Sprachen.
Beweis.
Die Sprachen Lcode bzw. Lhalt sind abzählbar unendliche Vereinigungen
regulärer Singleton-Sprachen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
43 / 236
Turingmaschinen
Abschlußeigenschaften (semi-)entscheidbarer Sprachen
Satz
(Semi-)entscheidbare Sprachen sind nicht unter abzählbar unendlichen
Vereinigungen abgeschlossen, entscheidbare Sprachen auch nicht unter
abzählbar unendlichen Durchschnitten und unter Residuierung mit
unendlichen Sprachen.
Beweis.
Die Sprachen Lcode bzw. Lhalt sind abzählbar unendliche Vereinigungen
regulärer Singleton-Sprachen.
Die Abgeschlossenheit der entscheidbaren Sprachen unter Komplementen
impliziert wegen der de Morgan’sche Regel die Aussage über Durchschnitte,
und folglich über Residuierungen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
43 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Turing-berechenbare partielle Funktionen
Wir wollen TMs nun auch zur Berechnung partieller Funktionen Σ∗
einsetzen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
f
Γ∗
44 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Turing-berechenbare partielle Funktionen
Wir wollen TMs nun auch zur Berechnung partieller Funktionen Σ∗
einsetzen. Dazu muß Σ, Γ ⊆ B − {#} gelten.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
f
Γ∗
44 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Turing-berechenbare partielle Funktionen
Wir wollen TMs nun auch zur Berechnung partieller Funktionen Σ∗ f
einsetzen. Dazu muß Σ, Γ ⊆ B − {#} gelten. Die Spezifikation eines
Finalzustands qF ist hier verzichtbar.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
Γ∗
44 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Turing-berechenbare partielle Funktionen
Wir wollen TMs nun auch zur Berechnung partieller Funktionen Σ∗ f
einsetzen. Dazu muß Σ, Γ ⊆ B − {#} gelten. Die Spezifikation eines
Finalzustands qF ist hier verzichtbar.
Γ∗
Zu vereinbaren bleibt, welcher Teil des Bandinhalts nach dem Halt der
Maschine als Funktionswert interpretiert werden soll. Wir wollen dafür das
längste zusammenhängende Wort aus Γ∗ verwenden, das links neben der
finalen Kopfposition auf einem designierten Band auftritt.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
44 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Turing-berechenbare partielle Funktionen
Wir wollen TMs nun auch zur Berechnung partieller Funktionen Σ∗ f
einsetzen. Dazu muß Σ, Γ ⊆ B − {#} gelten. Die Spezifikation eines
Finalzustands qF ist hier verzichtbar.
Γ∗
Zu vereinbaren bleibt, welcher Teil des Bandinhalts nach dem Halt der
Maschine als Funktionswert interpretiert werden soll. Wir wollen dafür das
längste zusammenhängende Wort aus Γ∗ verwenden, das links neben der
finalen Kopfposition auf einem designierten Band auftritt. Das Feld des
Kopfes gehört nicht dazu, aber nach einem Linksschritt könnte die Ausgabe
ggf. als Eingabe für eine weitere Maschine verwendet werden, sofern das
restliche Band leer ist.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
44 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Turing-berechenbare partielle Funktionen
Wir wollen TMs nun auch zur Berechnung partieller Funktionen Σ∗ f
einsetzen. Dazu muß Σ, Γ ⊆ B − {#} gelten. Die Spezifikation eines
Finalzustands qF ist hier verzichtbar.
Γ∗
Zu vereinbaren bleibt, welcher Teil des Bandinhalts nach dem Halt der
Maschine als Funktionswert interpretiert werden soll. Wir wollen dafür das
längste zusammenhängende Wort aus Γ∗ verwenden, das links neben der
finalen Kopfposition auf einem designierten Band auftritt. Das Feld des
Kopfes gehört nicht dazu, aber nach einem Linksschritt könnte die Ausgabe
ggf. als Eingabe für eine weitere Maschine verwendet werden, sofern das
restliche Band leer ist.
Partielle Funktionen der Form (Σ∗ )n f (Γ∗ )k mit n > 1 oder k > 1
erfordern je genau ein Trennzeichen zwischen den Komponenten der Einbzw. Ausgabe. Auch wenn das Blankzeichen dafür verwendet werden kann,
wird dies nicht empfohlen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
44 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Beispiel ( f (n) = 2n : Wähle Σ = Γ = {|} = B − {#} .)
Idee: 2-Band Maschine; Eingabe zweimal von B0 auf B1 kopieren.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
45 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Beispiel ( f (n) = 2n : Wähle Σ = Γ = {|} = B − {#} .)
Idee: 2-Band Maschine; Eingabe zweimal von B0 auf B1 kopieren.
h|, #i||h|, Li; h|, Ri
start
q0
h|, #i||h#, Ri; h|, Ri
h#, #i||h#, Ri; h#, Ni
Jürgen Koslowski (TU-BS)
qF
Theoretische Informatik 2
SS 2015
45 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Beispiel ( f (n) = 2n : Wähle Σ = Γ = {|} = B − {#} .)
Idee: 2-Band Maschine; Eingabe zweimal von B0 auf B1 kopieren.
h|, #i||h|, Li; h|, Ri
start
q0
h|, #i||h#, Ri; h|, Ri
h#, #i||h#, Ri; h#, Ni
Jürgen Koslowski (TU-BS)
qF
oder geschickter
Theoretische Informatik 2
SS 2015
45 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Beispiel ( f (n) = 2n : Wähle Σ = Γ = {|} = B − {#} .)
Idee: 2-Band Maschine; Eingabe zweimal von B0 auf B1 kopieren.
h|, #i||h|, Li; h|, Ri
start
q0
h|, #i||h#, Ri; h|, Ri
h#, #i||h#, Ri; h#, Ni
h|, #i||h#, Ni; h|, Ri
qF
oder geschickter
start
r0
r1
h#, #i||h#, Li; h|, Ri
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
45 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Beispiel ( f (n) = 2n : Wähle Σ = Γ = {|} = B − {#} .)
Idee: 2-Band Maschine; Eingabe zweimal von B0 auf B1 kopieren.
h|, #i||h|, Li; h|, Ri
start
q0
h|, #i||h#, Ri; h|, Ri
h#, #i||h#, Ri; h#, Ni
h|, #i||h#, Ni; h|, Ri
qF
oder geschickter
start
r0
r1
h#, #i||h#, Li; h|, Ri
Beim aktuellen Bandinhalt h#, #i in Zustand qF bzw. r0 hält die
jeweilige Maschine mit dem Ergebnis auf B1 und B0 leer.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
45 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Beispiel ( f (n) = 2n : Wähle Σ = Γ = {|} = B − {#} .)
Idee: 2-Band Maschine; Eingabe zweimal von B0 auf B1 kopieren.
h|, #i||h|, Li; h|, Ri
start
q0
h|, #i||h#, Ri; h|, Ri
h|, #i||h#, Ni; h|, Ri
h#, #i||h#, Ri; h#, Ni
qF
oder geschickter
start
r0
r1
h#, #i||h#, Li; h|, Ri
Beim aktuellen Bandinhalt h#, #i in Zustand qF bzw. r0 hält die
jeweilige Maschine mit dem Ergebnis auf B1 und B0 leer.
Beispiel ( f (w ) = |w | : Wähle Γ = {|} disjunkt zu Σ .)
Idee: Eingabe mit Symbolen | überschreiben; rechten Rand suchen.
|||h|, Ri
a||h|, Li
start
Jürgen Koslowski (TU-BS)
q0
#||h#, Ri
qF
Theoretische Informatik 2
mit a ∈ Σ
SS 2015
45 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Beispiel ( f (n, m) = n + m : Wähle Σ = Γ = {|} , B = {|, @, #} .)
Idee: 2-Band Maschine; Eingabe auf B1 kopieren, dabei das Trennsymbol
@ überspringen.
h|, #i||h#, Li; h|, Ri
start
Jürgen Koslowski (TU-BS)
q0
h|, #i||h#, Li; h|, Ri
h@, #i||h#, Li; h#, Ni
Theoretische Informatik 2
qF
SS 2015
46 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Beispiel ( f (n, m) = n + m : Wähle Σ = Γ = {|} , B = {|, @, #} .)
Idee: 2-Band Maschine; Eingabe auf B1 kopieren, dabei das Trennsymbol
@ überspringen.
h|, #i||h#, Li; h|, Ri
h|, #i||h#, Li; h|, Ri
start
q0
h@, #i||h#, Li; h#, Ni
qF
Idee: 1-Band Maschine; Trennsymbol @ mit erstem | von rechts
überschreiben
|||h|, Ri
|||h|, Li
start
q0
|||h#, Li
q1
@||h|, Ri
qF
@||h#, Ni
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
46 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Beispiel ( f (n, m) = n · m : Wähle Σ = Γ = {|} , B = {|, #} .)
Wir begnügen uns nun mit einer High-Level-Beschreibung:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
47 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Beispiel ( f (n, m) = n · m : Wähle Σ = Γ = {|} , B = {|, #} .)
Wir begnügen uns nun mit einer High-Level-Beschreibung:
Idee: 3-Band Maschine; das zweite Argument der Eingabe |n #|m auf B2
verschieben; für jedes Symbol | auf B2 das verbliebene Argument |n von
B0 nach B1 kopieren, von links nach rechts.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
47 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Beispiel ( f (n, m) = n · m : Wähle Σ = Γ = {|} , B = {|, #} .)
Wir begnügen uns nun mit einer High-Level-Beschreibung:
Idee: 3-Band Maschine; das zweite Argument der Eingabe |n #|m auf B2
verschieben; für jedes Symbol | auf B2 das verbliebene Argument |n von
B0 nach B1 kopieren, von links nach rechts.
Bemerkung
Die Erfahrungen mit Turing Maschinen und anderen Versuchen aus der
ersten Hälfte des 20. Jahrhunderts, den Begriff der “durch einen
(terminierenden) Algorithmus berechenbaren Funktion” formal zu fassen,
führten zu der Vermutung, dass jede solche (totale) Funktion
Turing-berechenbar sein muß. Diese nicht beweisbare Vermutung ist
bekannt als Church-Turing These und wird in Kapitel 6 ausführlicher behandelt.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
47 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Beispiel ( f (n, m) = n · m : Wähle Σ = Γ = {|} , B = {|, #} .)
Wir begnügen uns nun mit einer High-Level-Beschreibung:
Idee: 3-Band Maschine; das zweite Argument der Eingabe |n #|m auf B2
verschieben; für jedes Symbol | auf B2 das verbliebene Argument |n von
B0 nach B1 kopieren, von links nach rechts.
Bemerkung
Die Erfahrungen mit Turing Maschinen und anderen Versuchen aus der
ersten Hälfte des 20. Jahrhunderts, den Begriff der “durch einen
(terminierenden) Algorithmus berechenbaren Funktion” formal zu fassen,
führten zu der Vermutung, dass jede solche (totale) Funktion
Turing-berechenbar sein muß. Diese nicht beweisbare Vermutung ist
bekannt als Church-Turing These und wird in Kapitel 6 ausführlicher behandelt.
Wie üblich stellt sich jetzt die Frage nach Funktionen, die nicht
Turing-berechenbar sind.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
47 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Definition
Die sog. Busy Beaver Funktion N
Jürgen Koslowski (TU-BS)
β
N bildet n ∈ N ab auf
Theoretische Informatik 2
SS 2015
48 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Definition
Die sog. Busy Beaver Funktion N
β
N bildet n ∈ N ab auf
die größte Zahl β(n) nichtleerer Felder, die eine schnelle 1-Band
dTM über {|} , die über n Nicht-Haltezustände und einen
Haltezustand verfügt, ausgehend vom leeren Band auf diesem
hinterlassen kann, wenn sie hält.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
48 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Definition
Die sog. Busy Beaver Funktion N
β
N bildet n ∈ N ab auf
die größte Zahl β(n) nichtleerer Felder, die eine schnelle 1-Band
dTM über {|} , die über n Nicht-Haltezustände und einen
Haltezustand verfügt, ausgehend vom leeren Band auf diesem
hinterlassen kann, wenn sie hält.
Achtung: Nach dem Halt der Maschine dürfen zwischen den Strichen |
Lücken auftreten. Damit kann sich die größte unär codierte Zahl k , die
nach dem Halt auf dem Band steht, durchaus von β(n) unterscheiden.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
48 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Definition
Die sog. Busy Beaver Funktion N
β
N bildet n ∈ N ab auf
die größte Zahl β(n) nichtleerer Felder, die eine schnelle 1-Band
dTM über {|} , die über n Nicht-Haltezustände und einen
Haltezustand verfügt, ausgehend vom leeren Band auf diesem
hinterlassen kann, wenn sie hält.
Achtung: Nach dem Halt der Maschine dürfen zwischen den Strichen |
Lücken auftreten. Damit kann sich die größte unär codierte Zahl k , die
nach dem Halt auf dem Band steht, durchaus von β(n) unterscheiden.
Beispiel ( β(0) = 0 und β(1) = 1 )
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
48 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Definition
Die sog. Busy Beaver Funktion N
β
N bildet n ∈ N ab auf
die größte Zahl β(n) nichtleerer Felder, die eine schnelle 1-Band
dTM über {|} , die über n Nicht-Haltezustände und einen
Haltezustand verfügt, ausgehend vom leeren Band auf diesem
hinterlassen kann, wenn sie hält.
Achtung: Nach dem Halt der Maschine dürfen zwischen den Strichen |
Lücken auftreten. Damit kann sich die größte unär codierte Zahl k , die
nach dem Halt auf dem Band steht, durchaus von β(n) unterscheiden.
Beispiel ( β(0) = 0 und β(1) = 1 )
start
Jürgen Koslowski (TU-BS)
qF
bzw
Theoretische Informatik 2
SS 2015
48 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Definition
Die sog. Busy Beaver Funktion N
β
N bildet n ∈ N ab auf
die größte Zahl β(n) nichtleerer Felder, die eine schnelle 1-Band
dTM über {|} , die über n Nicht-Haltezustände und einen
Haltezustand verfügt, ausgehend vom leeren Band auf diesem
hinterlassen kann, wenn sie hält.
Achtung: Nach dem Halt der Maschine dürfen zwischen den Strichen |
Lücken auftreten. Damit kann sich die größte unär codierte Zahl k , die
nach dem Halt auf dem Band steht, durchaus von β(n) unterscheiden.
Beispiel ( β(0) = 0 und β(1) = 1 )
#||h|, Ni
start
Jürgen Koslowski (TU-BS)
qF
bzw
start
q0
Theoretische Informatik 2
|||h|, Li
qF
SS 2015
48 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Beispiel ( β(2) = 4 )
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
49 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Beispiel ( β(2) = 4 )
hq0 , #i
start
q0
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
49 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Beispiel ( β(2) = 4 )
hq0 , #i ` hq1 , | #i
#||h|, Ri
start
q0
Jürgen Koslowski (TU-BS)
q1
Theoretische Informatik 2
SS 2015
49 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Beispiel ( β(2) = 4 )
hq0 , #i ` hq1 , | #i
` hq0 , | | i
#||h|, Ri
start
q0
#||h|, Li
Jürgen Koslowski (TU-BS)
q1
Theoretische Informatik 2
SS 2015
49 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Beispiel ( β(2) = 4 )
hq0 , #i ` hq1 , | #i
` hq0 , | | i
#||h|, Ri
` hq1 , # | | i
start
q0
#||h|, Li
q1
|||h|, Li
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
49 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Beispiel ( β(2) = 4 )
hq0 , #i ` hq1 , | #i
` hq0 , | | i
#||h|, Ri
` hq1 , # | | i
start
q0
#||h|, Li
q1
` hq0 , # | | | i
|||h|, Li
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
49 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Beispiel ( β(2) = 4 )
hq0 , #i ` hq1 , | #i
` hq0 , | | i
#||h|, Ri
` hq1 , # | | i
start
q0
#||h|, Li
q1
` hq0 , # | | | i
` hq1 , | | | | i
|||h|, Li
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
49 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Beispiel ( β(2) = 4 )
hq0 , #i ` hq1 , | #i
` hq0 , | | i
#||h|, Ri
` hq1 , # | | i
start
q0
#||h|, Li
q1
|||h|, Ri
` hq0 , # | | | i
` hq1 , | | | | i
` hqF , | | | | i
|||h|, Li
Jürgen Koslowski (TU-BS)
qF
Theoretische Informatik 2
SS 2015
49 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Beispiel ( β(2) = 4 )
hq0 , #i ` hq1 , | #i
` hq0 , | | i
#||h|, Ri
` hq1 , # | | i
start
q0
#||h|, Li
q1
|||h|, Ri
qF
` hq0 , # | | | i
` hq1 , | | | | i
` hqF , | | | | i
|||h|, Li
Bei Wikipedia findet man diverses Hintergrundmaterial zum Thema Busy Beaver
(dort heißt die Funktion Σ ), einschließlich einiger Schranken für die Werte
β(6) und β(10) .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
49 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Beispiel ( β(2) = 4 )
hq0 , #i ` hq1 , | #i
` hq0 , | | i
#||h|, Ri
` hq1 , # | | i
start
q0
#||h|, Li
q1
|||h|, Ri
qF
` hq0 , # | | | i
` hq1 , | | | | i
` hqF , | | | | i
|||h|, Li
Bei Wikipedia findet man diverses Hintergrundmaterial zum Thema Busy Beaver
(dort heißt die Funktion Σ ), einschließlich einiger Schranken für die Werte
β(6) und β(10) . Weiterhin sei auf die Seite von Heiner Marxen verwiesen, der
zeitnah über aktuelle Busy Beaver Rekorde buchführt.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
49 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Beispiel ( β(2) = 4 )
hq0 , #i ` hq1 , | #i
` hq0 , | | i
#||h|, Ri
` hq1 , # | | i
start
q0
#||h|, Li
q1
|||h|, Ri
qF
` hq0 , # | | | i
` hq1 , | | | | i
` hqF , | | | | i
|||h|, Li
Bei Wikipedia findet man diverses Hintergrundmaterial zum Thema Busy Beaver
(dort heißt die Funktion Σ ), einschließlich einiger Schranken für die Werte
β(6) und β(10) . Weiterhin sei auf die Seite von Heiner Marxen verwiesen, der
zeitnah über aktuelle Busy Beaver Rekorde buchführt.
Es ist zu empfehlen, den Wert β(3) selbständig nachzurechnen, ohne obige
Quellen zu konsultieren.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
49 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Lemma
Die busy beaver Funktion wächst streng monoton, d.h., β(n) < β(n + 1)
für jedes n ∈ N .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
50 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Lemma
Die busy beaver Funktion wächst streng monoton, d.h., β(n) < β(n + 1)
für jedes n ∈ N .
Beweis.
Die dTM M mit Haltezustand qF möge β(n) realisieren.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
50 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Lemma
Die busy beaver Funktion wächst streng monoton, d.h., β(n) < β(n + 1)
für jedes n ∈ N .
Beweis.
Die dTM M mit Haltezustand qF möge β(n) realisieren. Füge einen
neuen Haltezustand qG hinzu und die Übergänge
|||h|, Li
qF
Jürgen Koslowski (TU-BS)
#||h|, Li
qG
Theoretische Informatik 2
SS 2015
50 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Lemma
Die busy beaver Funktion wächst streng monoton, d.h., β(n) < β(n + 1)
für jedes n ∈ N .
Beweis.
Die dTM M mit Haltezustand qF möge β(n) realisieren. Füge einen
neuen Haltezustand qG hinzu und die Übergänge
|||h|, Li
qF
#||h|, Li
qG
Die neue Maschine M0 , mit qF als Nicht-Haltezustand, sucht links ein
freies Feld, schreibt | und hält.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
50 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Lemma
Die busy beaver Funktion wächst streng monoton, d.h., β(n) < β(n + 1)
für jedes n ∈ N .
Beweis.
Die dTM M mit Haltezustand qF möge β(n) realisieren. Füge einen
neuen Haltezustand qG hinzu und die Übergänge
|||h|, Li
qF
#||h|, Li
qG
Die neue Maschine M0 , mit qF als Nicht-Haltezustand, sucht links ein
freies Feld, schreibt | und hält. Also gilt β(n) < β(n) + 1 ≤ β(n + 1) .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
50 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Satz
Für jede Turing-berechenbare totale Funktion N
rf , so dass für alle n ∈ N gilt f (n) ≤ β(n + rf ) .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
f
N existiert eine Zahl
SS 2015
51 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Satz
Für jede Turing-berechenbare totale Funktion N
rf , so dass für alle n ∈ N gilt f (n) ≤ β(n + rf ) .
f
N existiert eine Zahl
Beweis.
Die Funktion f möge von der dTM M mit rf Zuständen berechnet
werden.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
51 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Satz
Für jede Turing-berechenbare totale Funktion N
rf , so dass für alle n ∈ N gilt f (n) ≤ β(n + rf ) .
f
N existiert eine Zahl
Beweis.
Die Funktion f möge von der dTM M mit rf Zuständen berechnet
werden. Für n ∈ N fügen wir n neue Zustände pi , i < n , zu M hinzu,
sowie folgende Übergänge:
start
p0
#||h|, Ri
Jürgen Koslowski (TU-BS)
p1
#||h|, Ri
...
#||h|, Ri
Theoretische Informatik 2
pn−1
#||h|, Ri
q0
SS 2015
51 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Satz
Für jede Turing-berechenbare totale Funktion N
rf , so dass für alle n ∈ N gilt f (n) ≤ β(n + rf ) .
f
N existiert eine Zahl
Beweis.
Die Funktion f möge von der dTM M mit rf Zuständen berechnet
werden. Für n ∈ N fügen wir n neue Zustände pi , i < n , zu M hinzu,
sowie folgende Übergänge:
start
p0
#||h|, Ri
p1
#||h|, Ri
...
#||h|, Ri
pn−1
#||h|, Ri
q0
Mn produziert ausgehend vom leeren Band n Striche und führt dann M
mit dieser Eingabe aus.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
51 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Satz
Für jede Turing-berechenbare totale Funktion N
rf , so dass für alle n ∈ N gilt f (n) ≤ β(n + rf ) .
f
N existiert eine Zahl
Beweis.
Die Funktion f möge von der dTM M mit rf Zuständen berechnet
werden. Für n ∈ N fügen wir n neue Zustände pi , i < n , zu M hinzu,
sowie folgende Übergänge:
start
p0
#||h|, Ri
p1
#||h|, Ri
...
#||h|, Ri
pn−1
#||h|, Ri
q0
Mn produziert ausgehend vom leeren Band n Striche und führt dann M
mit dieser Eingabe aus. Mit M hält auch Mn , und dann stehen
mindestens f (n) Striche auf dem Band, also folgt f (n) ≤ β(n + rf ) .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
51 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Satz
β ist nicht Turing-berechenbar.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
52 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Satz
β ist nicht Turing-berechenbar.
Beweis.
Wir nehmen an, β ist Turing-berechenbar vermöge der dTM M .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
52 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Satz
β ist nicht Turing-berechenbar.
Beweis.
Wir nehmen an, β ist Turing-berechenbar vermöge der dTM M . Dann ist
auch N f N mit n 7→ β(2n) Turing-berechenbar (Verknüpfung mit der
Verdoppelungsmaschine aus einem früheren Beispiel).
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
52 / 236
Turingmaschinen
Turing-berechenbare partielle Funktionen
Satz
β ist nicht Turing-berechenbar.
Beweis.
Wir nehmen an, β ist Turing-berechenbar vermöge der dTM M . Dann ist
auch N f N mit n 7→ β(2n) Turing-berechenbar (Verknüpfung mit der
Verdoppelungsmaschine aus einem früheren Beispiel). Für jedes n ∈ N gilt
nach obigem Satz β(2n) = f (n) ≤ β(n + rf ) . Aber n = rf + 1 liefert einen
Widerspruch zur stengen Monotonie von β .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
52 / 236
Church-Turing-These
Kapitel 6
Die Church-Turing These
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
53 / 236
Church-Turing-These
Alternativen zu Turingmaschinen
Alternativen zu Turingmaschinen
Laut Church-Turing-These (oder besser: Vermutung) stimmt die Klasse aller
intuitiv algorithmisch berechenbaren Funktionen mit der Klasse der
Turing-berechenbaren Funktionen überein.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
54 / 236
Church-Turing-These
Alternativen zu Turingmaschinen
Alternativen zu Turingmaschinen
Laut Church-Turing-These (oder besser: Vermutung) stimmt die Klasse aller
intuitiv algorithmisch berechenbaren Funktionen mit der Klasse der
Turing-berechenbaren Funktionen überein.
Diese These kann prinzipiell nicht beweisen werden, wird aber dadurch
untermauert, dass andere natürliche Formalisierungen des AlgorithmusBegriffs dieselben Klasse berechenbarer Funktionen liefern. Etwa:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
54 / 236
Church-Turing-These
Alternativen zu Turingmaschinen
Alternativen zu Turingmaschinen
Laut Church-Turing-These (oder besser: Vermutung) stimmt die Klasse aller
intuitiv algorithmisch berechenbaren Funktionen mit der Klasse der
Turing-berechenbaren Funktionen überein.
Diese These kann prinzipiell nicht beweisen werden, wird aber dadurch
untermauert, dass andere natürliche Formalisierungen des AlgorithmusBegriffs dieselben Klasse berechenbarer Funktionen liefern. Etwa:
. Registermaschinen (RAMs), die heutigen Computern näher stehen als
klassische TMn (dieser Abschnitt wird sehr kurz gehalten);
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
54 / 236
Church-Turing-These
Alternativen zu Turingmaschinen
Alternativen zu Turingmaschinen
Laut Church-Turing-These (oder besser: Vermutung) stimmt die Klasse aller
intuitiv algorithmisch berechenbaren Funktionen mit der Klasse der
Turing-berechenbaren Funktionen überein.
Diese These kann prinzipiell nicht beweisen werden, wird aber dadurch
untermauert, dass andere natürliche Formalisierungen des AlgorithmusBegriffs dieselben Klasse berechenbarer Funktionen liefern. Etwa:
. Registermaschinen (RAMs), die heutigen Computern näher stehen als
klassische TMn (dieser Abschnitt wird sehr kurz gehalten);
. formale Grammatiken (eine Verallgemeinerung kfG’n, sind der hiesigen
Umsetzung der Bologna-Reform zum Opfer gefallen);
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
54 / 236
Church-Turing-These
Alternativen zu Turingmaschinen
Alternativen zu Turingmaschinen
Laut Church-Turing-These (oder besser: Vermutung) stimmt die Klasse aller
intuitiv algorithmisch berechenbaren Funktionen mit der Klasse der
Turing-berechenbaren Funktionen überein.
Diese These kann prinzipiell nicht beweisen werden, wird aber dadurch
untermauert, dass andere natürliche Formalisierungen des AlgorithmusBegriffs dieselben Klasse berechenbarer Funktionen liefern. Etwa:
. Registermaschinen (RAMs), die heutigen Computern näher stehen als
klassische TMn (dieser Abschnitt wird sehr kurz gehalten);
. formale Grammatiken (eine Verallgemeinerung kfG’n, sind der hiesigen
Umsetzung der Bologna-Reform zum Opfer gefallen);
. die Theorie der sog. rekursiven Funktionen;
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
54 / 236
Church-Turing-These
Alternativen zu Turingmaschinen
Alternativen zu Turingmaschinen
Laut Church-Turing-These (oder besser: Vermutung) stimmt die Klasse aller
intuitiv algorithmisch berechenbaren Funktionen mit der Klasse der
Turing-berechenbaren Funktionen überein.
Diese These kann prinzipiell nicht beweisen werden, wird aber dadurch
untermauert, dass andere natürliche Formalisierungen des AlgorithmusBegriffs dieselben Klasse berechenbarer Funktionen liefern. Etwa:
. Registermaschinen (RAMs), die heutigen Computern näher stehen als
klassische TMn (dieser Abschnitt wird sehr kurz gehalten);
. formale Grammatiken (eine Verallgemeinerung kfG’n, sind der hiesigen
Umsetzung der Bologna-Reform zum Opfer gefallen);
. die Theorie der sog. rekursiven Funktionen;
. der Lambda-Kalkül von Alonso Church, die Basis moderner
funktionaler Programmiersprachen (vergl. andere VL);
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
54 / 236
Church-Turing-These
Alternativen zu Turingmaschinen
Alternativen zu Turingmaschinen
Laut Church-Turing-These (oder besser: Vermutung) stimmt die Klasse aller
intuitiv algorithmisch berechenbaren Funktionen mit der Klasse der
Turing-berechenbaren Funktionen überein.
Diese These kann prinzipiell nicht beweisen werden, wird aber dadurch
untermauert, dass andere natürliche Formalisierungen des AlgorithmusBegriffs dieselben Klasse berechenbarer Funktionen liefern. Etwa:
. Registermaschinen (RAMs), die heutigen Computern näher stehen als
klassische TMn (dieser Abschnitt wird sehr kurz gehalten);
. formale Grammatiken (eine Verallgemeinerung kfG’n, sind der hiesigen
Umsetzung der Bologna-Reform zum Opfer gefallen);
. die Theorie der sog. rekursiven Funktionen;
. der Lambda-Kalkül von Alonso Church, die Basis moderner
funktionaler Programmiersprachen (vergl. andere VL);
und diverse andere, siehe etwa Kapitel 18 im Buch von Rich.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
54 / 236
Church-Turing-These
Alternativen zu Turingmaschinen
Turing Maschinen lieferten seit Mitte der 1930’er Jahre einen konzeptionellen Zugang zum Algorithmusbegriff.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
55 / 236
Church-Turing-These
Alternativen zu Turingmaschinen
Turing Maschinen lieferten seit Mitte der 1930’er Jahre einen konzeptionellen Zugang zum Algorithmusbegriff.
Hinsichtlich der in den 1940’er und 1950’er Jahren vereinzelt aufkommenden Rechenmaschinen/Computer waren TMs aber zu wenig an der
Hardware orientiert. Das RAM-Konzept kann zwischen abstrakten TMs und
konkreter Assembler-Programmierung verortet werden.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
55 / 236
Church-Turing-These
Alternativen zu Turingmaschinen
Turing Maschinen lieferten seit Mitte der 1930’er Jahre einen konzeptionellen Zugang zum Algorithmusbegriff.
Hinsichtlich der in den 1940’er und 1950’er Jahren vereinzelt aufkommenden Rechenmaschinen/Computer waren TMs aber zu wenig an der
Hardware orientiert. Das RAM-Konzept kann zwischen abstrakten TMs und
konkreter Assembler-Programmierung verortet werden.
Umgekehrt sind Turing Maschinen im Hinblick auf den Begriff der Turingberechenbaren Funktion “zu konkret”, da Prozedur-orientiert. Sie vermitteln
wenig Intuition darüber, welche Funktionen eigentlich Turing-berechenbar
sind.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
55 / 236
Church-Turing-These
Alternativen zu Turingmaschinen
Turing Maschinen lieferten seit Mitte der 1930’er Jahre einen konzeptionellen Zugang zum Algorithmusbegriff.
Hinsichtlich der in den 1940’er und 1950’er Jahren vereinzelt aufkommenden Rechenmaschinen/Computer waren TMs aber zu wenig an der
Hardware orientiert. Das RAM-Konzept kann zwischen abstrakten TMs und
konkreter Assembler-Programmierung verortet werden.
Umgekehrt sind Turing Maschinen im Hinblick auf den Begriff der Turingberechenbaren Funktion “zu konkret”, da Prozedur-orientiert. Sie vermitteln
wenig Intuition darüber, welche Funktionen eigentlich Turing-berechenbar
sind. Erfreulicherweise stimmt zumindest die Klasse der zahlentheoretischen
Turing-berechenbaren Funktionen mit auf völlig andere Weise eingeführten
Klasse der µ-rekursiven Funktionen überein.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
55 / 236
Church-Turing-These
Alternativen zu Turingmaschinen
Turing Maschinen lieferten seit Mitte der 1930’er Jahre einen konzeptionellen Zugang zum Algorithmusbegriff.
Hinsichtlich der in den 1940’er und 1950’er Jahren vereinzelt aufkommenden Rechenmaschinen/Computer waren TMs aber zu wenig an der
Hardware orientiert. Das RAM-Konzept kann zwischen abstrakten TMs und
konkreter Assembler-Programmierung verortet werden.
Umgekehrt sind Turing Maschinen im Hinblick auf den Begriff der Turingberechenbaren Funktion “zu konkret”, da Prozedur-orientiert. Sie vermitteln
wenig Intuition darüber, welche Funktionen eigentlich Turing-berechenbar
sind. Erfreulicherweise stimmt zumindest die Klasse der zahlentheoretischen
Turing-berechenbaren Funktionen mit auf völlig andere Weise eingeführten
Klasse der µ-rekursiven Funktionen überein. Hier stehen wirklich die
Funktionen im Mittelpunkt, und nicht ihre (relativ konkrete aber fehleranfällige) Implementierung.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
55 / 236
Church-Turing-These
Alternativen zu Turingmaschinen
Turing Maschinen lieferten seit Mitte der 1930’er Jahre einen konzeptionellen Zugang zum Algorithmusbegriff.
Hinsichtlich der in den 1940’er und 1950’er Jahren vereinzelt aufkommenden Rechenmaschinen/Computer waren TMs aber zu wenig an der
Hardware orientiert. Das RAM-Konzept kann zwischen abstrakten TMs und
konkreter Assembler-Programmierung verortet werden.
Umgekehrt sind Turing Maschinen im Hinblick auf den Begriff der Turingberechenbaren Funktion “zu konkret”, da Prozedur-orientiert. Sie vermitteln
wenig Intuition darüber, welche Funktionen eigentlich Turing-berechenbar
sind. Erfreulicherweise stimmt zumindest die Klasse der zahlentheoretischen
Turing-berechenbaren Funktionen mit auf völlig andere Weise eingeführten
Klasse der µ-rekursiven Funktionen überein. Hier stehen wirklich die
Funktionen im Mittelpunkt, und nicht ihre (relativ konkrete aber fehleranfällige) Implementierung.
Für die Korrektheitsbeweisen besser zugängliche funktionale Programmierung eignet sich der Lambda-Kalkül allerdings noch besser.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
55 / 236
Church-Turing-These
Registermaschinen (RAM)
Registermaschinen (RAM)
Anstelle eines (potentiell unendlichen) Turingbandes verfügt eine Random
Accesss Machine (RAM) oder Registermaschine über einen Datenspeicher
aus potentiell unendlich vielen Registern Ri , i ∈ N , die Daten hRi i in
Form von natürlichen Zahlen unbeschränkter Größe enthalten können (hier
muß getrickst werden). Das Register R0 heißt Akkumulator.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
56 / 236
Church-Turing-These
Registermaschinen (RAM)
Registermaschinen (RAM)
Anstelle eines (potentiell unendlichen) Turingbandes verfügt eine Random
Accesss Machine (RAM) oder Registermaschine über einen Datenspeicher
aus potentiell unendlich vielen Registern Ri , i ∈ N , die Daten hRi i in
Form von natürlichen Zahlen unbeschränkter Größe enthalten können (hier
muß getrickst werden). Das Register R0 heißt Akkumulator.
Anstatt eines Schreib-Lese-Kopfes arbeitet eine Steuereinheit taktweise die
(von den Daten separat gespeicherten) Programme zeilenweise ab, gemäß
eines Befehlszählers BZ , der auch als Register aufgefaßt werden kann (aber
ebenfalls nicht zum Datenspeicher gehört).
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
56 / 236
Church-Turing-These
Registermaschinen (RAM)
Registermaschinen (RAM)
Anstelle eines (potentiell unendlichen) Turingbandes verfügt eine Random
Accesss Machine (RAM) oder Registermaschine über einen Datenspeicher
aus potentiell unendlich vielen Registern Ri , i ∈ N , die Daten hRi i in
Form von natürlichen Zahlen unbeschränkter Größe enthalten können (hier
muß getrickst werden). Das Register R0 heißt Akkumulator.
Anstatt eines Schreib-Lese-Kopfes arbeitet eine Steuereinheit taktweise die
(von den Daten separat gespeicherten) Programme zeilenweise ab, gemäß
eines Befehlszählers BZ , der auch als Register aufgefaßt werden kann (aber
ebenfalls nicht zum Datenspeicher gehört).
Die Ein- und Ausgabe erfolgt über separate Bänder, deren Felder natürliche
Zahlen enthalten können (Felder mit dem Inhalt 0 gelten als “leer”), und
auf denen ein Lese- bzw. Schreib-Kopf sich nur nach rechts(!) bewegen
kann (unmittelbar nach dem Lese- bzw. Schreibvorgang, im selben Takt).
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
56 / 236
Church-Turing-These
Registermaschinen (RAM)
6.1.0 Befehlssatz einer RAM
1
Befehl
Wirkung
READ
hR0 i := hreadi, hBZ i := hBZ i + 1
der Lesekopf bewegt sich vom Feld mit Inhalt hreadi um ein Feld nach rechts
mit pred(n + 1) = n und pred 0 = 0
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
57 / 236
Church-Turing-These
Registermaschinen (RAM)
6.1.0 Befehlssatz einer RAM
1
Befehl
Wirkung
READ
hR0 i := hreadi, hBZ i := hBZ i + 1
der Lesekopf bewegt sich vom Feld mit Inhalt hreadi um ein Feld nach rechts
WRITE
hwritei := hR0 i, hBZ i := hBZ i + 1
der Schreibkopf schreibt hR0 i und bewegt sich ein Feld nach rechts
mit pred(n + 1) = n und pred 0 = 0
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
57 / 236
Church-Turing-These
Registermaschinen (RAM)
6.1.0 Befehlssatz einer RAM
1
Befehl
Wirkung
READ
hR0 i := hreadi, hBZ i := hBZ i + 1
der Lesekopf bewegt sich vom Feld mit Inhalt hreadi um ein Feld nach rechts
WRITE
hwritei := hR0 i, hBZ i := hBZ i + 1
der Schreibkopf schreibt hR0 i und bewegt sich ein Feld nach rechts
LOAD i/LOAD ∗i/LOAD !i
hR0 i := hRi i/hRhR i i/i und hBZ i := hBZ i + 1
i
mit pred(n + 1) = n und pred 0 = 0
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
57 / 236
Church-Turing-These
Registermaschinen (RAM)
6.1.0 Befehlssatz einer RAM
1
Befehl
Wirkung
READ
hR0 i := hreadi, hBZ i := hBZ i + 1
der Lesekopf bewegt sich vom Feld mit Inhalt hreadi um ein Feld nach rechts
WRITE
hwritei := hR0 i, hBZ i := hBZ i + 1
der Schreibkopf schreibt hR0 i und bewegt sich ein Feld nach rechts
LOAD i/LOAD ∗i/LOAD !i
hR0 i := hRi i/hRhR i i/i und hBZ i := hBZ i + 1
i
STORE i/STORE ∗i
hRi i/hRhii i := hR0 i und hBZ i := hBZ i + 1
mit pred(n + 1) = n und pred 0 = 0
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
57 / 236
Church-Turing-These
Registermaschinen (RAM)
6.1.0 Befehlssatz einer RAM
1
Befehl
Wirkung
READ
hR0 i := hreadi, hBZ i := hBZ i + 1
der Lesekopf bewegt sich vom Feld mit Inhalt hreadi um ein Feld nach rechts
WRITE
hwritei := hR0 i, hBZ i := hBZ i + 1
der Schreibkopf schreibt hR0 i und bewegt sich ein Feld nach rechts
LOAD i/LOAD ∗i/LOAD !i
hR0 i := hRi i/hRhR i i/i und hBZ i := hBZ i + 1
i
STORE i/STORE ∗i
hRi i/hRhii i := hR0 i und hBZ i := hBZ i + 1
ADD i/ADD ∗i/ADD !i
hR0 i := hR0 i + hRi i/hRhR i i/i und hBZ i := hBZ i + 1
i
mit pred(n + 1) = n und pred 0 = 0
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
57 / 236
Church-Turing-These
Registermaschinen (RAM)
6.1.0 Befehlssatz einer RAM
1
Befehl
Wirkung
READ
hR0 i := hreadi, hBZ i := hBZ i + 1
der Lesekopf bewegt sich vom Feld mit Inhalt hreadi um ein Feld nach rechts
WRITE
hwritei := hR0 i, hBZ i := hBZ i + 1
der Schreibkopf schreibt hR0 i und bewegt sich ein Feld nach rechts
LOAD i/LOAD ∗i/LOAD !i
hR0 i := hRi i/hRhR i i/i und hBZ i := hBZ i + 1
i
STORE i/STORE ∗i
hRi i/hRhii i := hR0 i und hBZ i := hBZ i + 1
ADD i/ADD ∗i/ADD !i
hR0 i := hR0 i + hRi i/hRhR i i/i und hBZ i := hBZ i + 1
PRED
hR0 i := predhR0 i1 und hBZ i := hBZ i + 1
i
mit pred(n + 1) = n und pred 0 = 0
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
57 / 236
Church-Turing-These
Registermaschinen (RAM)
6.1.0 Befehlssatz einer RAM
1
Befehl
Wirkung
READ
hR0 i := hreadi, hBZ i := hBZ i + 1
der Lesekopf bewegt sich vom Feld mit Inhalt hreadi um ein Feld nach rechts
WRITE
hwritei := hR0 i, hBZ i := hBZ i + 1
der Schreibkopf schreibt hR0 i und bewegt sich ein Feld nach rechts
LOAD i/LOAD ∗i/LOAD !i
hR0 i := hRi i/hRhR i i/i und hBZ i := hBZ i + 1
i
STORE i/STORE ∗i
hRi i/hRhii i := hR0 i und hBZ i := hBZ i + 1
ADD i/ADD ∗i/ADD !i
hR0 i := hR0 i + hRi i/hRhR i i/i und hBZ i := hBZ i + 1
PRED
hR0 i := predhR0 i1 und hBZ i := hBZ i + 1
GOTO m
hBZ i := m
i
mit pred(n + 1) = n und pred 0 = 0
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
57 / 236
Church-Turing-These
Registermaschinen (RAM)
6.1.0 Befehlssatz einer RAM
1
Befehl
Wirkung
READ
hR0 i := hreadi, hBZ i := hBZ i + 1
der Lesekopf bewegt sich vom Feld mit Inhalt hreadi um ein Feld nach rechts
WRITE
hwritei := hR0 i, hBZ i := hBZ i + 1
der Schreibkopf schreibt hR0 i und bewegt sich ein Feld nach rechts
LOAD i/LOAD ∗i/LOAD !i
hR0 i := hRi i/hRhR i i/i und hBZ i := hBZ i + 1
i
STORE i/STORE ∗i
hRi i/hRhii i := hR0 i und hBZ i := hBZ i + 1
ADD i/ADD ∗i/ADD !i
hR0 i := hR0 i + hRi i/hRhR i i/i und hBZ i := hBZ i + 1
PRED
hR0 i := predhR0 i1 und hBZ i := hBZ i + 1
GOTO m
hBZ i := m
(
IF Ri = 0 GOTO m
hBZ i :=
i
m
hBZ i + 1
falls hRi i = 0
sonst
mit pred(n + 1) = n und pred 0 = 0
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
57 / 236
Church-Turing-These
Registermaschinen (RAM)
6.1.0 Befehlssatz einer RAM
Befehl
Wirkung
READ
hR0 i := hreadi, hBZ i := hBZ i + 1
der Lesekopf bewegt sich vom Feld mit Inhalt hreadi um ein Feld nach rechts
WRITE
hwritei := hR0 i, hBZ i := hBZ i + 1
der Schreibkopf schreibt hR0 i und bewegt sich ein Feld nach rechts
LOAD i/LOAD ∗i/LOAD !i
hR0 i := hRi i/hRhR i i/i und hBZ i := hBZ i + 1
i
STORE i/STORE ∗i
hRi i/hRhii i := hR0 i und hBZ i := hBZ i + 1
ADD i/ADD ∗i/ADD !i
hR0 i := hR0 i + hRi i/hRhR i i/i und hBZ i := hBZ i + 1
PRED
hR0 i := predhR0 i1 und hBZ i := hBZ i + 1
GOTO m
hBZ i := m
(
IF Ri = 0 GOTO m
hBZ i :=
i
(
IF Ri > 0 GOTO m
1
hBZ i :=
m
hBZ i + 1
falls hRi i = 0
sonst
m
hBZ i + 1
falls hRi i > 0
sonst
mit pred(n + 1) = n und pred 0 = 0
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
57 / 236
Church-Turing-These
Registermaschinen (RAM)
6.1.0 Befehlssatz einer RAM
Befehl
Wirkung
READ
hR0 i := hreadi, hBZ i := hBZ i + 1
der Lesekopf bewegt sich vom Feld mit Inhalt hreadi um ein Feld nach rechts
WRITE
hwritei := hR0 i, hBZ i := hBZ i + 1
der Schreibkopf schreibt hR0 i und bewegt sich ein Feld nach rechts
LOAD i/LOAD ∗i/LOAD !i
hR0 i := hRi i/hRhR i i/i und hBZ i := hBZ i + 1
i
STORE i/STORE ∗i
hRi i/hRhii i := hR0 i und hBZ i := hBZ i + 1
ADD i/ADD ∗i/ADD !i
hR0 i := hR0 i + hRi i/hRhR i i/i und hBZ i := hBZ i + 1
PRED
hR0 i := predhR0 i1 und hBZ i := hBZ i + 1
GOTO m
hBZ i := m
(
IF Ri = 0 GOTO m
hBZ i :=
i
m
hBZ i + 1
falls hRi i = 0
sonst
m
hBZ i + 1
Maschine hält
falls hRi i > 0
sonst
(
IF Ri > 0 GOTO m
STOP
1
hBZ i :=
mit pred(n + 1) = n und pred 0 = 0
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
57 / 236
Church-Turing-These
Registermaschinen (RAM)
6.1.0 Befehlssatz einer RAM
Befehl
Wirkung
READ
hR0 i := hreadi, hBZ i := hBZ i + 1
der Lesekopf bewegt sich vom Feld mit Inhalt hreadi um ein Feld nach rechts
WRITE
hwritei := hR0 i, hBZ i := hBZ i + 1
der Schreibkopf schreibt hR0 i und bewegt sich ein Feld nach rechts
LOAD i/LOAD ∗i/LOAD !i
hR0 i := hRi i/hRhR i i/i und hBZ i := hBZ i + 1
i
STORE i/STORE ∗i
hRi i/hRhii i := hR0 i und hBZ i := hBZ i + 1
ADD i/ADD ∗i/ADD !i
hR0 i := hR0 i + hRi i/hRhR i i/i und hBZ i := hBZ i + 1
PRED
hR0 i := predhR0 i1 und hBZ i := hBZ i + 1
GOTO m
hBZ i := m
(
IF Ri = 0 GOTO m
hBZ i :=
i
m
hBZ i + 1
falls hRi i = 0
sonst
m
hBZ i + 1
Maschine hält
falls hRi i > 0
sonst
(
IF Ri > 0 GOTO m
STOP
hBZ i :=
Die ∗-Variante von LOAD , STORE bzw. ADD entspricht indirekter
Adressierung des Registers RhRi i , während die !-Variante von LOAD und
ADD Konstanten i ∈ N anstelle von Registerinhalten verwendet.
1
mit pred(n + 1) = n und pred 0 = 0
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
57 / 236
Church-Turing-These
Registermaschinen (RAM)
Beim Programmieren elementarer Aktionen als “Macros” ist zu beachten,
dass Sprung-Adressen ggf. anzupassen und der Akkumulator zu retten sind.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
58 / 236
Church-Turing-These
Registermaschinen (RAM)
Beim Programmieren elementarer Aktionen als “Macros” ist zu beachten,
dass Sprung-Adressen ggf. anzupassen und der Akkumulator zu retten sind.
Beispiel
SUCC i / PRD i soll den Inhalt von Ri um 1 erhöhen/vermindern:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
58 / 236
Church-Turing-These
Registermaschinen (RAM)
Beim Programmieren elementarer Aktionen als “Macros” ist zu beachten,
dass Sprung-Adressen ggf. anzupassen und der Akkumulator zu retten sind.
Beispiel
SUCC i / PRD i soll den Inhalt von Ri um 1 erhöhen/vermindern:
STORE α
hRα i = hR0 i
Dabei ist Rα ein zum Zeitpunkt des Aufrufs freies Register, das jeweils
anzupassen ist.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
58 / 236
Church-Turing-These
Registermaschinen (RAM)
Beim Programmieren elementarer Aktionen als “Macros” ist zu beachten,
dass Sprung-Adressen ggf. anzupassen und der Akkumulator zu retten sind.
Beispiel
SUCC i / PRD i soll den Inhalt von Ri um 1 erhöhen/vermindern:
STORE α
LOAD !1
hRα i = hR0 i
hR0 i = 1
Dabei ist Rα ein zum Zeitpunkt des Aufrufs freies Register, das jeweils
anzupassen ist.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
58 / 236
Church-Turing-These
Registermaschinen (RAM)
Beim Programmieren elementarer Aktionen als “Macros” ist zu beachten,
dass Sprung-Adressen ggf. anzupassen und der Akkumulator zu retten sind.
Beispiel
SUCC i / PRD i soll den Inhalt von Ri um 1 erhöhen/vermindern:
STORE α
LOAD !1
ADD i
hRα i = hR0 i
hR0 i = 1
hR0 i := hRi i + 1
Dabei ist Rα ein zum Zeitpunkt des Aufrufs freies Register, das jeweils
anzupassen ist.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
58 / 236
Church-Turing-These
Registermaschinen (RAM)
Beim Programmieren elementarer Aktionen als “Macros” ist zu beachten,
dass Sprung-Adressen ggf. anzupassen und der Akkumulator zu retten sind.
Beispiel
SUCC i / PRD i soll den Inhalt von Ri um 1 erhöhen/vermindern:
STORE α
LOAD !1
hRα i = hR0 i
hR0 i = 1
ADD i
hR0 i := hRi i + 1
STORE i
hRi i := hRi i + 1
Dabei ist Rα ein zum Zeitpunkt des Aufrufs freies Register, das jeweils
anzupassen ist.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
58 / 236
Church-Turing-These
Registermaschinen (RAM)
Beim Programmieren elementarer Aktionen als “Macros” ist zu beachten,
dass Sprung-Adressen ggf. anzupassen und der Akkumulator zu retten sind.
Beispiel
SUCC i / PRD i soll den Inhalt von Ri um 1 erhöhen/vermindern:
STORE α
LOAD !1
hRα i = hR0 i
hR0 i = 1
ADD i
hR0 i := hRi i + 1
STORE i
hRi i := hRi i + 1
LOAD α
hR0 i = hRα i
Dabei ist Rα ein zum Zeitpunkt des Aufrufs freies Register, das jeweils
anzupassen ist.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
58 / 236
Church-Turing-These
Registermaschinen (RAM)
Beim Programmieren elementarer Aktionen als “Macros” ist zu beachten,
dass Sprung-Adressen ggf. anzupassen und der Akkumulator zu retten sind.
Beispiel
SUCC i / PRD i soll den Inhalt von Ri um 1 erhöhen/vermindern:
STORE α
LOAD !1
hRα i = hR0 i
STORE α
hRα i = hR0 i
hR0 i = 1
ADD i
hR0 i := hRi i + 1
STORE i
hRi i := hRi i + 1
LOAD α
hR0 i = hRα i
Dabei ist Rα ein zum Zeitpunkt des Aufrufs freies Register, das jeweils
anzupassen ist.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
58 / 236
Church-Turing-These
Registermaschinen (RAM)
Beim Programmieren elementarer Aktionen als “Macros” ist zu beachten,
dass Sprung-Adressen ggf. anzupassen und der Akkumulator zu retten sind.
Beispiel
SUCC i / PRD i soll den Inhalt von Ri um 1 erhöhen/vermindern:
STORE α
LOAD !1
hRα i = hR0 i
hR0 i = 1
ADD i
hR0 i := hRi i + 1
STORE i
hRi i := hRi i + 1
LOAD α
hR0 i = hRα i
STORE α
hRα i = hR0 i
LOAD i
hR0 i = hRi i
Dabei ist Rα ein zum Zeitpunkt des Aufrufs freies Register, das jeweils
anzupassen ist.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
58 / 236
Church-Turing-These
Registermaschinen (RAM)
Beim Programmieren elementarer Aktionen als “Macros” ist zu beachten,
dass Sprung-Adressen ggf. anzupassen und der Akkumulator zu retten sind.
Beispiel
SUCC i / PRD i soll den Inhalt von Ri um 1 erhöhen/vermindern:
STORE α
LOAD !1
hRα i = hR0 i
hR0 i = 1
ADD i
hR0 i := hRi i + 1
STORE i
hRi i := hRi i + 1
LOAD α
hR0 i = hRα i
STORE α
hRα i = hR0 i
LOAD i
hR0 i = hRi i
PRED hR0 i := predhRi i
Dabei ist Rα ein zum Zeitpunkt des Aufrufs freies Register, das jeweils
anzupassen ist.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
58 / 236
Church-Turing-These
Registermaschinen (RAM)
Beim Programmieren elementarer Aktionen als “Macros” ist zu beachten,
dass Sprung-Adressen ggf. anzupassen und der Akkumulator zu retten sind.
Beispiel
SUCC i / PRD i soll den Inhalt von Ri um 1 erhöhen/vermindern:
STORE α
LOAD !1
hRα i = hR0 i
hR0 i = 1
ADD i
hR0 i := hRi i + 1
STORE i
hRi i := hRi i + 1
LOAD α
hR0 i = hRα i
STORE α
hRα i = hR0 i
LOAD i
hR0 i = hRi i
PRED hR0 i := predhRi i
STORE i
hRi i := predhRi i
Dabei ist Rα ein zum Zeitpunkt des Aufrufs freies Register, das jeweils
anzupassen ist.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
58 / 236
Church-Turing-These
Registermaschinen (RAM)
Beim Programmieren elementarer Aktionen als “Macros” ist zu beachten,
dass Sprung-Adressen ggf. anzupassen und der Akkumulator zu retten sind.
Beispiel
SUCC i / PRD i soll den Inhalt von Ri um 1 erhöhen/vermindern:
STORE α
LOAD !1
hRα i = hR0 i
hR0 i = 1
STORE α
hRα i = hR0 i
LOAD i
hR0 i = hRi i
ADD i
hR0 i := hRi i + 1
PRED hR0 i := predhRi i
STORE i
hRi i := hRi i + 1
STORE i
hRi i := predhRi i
LOAD α
hR0 i = hRα i
LOAD α
hR0 i = hRα i
Dabei ist Rα ein zum Zeitpunkt des Aufrufs freies Register, das jeweils
anzupassen ist.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
58 / 236
Church-Turing-These
Registermaschinen (RAM)
Beispiel ( SUB i subtrahiert hR0 i von hRi i , soweit möglich:)
0.
IF R0 = 0 GOTO 8
1.
PRD i
6.
PRED
7.
GOTO 0
8.
LOAD i
Jürgen Koslowski (TU-BS)
(braucht fünf Schritte)
Theoretische Informatik 2
SS 2015
59 / 236
Church-Turing-These
Registermaschinen (RAM)
Beispiel ( SUB i subtrahiert hR0 i von hRi i , soweit möglich:)
0.
IF R0 = 0 GOTO 8
1.
PRD i
6.
PRED
7.
GOTO 0
8.
LOAD i
(braucht fünf Schritte)
Beispiel ( IF Ri = k GOTO m für k > 0 :)
0. STORE α
1. LOAD !k
2. SUB i
11. STORE i
(braucht neun Schritte)
(zerstört den Inhalt von Ri )
12. LOAD α
13. IF Ri = 0 GOTO m
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
59 / 236
Church-Turing-These
Registermaschinen (RAM)
Simulation einer TM durch eine RAM
Neben dem Akkumulator R0 sind die Register R1 für den Zustand und R2
für die Kopfposition reserviert, während R3+i für den Inhalt von Zelle i
zuständig ist.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
60 / 236
Church-Turing-These
Registermaschinen (RAM)
Simulation einer TM durch eine RAM
Neben dem Akkumulator R0 sind die Register R1 für den Zustand und R2
für die Kopfposition reserviert, während R3+i für den Inhalt von Zelle i
zuständig ist.
Die Zustandsmenge wird durchnummeriert: Q = { qi : i < n } ; der
aktuelle Zustandsindex ist hR1 i
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
60 / 236
Church-Turing-These
Registermaschinen (RAM)
Simulation einer TM durch eine RAM
Neben dem Akkumulator R0 sind die Register R1 für den Zustand und R2
für die Kopfposition reserviert, während R3+i für den Inhalt von Zelle i
zuständig ist.
Die Zustandsmenge wird durchnummeriert: Q = { qi : i < n } ; der
aktuelle Zustandsindex ist hR1 i
Das Bandalphabet B wird durchnummeriert: B = { si : i < m } mit
s0 = # . Der Index des Inhalts von Feld i findet sich in Register R3+i .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
60 / 236
Church-Turing-These
Registermaschinen (RAM)
Simulation einer TM durch eine RAM
Neben dem Akkumulator R0 sind die Register R1 für den Zustand und R2
für die Kopfposition reserviert, während R3+i für den Inhalt von Zelle i
zuständig ist.
Die Zustandsmenge wird durchnummeriert: Q = { qi : i < n } ; der
aktuelle Zustandsindex ist hR1 i
Das Bandalphabet B wird durchnummeriert: B = { si : i < m } mit
s0 = # . Der Index des Inhalts von Feld i findet sich in Register R3+i .
Die Bandzellen werden durchnummeriert, mit 0 für die Kopfposition in
der Initialkonfiguration, ungerade Zahlen nach rechts, gerade Zahlen
nach links. Die aktuelle Kopfposition ist hR2 i .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
60 / 236
Church-Turing-These
Registermaschinen (RAM)
Simulation einer TM durch eine RAM
Neben dem Akkumulator R0 sind die Register R1 für den Zustand und R2
für die Kopfposition reserviert, während R3+i für den Inhalt von Zelle i
zuständig ist.
Die Zustandsmenge wird durchnummeriert: Q = { qi : i < n } ; der
aktuelle Zustandsindex ist hR1 i
Das Bandalphabet B wird durchnummeriert: B = { si : i < m } mit
s0 = # . Der Index des Inhalts von Feld i findet sich in Register R3+i .
Die Bandzellen werden durchnummeriert, mit 0 für die Kopfposition in
der Initialkonfiguration, ungerade Zahlen nach rechts, gerade Zahlen
nach links. Die aktuelle Kopfposition ist hR2 i .
Die Übergangstabelle hqi , sj i 7→ hqr , At i wird programmiert.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
60 / 236
Church-Turing-These
Registermaschinen (RAM)
Simulation einer TM durch eine RAM
Neben dem Akkumulator R0 sind die Register R1 für den Zustand und R2
für die Kopfposition reserviert, während R3+i für den Inhalt von Zelle i
zuständig ist.
Die Zustandsmenge wird durchnummeriert: Q = { qi : i < n } ; der
aktuelle Zustandsindex ist hR1 i
Das Bandalphabet B wird durchnummeriert: B = { si : i < m } mit
s0 = # . Der Index des Inhalts von Feld i findet sich in Register R3+i .
Die Bandzellen werden durchnummeriert, mit 0 für die Kopfposition in
der Initialkonfiguration, ungerade Zahlen nach rechts, gerade Zahlen
nach links. Die aktuelle Kopfposition ist hR2 i .
Die Übergangstabelle hqi , sj i 7→ hqr , At i wird programmiert.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
60 / 236
Church-Turing-These
Registermaschinen (RAM)
Die Simulation einer TM-Berechnung erfolgt in drei Schritten:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
61 / 236
Church-Turing-These
Registermaschinen (RAM)
Die Simulation einer TM-Berechnung erfolgt in drei Schritten:
Zunächst wird die Eingabe a0 a1 . . . ak−1 in die Register R3 , R5 , . . . ,
R1+2k übertragen, durch wiederholte Anwendung von READ .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
61 / 236
Church-Turing-These
Registermaschinen (RAM)
Die Simulation einer TM-Berechnung erfolgt in drei Schritten:
Zunächst wird die Eingabe a0 a1 . . . ak−1 in die Register R3 , R5 , . . . ,
R1+2k übertragen, durch wiederholte Anwendung von READ .
Nach Erreichen von # werden die Register R1 und R2 gemäß der
Initialkonfiguration initialisiert. Anschließend sind die den Übergängen
hqi , bj i 7→ hqr , at i mit bj ∈ B und at ∈ B + {L, R} entsprechenden
Programme auszuführen, solange Übergänge verfügbar sind.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
61 / 236
Church-Turing-These
Registermaschinen (RAM)
Die Simulation einer TM-Berechnung erfolgt in drei Schritten:
Zunächst wird die Eingabe a0 a1 . . . ak−1 in die Register R3 , R5 , . . . ,
R1+2k übertragen, durch wiederholte Anwendung von READ .
Nach Erreichen von # werden die Register R1 und R2 gemäß der
Initialkonfiguration initialisiert. Anschließend sind die den Übergängen
hqi , bj i 7→ hqr , at i mit bj ∈ B und at ∈ B + {L, R} entsprechenden
Programme auszuführen, solange Übergänge verfügbar sind.
Der Bandinhalt rechts der Kopfposition wird auf das Ausgabeband
übertragen, bis ein Blankzeichen auftritt.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
61 / 236
Church-Turing-These
Registermaschinen (RAM)
6.1.2 Berechenbarkeit
Definition
Eine RAM berechnet eine (partielle) Funktion Nk f N, falls die RAM bei
genau den Eingaben aus dem Definitionsbereich D(f ) hält und dann der
einzige Wert auf dem Ausgabeband mit dem Funktionswert von f
übereinstimmt.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
62 / 236
Church-Turing-These
Registermaschinen (RAM)
6.1.2 Berechenbarkeit
Definition
Eine RAM berechnet eine (partielle) Funktion Nk f N, falls die RAM bei
genau den Eingaben aus dem Definitionsbereich D(f ) hält und dann der
einzige Wert auf dem Ausgabeband mit dem Funktionswert von f
übereinstimmt.
Nachdem die Simulierbarkeit von dTMs durch RAMs konzeptionell bereits
etabliert worden ist, gilt es nun, auch die umgekehrte Simulierarkeit zu
zeigen.
Satz
Jede RAM-berechenbare Funktion ist Turing-berechenbar.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
62 / 236
Church-Turing-These
Registermaschinen (RAM)
Beweis
Wir simulieren ein RAM-Programm für f mit Hilfe einer 6-Band TM mit
Bandalphabet {|, @, #} und Zustandsmenge der Form Q × A
(“zusätzliches Gedächtnis”), deren zweite Komponente zur Speicherung des
endlichen RAM-Programms dient.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
63 / 236
Church-Turing-These
Registermaschinen (RAM)
Beweis
Wir simulieren ein RAM-Programm für f mit Hilfe einer 6-Band TM mit
Bandalphabet {|, @, #} und Zustandsmenge der Form Q × A
(“zusätzliches Gedächtnis”), deren zweite Komponente zur Speicherung des
endlichen RAM-Programms dient.
B0 dient zur Eingabe mit @|x0 @|x1 @ . . . |xn−1 @ ;
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
63 / 236
Church-Turing-These
Registermaschinen (RAM)
Beweis
Wir simulieren ein RAM-Programm für f mit Hilfe einer 6-Band TM mit
Bandalphabet {|, @, #} und Zustandsmenge der Form Q × A
(“zusätzliches Gedächtnis”), deren zweite Komponente zur Speicherung des
endlichen RAM-Programms dient.
B0 dient zur Eingabe mit @|x0 @|x1 @ . . . |xn−1 @ ;
B1 enthält die zunächst nichtleeren Register hRi i = n in der Form
@|i @|n @ ; aktuelle Angaben für Ri werden rechts angefügt (das erspart
das Verändern von Zahlen in der Mitte des Bandes); dann ist auch
n = 0 möglich;
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
63 / 236
Church-Turing-These
Registermaschinen (RAM)
Beweis
Wir simulieren ein RAM-Programm für f mit Hilfe einer 6-Band TM mit
Bandalphabet {|, @, #} und Zustandsmenge der Form Q × A
(“zusätzliches Gedächtnis”), deren zweite Komponente zur Speicherung des
endlichen RAM-Programms dient.
B0 dient zur Eingabe mit @|x0 @|x1 @ . . . |xn−1 @ ;
B1 enthält die zunächst nichtleeren Register hRi i = n in der Form
@|i @|n @ ; aktuelle Angaben für Ri werden rechts angefügt (das erspart
das Verändern von Zahlen in der Mitte des Bandes); dann ist auch
n = 0 möglich;
B2 und B3 fungieren als Akkumulator bzw. Befehlszähler;
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
63 / 236
Church-Turing-These
Registermaschinen (RAM)
Beweis
Wir simulieren ein RAM-Programm für f mit Hilfe einer 6-Band TM mit
Bandalphabet {|, @, #} und Zustandsmenge der Form Q × A
(“zusätzliches Gedächtnis”), deren zweite Komponente zur Speicherung des
endlichen RAM-Programms dient.
B0 dient zur Eingabe mit @|x0 @|x1 @ . . . |xn−1 @ ;
B1 enthält die zunächst nichtleeren Register hRi i = n in der Form
@|i @|n @ ; aktuelle Angaben für Ri werden rechts angefügt (das erspart
das Verändern von Zahlen in der Mitte des Bandes); dann ist auch
n = 0 möglich;
B2 und B3 fungieren als Akkumulator bzw. Befehlszähler;
B4 ist ein Hilfsband und B5 dient der Ausgabe.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
63 / 236
Church-Turing-These
Registermaschinen (RAM)
Beweis
Wir simulieren ein RAM-Programm für f mit Hilfe einer 6-Band TM mit
Bandalphabet {|, @, #} und Zustandsmenge der Form Q × A
(“zusätzliches Gedächtnis”), deren zweite Komponente zur Speicherung des
endlichen RAM-Programms dient.
B0 dient zur Eingabe mit @|x0 @|x1 @ . . . |xn−1 @ ;
B1 enthält die zunächst nichtleeren Register hRi i = n in der Form
@|i @|n @ ; aktuelle Angaben für Ri werden rechts angefügt (das erspart
das Verändern von Zahlen in der Mitte des Bandes); dann ist auch
n = 0 möglich;
B2 und B3 fungieren als Akkumulator bzw. Befehlszähler;
B4 ist ein Hilfsband und B5 dient der Ausgabe.
Zu Beginn sind alle Bänder außer B0 leer.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
63 / 236
Church-Turing-These
Registermaschinen (RAM)
Beweis
Wir simulieren ein RAM-Programm für f mit Hilfe einer 6-Band TM mit
Bandalphabet {|, @, #} und Zustandsmenge der Form Q × A
(“zusätzliches Gedächtnis”), deren zweite Komponente zur Speicherung des
endlichen RAM-Programms dient.
B0 dient zur Eingabe mit @|x0 @|x1 @ . . . |xn−1 @ ;
B1 enthält die zunächst nichtleeren Register hRi i = n in der Form
@|i @|n @ ; aktuelle Angaben für Ri werden rechts angefügt (das erspart
das Verändern von Zahlen in der Mitte des Bandes); dann ist auch
n = 0 möglich;
B2 und B3 fungieren als Akkumulator bzw. Befehlszähler;
B4 ist ein Hilfsband und B5 dient der Ausgabe.
Zu Beginn sind alle Bänder außer B0 leer. Dann wird immer der Befehl
simuliert, dessen Zeilennummer auf B3 steht.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
63 / 236
Church-Turing-These
Registermaschinen (RAM)
Beweis (Fortsetzung)
Nun gilt es nur noch , die einzelnen RAM-Befehle zu simulieren. ...
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
64 / 236
Church-Turing-These
Registermaschinen (RAM)
Beweis (Fortsetzung)
Nun gilt es nur noch , die einzelnen RAM-Befehle zu simulieren. ...
Frau Viorica Sofronie-Stokkermans von der Universität Koblenz-Landau
verfolgt hinsichtlich Register-Maschinen einen geschickteren Ansatz:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
64 / 236
Church-Turing-These
Registermaschinen (RAM)
Beweis (Fortsetzung)
Nun gilt es nur noch , die einzelnen RAM-Befehle zu simulieren. ...
Frau Viorica Sofronie-Stokkermans von der Universität Koblenz-Landau
verfolgt hinsichtlich Register-Maschinen einen geschickteren Ansatz:
Neben dem IF...GOTO-Konstrukt verwendet sie LOOP und WHILE
Schleifen, erstere mit vorgegebenener und lezterer mit potentiell
variabler Anzahl von Durchläufen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
64 / 236
Church-Turing-These
Registermaschinen (RAM)
Beweis (Fortsetzung)
Nun gilt es nur noch , die einzelnen RAM-Befehle zu simulieren. ...
Frau Viorica Sofronie-Stokkermans von der Universität Koblenz-Landau
verfolgt hinsichtlich Register-Maschinen einen geschickteren Ansatz:
Neben dem IF...GOTO-Konstrukt verwendet sie LOOP und WHILE
Schleifen, erstere mit vorgegebenener und lezterer mit potentiell
variabler Anzahl von Durchläufen.
Das induziert drei Klassen berechenbarer Funktionen, LOOP ,
WHILE und GOTO , wobei man jeweils noch den partiellen und den
totalen Fall unterscheiden kann.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
64 / 236
Church-Turing-These
Registermaschinen (RAM)
Beweis (Fortsetzung)
Nun gilt es nur noch , die einzelnen RAM-Befehle zu simulieren. ...
Frau Viorica Sofronie-Stokkermans von der Universität Koblenz-Landau
verfolgt hinsichtlich Register-Maschinen einen geschickteren Ansatz:
Neben dem IF...GOTO-Konstrukt verwendet sie LOOP und WHILE
Schleifen, erstere mit vorgegebenener und lezterer mit potentiell
variabler Anzahl von Durchläufen.
Das induziert drei Klassen berechenbarer Funktionen, LOOP ,
WHILE und GOTO , wobei man jeweils noch den partiellen und den
totalen Fall unterscheiden kann.
Es stellt sich heraus, LOOP echt in den totalen WHILE-Funktionen
enthalten ist, während die Turing-berechenbaren Funktionen mit
WHILE und GOTO übereinstimmen; Slogan:
strukturierter Code ist genauso mächtig wie Spaghetti-Code
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
64 / 236
Church-Turing-These
6.2 Rekursive Funktionen
6.2 Rekursive Funktionen
Dieser alternative Ansatz zur Formalisierung intuitiv berechenbarer
Funktionen geht algebraisch vor.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
65 / 236
Church-Turing-These
6.2 Rekursive Funktionen
6.2 Rekursive Funktionen
Dieser alternative Ansatz zur Formalisierung intuitiv berechenbarer
Funktionen geht algebraisch vor. Ausgehend von sog. Grundfunktionen wird
mit zwei Operationen zunächst die Klasse der primitiv rekursiven
Funktionen aufgebaut. Der Abschluß unter einer dritten Operation liefert
dann die Klasse der µ-rekursiven Funktionen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
65 / 236
Church-Turing-These
6.2 Rekursive Funktionen
6.2 Rekursive Funktionen
Dieser alternative Ansatz zur Formalisierung intuitiv berechenbarer
Funktionen geht algebraisch vor. Ausgehend von sog. Grundfunktionen wird
mit zwei Operationen zunächst die Klasse der primitiv rekursiven
Funktionen aufgebaut. Der Abschluß unter einer dritten Operation liefert
dann die Klasse der µ-rekursiven Funktionen. Diese stimmt letztlich mit
der Klasse der partiellen Turing-berechenbaren Funktionen überein.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
65 / 236
Church-Turing-These
6.2 Rekursive Funktionen
6.2 Rekursive Funktionen
Dieser alternative Ansatz zur Formalisierung intuitiv berechenbarer
Funktionen geht algebraisch vor. Ausgehend von sog. Grundfunktionen wird
mit zwei Operationen zunächst die Klasse der primitiv rekursiven
Funktionen aufgebaut. Der Abschluß unter einer dritten Operation liefert
dann die Klasse der µ-rekursiven Funktionen. Diese stimmt letztlich mit
der Klasse der partiellen Turing-berechenbaren Funktionen überein.
Definition
Die Klasse PR0 der Grundfunktionen besteht aus
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
65 / 236
Church-Turing-These
6.2 Rekursive Funktionen
6.2 Rekursive Funktionen
Dieser alternative Ansatz zur Formalisierung intuitiv berechenbarer
Funktionen geht algebraisch vor. Ausgehend von sog. Grundfunktionen wird
mit zwei Operationen zunächst die Klasse der primitiv rekursiven
Funktionen aufgebaut. Der Abschluß unter einer dritten Operation liefert
dann die Klasse der µ-rekursiven Funktionen. Diese stimmt letztlich mit
der Klasse der partiellen Turing-berechenbaren Funktionen überein.
Definition
Die Klasse PR0 der Grundfunktionen besteht aus
.
allen Projektionen Nk
Jürgen Koslowski (TU-BS)
πik
N, x 7→ xi , für i < k ∈ N ;
Theoretische Informatik 2
SS 2015
65 / 236
Church-Turing-These
6.2 Rekursive Funktionen
6.2 Rekursive Funktionen
Dieser alternative Ansatz zur Formalisierung intuitiv berechenbarer
Funktionen geht algebraisch vor. Ausgehend von sog. Grundfunktionen wird
mit zwei Operationen zunächst die Klasse der primitiv rekursiven
Funktionen aufgebaut. Der Abschluß unter einer dritten Operation liefert
dann die Klasse der µ-rekursiven Funktionen. Diese stimmt letztlich mit
der Klasse der partiellen Turing-berechenbaren Funktionen überein.
Definition
Die Klasse PR0 der Grundfunktionen besteht aus
.
allen Projektionen Nk
πik
Nk
κk;0
. allen konstante Funktionen
Jürgen Koslowski (TU-BS)
N, x 7→ xi , für i < k ∈ N ;
N, x 7→ 0 , für k ∈ N ;
Theoretische Informatik 2
SS 2015
65 / 236
Church-Turing-These
6.2 Rekursive Funktionen
6.2 Rekursive Funktionen
Dieser alternative Ansatz zur Formalisierung intuitiv berechenbarer
Funktionen geht algebraisch vor. Ausgehend von sog. Grundfunktionen wird
mit zwei Operationen zunächst die Klasse der primitiv rekursiven
Funktionen aufgebaut. Der Abschluß unter einer dritten Operation liefert
dann die Klasse der µ-rekursiven Funktionen. Diese stimmt letztlich mit
der Klasse der partiellen Turing-berechenbaren Funktionen überein.
Definition
Die Klasse PR0 der Grundfunktionen besteht aus
.
allen Projektionen Nk
πik
Nk
κk;0
. allen konstante Funktionen
.
der Nachfolger-Funktion N
Jürgen Koslowski (TU-BS)
succ
N, x 7→ xi , für i < k ∈ N ;
N, x 7→ 0 , für k ∈ N ;
N, n 7→ n + 1 .
Theoretische Informatik 2
SS 2015
65 / 236
Church-Turing-These
6.2 Rekursive Funktionen
6.2 Rekursive Funktionen
Dieser alternative Ansatz zur Formalisierung intuitiv berechenbarer
Funktionen geht algebraisch vor. Ausgehend von sog. Grundfunktionen wird
mit zwei Operationen zunächst die Klasse der primitiv rekursiven
Funktionen aufgebaut. Der Abschluß unter einer dritten Operation liefert
dann die Klasse der µ-rekursiven Funktionen. Diese stimmt letztlich mit
der Klasse der partiellen Turing-berechenbaren Funktionen überein.
Definition
Die Klasse PR0 der Grundfunktionen besteht aus
.
allen Projektionen Nk
πik
Nk
κk;0
. allen konstante Funktionen
.
der Nachfolger-Funktion N
succ
N, x 7→ xi , für i < k ∈ N ;
N, x 7→ 0 , für k ∈ N ;
N, n 7→ n + 1 .
Speziell im Fall k = 0 ist N0 ein Singleton {∗} . Dann existieren keine
0;0
Projektionen, und die Konstante {∗} κ
N kann mit dem Element
0 ∈ N identifiziert werden (Funktion ohne Parameter).
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
65 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Zunächst wollen wir die bekannte Verknüpfung einstelliger Funktionen
N
g
N
f
N
,
n 7→ f (g (n)) =: (f ◦ g )(n)
auf mehrstellige Funktionen übertragen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
66 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Zunächst wollen wir die bekannte Verknüpfung einstelliger Funktionen
N
g
N
f
N
,
n 7→ f (g (n)) =: (f ◦ g )(n)
auf mehrstellige Funktionen übertragen. Ist Nk f N gegeben, kann man
im einfachsten FallP k Funktionen Nti gi N per Substitution zu einer
neuen Funktion N i<k ti f ◦ (g0 × · · · × gk−1 ) N verbinden:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
66 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Zunächst wollen wir die bekannte Verknüpfung einstelliger Funktionen
N
g
N
f
N
,
n 7→ f (g (n)) =: (f ◦ g )(n)
auf mehrstellige Funktionen übertragen. Ist Nk f N gegeben, kann man
im einfachsten FallP k Funktionen Nti gi N per Substitution zu einer
neuen Funktion N i<k ti f ◦ (g0 × · · · × gk−1 ) N verbinden:
g0
g1
g2
f
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
66 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Zunächst wollen wir die bekannte Verknüpfung einstelliger Funktionen
N
g
N
f
N
,
n 7→ f (g (n)) =: (f ◦ g )(n)
auf mehrstellige Funktionen übertragen. Ist Nk f N gegeben, kann man
im einfachsten FallP k Funktionen Nti gi N per Substitution zu einer
neuen Funktion N i<k ti f ◦ (g0 × · · · × gk−1 ) N verbinden:
g0
g1
g2
f
(In dieser graphischen Darstellung haben die Knoten als Funktionen oben
endlich viele Inputs, und unten genau einen Output.)
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
66 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Zunächst wollen wir die bekannte Verknüpfung einstelliger Funktionen
N
g
N
f
N
,
n 7→ f (g (n)) =: (f ◦ g )(n)
auf mehrstellige Funktionen übertragen. Ist Nk f N gegeben, kann man
im einfachsten FallP k Funktionen Nti gi N per Substitution zu einer
neuen Funktion N i<k ti f ◦ (g0 × · · · × gk−1 ) N verbinden:
g0
g1
g2
f
(In dieser graphischen Darstellung haben die Knoten als Funktionen oben
endlich viele Inputs, und unten genau einen Output.)
Diese Operation wird sich später als ableitbar erweisen, dient also nicht als
grundlegendes Konstruktionsprinzip für primitiv-rekursive Funktionen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
66 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Stattdessen kann man für Nk f N auch k Funktionen gi mit
demselben Definitionsbereich Nm betrachten, und daraus eine kombinierte
Funktion von Nm nach N gewinnen, indem man die Eingabe für alle
Funktionen gi klont:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
67 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Stattdessen kann man für Nk f N auch k Funktionen gi mit
demselben Definitionsbereich Nm betrachten, und daraus eine kombinierte
Funktion von Nm nach N gewinnen, indem man die Eingabe für alle
Funktionen gi klont:
g0
g1
g2
f
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
67 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Stattdessen kann man für Nk f N auch k Funktionen gi mit
demselben Definitionsbereich Nm betrachten, und daraus eine kombinierte
Funktion von Nm nach N gewinnen, indem man die Eingabe für alle
Funktionen gi klont:
g0
g1
g2
f
Definition (Klon-Komposition)
Für Nk
f
N und Nm
Jürgen Koslowski (TU-BS)
gi
N, i < k setze Nm
x 7→ f g0 (x), . . . , gk−1 (x)
Theoretische Informatik 2
f ◦ hgi : i < ki
N
SS 2015
67 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Stattdessen kann man für Nk f N auch k Funktionen gi mit
demselben Definitionsbereich Nm betrachten, und daraus eine kombinierte
Funktion von Nm nach N gewinnen, indem man die Eingabe für alle
Funktionen gi klont:
g0
g1
g2
f
Definition (Klon-Komposition)
Für Nk
f
N und Nm
gi
N, i < k setze Nm
x 7→ f g0 (x), . . . , gk−1 (x)
f ◦ hgi : i < ki
N
Auch diese Operation wird in der Literatur leicht irreführend einfach als
“Substitution” oder “Komposition” bezeichnet.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
67 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel
Die Funktion N2 h N, hm, ni 7→ (m + n) + mn + max{m, n} läßt sich
mittels Klon-Komposition aus N3 f N, hx, y , zi 7→ x + y + z sowie
N2 gi N, i < 3 , konstruieren, mit g0 (m, n) := m + n , g1 (m, n) := mn
und g2 (m, n) := max{m, n} .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
68 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel
Die Funktion N2 h N, hm, ni 7→ (m + n) + mn + max{m, n} läßt sich
mittels Klon-Komposition aus N3 f N, hx, y , zi 7→ x + y + z sowie
N2 gi N, i < 3 , konstruieren, mit g0 (m, n) := m + n , g1 (m, n) := mn
und g2 (m, n) := max{m, n} .
Beispiel
k;i
Konstante Funktionen Nk κ
N mit Wert i ∈ N liefert κk;0 durch
i -fache Verknüpfung mit der Nachfolger-Funktion: κk;i = (succ)i ◦ κk;0 .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
68 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel
Die Funktion N2 h N, hm, ni 7→ (m + n) + mn + max{m, n} läßt sich
mittels Klon-Komposition aus N3 f N, hx, y , zi 7→ x + y + z sowie
N2 gi N, i < 3 , konstruieren, mit g0 (m, n) := m + n , g1 (m, n) := mn
und g2 (m, n) := max{m, n} .
Beispiel
k;i
Konstante Funktionen Nk κ
N mit Wert i ∈ N liefert κk;0 durch
i -fache Verknüpfung mit der Nachfolger-Funktion: κk;i = (succ)i ◦ κk;0 .
Beispiel
Die durch f (n) = n + 2 spezifizierte Funktion N
f = succ ◦ succ realisieren.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
f
N läßt sich durch
SS 2015
68 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel
Die Funktion N2 h N, hm, ni 7→ (m + n) + mn + max{m, n} läßt sich
mittels Klon-Komposition aus N3 f N, hx, y , zi 7→ x + y + z sowie
N2 gi N, i < 3 , konstruieren, mit g0 (m, n) := m + n , g1 (m, n) := mn
und g2 (m, n) := max{m, n} .
Beispiel
k;i
Konstante Funktionen Nk κ
N mit Wert i ∈ N liefert κk;0 durch
i -fache Verknüpfung mit der Nachfolger-Funktion: κk;i = (succ)i ◦ κk;0 .
Beispiel
Die durch f (n) = n + 2 spezifizierte Funktion N
f = succ ◦ succ realisieren.
f
N läßt sich durch
Entsprechend liefert die Spezifikation g (m, n) = n + 2 eine Funktion
N2 g N mit g = f ◦ π12 .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
68 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Satz
Substitution läßt sich auf Klon-Komposition zurückführen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
69 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Satz
Substitution läßt sich auf Klon-Komposition zurückführen.
Beweis
Für Nk
Nti gi
f
N erweitert man den Definitionsbereich der Funktionen
P
N, i < k , mittels Dummy-Argumenten zu Nt mit t = i<k ti .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
69 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Satz
Substitution läßt sich auf Klon-Komposition zurückführen.
Beweis
Für Nk f N erweitert man den Definitionsbereich der Funktionen
P
Nti gi N, i < k , mittels Dummy-Argumenten zu Nt mit t = i<k ti .
Dafür verwendet man Klon-Komposition mit geeigneten Projektionen:
t
g̃i = gi ◦ hπP
Jürgen Koslowski (TU-BS)
j<i tj
, . . . , π(tP
Theoretische Informatik 2
j≤i tj )−1
i
SS 2015
69 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Satz
Substitution läßt sich auf Klon-Komposition zurückführen.
Beweis
Für Nk f N erweitert man den Definitionsbereich der Funktionen
P
Nti gi N, i < k , mittels Dummy-Argumenten zu Nt mit t = i<k ti .
Dafür verwendet man Klon-Komposition mit geeigneten Projektionen:
t
g̃i = gi ◦ hπP
j<i tj
, . . . , π(tP
j≤i tj )−1
i
Dies liefert schließlich
f ◦ (g0 × · · · × gk−1 ) = f ◦ hg̃0 , . . . , g̃k−1 i
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
69 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Satz
Substitution läßt sich auf Klon-Komposition zurückführen.
Beweis
Für Nk f N erweitert man den Definitionsbereich der Funktionen
P
Nti gi N, i < k , mittels Dummy-Argumenten zu Nt mit t = i<k ti .
Dafür verwendet man Klon-Komposition mit geeigneten Projektionen:
t
g̃i = gi ◦ hπP
j<i tj
, . . . , π(tP
j≤i tj )−1
i
Dies liefert schließlich
f ◦ (g0 × · · · × gk−1 ) = f ◦ hg̃0 , . . . , g̃k−1 i
Umgekehrt zeigt die graphische Darstellung unmittelbar, dass die
Klon-Komposition nicht mit Hilfe der Substitution realisiert werden kann.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
69 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Satz
Substitution läßt sich auf Klon-Komposition zurückführen.
Beweis
Für Nk f N erweitert man den Definitionsbereich der Funktionen
P
Nti gi N, i < k , mittels Dummy-Argumenten zu Nt mit t = i<k ti .
Dafür verwendet man Klon-Komposition mit geeigneten Projektionen:
t
g̃i = gi ◦ hπP
j<i tj
, . . . , π(tP
j≤i tj )−1
i
Dies liefert schließlich
f ◦ (g0 × · · · × gk−1 ) = f ◦ hg̃0 , . . . , g̃k−1 i
Umgekehrt zeigt die graphische Darstellung unmittelbar, dass die
Klon-Komposition nicht mit Hilfe der Substitution realisiert werden kann.
(Während Substitution nur auf der Tensorprodukt-Eigenschaft von × beruht, benötigt Klon-Komposition die Eigenschaften
eines kategoriellen Produkts, speziell die Existenz von Projektionen.)
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
69 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Definition (Induktions-Rekursions-Schema (IRS))
Aus zwei Funktionen Nk−1
Nk f = IR(g , h) N gemäß
g
N
h
Nk+1 konstruieren wir eine dritte
f (x, 0) := g (x) und f (x, m + 1) := h(x, m, f (x, m))
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
mit
x ∈ Nk−1
SS 2015
70 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Definition (Induktions-Rekursions-Schema (IRS))
Aus zwei Funktionen Nk−1
Nk f = IR(g , h) N gemäß
g
N
h
Nk+1 konstruieren wir eine dritte
f (x, 0) := g (x) und f (x, m + 1) := h(x, m, f (x, m))
mit
x ∈ Nk−1
Die Rekursion erfolgt bei festem x ∈ Nk−1 im letzten Argument rückwärts
durch m + 1 -malige Anwendung von h auf den Startwert f (x, 0) = g (x) :
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
70 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Definition (Induktions-Rekursions-Schema (IRS))
Aus zwei Funktionen Nk−1
Nk f = IR(g , h) N gemäß
g
N
h
Nk+1 konstruieren wir eine dritte
f (x, 0) := g (x) und f (x, m + 1) := h(x, m, f (x, m))
mit
x ∈ Nk−1
Die Rekursion erfolgt bei festem x ∈ Nk−1 im letzten Argument rückwärts
durch m + 1 -malige Anwendung von h auf den Startwert f (x, 0) = g (x) :
Beispiel ( m = 2 )
f (x, 3) = f (x, 2 + 1) = h(x, 2, f (x, 2))
= h(x, 2, f (x, 1 + 1))
= h(x, 2, h(x, 1, f (x, 1)))
= h(x, 2, h(x, 1, f (x, 0 + 1)))
= h(x, 2, h(x, 1, h(x, 0, f (x, 0))))
= h(x, 2, h(x, 1, h(x, 0, g (x))))
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
70 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Definition
Die Klasse PR der primitiv rekursiven Funktionen bilden den Abschluß der
Grundfunktionen unter der Klon-Komposition und Induktions-Rekursions:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
71 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Definition
Die Klasse PR der primitiv rekursiven Funktionen bilden den Abschluß der
Grundfunktionen unter der Klon-Komposition und Induktions-Rekursions:
Die Menge PRi+1 entstehe durch Anwendung von Klon-Komposition und
IRS auf Funktionen aus PRi , i ∈ N . Wegen idIN = π01 ∈ PR0 folgt sofort
PR0 ⊆ PR1 , und per Induktion auch PRi ⊆ PRi+1 .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
71 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Definition
Die Klasse PR der primitiv rekursiven Funktionen bilden den Abschluß der
Grundfunktionen unter der Klon-Komposition und Induktions-Rekursions:
Die Menge PRi+1 entstehe durch Anwendung von Klon-Komposition und
IRS auf Funktionen aus PRi , i ∈ N . Wegen idIN = π01 ∈ PR0 folgt sofort
PR0 ⊆ PR1 , und per Induktion auch PRi ⊆ PRi+1 .
[
PR := { PRi : i ∈ N }
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
71 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Definition
Die Klasse PR der primitiv rekursiven Funktionen bilden den Abschluß der
Grundfunktionen unter der Klon-Komposition und Induktions-Rekursions:
Die Menge PRi+1 entstehe durch Anwendung von Klon-Komposition und
IRS auf Funktionen aus PRi , i ∈ N . Wegen idIN = π01 ∈ PR0 folgt sofort
PR0 ⊆ PR1 , und per Induktion auch PRi ⊆ PRi+1 .
[
PR := { PRi : i ∈ N }
Satz
Die Menge PR der primitiv-rekursiven Funktionen ist abzählbar.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
71 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Definition
Die Klasse PR der primitiv rekursiven Funktionen bilden den Abschluß der
Grundfunktionen unter der Klon-Komposition und Induktions-Rekursions:
Die Menge PRi+1 entstehe durch Anwendung von Klon-Komposition und
IRS auf Funktionen aus PRi , i ∈ N . Wegen idIN = π01 ∈ PR0 folgt sofort
PR0 ⊆ PR1 , und per Induktion auch PRi ⊆ PRi+1 .
[
PR := { PRi : i ∈ N }
Satz
Die Menge PR der primitiv-rekursiven Funktionen ist abzählbar.
Um f ∈ PR für eine gegebene zahlentheoretische Funktion Nk f N
nachzuweisen, ist f als Klon-Komposition von, oder als Ergebnis des IRS
mit Funktionen darzustellen, die auch zu PR gehören.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
71 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel
Die Fakultätsfunktion fac(n) = n! =
Jürgen Koslowski (TU-BS)
Q
i≤n
i ist primitiv rekursiv.
Theoretische Informatik 2
SS 2015
72 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel
Die Fakultätsfunktion fac(n) = n! =
Q
i≤n
i ist primitiv rekursiv.
Da fac nicht offensichtlich die Klon-Komposition einfacherer Funktionen
ist, versuchen wir, fac mit Hilfe des IRS darzustellen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
72 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel
Die Fakultätsfunktion fac(n) = n! =
Q
i≤n
i ist primitiv rekursiv.
Da fac nicht offensichtlich die Klon-Komposition einfacherer Funktionen
ist, versuchen wir, fac mit Hilfe des IRS darzustellen. fac(0) = 1 erzwingt
g = κ0;1 .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
72 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel
Die Fakultätsfunktion fac(n) = n! =
Q
i≤n
i ist primitiv rekursiv.
Da fac nicht offensichtlich die Klon-Komposition einfacherer Funktionen
ist, versuchen wir, fac mit Hilfe des IRS darzustellen. fac(0) = 1 erzwingt
g = κ0;1 . Um einen Kandidaten für h zu finden, wollen wir fac(m + 1)
mit fac(m) in Beziehung setzen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
72 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel
Die Fakultätsfunktion fac(n) = n! =
Q
i≤n
i ist primitiv rekursiv.
Da fac nicht offensichtlich die Klon-Komposition einfacherer Funktionen
ist, versuchen wir, fac mit Hilfe des IRS darzustellen. fac(0) = 1 erzwingt
g = κ0;1 . Um einen Kandidaten für h zu finden, wollen wir fac(m + 1)
mit fac(m) in Beziehung setzen. Offenbar gilt
fac(m + 1) = (m + 1)!
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
72 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel
Die Fakultätsfunktion fac(n) = n! =
Q
i≤n
i ist primitiv rekursiv.
Da fac nicht offensichtlich die Klon-Komposition einfacherer Funktionen
ist, versuchen wir, fac mit Hilfe des IRS darzustellen. fac(0) = 1 erzwingt
g = κ0;1 . Um einen Kandidaten für h zu finden, wollen wir fac(m + 1)
mit fac(m) in Beziehung setzen. Offenbar gilt
Y
i
fac(m + 1) = (m + 1)! =
i≤m+1
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
72 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel
Die Fakultätsfunktion fac(n) = n! =
Q
i≤n
i ist primitiv rekursiv.
Da fac nicht offensichtlich die Klon-Komposition einfacherer Funktionen
ist, versuchen wir, fac mit Hilfe des IRS darzustellen. fac(0) = 1 erzwingt
g = κ0;1 . Um einen Kandidaten für h zu finden, wollen wir fac(m + 1)
mit fac(m) in Beziehung setzen. Offenbar gilt
Y
Y
i = (m + 1) ·
i
fac(m + 1) = (m + 1)! =
i≤m+1
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
i≤m
SS 2015
72 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel
Die Fakultätsfunktion fac(n) = n! =
Q
i≤n
i ist primitiv rekursiv.
Da fac nicht offensichtlich die Klon-Komposition einfacherer Funktionen
ist, versuchen wir, fac mit Hilfe des IRS darzustellen. fac(0) = 1 erzwingt
g = κ0;1 . Um einen Kandidaten für h zu finden, wollen wir fac(m + 1)
mit fac(m) in Beziehung setzen. Offenbar gilt
Y
Y
i = (m + 1) ·
i = (m + 1) · m!
fac(m + 1) = (m + 1)! =
i≤m+1
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
i≤m
SS 2015
72 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel
Die Fakultätsfunktion fac(n) = n! =
Q
i≤n
i ist primitiv rekursiv.
Da fac nicht offensichtlich die Klon-Komposition einfacherer Funktionen
ist, versuchen wir, fac mit Hilfe des IRS darzustellen. fac(0) = 1 erzwingt
g = κ0;1 . Um einen Kandidaten für h zu finden, wollen wir fac(m + 1)
mit fac(m) in Beziehung setzen. Offenbar gilt
Y
Y
i = (m + 1) ·
i = (m + 1) · m!
fac(m + 1) = (m + 1)! =
i≤m+1
i≤m
= (m + 1) · fac(m) = h(m, fac(m))
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
72 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel
Die Fakultätsfunktion fac(n) = n! =
Q
i≤n
i ist primitiv rekursiv.
Da fac nicht offensichtlich die Klon-Komposition einfacherer Funktionen
ist, versuchen wir, fac mit Hilfe des IRS darzustellen. fac(0) = 1 erzwingt
g = κ0;1 . Um einen Kandidaten für h zu finden, wollen wir fac(m + 1)
mit fac(m) in Beziehung setzen. Offenbar gilt
Y
Y
i = (m + 1) ·
i = (m + 1) · m!
fac(m + 1) = (m + 1)! =
i≤m+1
i≤m
= (m + 1) · fac(m) = h(m, fac(m))
Das legt N2
h
N, ha, bi 7→ succ(a) · b nahe.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
72 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel
Die Fakultätsfunktion fac(n) = n! =
Q
i≤n
i ist primitiv rekursiv.
Da fac nicht offensichtlich die Klon-Komposition einfacherer Funktionen
ist, versuchen wir, fac mit Hilfe des IRS darzustellen. fac(0) = 1 erzwingt
g = κ0;1 . Um einen Kandidaten für h zu finden, wollen wir fac(m + 1)
mit fac(m) in Beziehung setzen. Offenbar gilt
Y
Y
i = (m + 1) ·
i = (m + 1) · m!
fac(m + 1) = (m + 1)! =
i≤m+1
i≤m
= (m + 1) · fac(m) = h(m, fac(m))
Das legt N2
h
N, ha, bi 7→ succ(a) · b nahe.
Bei h handelt es sich um das Ergebnis der Substitution von succ und
idN = π01 in die Multiplikation N2 mult N. Die primitive Rekursivität von
h folgt, wenn wir die der Multiplikation nachweisen können.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
72 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel (Fortsetzung)
Da die Multiplikation weder auf Klon-Komposition noch auf Substitution
basiert, versuchen wir es mit dem IRS.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
73 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel (Fortsetzung)
Da die Multiplikation weder auf Klon-Komposition noch auf Substitution
basiert, versuchen wir es mit dem IRS. Aus n · 0 = 0 folgern wir g 0 = κ1;0 ,
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
73 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel (Fortsetzung)
Da die Multiplikation weder auf Klon-Komposition noch auf Substitution
basiert, versuchen wir es mit dem IRS. Aus n · 0 = 0 folgern wir g 0 = κ1;0 ,
während n · (m + 1) = n + n · m = h0 (n, m, n · m) die Wahl von
h0 (a, b, c) = a + c nahelegt, genauer: h0 = plus ◦ hπ03 , π23 i .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
73 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel (Fortsetzung)
Da die Multiplikation weder auf Klon-Komposition noch auf Substitution
basiert, versuchen wir es mit dem IRS. Aus n · 0 = 0 folgern wir g 0 = κ1;0 ,
während n · (m + 1) = n + n · m = h0 (n, m, n · m) die Wahl von
h0 (a, b, c) = a + c nahelegt, genauer: h0 = plus ◦ hπ03 , π23 i .
Damit bleibt die Addition N2
untersuchen.
Jürgen Koslowski (TU-BS)
plus
N auf primitive Rekursivität zu
Theoretische Informatik 2
SS 2015
73 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel (Fortsetzung)
Da die Multiplikation weder auf Klon-Komposition noch auf Substitution
basiert, versuchen wir es mit dem IRS. Aus n · 0 = 0 folgern wir g 0 = κ1;0 ,
während n · (m + 1) = n + n · m = h0 (n, m, n · m) die Wahl von
h0 (a, b, c) = a + c nahelegt, genauer: h0 = plus ◦ hπ03 , π23 i .
Damit bleibt die Addition N2 plus N auf primitive Rekursivität zu
untersuchen. Klon-Komposition und Substitution entfallen, bleibt also nur
das IRS.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
73 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel (Fortsetzung)
Da die Multiplikation weder auf Klon-Komposition noch auf Substitution
basiert, versuchen wir es mit dem IRS. Aus n · 0 = 0 folgern wir g 0 = κ1;0 ,
während n · (m + 1) = n + n · m = h0 (n, m, n · m) die Wahl von
h0 (a, b, c) = a + c nahelegt, genauer: h0 = plus ◦ hπ03 , π23 i .
Damit bleibt die Addition N2 plus N auf primitive Rekursivität zu
untersuchen. Klon-Komposition und Substitution entfallen, bleibt also nur
das IRS. Aus n + 0 = n folgern wir g 00 = idN = π01 .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
73 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel (Fortsetzung)
Da die Multiplikation weder auf Klon-Komposition noch auf Substitution
basiert, versuchen wir es mit dem IRS. Aus n · 0 = 0 folgern wir g 0 = κ1;0 ,
während n · (m + 1) = n + n · m = h0 (n, m, n · m) die Wahl von
h0 (a, b, c) = a + c nahelegt, genauer: h0 = plus ◦ hπ03 , π23 i .
Damit bleibt die Addition N2 plus N auf primitive Rekursivität zu
untersuchen. Klon-Komposition und Substitution entfallen, bleibt also nur
das IRS. Aus n + 0 = n folgern wir g 00 = idN = π01 . Andererseits legt
n + (m + 1) = (n + m) + 1 = h00 (n, m, n + m) die Wahl von
h00 (a, b, c) = c + 1 nahe, genauer: h00 = succ ◦ π23 .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
73 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel (Fortsetzung)
Da die Multiplikation weder auf Klon-Komposition noch auf Substitution
basiert, versuchen wir es mit dem IRS. Aus n · 0 = 0 folgern wir g 0 = κ1;0 ,
während n · (m + 1) = n + n · m = h0 (n, m, n · m) die Wahl von
h0 (a, b, c) = a + c nahelegt, genauer: h0 = plus ◦ hπ03 , π23 i .
Damit bleibt die Addition N2 plus N auf primitive Rekursivität zu
untersuchen. Klon-Komposition und Substitution entfallen, bleibt also nur
das IRS. Aus n + 0 = n folgern wir g 00 = idN = π01 . Andererseits legt
n + (m + 1) = (n + m) + 1 = h00 (n, m, n + m) die Wahl von
h00 (a, b, c) = c + 1 nahe, genauer: h00 = succ ◦ π23 .
Zusammenfassend sind folgende Funktionen primitiv rekursiv:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
73 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel (Fortsetzung)
Da die Multiplikation weder auf Klon-Komposition noch auf Substitution
basiert, versuchen wir es mit dem IRS. Aus n · 0 = 0 folgern wir g 0 = κ1;0 ,
während n · (m + 1) = n + n · m = h0 (n, m, n · m) die Wahl von
h0 (a, b, c) = a + c nahelegt, genauer: h0 = plus ◦ hπ03 , π23 i .
Damit bleibt die Addition N2 plus N auf primitive Rekursivität zu
untersuchen. Klon-Komposition und Substitution entfallen, bleibt also nur
das IRS. Aus n + 0 = n folgern wir g 00 = idN = π01 . Andererseits legt
n + (m + 1) = (n + m) + 1 = h00 (n, m, n + m) die Wahl von
h00 (a, b, c) = c + 1 nahe, genauer: h00 = succ ◦ π23 .
Zusammenfassend sind folgende Funktionen primitiv rekursiv:
plus = IR(π01 , succ ◦ π23 )
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
73 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel (Fortsetzung)
Da die Multiplikation weder auf Klon-Komposition noch auf Substitution
basiert, versuchen wir es mit dem IRS. Aus n · 0 = 0 folgern wir g 0 = κ1;0 ,
während n · (m + 1) = n + n · m = h0 (n, m, n · m) die Wahl von
h0 (a, b, c) = a + c nahelegt, genauer: h0 = plus ◦ hπ03 , π23 i .
Damit bleibt die Addition N2 plus N auf primitive Rekursivität zu
untersuchen. Klon-Komposition und Substitution entfallen, bleibt also nur
das IRS. Aus n + 0 = n folgern wir g 00 = idN = π01 . Andererseits legt
n + (m + 1) = (n + m) + 1 = h00 (n, m, n + m) die Wahl von
h00 (a, b, c) = c + 1 nahe, genauer: h00 = succ ◦ π23 .
Zusammenfassend sind folgende Funktionen primitiv rekursiv:
plus = IR(π01 , succ ◦ π23 )
mult = IR(κ1;0 , plus ◦ hπ03 , π23 i)
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
73 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel (Fortsetzung)
Da die Multiplikation weder auf Klon-Komposition noch auf Substitution
basiert, versuchen wir es mit dem IRS. Aus n · 0 = 0 folgern wir g 0 = κ1;0 ,
während n · (m + 1) = n + n · m = h0 (n, m, n · m) die Wahl von
h0 (a, b, c) = a + c nahelegt, genauer: h0 = plus ◦ hπ03 , π23 i .
Damit bleibt die Addition N2 plus N auf primitive Rekursivität zu
untersuchen. Klon-Komposition und Substitution entfallen, bleibt also nur
das IRS. Aus n + 0 = n folgern wir g 00 = idN = π01 . Andererseits legt
n + (m + 1) = (n + m) + 1 = h00 (n, m, n + m) die Wahl von
h00 (a, b, c) = c + 1 nahe, genauer: h00 = succ ◦ π23 .
Zusammenfassend sind folgende Funktionen primitiv rekursiv:
plus = IR(π01 , succ ◦ π23 )
mult = IR(κ1;0 , plus ◦ hπ03 , π23 i)
fac = IR(κ0;1 , mult ◦ hsucc, π01 i)
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
73 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel (Die auf N beschränkte Subtraktion ist primitiv-rekursiv)
(
. m = n − m falls n > m
monus(n, m) = n −
0
sonst
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
74 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel (Die auf N beschränkte Subtraktion ist primitiv-rekursiv)
(
. m = n − m falls n > m
monus(n, m) = n −
0
sonst
läßt sich umschreiben zu
monus(n, 0) = n
Jürgen Koslowski (TU-BS)
und
monus(n, m + 1) = pred monus(n, m)
Theoretische Informatik 2
SS 2015
74 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel (Die auf N beschränkte Subtraktion ist primitiv-rekursiv)
(
. m = n − m falls n > m
monus(n, m) = n −
0
sonst
läßt sich umschreiben zu
monus(n, 0) = n
und
monus(n, m + 1) = pred monus(n, m)
Dies paßt zum Rekursionsschema für g = π01 = idN und h = pred ◦π23 ,
wobei die totale Vorgängerfunktion pred definiert ist durch
pred(0) = 0
Jürgen Koslowski (TU-BS)
und
pred(m + 1) = m
Theoretische Informatik 2
SS 2015
74 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel (Die auf N beschränkte Subtraktion ist primitiv-rekursiv)
(
. m = n − m falls n > m
monus(n, m) = n −
0
sonst
läßt sich umschreiben zu
monus(n, 0) = n
und
monus(n, m + 1) = pred monus(n, m)
Dies paßt zum Rekursionsschema für g = π01 = idN und h = pred ◦π23 ,
wobei die totale Vorgängerfunktion pred definiert ist durch
pred(0) = 0
und
pred(m + 1) = m
Die primitive Rekursivität von h folgt aus der von pred . Aber dies ergibt
sich auch mit Hilfe des Rekursionsschemas und den Funktionen ḡ = κ0;0
und h̄ = π02 :
pred 0 = 0 = ḡ
Jürgen Koslowski (TU-BS)
und
pred(m + 1) = h̄(m, pred(m)) = m
Theoretische Informatik 2
SS 2015
74 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Satz
Das Umordnen, Löschen oder Wiederholen von Argumenten in primitivrekursiven Funktionen liefert wieder solche.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
75 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Satz
Das Umordnen, Löschen oder Wiederholen von Argumenten in primitivrekursiven Funktionen liefert wieder solche.
Beweis.
Für Nk g N und {0, . . . , k − 1} = k
die Komposition
f : Nm
Nϕ
Nk
g
N ,
ϕ
m = {0, . . . , m − 1} läßt sich
x 7→ g (xϕ(0) , ×ϕ(1) , . . . , xϕ(k−1) )
m , πm , . . . , πm
darstellen als Klon-Komposition f = g ◦ hπϕ(0)
ϕ(1)
ϕ(k−1) i .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
75 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Satz
Das Umordnen, Löschen oder Wiederholen von Argumenten in primitivrekursiven Funktionen liefert wieder solche.
Beweis.
Für Nk g N und {0, . . . , k − 1} = k
die Komposition
f : Nm
Nϕ
Nk
g
N ,
ϕ
m = {0, . . . , m − 1} läßt sich
x 7→ g (xϕ(0) , ×ϕ(1) , . . . , xϕ(k−1) )
m , πm , . . . , πm
darstellen als Klon-Komposition f = g ◦ hπϕ(0)
ϕ(1)
ϕ(k−1) i .
Corollar
Ist Nk f N primitiv-rekursiv, dann auch für alle ` ∈ N die Funktion
0
Nk × N` = Nk+` f
N die gegeben ist durch f 0 (x, y) = f (x) .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
75 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Satz (Fallunterscheidung ist primitv-rekursiv)
Sind für i < n die Funktionen Nk gi , hi N primitiv-rekursiv, und existiert
für jedes x ∈ Nk genau ein i < n mit hi (x) = 0 , so ist auch
Nk
f
N
,
x 7→ gi (x)
falls
hi (x) = 0
primitiv-rekursiv.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
76 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Satz (Fallunterscheidung ist primitv-rekursiv)
Sind für i < n die Funktionen Nk gi , hi N primitiv-rekursiv, und existiert
für jedes x ∈ Nk genau ein i < n mit hi (x) = 0 , so ist auch
Nk
f
N
,
x 7→ gi (x)
falls
hi (x) = 0
primitiv-rekursiv.
Beweis.
f (x) =
X
. h (x)
gi (x) · 1 −
i
i<n
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
76 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Satz
Mit Nk+1 g N sind auch folgende Funktionen Nk+1 f+ , f∗ N
primitiv-rekursiv:
X
Y
f+ (x, m) :=
g (x, i) und f∗ (x, m) :=
g (x, i)
i<m
Jürgen Koslowski (TU-BS)
i<m
Theoretische Informatik 2
SS 2015
77 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Satz
Mit Nk+1 g N sind auch folgende Funktionen Nk+1 f+ , f∗ N
primitiv-rekursiv:
X
Y
f+ (x, m) :=
g (x, i) und f∗ (x, m) :=
g (x, i)
i<m
i<m
Beweis.
f+ (x, 0) = 0
und
f+ (x, m + 1) = f+ (x, m) + g (x, m)
zeigt, wie f+ mit dem IRS aus g+ (x) = 0 und h+ (x, m, c) = g (x, m) + c
entsteht.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
77 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Satz
Mit Nk+1 g N sind auch folgende Funktionen Nk+1 f+ , f∗ N
primitiv-rekursiv:
X
Y
f+ (x, m) :=
g (x, i) und f∗ (x, m) :=
g (x, i)
i<m
i<m
Beweis.
f+ (x, 0) = 0
und
f+ (x, m + 1) = f+ (x, m) + g (x, m)
zeigt, wie f+ mit dem IRS aus g+ (x) = 0 und h+ (x, m, c) = g (x, m) + c
entsteht. Analog zeigt
f∗ (x, 0) = 1 und
f∗ (x, m + 1) = f∗ (x, m) · g (x, m)
wie f∗ mit dem IRS aus g∗ (x) = 1 und h∗ (x, m, c) = g (x, m) · c entsteht.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
77 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Definition (beschränkter µ -Operator)
Für eine Funktion Nk+1
g
N definieren wir Nk+1
f
N durch
f (x, m) = µi<m (g (x, i) = 0)
(
i0 falls g (x, i0 ) = 0 und g (x, j) 6= 0 für j < i0
=
0 falls g (x, j) 6= 0 für alle j < m (speziell für m = 0)
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
78 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Definition (beschränkter µ -Operator)
Für eine Funktion Nk+1
g
N definieren wir Nk+1
f
N durch
f (x, m) = µi<m (g (x, i) = 0)
(
i0 falls g (x, i0 ) = 0 und g (x, j) 6= 0 für j < i0
=
0 falls g (x, j) 6= 0 für alle j < m (speziell für m = 0)
In Worten: f (x, m) ist die kleinste Zahl i0 < m mit g (x, i0 ) = 0 , falls
solch eine existiert, und 0 sonst.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
78 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Definition (beschränkter µ -Operator)
Für eine Funktion Nk+1
g
N definieren wir Nk+1
f
N durch
f (x, m) = µi<m (g (x, i) = 0)
(
i0 falls g (x, i0 ) = 0 und g (x, j) 6= 0 für j < i0
=
0 falls g (x, j) 6= 0 für alle j < m (speziell für m = 0)
In Worten: f (x, m) ist die kleinste Zahl i0 < m mit g (x, i0 ) = 0 , falls
solch eine existiert, und 0 sonst.
Die Schreibweise soll andeuten, dass i eine gebundene Variable ist.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
78 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Definition (beschränkter µ -Operator)
Für eine Funktion Nk+1
g
N definieren wir Nk+1
f
N durch
f (x, m) = µi<m (g (x, i) = 0)
(
i0 falls g (x, i0 ) = 0 und g (x, j) 6= 0 für j < i0
=
0 falls g (x, j) 6= 0 für alle j < m (speziell für m = 0)
In Worten: f (x, m) ist die kleinste Zahl i0 < m mit g (x, i0 ) = 0 , falls
solch eine existiert, und 0 sonst.
Die Schreibweise soll andeuten, dass i eine gebundene Variable ist.
Wir werden später auch einen unbeschränkten µ-Operator kennenlernen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
78 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Definition (beschränkter µ -Operator)
Für eine Funktion Nk+1
g
N definieren wir Nk+1
f
N durch
f (x, m) = µi<m (g (x, i) = 0)
(
i0 falls g (x, i0 ) = 0 und g (x, j) 6= 0 für j < i0
=
0 falls g (x, j) 6= 0 für alle j < m (speziell für m = 0)
In Worten: f (x, m) ist die kleinste Zahl i0 < m mit g (x, i0 ) = 0 , falls
solch eine existiert, und 0 sonst.
Die Schreibweise soll andeuten, dass i eine gebundene Variable ist.
Wir werden später auch einen unbeschränkten µ-Operator kennenlernen.
Satz
Ist g in der obigen Definition primitiv-rekursiv, so auch f .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
78 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beweis.
Wie wollen wieder das IRS anwenden.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
79 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beweis.
Wie wollen wieder das IRS anwenden. Dazu schreiben wir f wie folgt:
f (x, 0) = 0
(
m
falls g (x, m) + f (x, m) = 0 und g (x, 0) · m 6= 0
f (x, m + 1) =
f (x, m) sonst
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
79 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beweis.
Wie wollen wieder das IRS anwenden. Dazu schreiben wir f wie folgt:
f (x, 0) = 0
(
m
falls g (x, m) + f (x, m) = 0 und g (x, 0) · m 6= 0
f (x, m + 1) =
f (x, m) sonst
Damit funktioniert das IRS mit den Funktionen
ĝ (x) = 0
(
m
ĥ(x, m, c) =
c
Jürgen Koslowski (TU-BS)
. g (x, 0) · m) = 0
falls g (x, m) + f (x, m) + (1 −
. (g (x, m) + f (x, m)) · g (x, 0) · m = 0
falls 1 −
Theoretische Informatik 2
SS 2015
79 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beweis.
Wie wollen wieder das IRS anwenden. Dazu schreiben wir f wie folgt:
f (x, 0) = 0
(
m
falls g (x, m) + f (x, m) = 0 und g (x, 0) · m 6= 0
f (x, m + 1) =
f (x, m) sonst
Damit funktioniert das IRS mit den Funktionen
ĝ (x) = 0
(
m
ĥ(x, m, c) =
c
Jürgen Koslowski (TU-BS)
. g (x, 0) · m) = 0
falls g (x, m) + f (x, m) + (1 −
. (g (x, m) + f (x, m)) · g (x, 0) · m = 0
falls 1 −
Theoretische Informatik 2
SS 2015
79 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Primitiv-rekursive Prädikate
Definition
Unter einem primitiv-rekursiven Prädikat verstehen wir eine primitivrekursive Funktion Nk p N mit Wertebereich 2 = {0, 1} ⊆ N .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
80 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Primitiv-rekursive Prädikate
Definition
Unter einem primitiv-rekursiven Prädikat verstehen wir eine primitivrekursive Funktion Nk p N mit Wertebereich 2 = {0, 1} ⊆ N .
Beispiel (vergl. T. A. Sudkamp, Languages and Machines, Kapitel 13)
Name
Jürgen Koslowski (TU-BS)
Prädikat
Definition
Theoretische Informatik 2
alternative Beschreibung
SS 2015
80 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Primitiv-rekursive Prädikate
Definition
Unter einem primitiv-rekursiven Prädikat verstehen wir eine primitivrekursive Funktion Nk p N mit Wertebereich 2 = {0, 1} ⊆ N .
Beispiel (vergl. T. A. Sudkamp, Languages and Machines, Kapitel 13)
Name
Sign
Jürgen Koslowski (TU-BS)
Prädikat
sg(x)
Definition
sg(0) = 0
sg(y + 1) = 1
Theoretische Informatik 2
alternative Beschreibung
SS 2015
80 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Primitiv-rekursive Prädikate
Definition
Unter einem primitiv-rekursiven Prädikat verstehen wir eine primitivrekursive Funktion Nk p N mit Wertebereich 2 = {0, 1} ⊆ N .
Beispiel (vergl. T. A. Sudkamp, Languages and Machines, Kapitel 13)
Name
Sign
Prädikat
sg(x)
Sign Komplement
cosg(x)
Jürgen Koslowski (TU-BS)
Definition
sg(0) = 0
sg(y + 1) = 1
cosg(0) = 1
cosg(y + 1) = 0
Theoretische Informatik 2
alternative Beschreibung
.
1 − sg(x)
SS 2015
80 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Primitiv-rekursive Prädikate
Definition
Unter einem primitiv-rekursiven Prädikat verstehen wir eine primitivrekursive Funktion Nk p N mit Wertebereich 2 = {0, 1} ⊆ N .
Beispiel (vergl. T. A. Sudkamp, Languages and Machines, Kapitel 13)
Name
Sign
Prädikat
sg(x)
Sign Komplement
cosg(x)
Kleiner als
lt(x, y )
Jürgen Koslowski (TU-BS)
Definition
sg(0) = 0
sg(y + 1) = 1
cosg(0) = 1
cosg(y + 1) = 0
.
sg(y − x)
Theoretische Informatik 2
alternative Beschreibung
.
1 − sg(x)
SS 2015
80 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Primitiv-rekursive Prädikate
Definition
Unter einem primitiv-rekursiven Prädikat verstehen wir eine primitivrekursive Funktion Nk p N mit Wertebereich 2 = {0, 1} ⊆ N .
Beispiel (vergl. T. A. Sudkamp, Languages and Machines, Kapitel 13)
Name
Sign
Prädikat
sg(x)
Sign Komplement
cosg(x)
Kleiner als
Größer als
lt(x, y )
gt(x, y )
Jürgen Koslowski (TU-BS)
Definition
sg(0) = 0
sg(y + 1) = 1
cosg(0) = 1
cosg(y + 1) = 0
.
sg(y − x)
.
sg(x − y )
Theoretische Informatik 2
alternative Beschreibung
.
1 − sg(x)
SS 2015
80 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Primitiv-rekursive Prädikate
Definition
Unter einem primitiv-rekursiven Prädikat verstehen wir eine primitivrekursive Funktion Nk p N mit Wertebereich 2 = {0, 1} ⊆ N .
Beispiel (vergl. T. A. Sudkamp, Languages and Machines, Kapitel 13)
Name
Sign
Prädikat
sg(x)
Sign Komplement
cosg(x)
Kleiner als
Größer als
Gleich
lt(x, y )
gt(x, y )
eq(x, y )
Jürgen Koslowski (TU-BS)
Definition
sg(0) = 0
sg(y + 1) = 1
cosg(0) = 1
cosg(y + 1) = 0
.
sg(y − x)
.
sg(x − y )
.
.
cosg((x − y ) + (y − x))
Theoretische Informatik 2
alternative Beschreibung
.
1 − sg(x)
.
.
.
.
1 − (x − y ) − (y − x)
SS 2015
80 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Primitiv-rekursive Prädikate
Definition
Unter einem primitiv-rekursiven Prädikat verstehen wir eine primitivrekursive Funktion Nk p N mit Wertebereich 2 = {0, 1} ⊆ N .
Beispiel (vergl. T. A. Sudkamp, Languages and Machines, Kapitel 13)
Name
Sign
Prädikat
sg(x)
Sign Komplement
cosg(x)
Kleiner als
Größer als
Gleich
Ungleich
lt(x, y )
gt(x, y )
eq(x, y )
ne(x, y )
Jürgen Koslowski (TU-BS)
Definition
sg(0) = 0
sg(y + 1) = 1
cosg(0) = 1
cosg(y + 1) = 0
.
sg(y − x)
.
sg(x − y )
.
.
cosg((x − y ) + (y − x))
cosg(eq(x, y ))
Theoretische Informatik 2
alternative Beschreibung
.
1 − sg(x)
.
.
.
.
1 − (x − y ) − (y − x)
.
.
sg((x − y ) + (y − x))
SS 2015
80 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Primitiv-rekursive Prädikate
Definition
Unter einem primitiv-rekursiven Prädikat verstehen wir eine primitivrekursive Funktion Nk p N mit Wertebereich 2 = {0, 1} ⊆ N .
Beispiel (vergl. T. A. Sudkamp, Languages and Machines, Kapitel 13)
Name
Sign
Prädikat
sg(x)
Sign Komplement
cosg(x)
Kleiner als
Größer als
Gleich
Ungleich
lt(x, y )
gt(x, y )
eq(x, y )
ne(x, y )
Definition
sg(0) = 0
sg(y + 1) = 1
cosg(0) = 1
cosg(y + 1) = 0
.
sg(y − x)
.
sg(x − y )
.
.
cosg((x − y ) + (y − x))
cosg(eq(x, y ))
alternative Beschreibung
.
1 − sg(x)
.
.
.
.
1 − (x − y ) − (y − x)
.
.
sg((x − y ) + (y − x))
Primitiv-rekursive Prädikate lassen sich mittels logischer Junktoren zu neuen
solchen kombinieren. Das kann im Rahmen von Fallunterscheidungen
nützlich sein.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
80 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Satz
Folgende Prädikate sind primitiv-rekursiv:
(
(
1 falls n teilt n
1 falls n prim ist
|(n, m) =
prime(n) =
0 sonst
0 sonst
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
81 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Satz
Folgende Prädikate sind primitiv-rekursiv:
(
(
1 falls n teilt n
1 falls n prim ist
|(n, m) =
prime(n) =
0 sonst
0 sonst
Beweis.
|(n, m) = 1 ⇐⇒ ∃z. (z · n = m) ⇐⇒
X
eq(z · n, m) = 1
z≤m
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
81 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Satz
Folgende Prädikate sind primitiv-rekursiv:
(
(
1 falls n teilt n
1 falls n prim ist
|(n, m) =
prime(n) =
0 sonst
0 sonst
Beweis.
|(n, m) = 1 ⇐⇒ ∃z. (z · n = m) ⇐⇒
X
eq(z · n, m) = 1
z≤m
Folglich gilt |(n, m) =
Jürgen Koslowski (TU-BS)
P
z≤m
eq(z · n, m) .
Theoretische Informatik 2
SS 2015
81 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Satz
Folgende Prädikate sind primitiv-rekursiv:
(
(
1 falls n teilt n
1 falls n prim ist
|(n, m) =
prime(n) =
0 sonst
0 sonst
Beweis.
|(n, m) = 1 ⇐⇒ ∃z. (z · n = m) ⇐⇒
X
eq(z · n, m) = 1
z≤m
Folglich gilt |(n, m) =
P
z≤m
eq(z · n, m) .
prime(n) = 1 ⇐⇒ n ≥ 2 ∧ ∀y < n. y = 0 ∨ y = 1 ∨ |(y , n) = 0
Jürgen Koslowski (TU-BS)
81 / 236
Theoretische Informatik 2
SS 2015
Church-Turing-These
6.2 Rekursive Funktionen
Satz
Folgende Prädikate sind primitiv-rekursiv:
(
(
1 falls n teilt n
1 falls n prim ist
|(n, m) =
prime(n) =
0 sonst
0 sonst
Beweis.
|(n, m) = 1 ⇐⇒ ∃z. (z · n = m) ⇐⇒
X
eq(z · n, m) = 1
z≤m
Folglich gilt |(n, m) =
P
z≤m
eq(z · n, m) .
prime(n) = 1 ⇐⇒ n ≥ 2 ∧ ∀y < n. y = 0 ∨ y = 1 ∨ |(y , n) = 0
. (2 −
. n) + P
Also prime(n) = 1 −
y <n y · ne(y , 1) · |(y , n) .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
81 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Satz
Die Funktion N
primitv-rekursiv.
Jürgen Koslowski (TU-BS)
p
N, die n die n -te Primzahl zuordnet, ist
Theoretische Informatik 2
SS 2015
82 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Satz
Die Funktion N
primitv-rekursiv.
p
N, die n die n -te Primzahl zuordnet, ist
Die Funktion N2 D N, die (i, n) auf den Exponenten von p(i) in
der Primzahlfaktorisierung von n abbildet, ist primitiv-rekursiv.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
82 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Satz
Die Funktion N
primitv-rekursiv.
p
N, die n die n -te Primzahl zuordnet, ist
Die Funktion N2 D N, die (i, n) auf den Exponenten von p(i) in
der Primzahlfaktorisierung von n abbildet, ist primitiv-rekursiv.
Beweis.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
82 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Satz
Die Funktion N
primitv-rekursiv.
p
N, die n die n -te Primzahl zuordnet, ist
Die Funktion N2 D N, die (i, n) auf den Exponenten von p(i) in
der Primzahlfaktorisierung von n abbildet, ist primitiv-rekursiv.
Beweis.
Wegen p(0) = 2 ist p nicht direkt eine beschränkte Minimierung.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
82 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Satz
Die Funktion N
primitv-rekursiv.
p
N, die n die n -te Primzahl zuordnet, ist
Die Funktion N2 D N, die (i, n) auf den Exponenten von p(i) in
der Primzahlfaktorisierung von n abbildet, ist primitiv-rekursiv.
Beweis.
Wegen p(0) = 2 ist p nicht direkt eine beschränkte Minimierung.
p(m + 1) ist die kleinste Primzahl größer als p(m) .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
82 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Satz
Die Funktion N
primitv-rekursiv.
p
N, die n die n -te Primzahl zuordnet, ist
Die Funktion N2 D N, die (i, n) auf den Exponenten von p(i) in
der Primzahlfaktorisierung von n abbildet, ist primitiv-rekursiv.
Beweis.
Wegen p(0) = 2 ist p nicht direkt eine beschränkte Minimierung.
p(m + 1) ist die kleinste Primzahl größer als p(m) . Der kleinste
Kandidat dafür ist p(m)! + 1 .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
82 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Satz
Die Funktion N
primitv-rekursiv.
p
N, die n die n -te Primzahl zuordnet, ist
Die Funktion N2 D N, die (i, n) auf den Exponenten von p(i) in
der Primzahlfaktorisierung von n abbildet, ist primitiv-rekursiv.
Beweis.
Wegen p(0) = 2 ist p nicht direkt eine beschränkte Minimierung.
p(m + 1) ist die kleinste Primzahl größer als p(m) . Der kleinste
Kandidat dafür ist p(m)! + 1 . Aus
. prime(i) + lt(i, p(m) + 1)
p(m + 1) = h(m, p(m)) = µi<p(m)!+2 (1 −
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
82 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Satz
Die Funktion N
primitv-rekursiv.
p
N, die n die n -te Primzahl zuordnet, ist
Die Funktion N2 D N, die (i, n) auf den Exponenten von p(i) in
der Primzahlfaktorisierung von n abbildet, ist primitiv-rekursiv.
Beweis.
Wegen p(0) = 2 ist p nicht direkt eine beschränkte Minimierung.
p(m + 1) ist die kleinste Primzahl größer als p(m) . Der kleinste
Kandidat dafür ist p(m)! + 1 . Aus
. prime(i) + lt(i, p(m) + 1)
p(m + 1) = h(m, p(m)) = µi<p(m)!+2 (1 −
folgern wir p = IRS(κ0;2 , h) mit
. prime(i) + lt(i, b + 1)
h(m, b) = µi<b!+2 (1 −
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
82 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beweis (Fortsetzung).
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
83 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beweis (Fortsetzung).
D(i, n) ist die kleinste Zahl j < n , so dass n nicht durch p(i)j
geteilt wird.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
83 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beweis (Fortsetzung).
D(i, n) ist die kleinste Zahl j < n , so dass n nicht durch p(i)j
geteilt wird. Das läßt sich direkt mittels beschränktem µ-Operator
ausdrücken
D(i, n) = µj<n+1 |(p(i)j+1 , n) = 0
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
83 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Eigenschaften von PR
Satz
Jede primitiv rekursive Funktion ist total.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
84 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Eigenschaften von PR
Satz
Jede primitiv rekursive Funktion ist total.
Beweis.
Alle Projektionen πik , jede konstante Funktion κk;0 und die Nachfolgerfunktion succ sind überall definiert, d.h., total.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
84 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Eigenschaften von PR
Satz
Jede primitiv rekursive Funktion ist total.
Beweis.
Alle Projektionen πik , jede konstante Funktion κk;0 und die Nachfolgerfunktion succ sind überall definiert, d.h., total.
Sind Nk f N und Nm gi N, i < k , überall definiert, so gilt dies auch
für die Klon-Komposition f ◦ hgi : i < ki .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
84 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Eigenschaften von PR
Satz
Jede primitiv rekursive Funktion ist total.
Beweis.
Alle Projektionen πik , jede konstante Funktion κk;0 und die Nachfolgerfunktion succ sind überall definiert, d.h., total.
Sind Nk f N und Nm gi N, i < k , überall definiert, so gilt dies auch
für die Klon-Komposition f ◦ hgi : i < ki .
Sind Nk−1 g N h
Nk−1 × {0} definiert.
Jürgen Koslowski (TU-BS)
Nk+1 total, so ist f := IR(g , h) zumindest auf
Theoretische Informatik 2
SS 2015
84 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Eigenschaften von PR
Satz
Jede primitiv rekursive Funktion ist total.
Beweis.
Alle Projektionen πik , jede konstante Funktion κk;0 und die Nachfolgerfunktion succ sind überall definiert, d.h., total.
Sind Nk f N und Nm gi N, i < k , überall definiert, so gilt dies auch
für die Klon-Komposition f ◦ hgi : i < ki .
Sind Nk−1 g N h Nk+1 total, so ist f := IR(g , h) zumindest auf
Nk−1 × {0} definiert. Mit f (x, m) ist auch f (x, m + 1) = h(x, m, f (x, m))
definiert.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
84 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Eigenschaften von PR
Satz
Jede primitiv rekursive Funktion ist total.
Beweis.
Alle Projektionen πik , jede konstante Funktion κk;0 und die Nachfolgerfunktion succ sind überall definiert, d.h., total.
Sind Nk f N und Nm gi N, i < k , überall definiert, so gilt dies auch
für die Klon-Komposition f ◦ hgi : i < ki .
Sind Nk−1 g N h Nk+1 total, so ist f := IR(g , h) zumindest auf
Nk−1 × {0} definiert. Mit f (x, m) ist auch f (x, m + 1) = h(x, m, f (x, m))
definiert. Induktion zeigt nun: f ist auf ganz Nk definiert.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
84 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Eigenschaften von PR
Satz
Jede primitiv rekursive Funktion ist total.
Beweis.
Alle Projektionen πik , jede konstante Funktion κk;0 und die Nachfolgerfunktion succ sind überall definiert, d.h., total.
Sind Nk f N und Nm gi N, i < k , überall definiert, so gilt dies auch
für die Klon-Komposition f ◦ hgi : i < ki .
Sind Nk−1 g N h Nk+1 total, so ist f := IR(g , h) zumindest auf
Nk−1 × {0} definiert. Mit f (x, m) ist auch f (x, m + 1) = h(x, m, f (x, m))
definiert. Induktion zeigt nun: f ist auf ganz Nk definiert.
Strukturelle Induktion über den Aufbau primitv rekursiver Funktionen wie
hier ist aus der Logik bekannt und wird auch nachfolgend nützlich sein.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
84 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Der Aufbau von PR legt es nahe, analog zu regulären Ausdrücken auch
hier syntaktische Baupläne einzuführen, mit offensichtlicher Semantik F .
Σpr := {π, κ, succ, |, (, ), ; , clone, IR}
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
85 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Der Aufbau von PR legt es nahe, analog zu regulären Ausdrücken auch
hier syntaktische Baupläne einzuführen, mit offensichtlicher Semantik F .
Σpr := {π, κ, succ, |, (, ), ; , clone, IR}
soll als Alphabet dienen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
85 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Der Aufbau von PR legt es nahe, analog zu regulären Ausdrücken auch
hier syntaktische Baupläne einzuführen, mit offensichtlicher Semantik F .
Σpr := {π, κ, succ, |, (, ), ; , clone, IR}
soll als Alphabet dienen. Parallel dazu ist auch die Arität σ festzulegen:
Definition
Für i < k ∈ N definieren wir zunächst primitv rekursive Ausdrücke (prAs)
mit folgender Arität und entsprechenden Grundfunktionen als Semantik:
σ(π(|k ; |i )) = k
Jürgen Koslowski (TU-BS)
, σ(κ(|k )) = k
Theoretische Informatik 2
bzw.
σ(succ) = 1
SS 2015
85 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Der Aufbau von PR legt es nahe, analog zu regulären Ausdrücken auch
hier syntaktische Baupläne einzuführen, mit offensichtlicher Semantik F .
Σpr := {π, κ, succ, |, (, ), ; , clone, IR}
soll als Alphabet dienen. Parallel dazu ist auch die Arität σ festzulegen:
Definition
Für i < k ∈ N definieren wir zunächst primitv rekursive Ausdrücke (prAs)
mit folgender Arität und entsprechenden Grundfunktionen als Semantik:
σ(π(|k ; |i )) = k
, σ(κ(|k )) = k
bzw.
σ(succ) = 1
Sind F und Gi , i < σ(F ) primitiv-rekursive Ausdrücke mit
σ(Gi ) = σ(Gi+1 ) für alle i < σ(F ) − 1 , so ist
clone(F ; G0 ; . . . ; Gσ(F )−1 )
Jürgen Koslowski (TU-BS)
ein prA mit Arität
Theoretische Informatik 2
σ(Gi )
SS 2015
85 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Der Aufbau von PR legt es nahe, analog zu regulären Ausdrücken auch
hier syntaktische Baupläne einzuführen, mit offensichtlicher Semantik F .
Σpr := {π, κ, succ, |, (, ), ; , clone, IR}
soll als Alphabet dienen. Parallel dazu ist auch die Arität σ festzulegen:
Definition
Für i < k ∈ N definieren wir zunächst primitv rekursive Ausdrücke (prAs)
mit folgender Arität und entsprechenden Grundfunktionen als Semantik:
σ(π(|k ; |i )) = k
, σ(κ(|k )) = k
bzw.
σ(succ) = 1
Sind F und Gi , i < σ(F ) primitiv-rekursive Ausdrücke mit
σ(Gi ) = σ(Gi+1 ) für alle i < σ(F ) − 1 , so ist
clone(F ; G0 ; . . . ; Gσ(F )−1 )
ein prA mit Arität
σ(Gi )
Sind G und H primitiv-reguläre Ausdrücke mit σ(H) = σ(G ) + 2 , so ist
IR(G ; H)
Jürgen Koslowski (TU-BS)
ein prA mit Arität σ(G ) + 1 = σ(H) − 1
Theoretische Informatik 2
SS 2015
85 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Satz
Jede primitiv rekursive Funktion ist Turing-berechenbar.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
86 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Satz
Jede primitiv rekursive Funktion ist Turing-berechenbar.
Beweis.
Alle Grundfunktionen sind Turing-berechenbar, mittels sehr einfacher
Maschinen, die wir mit Prki , Kok;0 bzw. Su bezeichnen wollen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
86 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Satz
Jede primitiv rekursive Funktion ist Turing-berechenbar.
Beweis.
Alle Grundfunktionen sind Turing-berechenbar, mittels sehr einfacher
Maschinen, die wir mit Prki , Kok;0 bzw. Su bezeichnen wollen.
Realisieren 1-Band-Maschinen M und Ti , i < k , die totalen Funktionen
Nk f N und Nm gi N, i < k , so realisiert folgende (k + 1)-BandMaschine f ◦ hgi : i < ki : sie simuliert Ti , i < k , mit derselben Eingabe
w ∈ Nm , und schreibt die Ergebnisse der Reihe nach auf das Eingabeband
von M ,
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
86 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Satz
Jede primitiv rekursive Funktion ist Turing-berechenbar.
Beweis.
Alle Grundfunktionen sind Turing-berechenbar, mittels sehr einfacher
Maschinen, die wir mit Prki , Kok;0 bzw. Su bezeichnen wollen.
Realisieren 1-Band-Maschinen M und Ti , i < k , die totalen Funktionen
Nk f N und Nm gi N, i < k , so realisiert folgende (k + 1)-BandMaschine f ◦ hgi : i < ki : sie simuliert Ti , i < k , mit derselben Eingabe
w ∈ Nm , und schreibt die Ergebnisse der Reihe nach auf das Eingabeband
von M , die nschließend mit ebendieser Eingabe simuliert wird.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
86 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Satz
Jede primitiv rekursive Funktion ist Turing-berechenbar.
Beweis.
Alle Grundfunktionen sind Turing-berechenbar, mittels sehr einfacher
Maschinen, die wir mit Prki , Kok;0 bzw. Su bezeichnen wollen.
Realisieren 1-Band-Maschinen M und Ti , i < k , die totalen Funktionen
Nk f N und Nm gi N, i < k , so realisiert folgende (k + 1)-BandMaschine f ◦ hgi : i < ki : sie simuliert Ti , i < k , mit derselben Eingabe
w ∈ Nm , und schreibt die Ergebnisse der Reihe nach auf das Eingabeband
von M , die nschließend mit ebendieser Eingabe simuliert wird.
Realisieren die 1-Band-Maschinen L und N die totalen Funktionen
Nk−1 g N h Nk+1 , so realisiert folgende 2-Band-Maschine
f := IR(g , h) :
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
86 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Satz
Jede primitiv rekursive Funktion ist Turing-berechenbar.
Beweis.
Alle Grundfunktionen sind Turing-berechenbar, mittels sehr einfacher
Maschinen, die wir mit Prki , Kok;0 bzw. Su bezeichnen wollen.
Realisieren 1-Band-Maschinen M und Ti , i < k , die totalen Funktionen
Nk f N und Nm gi N, i < k , so realisiert folgende (k + 1)-BandMaschine f ◦ hgi : i < ki : sie simuliert Ti , i < k , mit derselben Eingabe
w ∈ Nm , und schreibt die Ergebnisse der Reihe nach auf das Eingabeband
von M , die nschließend mit ebendieser Eingabe simuliert wird.
Realisieren die 1-Band-Maschinen L und N die totalen Funktionen
Nk−1 g N h Nk+1 , so realisiert folgende 2-Band-Maschine
f := IR(g , h) : bei Eingabe hx, mi simuliert sie zunächst L mit Eingabe x
und Ausgabe f (x, 0) = g (x) .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
86 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Satz
Jede primitiv rekursive Funktion ist Turing-berechenbar.
Beweis.
Alle Grundfunktionen sind Turing-berechenbar, mittels sehr einfacher
Maschinen, die wir mit Prki , Kok;0 bzw. Su bezeichnen wollen.
Realisieren 1-Band-Maschinen M und Ti , i < k , die totalen Funktionen
Nk f N und Nm gi N, i < k , so realisiert folgende (k + 1)-BandMaschine f ◦ hgi : i < ki : sie simuliert Ti , i < k , mit derselben Eingabe
w ∈ Nm , und schreibt die Ergebnisse der Reihe nach auf das Eingabeband
von M , die nschließend mit ebendieser Eingabe simuliert wird.
Realisieren die 1-Band-Maschinen L und N die totalen Funktionen
Nk−1 g N h Nk+1 , so realisiert folgende 2-Band-Maschine
f := IR(g , h) : bei Eingabe hx, mi simuliert sie zunächst L mit Eingabe x
und Ausgabe f (x, 0) = g (x) . Anschließend simulieret sie m -mal N mit
Eingabe hx, i, f (x, i)i und Ausgabe f (x, i + 1) , i < m .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
86 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Wichtig: Die resultierenden Mehrband-Maschnen im obigen Beweis lassen
sich systematisch in 1-Band-Maschinen umwandeln.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
87 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Wichtig: Die resultierenden Mehrband-Maschnen im obigen Beweis lassen
sich systematisch in 1-Band-Maschinen umwandeln. Kennt man die Codes
der 1-Band-Maschinen, die die Argument-Funktionen in der Klon-Komposition bzw. dem IRS realisieren, so läßt sich daraus der Code der
1-Band-Maschine für die Ergebnis-Funktion berechnen!
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
87 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Wichtig: Die resultierenden Mehrband-Maschnen im obigen Beweis lassen
sich systematisch in 1-Band-Maschinen umwandeln. Kennt man die Codes
der 1-Band-Maschinen, die die Argument-Funktionen in der Klon-Komposition bzw. dem IRS realisieren, so läßt sich daraus der Code der
1-Band-Maschine für die Ergebnis-Funktion berechnen!
Satz
Nicht jede totale Turing-berechenbare Funktion ist primitiv rekursiv.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
87 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Wichtig: Die resultierenden Mehrband-Maschnen im obigen Beweis lassen
sich systematisch in 1-Band-Maschinen umwandeln. Kennt man die Codes
der 1-Band-Maschinen, die die Argument-Funktionen in der Klon-Komposition bzw. dem IRS realisieren, so läßt sich daraus der Code der
1-Band-Maschine für die Ergebnis-Funktion berechnen!
Satz
Nicht jede totale Turing-berechenbare Funktion ist primitiv rekursiv.
Beweisidee
ϕi , i ∈ N , sei eine Aufzählung aller primitiv-rekursiven Funktionen, die
Stelligkeit sei σi = σ(ϕi ) .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
87 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Wichtig: Die resultierenden Mehrband-Maschnen im obigen Beweis lassen
sich systematisch in 1-Band-Maschinen umwandeln. Kennt man die Codes
der 1-Band-Maschinen, die die Argument-Funktionen in der Klon-Komposition bzw. dem IRS realisieren, so läßt sich daraus der Code der
1-Band-Maschine für die Ergebnis-Funktion berechnen!
Satz
Nicht jede totale Turing-berechenbare Funktion ist primitiv rekursiv.
Beweisidee
ϕi , i ∈ N , sei eine Aufzählung aller primitiv-rekursiven Funktionen, die
Stelligkeit sei σi = σ(ϕi ) . Definiere die Diagonalfunktion N ∆ N durch
∆(n) := ϕn (hn : i < σn i) + 1
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
für n ∈ N
SS 2015
87 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Wichtig: Die resultierenden Mehrband-Maschnen im obigen Beweis lassen
sich systematisch in 1-Band-Maschinen umwandeln. Kennt man die Codes
der 1-Band-Maschinen, die die Argument-Funktionen in der Klon-Komposition bzw. dem IRS realisieren, so läßt sich daraus der Code der
1-Band-Maschine für die Ergebnis-Funktion berechnen!
Satz
Nicht jede totale Turing-berechenbare Funktion ist primitiv rekursiv.
Beweisidee
ϕi , i ∈ N , sei eine Aufzählung aller primitiv-rekursiven Funktionen, die
Stelligkeit sei σi = σ(ϕi ) . Definiere die Diagonalfunktion N ∆ N durch
∆(n) := ϕn (hn : i < σn i) + 1
für n ∈ N
Nach Konstruktion kann ∆ mit keiner einstelligen Funktion der Form ϕn
übereinstimmen:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
87 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Wichtig: Die resultierenden Mehrband-Maschnen im obigen Beweis lassen
sich systematisch in 1-Band-Maschinen umwandeln. Kennt man die Codes
der 1-Band-Maschinen, die die Argument-Funktionen in der Klon-Komposition bzw. dem IRS realisieren, so läßt sich daraus der Code der
1-Band-Maschine für die Ergebnis-Funktion berechnen!
Satz
Nicht jede totale Turing-berechenbare Funktion ist primitiv rekursiv.
Beweisidee
ϕi , i ∈ N , sei eine Aufzählung aller primitiv-rekursiven Funktionen, die
Stelligkeit sei σi = σ(ϕi ) . Definiere die Diagonalfunktion N ∆ N durch
∆(n) := ϕn (hn : i < σn i) + 1
für n ∈ N
Nach Konstruktion kann ∆ mit keiner einstelligen Funktion der Form ϕn
übereinstimmen: aus ∆ = ϕn folgt ∆(n) = ϕn (n) + 1 6= ϕn (n) .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
87 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Fortsetzung
Damit ∆ Turing-berechenbar ist, muß die Aufzählung ϕ spezielle
Eigenschaften haben.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
88 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Fortsetzung
Damit ∆ Turing-berechenbar ist, muß die Aufzählung ϕ spezielle
Eigenschaften haben. Aus dem Argument n ∈ N wollen wir der Code der
Turingmaschine berechnet können, die ϕn realisiert.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
88 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Fortsetzung
Damit ∆ Turing-berechenbar ist, muß die Aufzählung ϕ spezielle
Eigenschaften haben. Aus dem Argument n ∈ N wollen wir der Code der
Turingmaschine berechnet können, die ϕn realisiert. Dafür verwenden wir
primitiv rekursive Ausdrücke:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
88 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Fortsetzung
Damit ∆ Turing-berechenbar ist, muß die Aufzählung ϕ spezielle
Eigenschaften haben. Aus dem Argument n ∈ N wollen wir der Code der
Turingmaschine berechnet können, die ϕn realisiert. Dafür verwenden wir
primitiv rekursive Ausdrücke:
Faßt man deren Alphabet Σpr als linear geordnete Menge auf, so läßt sich
Σ∗pr nun lexikographisch linear ordnen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
88 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Fortsetzung
Damit ∆ Turing-berechenbar ist, muß die Aufzählung ϕ spezielle
Eigenschaften haben. Aus dem Argument n ∈ N wollen wir der Code der
Turingmaschine berechnet können, die ϕn realisiert. Dafür verwenden wir
primitiv rekursive Ausdrücke:
Faßt man deren Alphabet Σpr als linear geordnete Menge auf, so läßt sich
Σ∗pr nun lexikographisch linear ordnen. Die Reihenfolge der primitvrekursiven Ausdrücke gemäß dieser Ordnung sei durch ϕ codiert.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
88 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Fortsetzung
Damit ∆ Turing-berechenbar ist, muß die Aufzählung ϕ spezielle
Eigenschaften haben. Aus dem Argument n ∈ N wollen wir der Code der
Turingmaschine berechnet können, die ϕn realisiert. Dafür verwenden wir
primitiv rekursive Ausdrücke:
Faßt man deren Alphabet Σpr als linear geordnete Menge auf, so läßt sich
Σ∗pr nun lexikographisch linear ordnen. Die Reihenfolge der primitvrekursiven Ausdrücke gemäß dieser Ordnung sei durch ϕ codiert.
Nun können wir die Turing-Berechenbarkeit von ∆ zeigen: Für Eingabe n
wird zunächst der prA mit Index n gemäß obiger Auflistung bestimmt;
dann wird der Code der zugehörigen TM bestimmt, die die Semantik
des prA mit Arität σ realisiert (siehe Folie 481);
schließlich wird diese Maschine mit der Eingabe hn : i < σi simuliert
(Stichwort: universelle Turingmaschine, Kapitel 7);
zum Schluß wird das Ergebnis um 1 erhöht.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
88 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel (Ackermann-Funktion (Mitte der 1920’er Jahre))
Die von Wilhelm Ackermann gefundene Funktion ist das bekannteste
Beispiele für eine totale intuitiv berechenbare Funktion, die nicht primitiv
rekursiv ist.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
89 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel (Ackermann-Funktion (Mitte der 1920’er Jahre))
Die von Wilhelm Ackermann gefundene Funktion ist das bekannteste
Beispiele für eine totale intuitiv berechenbare Funktion, die nicht primitiv
rekursiv ist. (Gabriel Sudan hat etwas früher eine weitere derartige Funktion
gefunden; Sudan und Ackermann waren beide Schüler von David Hilbert.)
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
89 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel (Ackermann-Funktion (Mitte der 1920’er Jahre))
Die von Wilhelm Ackermann gefundene Funktion ist das bekannteste
Beispiele für eine totale intuitiv berechenbare Funktion, die nicht primitiv
rekursiv ist. (Gabriel Sudan hat etwas früher eine weitere derartige Funktion
gefunden; Sudan und Ackermann waren beide Schüler von David Hilbert.)
Ackermanns ursprünglich 3-stellige Funktion wurde 1955 von Rózsa Péter
zur bekannten zweistelligen Version vereinfacht:



A(n, m) :=


Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
89 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel (Ackermann-Funktion (Mitte der 1920’er Jahre))
Die von Wilhelm Ackermann gefundene Funktion ist das bekannteste
Beispiele für eine totale intuitiv berechenbare Funktion, die nicht primitiv
rekursiv ist. (Gabriel Sudan hat etwas früher eine weitere derartige Funktion
gefunden; Sudan und Ackermann waren beide Schüler von David Hilbert.)
Ackermanns ursprünglich 3-stellige Funktion wurde 1955 von Rózsa Péter
zur bekannten zweistelligen Version vereinfacht:


falls n = 0;
m + 1
A(n, m) :=


Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
89 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel (Ackermann-Funktion (Mitte der 1920’er Jahre))
Die von Wilhelm Ackermann gefundene Funktion ist das bekannteste
Beispiele für eine totale intuitiv berechenbare Funktion, die nicht primitiv
rekursiv ist. (Gabriel Sudan hat etwas früher eine weitere derartige Funktion
gefunden; Sudan und Ackermann waren beide Schüler von David Hilbert.)
Ackermanns ursprünglich 3-stellige Funktion wurde 1955 von Rózsa Péter
zur bekannten zweistelligen Version vereinfacht:


falls n = 0;
m + 1
A(n, m) := A(n − 1, 1)
falls n > 0 und m = 0;


Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
89 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel (Ackermann-Funktion (Mitte der 1920’er Jahre))
Die von Wilhelm Ackermann gefundene Funktion ist das bekannteste
Beispiele für eine totale intuitiv berechenbare Funktion, die nicht primitiv
rekursiv ist. (Gabriel Sudan hat etwas früher eine weitere derartige Funktion
gefunden; Sudan und Ackermann waren beide Schüler von David Hilbert.)
Ackermanns ursprünglich 3-stellige Funktion wurde 1955 von Rózsa Péter
zur bekannten zweistelligen Version vereinfacht:


falls n = 0;
m + 1
A(n, m) := A(n − 1, 1)
falls n > 0 und m = 0;


A(n − 1, A(n, m − 1)) falls n > 0 und m > 0.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
89 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel (Ackermann-Funktion (Mitte der 1920’er Jahre))
Die von Wilhelm Ackermann gefundene Funktion ist das bekannteste
Beispiele für eine totale intuitiv berechenbare Funktion, die nicht primitiv
rekursiv ist. (Gabriel Sudan hat etwas früher eine weitere derartige Funktion
gefunden; Sudan und Ackermann waren beide Schüler von David Hilbert.)
Ackermanns ursprünglich 3-stellige Funktion wurde 1955 von Rózsa Péter
zur bekannten zweistelligen Version vereinfacht:


falls n = 0;
m + 1
A(n, m) := A(n − 1, 1)
falls n > 0 und m = 0;


A(n − 1, A(n, m − 1)) falls n > 0 und m > 0.
ist Turing-berechenbar, da A(n, m) tatsächlich nur von endlich vielen
vorher zu berechnenden Werten A(k, l) mit k ≤ n und l < m abhängt.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
89 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel (Ackermann-Funktion (Mitte der 1920’er Jahre))
Die von Wilhelm Ackermann gefundene Funktion ist das bekannteste
Beispiele für eine totale intuitiv berechenbare Funktion, die nicht primitiv
rekursiv ist. (Gabriel Sudan hat etwas früher eine weitere derartige Funktion
gefunden; Sudan und Ackermann waren beide Schüler von David Hilbert.)
Ackermanns ursprünglich 3-stellige Funktion wurde 1955 von Rózsa Péter
zur bekannten zweistelligen Version vereinfacht:


falls n = 0;
m + 1
A(n, m) := A(n − 1, 1)
falls n > 0 und m = 0;


A(n − 1, A(n, m − 1)) falls n > 0 und m > 0.
ist Turing-berechenbar, da A(n, m) tatsächlich nur von endlich vielen
vorher zu berechnenden Werten A(k, l) mit k ≤ n und l < m abhängt.
Das z.B. auf Wikipedia beschriebene Wachstumsverhalten
verhindert, dass A primitiv rekursiv sein kann:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
english
SS 2015
deutsch
89 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel (Ackermann-Funktion (Mitte der 1920’er Jahre))
Die von Wilhelm Ackermann gefundene Funktion ist das bekannteste
Beispiele für eine totale intuitiv berechenbare Funktion, die nicht primitiv
rekursiv ist. (Gabriel Sudan hat etwas früher eine weitere derartige Funktion
gefunden; Sudan und Ackermann waren beide Schüler von David Hilbert.)
Ackermanns ursprünglich 3-stellige Funktion wurde 1955 von Rózsa Péter
zur bekannten zweistelligen Version vereinfacht:


falls n = 0;
m + 1
A(n, m) := A(n − 1, 1)
falls n > 0 und m = 0;


A(n − 1, A(n, m − 1)) falls n > 0 und m > 0.
ist Turing-berechenbar, da A(n, m) tatsächlich nur von endlich vielen
vorher zu berechnenden Werten A(k, l) mit k ≤ n und l < m abhängt.
deutsch
Das z.B. auf Wikipedia beschriebene Wachstumsverhalten english
verhindert, dass A primitiv rekursiv sein kann: A “wächst zu schnell”.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
89 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Definition
Eine Funktion N2 h N majorisiert eine Funktion Nm g N, falls ein
b ∈ N existiert, so dass für jedes a ∈ Nm mit a := maxhai : i < mi gilt
g (a) < h(a, b)
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
90 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Definition
Eine Funktion N2 h N majorisiert eine Funktion Nm g N, falls ein
b ∈ N existiert, so dass für jedes a ∈ Nm mit a := maxhai : i < mi gilt
g (a) < h(a, b)
Offenbar kann sich h nicht selber majorisieren, denn andernfalls hätte dies
h(b, b) < h(b, b) zur Folge.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
90 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Definition
Eine Funktion N2 h N majorisiert eine Funktion Nm g N, falls ein
b ∈ N existiert, so dass für jedes a ∈ Nm mit a := maxhai : i < mi gilt
g (a) < h(a, b)
Offenbar kann sich h nicht selber majorisieren, denn andernfalls hätte dies
h(b, b) < h(b, b) zur Folge.
Satz
Die Klasse der von A majorisierten Funktionen umfaßt alle primitiv
rekursiven Funktionen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
90 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Definition
Eine Funktion N2 h N majorisiert eine Funktion Nm g N, falls ein
b ∈ N existiert, so dass für jedes a ∈ Nm mit a := maxhai : i < mi gilt
g (a) < h(a, b)
Offenbar kann sich h nicht selber majorisieren, denn andernfalls hätte dies
h(b, b) < h(b, b) zur Folge.
Satz
Die Klasse der von A majorisierten Funktionen umfaßt alle primitiv
rekursiven Funktionen. Insbesondere kann A nicht primitiv-rekursiv sein.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
90 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Definition
Eine Funktion N2 h N majorisiert eine Funktion Nm g N, falls ein
b ∈ N existiert, so dass für jedes a ∈ Nm mit a := maxhai : i < mi gilt
g (a) < h(a, b)
Offenbar kann sich h nicht selber majorisieren, denn andernfalls hätte dies
h(b, b) < h(b, b) zur Folge.
Satz
Die Klasse der von A majorisierten Funktionen umfaßt alle primitiv
rekursiven Funktionen. Insbesondere kann A nicht primitiv-rekursiv sein.
Beweisidee
Man zeigt, analog zu früheren Beweisen, dass A alle Grundfunktionen
majorisiert,
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
90 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Definition
Eine Funktion N2 h N majorisiert eine Funktion Nm g N, falls ein
b ∈ N existiert, so dass für jedes a ∈ Nm mit a := maxhai : i < mi gilt
g (a) < h(a, b)
Offenbar kann sich h nicht selber majorisieren, denn andernfalls hätte dies
h(b, b) < h(b, b) zur Folge.
Satz
Die Klasse der von A majorisierten Funktionen umfaßt alle primitiv
rekursiven Funktionen. Insbesondere kann A nicht primitiv-rekursiv sein.
Beweisidee
Man zeigt, analog zu früheren Beweisen, dass A alle Grundfunktionen
majorisiert, und dass die Eigenschaft, von A majorisiert zu werden, unter
Klon-Komposition und dem IRS erhalten bleibt, Details auf PlanetMath.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
90 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Historische Anmerkungen:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
91 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Historische Anmerkungen:
Der Begriff “primitiv rekursiv” geht auf Rózsa Péter zurück: Über den
Zusammenhang der verschiedenen Begriffe der rekursiven Funktion,
Mathematische Annalen, 110: 612–632 (1934).
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
91 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Historische Anmerkungen:
Der Begriff “primitiv rekursiv” geht auf Rózsa Péter zurück: Über den
Zusammenhang der verschiedenen Begriffe der rekursiven Funktion,
Mathematische Annalen, 110: 612–632 (1934).
Das Konzept muß Anfang bis Mitte der 1920’er Jahre Hilbert und
seinen Schülern bekannt gewesen sein: David Hilbert, Über das
Unendliche, Mathematische Annalen 95: 161–190 (1926).
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
91 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Historische Anmerkungen:
Der Begriff “primitiv rekursiv” geht auf Rózsa Péter zurück: Über den
Zusammenhang der verschiedenen Begriffe der rekursiven Funktion,
Mathematische Annalen, 110: 612–632 (1934).
Das Konzept muß Anfang bis Mitte der 1920’er Jahre Hilbert und
seinen Schülern bekannt gewesen sein: David Hilbert, Über das
Unendliche, Mathematische Annalen 95: 161–190 (1926). Dort wird
auf Ackermanns Ergebnis Bezug genommen, dessen Artikel Zum
Hilbertschen Aufbau der reellen Zahlen, Mathematische Annalen 99,
118–133 aber erst 1928 erschien.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
91 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Historische Anmerkungen:
Der Begriff “primitiv rekursiv” geht auf Rózsa Péter zurück: Über den
Zusammenhang der verschiedenen Begriffe der rekursiven Funktion,
Mathematische Annalen, 110: 612–632 (1934).
Das Konzept muß Anfang bis Mitte der 1920’er Jahre Hilbert und
seinen Schülern bekannt gewesen sein: David Hilbert, Über das
Unendliche, Mathematische Annalen 95: 161–190 (1926). Dort wird
auf Ackermanns Ergebnis Bezug genommen, dessen Artikel Zum
Hilbertschen Aufbau der reellen Zahlen, Mathematische Annalen 99,
118–133 aber erst 1928 erschien. Hier wird auch Sudans Arbeit Sur le
nombre transfini ω ω , Bulletin mathematique de la Societe roumaine
des sciences 30: 11–30, (1927) zitiert.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
91 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Historische Anmerkungen:
Der Begriff “primitiv rekursiv” geht auf Rózsa Péter zurück: Über den
Zusammenhang der verschiedenen Begriffe der rekursiven Funktion,
Mathematische Annalen, 110: 612–632 (1934).
Das Konzept muß Anfang bis Mitte der 1920’er Jahre Hilbert und
seinen Schülern bekannt gewesen sein: David Hilbert, Über das
Unendliche, Mathematische Annalen 95: 161–190 (1926). Dort wird
auf Ackermanns Ergebnis Bezug genommen, dessen Artikel Zum
Hilbertschen Aufbau der reellen Zahlen, Mathematische Annalen 99,
118–133 aber erst 1928 erschien. Hier wird auch Sudans Arbeit Sur le
nombre transfini ω ω , Bulletin mathematique de la Societe roumaine
des sciences 30: 11–30, (1927) zitiert.
Schon Hermann Grassmann beschrieb die induktive Definition von
Addition und Multiplikation in seinem Lehrbuch der Arithmetik für
höhere Lehranstalten (1861).
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
91 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Historische Anmerkungen:
Der Begriff “primitiv rekursiv” geht auf Rózsa Péter zurück: Über den
Zusammenhang der verschiedenen Begriffe der rekursiven Funktion,
Mathematische Annalen, 110: 612–632 (1934).
Das Konzept muß Anfang bis Mitte der 1920’er Jahre Hilbert und
seinen Schülern bekannt gewesen sein: David Hilbert, Über das
Unendliche, Mathematische Annalen 95: 161–190 (1926). Dort wird
auf Ackermanns Ergebnis Bezug genommen, dessen Artikel Zum
Hilbertschen Aufbau der reellen Zahlen, Mathematische Annalen 99,
118–133 aber erst 1928 erschien. Hier wird auch Sudans Arbeit Sur le
nombre transfini ω ω , Bulletin mathematique de la Societe roumaine
des sciences 30: 11–30, (1927) zitiert.
Schon Hermann Grassmann beschrieb die induktive Definition von
Addition und Multiplikation in seinem Lehrbuch der Arithmetik für
höhere Lehranstalten (1861). Diese Idee wurde später unabhängig von
Richard Dedekind wiederentdeckt: Was sind und was sollen die Zahlen?
(1888).
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
91 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Der unbeschränkte µ-Operator
Um die Klasse der primitiv rekursiven Funktionen zu vergrößern, führen wir
nun den unbeschränkten µ-Operator ein,
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
92 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Der unbeschränkte µ-Operator
Um die Klasse der primitiv rekursiven Funktionen zu vergrößern, führen wir
nun den unbeschränkten µ-Operator ein, eine Verallgemeinerung des
beschränkten µ-Operators.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
92 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Der unbeschränkte µ-Operator
Um die Klasse der primitiv rekursiven Funktionen zu vergrößern, führen wir
nun den unbeschränkten µ-Operator ein, eine Verallgemeinerung des
beschränkten µ-Operators. Er abstrahiert das Programmierkonzept der
unbeschränkten sequenziellen Suche oder auch WHILE-Schleife.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
92 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Der unbeschränkte µ-Operator
Um die Klasse der primitiv rekursiven Funktionen zu vergrößern, führen wir
nun den unbeschränkten µ-Operator ein, eine Verallgemeinerung des
beschränkten µ-Operators. Er abstrahiert das Programmierkonzept der
unbeschränkten sequenziellen Suche oder auch WHILE-Schleife.
Eine Übersicht zu µ-Operatoren findet sich etwa bei
PlanetMath
.
Definition
Für eine k + 1-stellige partielle Funktion Nk+1
k -stellige Minimierung Nk µg N durch
g
N definieren wir ihre
x 7→ µg (x) := min{ m : g (x, m) = 0 ∧ ∀j < m. g (x, j) ist definiert }
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
92 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Der unbeschränkte µ-Operator
Um die Klasse der primitiv rekursiven Funktionen zu vergrößern, führen wir
nun den unbeschränkten µ-Operator ein, eine Verallgemeinerung des
beschränkten µ-Operators. Er abstrahiert das Programmierkonzept der
unbeschränkten sequenziellen Suche oder auch WHILE-Schleife.
Eine Übersicht zu µ-Operatoren findet sich etwa bei
PlanetMath
.
Definition
Für eine k + 1-stellige partielle Funktion Nk+1
k -stellige Minimierung Nk µg N durch
g
N definieren wir ihre
x 7→ µg (x) := min{ m : g (x, m) = 0 ∧ ∀j < m. g (x, j) ist definiert }
Alternative Schreibweise mit m als gebundener Variable: µm (g (x, m) = 0) .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
92 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Der unbeschränkte µ-Operator
Um die Klasse der primitiv rekursiven Funktionen zu vergrößern, führen wir
nun den unbeschränkten µ-Operator ein, eine Verallgemeinerung des
beschränkten µ-Operators. Er abstrahiert das Programmierkonzept der
unbeschränkten sequenziellen Suche oder auch WHILE-Schleife.
Eine Übersicht zu µ-Operatoren findet sich etwa bei
PlanetMath
.
Definition
Für eine k + 1-stellige partielle Funktion Nk+1
k -stellige Minimierung Nk µg N durch
g
N definieren wir ihre
x 7→ µg (x) := min{ m : g (x, m) = 0 ∧ ∀j < m. g (x, j) ist definiert }
Alternative Schreibweise mit m als gebundener Variable: µm (g (x, m) = 0) .
Die Minimierung µf einer totalen Funktion braucht nicht länger total zu
sein: Z.B. ist {∗} µsucc N undefiniert, da succ den Wert 0 nicht
annimmt, die zu minimierende Menge also leer ist.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
92 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Definition
Die Klasse der µ-rekursiven Funktionen bildet den Abschluß der
Grundfunktionen unter Klon-Komposition, dem IRS und Minimierung.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
93 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Definition
Die Klasse der µ-rekursiven Funktionen bildet den Abschluß der
Grundfunktionen unter Klon-Komposition, dem IRS und Minimierung.
Beispiel
Die partielle Vorgängerfunktion N pvor N, n + 1 7→ n , ist µ-rekursiv als
Ergebnis der Anwendung des µ-Operators auf eine primitiv-rekursive
Funktion (vergl. HA),
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
93 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Definition
Die Klasse der µ-rekursiven Funktionen bildet den Abschluß der
Grundfunktionen unter Klon-Komposition, dem IRS und Minimierung.
Beispiel
Die partielle Vorgängerfunktion N pvor N, n + 1 7→ n , ist µ-rekursiv als
Ergebnis der Anwendung des µ-Operators auf eine primitiv-rekursive
Funktion (vergl. HA), die wegen ihrer Totalität die orange Extrabedingung
automatisch erfüllt:
N2
f
N
,
. succ m) + (succ m −
. n) = eq(n, succ m)
hn, mi 7→ (n −
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
93 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Definition
Die Klasse der µ-rekursiven Funktionen bildet den Abschluß der
Grundfunktionen unter Klon-Komposition, dem IRS und Minimierung.
Beispiel
Die partielle Vorgängerfunktion N pvor N, n + 1 7→ n , ist µ-rekursiv als
Ergebnis der Anwendung des µ-Operators auf eine primitiv-rekursive
Funktion (vergl. HA), die wegen ihrer Totalität die orange Extrabedingung
automatisch erfüllt:
N2
f
N
,
. succ m) + (succ m −
. n) = eq(n, succ m)
hn, mi 7→ (n −
Offengar gilt f (n, m) = 0 gdw succ m = n , was nur im Fall n > 0
möglich ist, und zwar für m = n − 1 .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
93 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel
Die Subtraktion N2
dem IRS darstellen:
Jürgen Koslowski (TU-BS)
sub
N, hn, mi 7→ n − m sofern m ≤ n , läßt sich mit
Theoretische Informatik 2
SS 2015
94 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel
Die Subtraktion N2 sub N, hn, mi 7→ n − m sofern m ≤ n , läßt sich mit
dem IRS darstellen: n − 0 = n impliziert g = idN = π01 . Wegen
n − (m + 1) = (n − m) − 1 = h(n, m, subhn, mi) liegt die Wahl von
h(a, b, c) = pvor(c) nahe, genauer h = pvor ◦ π23 .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
94 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel
Die Subtraktion N2 sub N, hn, mi 7→ n − m sofern m ≤ n , läßt sich mit
dem IRS darstellen: n − 0 = n impliziert g = idN = π01 . Wegen
n − (m + 1) = (n − m) − 1 = h(n, m, subhn, mi) liegt die Wahl von
h(a, b, c) = pvor(c) nahe, genauer h = pvor ◦ π23 .
Beispiel
Die ganzzahlige Division N2
ist µ-rekursiv.
Jürgen Koslowski (TU-BS)
div
N, hn, mi 7→ k sofern k · m = n gilt,
Theoretische Informatik 2
SS 2015
94 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel
Die Subtraktion N2 sub N, hn, mi 7→ n − m sofern m ≤ n , läßt sich mit
dem IRS darstellen: n − 0 = n impliziert g = idN = π01 . Wegen
n − (m + 1) = (n − m) − 1 = h(n, m, subhn, mi) liegt die Wahl von
h(a, b, c) = pvor(c) nahe, genauer h = pvor ◦ π23 .
Beispiel
Die ganzzahlige Division N2 div N, hn, mi 7→ k sofern k · m = n gilt,
ist µ-rekursiv. Wir versuchen es zunächst mit
f (n, m, k) := sub(n, k · m)
Jürgen Koslowski (TU-BS)
(
Theoretische Informatik 2
SS 2015
94 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel
Die Subtraktion N2 sub N, hn, mi 7→ n − m sofern m ≤ n , läßt sich mit
dem IRS darstellen: n − 0 = n impliziert g = idN = π01 . Wegen
n − (m + 1) = (n − m) − 1 = h(n, m, subhn, mi) liegt die Wahl von
h(a, b, c) = pvor(c) nahe, genauer h = pvor ◦ π23 .
Beispiel
Die ganzzahlige Division N2 div N, hn, mi 7→ k sofern k · m = n gilt,
ist µ-rekursiv. Wir versuchen es zunächst mit
f (n, m, k) := sub(n, k · m)
Jürgen Koslowski (TU-BS)
. m·k +m·k −
. n)
(oder f (n, m, k) := n −
Theoretische Informatik 2
SS 2015
94 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel
Die Subtraktion N2 sub N, hn, mi 7→ n − m sofern m ≤ n , läßt sich mit
dem IRS darstellen: n − 0 = n impliziert g = idN = π01 . Wegen
n − (m + 1) = (n − m) − 1 = h(n, m, subhn, mi) liegt die Wahl von
h(a, b, c) = pvor(c) nahe, genauer h = pvor ◦ π23 .
Beispiel
Die ganzzahlige Division N2 div N, hn, mi 7→ k sofern k · m = n gilt,
ist µ-rekursiv. Wir versuchen es zunächst mit
f (n, m, k) := sub(n, k · m)
. m·k +m·k −
. n)
(oder f (n, m, k) := n −
Aber dann gilt f (0, 0, 0) = 0 , was µ f (0, 0) = 0 zur Folge hätte; das wäre
zumindest unkonventionell.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
94 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel
Die Subtraktion N2 sub N, hn, mi 7→ n − m sofern m ≤ n , läßt sich mit
dem IRS darstellen: n − 0 = n impliziert g = idN = π01 . Wegen
n − (m + 1) = (n − m) − 1 = h(n, m, subhn, mi) liegt die Wahl von
h(a, b, c) = pvor(c) nahe, genauer h = pvor ◦ π23 .
Beispiel
Die ganzzahlige Division N2 div N, hn, mi 7→ k sofern k · m = n gilt,
ist µ-rekursiv. Wir versuchen es zunächst mit
f (n, m, k) := sub(n, k · m)
. m·k +m·k −
. n)
(oder f (n, m, k) := n −
Aber dann gilt f (0, 0, 0) = 0 , was µ f (0, 0) = 0 zur Folge hätte; das wäre
zumindest unkonventionell. Um im Fall m = 0 Undefiniertheit zu
erzwingen, können wir m durch succ(pvor m) ersetzen, was für m = 0
undefiniert ist.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
94 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Beispiel
Die Subtraktion N2 sub N, hn, mi 7→ n − m sofern m ≤ n , läßt sich mit
dem IRS darstellen: n − 0 = n impliziert g = idN = π01 . Wegen
n − (m + 1) = (n − m) − 1 = h(n, m, subhn, mi) liegt die Wahl von
h(a, b, c) = pvor(c) nahe, genauer h = pvor ◦ π23 .
Beispiel
Die ganzzahlige Division N2 div N, hn, mi 7→ k sofern k · m = n gilt,
ist µ-rekursiv. Wir versuchen es zunächst mit
f (n, m, k) := sub(n, k · m)
. m·k +m·k −
. n)
(oder f (n, m, k) := n −
Aber dann gilt f (0, 0, 0) = 0 , was µ f (0, 0) = 0 zur Folge hätte; das wäre
zumindest unkonventionell. Um im Fall m = 0 Undefiniertheit zu
erzwingen, können wir m durch succ(pvor m) ersetzen, was für m = 0
undefiniert ist. Andererseits sind im Fall f (n, m, k) = 0 die Werte
f (n, m, j) mit j < k definiert, woraus dann µ f (n, m) = k folgt.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
94 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Satz
Jede µ-rekursive Funktion ist Turing-berechenbar.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
95 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Satz
Jede µ-rekursive Funktion ist Turing-berechenbar.
Beweis.
Wegen der Turing-Berechenbarkeit primitiv rekursiver Funktionen ist nur zu
zeigen, dass der µ-Operator für partielle Funktionen Turing-Berechenbarkeit erhält:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
95 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Satz
Jede µ-rekursive Funktion ist Turing-berechenbar.
Beweis.
Wegen der Turing-Berechenbarkeit primitiv rekursiver Funktionen ist nur zu
zeigen, dass der µ-Operator für partielle Funktionen Turing-Berechenbarkeit erhält: ausgehend von i = 0 wird i solange erhöht, bis erstmals
f (x, i) = 0 auftritt; das aktuelle Argument i ist dann der Wert von µ f (x)
(orange Extrabedingung!). Andernfalls ist µ f (x) undefiniert.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
95 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Satz
Jede µ-rekursive Funktion ist Turing-berechenbar.
Beweis.
Wegen der Turing-Berechenbarkeit primitiv rekursiver Funktionen ist nur zu
zeigen, dass der µ-Operator für partielle Funktionen Turing-Berechenbarkeit erhält: ausgehend von i = 0 wird i solange erhöht, bis erstmals
f (x, i) = 0 auftritt; das aktuelle Argument i ist dann der Wert von µ f (x)
(orange Extrabedingung!). Andernfalls ist µ f (x) undefiniert.
Ohne Beweis (sehr technisch) geben wir die Umkehrung an:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
95 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Satz
Jede µ-rekursive Funktion ist Turing-berechenbar.
Beweis.
Wegen der Turing-Berechenbarkeit primitiv rekursiver Funktionen ist nur zu
zeigen, dass der µ-Operator für partielle Funktionen Turing-Berechenbarkeit erhält: ausgehend von i = 0 wird i solange erhöht, bis erstmals
f (x, i) = 0 auftritt; das aktuelle Argument i ist dann der Wert von µ f (x)
(orange Extrabedingung!). Andernfalls ist µ f (x) undefiniert.
Ohne Beweis (sehr technisch) geben wir die Umkehrung an:
Satz
Jede Turing-berechenbare Funktion ist µ-rekursiv.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
95 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Der leider sehr technische Beweis des letzten Satzes hat eine vielleicht
überraschende Konsequenz:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
96 / 236
Church-Turing-These
6.2 Rekursive Funktionen
Der leider sehr technische Beweis des letzten Satzes hat eine vielleicht
überraschende Konsequenz:
Corollar. (Kleene Normalform)
Zu jeder µ-rekursiven Funktion f existieren primitiv-rekursive Funktionen
g und h mit
f (x) = g µi (h(x) = 0) bzw. elementfrei f = g ◦ µh
Speziell die Ackermann-Funktion muß auf diese Weise darstellbar sein, siehe
etwa Mathematcs Stack Exchange .
Weitere interessante Überlegungen zur Ackermannfunktion finden sich
ebenfalls bei Theoretical Computer Science Stack Exchange .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
96 / 236
Unentscheidbare Probleme
Kapitel 7
Unentscheidbare Probleme
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
97 / 236
Unentscheidbare Probleme
7.0 Problemstellung
7.0 Problemstellung
Wir brauchen Methoden um festzustellen, dass für ein Problem kein immer
terminierender Algorithmus existiert.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
98 / 236
Unentscheidbare Probleme
7.0 Problemstellung
7.0 Problemstellung
Wir brauchen Methoden um festzustellen, dass für ein Problem kein immer
terminierender Algorithmus existiert.
Formaler: Für eine gegebene formale Sprache L ∈ Σ∗ suchen wir nach
Beweisen, dass L nicht entscheidbar ist, im Sinne des vorletzten Kaptiels.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
98 / 236
Unentscheidbare Probleme
7.0 Problemstellung
7.0 Problemstellung
Wir brauchen Methoden um festzustellen, dass für ein Problem kein immer
terminierender Algorithmus existiert.
Formaler: Für eine gegebene formale Sprache L ∈ Σ∗ suchen wir nach
Beweisen, dass L nicht entscheidbar ist, im Sinne des vorletzten Kaptiels.
Beispiel
Eingabe: Programmtext P (in ALGOL 68, FORTH, . . . ), Eingabedaten E
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
98 / 236
Unentscheidbare Probleme
7.0 Problemstellung
7.0 Problemstellung
Wir brauchen Methoden um festzustellen, dass für ein Problem kein immer
terminierender Algorithmus existiert.
Formaler: Für eine gegebene formale Sprache L ∈ Σ∗ suchen wir nach
Beweisen, dass L nicht entscheidbar ist, im Sinne des vorletzten Kaptiels.
Beispiel
Eingabe: Programmtext P (in ALGOL 68, FORTH, . . . ), Eingabedaten E
Aufgabe: Festzustellen, ob P bei Eingabe E terminiert.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
98 / 236
Unentscheidbare Probleme
7.0 Problemstellung
7.0 Problemstellung
Wir brauchen Methoden um festzustellen, dass für ein Problem kein immer
terminierender Algorithmus existiert.
Formaler: Für eine gegebene formale Sprache L ∈ Σ∗ suchen wir nach
Beweisen, dass L nicht entscheidbar ist, im Sinne des vorletzten Kaptiels.
Beispiel
Eingabe: Programmtext P (in ALGOL 68, FORTH, . . . ), Eingabedaten E
Aufgabe: Festzustellen, ob P bei Eingabe E terminiert.
Dieses Problem ist nicht entscheidbar!
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
98 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
7.1 Universelle Turingmaschine
Zunächst überzeugen wir uns von der Existenz einer “programmierbaren”
Turingmaschine MU . An diese stellen wir folgende Anforderungen:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
99 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
7.1 Universelle Turingmaschine
Zunächst überzeugen wir uns von der Existenz einer “programmierbaren”
Turingmaschine MU . An diese stellen wir folgende Anforderungen:
MU soll beliebige TMs simulieren können, deterministische wie
nicht-deterministische.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
99 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
7.1 Universelle Turingmaschine
Zunächst überzeugen wir uns von der Existenz einer “programmierbaren”
Turingmaschine MU . An diese stellen wir folgende Anforderungen:
MU soll beliebige TMs simulieren können, deterministische wie
nicht-deterministische. Dies ist eine Instanz von Selbstreflektion, ein
Algorithmus, der jeden beliebigen Algorithmus ausführt,
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
99 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
7.1 Universelle Turingmaschine
Zunächst überzeugen wir uns von der Existenz einer “programmierbaren”
Turingmaschine MU . An diese stellen wir folgende Anforderungen:
MU soll beliebige TMs simulieren können, deterministische wie
nicht-deterministische. Dies ist eine Instanz von Selbstreflektion, ein
Algorithmus, der jeden beliebigen Algorithmus ausführt, insbesondere
auch sich selbst.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
99 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
7.1 Universelle Turingmaschine
Zunächst überzeugen wir uns von der Existenz einer “programmierbaren”
Turingmaschine MU . An diese stellen wir folgende Anforderungen:
MU soll beliebige TMs simulieren können, deterministische wie
nicht-deterministische. Dies ist eine Instanz von Selbstreflektion, ein
Algorithmus, der jeden beliebigen Algorithmus ausführt, insbesondere
auch sich selbst. Praktische Beispiele dafür sind z.B. Interpreter für
Programmiersprachen (JAVA-Bytecode,. . . ), CPUs (= Interpreter für
Maschinencode).
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
99 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
7.1 Universelle Turingmaschine
Zunächst überzeugen wir uns von der Existenz einer “programmierbaren”
Turingmaschine MU . An diese stellen wir folgende Anforderungen:
MU soll beliebige TMs simulieren können, deterministische wie
nicht-deterministische. Dies ist eine Instanz von Selbstreflektion, ein
Algorithmus, der jeden beliebigen Algorithmus ausführt, insbesondere
auch sich selbst. Praktische Beispiele dafür sind z.B. Interpreter für
Programmiersprachen (JAVA-Bytecode,. . . ), CPUs (= Interpreter für
Maschinencode).
Konkret soll MU bei Eingaben der Form hc(M), w i , c(M) der
Binärcode einer TM M , diese Maschine mit Eingabe w ∈ {0, 1}∗
simulieren, im Entscheidungs- wie im Berechnungsfall.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
99 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Bemerkung
Wir können uns auf das binäre Alphabet Σ = {0, 1} ohne Hilfssymbole
beschränken, denn jede Maschine M = hQM , {sk : k < N}, Σ, δ, q0 , qF i
mit einem Band und Blanksymbol s0 läßt sich durch eine Maschine M̄ mit
B = {#, 0, 1} simulieren:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
100 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Bemerkung
Wir können uns auf das binäre Alphabet Σ = {0, 1} ohne Hilfssymbole
beschränken, denn jede Maschine M = hQM , {sk : k < N}, Σ, δ, q0 , qF i
mit einem Band und Blanksymbol s0 läßt sich durch eine Maschine M̄ mit
B = {#, 0, 1} simulieren:
. Für sk , k < N , verwenden wir 01k+1 (letztendlich unär),
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
100 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Bemerkung
Wir können uns auf das binäre Alphabet Σ = {0, 1} ohne Hilfssymbole
beschränken, denn jede Maschine M = hQM , {sk : k < N}, Σ, δ, q0 , qF i
mit einem Band und Blanksymbol s0 läßt sich durch eine Maschine M̄ mit
B = {#, 0, 1} simulieren:
. Für sk , k < N , verwenden wir 01k+1 (letztendlich unär), speziell
entspricht 01 dem ursprüngliche Blankzeichen s0 .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
100 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Bemerkung
Wir können uns auf das binäre Alphabet Σ = {0, 1} ohne Hilfssymbole
beschränken, denn jede Maschine M = hQM , {sk : k < N}, Σ, δ, q0 , qF i
mit einem Band und Blanksymbol s0 läßt sich durch eine Maschine M̄ mit
B = {#, 0, 1} simulieren:
. Für sk , k < N , verwenden wir 01k+1 (letztendlich unär), speziell
entspricht 01 dem ursprüngliche Blankzeichen s0 . Vorteil: damit wird
der relevante Bandinhalt von M durch ein zusammenhängendes
Binärwort auf dem Band von M̄ beschrieben.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
100 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Bemerkung
Wir können uns auf das binäre Alphabet Σ = {0, 1} ohne Hilfssymbole
beschränken, denn jede Maschine M = hQM , {sk : k < N}, Σ, δ, q0 , qF i
mit einem Band und Blanksymbol s0 läßt sich durch eine Maschine M̄ mit
B = {#, 0, 1} simulieren:
. Für sk , k < N , verwenden wir 01k+1 (letztendlich unär), speziell
entspricht 01 dem ursprüngliche Blankzeichen s0 . Vorteil: damit wird
der relevante Bandinhalt von M durch ein zusammenhängendes
Binärwort auf dem Band von M̄ beschrieben.
. Den M-Kopf zu bewegen entspricht der Suche nach der nächsten Null.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
100 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Bemerkung
Wir können uns auf das binäre Alphabet Σ = {0, 1} ohne Hilfssymbole
beschränken, denn jede Maschine M = hQM , {sk : k < N}, Σ, δ, q0 , qF i
mit einem Band und Blanksymbol s0 läßt sich durch eine Maschine M̄ mit
B = {#, 0, 1} simulieren:
. Für sk , k < N , verwenden wir 01k+1 (letztendlich unär), speziell
entspricht 01 dem ursprüngliche Blankzeichen s0 . Vorteil: damit wird
der relevante Bandinhalt von M durch ein zusammenhängendes
Binärwort auf dem Band von M̄ beschrieben.
. Den M-Kopf zu bewegen entspricht der Suche nach der nächsten Null.
. Das Überschreiben von si durch sj erfordert ggf. die Verschiebung
eines Teils des M̄-Bandinhalts, um keine Lücken entstehen zu lassen.
Dabei dient das Blankzeichen # der Maschine M̄ als Randbegrenzer.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
100 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Bemerkung
Wir können uns auf das binäre Alphabet Σ = {0, 1} ohne Hilfssymbole
beschränken, denn jede Maschine M = hQM , {sk : k < N}, Σ, δ, q0 , qF i
mit einem Band und Blanksymbol s0 läßt sich durch eine Maschine M̄ mit
B = {#, 0, 1} simulieren:
. Für sk , k < N , verwenden wir 01k+1 (letztendlich unär), speziell
entspricht 01 dem ursprüngliche Blankzeichen s0 . Vorteil: damit wird
der relevante Bandinhalt von M durch ein zusammenhängendes
Binärwort auf dem Band von M̄ beschrieben.
. Den M-Kopf zu bewegen entspricht der Suche nach der nächsten Null.
. Das Überschreiben von si durch sj erfordert ggf. die Verschiebung
eines Teils des M̄-Bandinhalts, um keine Lücken entstehen zu lassen.
Dabei dient das Blankzeichen # der Maschine M̄ als Randbegrenzer.
Weiterhin kann M̄ eine Zustandsmenge der Form Q̄ = Q × QM haben
(“zusätzliches Gedächtnis”), deren zweite Komponente über den Zustand
der zu simulierenden Maschine M buchführt.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
100 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Nun wollen wir nTMs mit n Zuständen über Σ = {0, 1} der Form
M = h{ qi : i < n }, {#, 0, 1}, {0, 1}, δ, q0 , qn−1 i
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
101 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Nun wollen wir nTMs mit n Zuständen über Σ = {0, 1} der Form
M = h{ qi : i < n }, {#, 0, 1}, {0, 1}, δ, q0 , qn−1 i
mit qn−1 := qF und t Übergangsregeln
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
101 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Nun wollen wir nTMs mit n Zuständen über Σ = {0, 1} der Form
M = h{ qi : i < n }, {#, 0, 1}, {0, 1}, δ, q0 , qn−1 i
mit qn−1 := qF und t Übergangsregeln ein Binärwort der Form
c(M) = 1110n 1w0 1w1 1 . . . 1wt−1 111
(1)
zuordnen,
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
101 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Nun wollen wir nTMs mit n Zuständen über Σ = {0, 1} der Form
M = h{ qi : i < n }, {#, 0, 1}, {0, 1}, δ, q0 , qn−1 i
mit qn−1 := qF und t Übergangsregeln ein Binärwort der Form
c(M) = 1110n 1w0 1w1 1 . . . 1wt−1 111
(1)
zuordnen, wobei die Wörter wj , j < t , den Regeln aus δ entsprechen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
101 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Nun wollen wir nTMs mit n Zuständen über Σ = {0, 1} der Form
M = h{ qi : i < n }, {#, 0, 1}, {0, 1}, δ, q0 , qn−1 i
mit qn−1 := qF und t Übergangsregeln ein Binärwort der Form
c(M) = 1110n 1w0 1w1 1 . . . 1wt−1 111
(1)
zuordnen, wobei die Wörter wj , j < t , den Regeln aus δ entsprechen.
Ähnlich wie oben codieren wir den Zustand qi durch 10i+1 , i < n ,
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
101 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Nun wollen wir nTMs mit n Zuständen über Σ = {0, 1} der Form
M = h{ qi : i < n }, {#, 0, 1}, {0, 1}, δ, q0 , qn−1 i
mit qn−1 := qF und t Übergangsregeln ein Binärwort der Form
c(M) = 1110n 1w0 1w1 1 . . . 1wt−1 111
(1)
zuordnen, wobei die Wörter wj , j < t , den Regeln aus δ entsprechen.
Ähnlich wie oben codieren wir den Zustand qi durch 10i+1 , i < n , und
die möglichen Aktionen gemäß
h#, 0, 1, L, Ri 7→ h10, 102 , 103 , 104 , 105 i
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
101 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Nun wollen wir nTMs mit n Zuständen über Σ = {0, 1} der Form
M = h{ qi : i < n }, {#, 0, 1}, {0, 1}, δ, q0 , qn−1 i
mit qn−1 := qF und t Übergangsregeln ein Binärwort der Form
c(M) = 1110n 1w0 1w1 1 . . . 1wt−1 111
(1)
zuordnen, wobei die Wörter wj , j < t , den Regeln aus δ entsprechen.
Ähnlich wie oben codieren wir den Zustand qi durch 10i+1 , i < n , und
die möglichen Aktionen gemäß
h#, 0, 1, L, Ri 7→ h10, 102 , 103 , 104 , 105 i
Übergänge lassen sich nun darstellen als Binärwörter wj aus
{10i+1 : i < n}{10, 102 , 103 }{10i+1 : i < n}{10, 102 , 103 , 104 , 105 }
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
101 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Nun wollen wir nTMs mit n Zuständen über Σ = {0, 1} der Form
M = h{ qi : i < n }, {#, 0, 1}, {0, 1}, δ, q0 , qn−1 i
mit qn−1 := qF und t Übergangsregeln ein Binärwort der Form
c(M) = 1110n 1w0 1w1 1 . . . 1wt−1 111
(1)
zuordnen, wobei die Wörter wj , j < t , den Regeln aus δ entsprechen.
Ähnlich wie oben codieren wir den Zustand qi durch 10i+1 , i < n , und
die möglichen Aktionen gemäß
h#, 0, 1, L, Ri 7→ h10, 102 , 103 , 104 , 105 i
Übergänge lassen sich nun darstellen als Binärwörter wj aus
{10i+1 : i < n}{10, 102 , 103 }{10i+1 : i < n}{10, 102 , 103 , 104 , 105 }
In c(M) werden deren Grenzen durch zwei Einsen markiert.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
101 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Beispiel
Eine Binärmaschine M0 mit zwei Übergängen hat einem Code der Form
c(M) = 111001w0 1w1 111 . Etwa
h , i 7→ h , i entspricht
Jürgen Koslowski (TU-BS)
w0 =
Theoretische Informatik 2
SS 2015
102 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Beispiel
Eine Binärmaschine M0 mit zwei Übergängen hat einem Code der Form
c(M) = 111001w0 1w1 111 . Etwa
hq0 , i 7→ h , i entspricht
Jürgen Koslowski (TU-BS)
w0 = 10
Theoretische Informatik 2
SS 2015
102 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Beispiel
Eine Binärmaschine M0 mit zwei Übergängen hat einem Code der Form
c(M) = 111001w0 1w1 111 . Etwa
hq0 , 1i 7→ h , i entspricht
Jürgen Koslowski (TU-BS)
w0 = 101000
Theoretische Informatik 2
SS 2015
102 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Beispiel
Eine Binärmaschine M0 mit zwei Übergängen hat einem Code der Form
c(M) = 111001w0 1w1 111 . Etwa
hq0 , 1i 7→ hq1 , i entspricht
Jürgen Koslowski (TU-BS)
w0 = 101000100
Theoretische Informatik 2
SS 2015
102 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Beispiel
Eine Binärmaschine M0 mit zwei Übergängen hat einem Code der Form
c(M) = 111001w0 1w1 111 . Etwa
hq0 , 1i 7→ hq1 , Li entspricht
Jürgen Koslowski (TU-BS)
w0 = 10100010010000
Theoretische Informatik 2
SS 2015
102 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Beispiel
Eine Binärmaschine M0 mit zwei Übergängen hat einem Code der Form
c(M) = 111001w0 1w1 111 . Etwa
hq0 , 1i 7→ hq1 , Li entspricht
w0 = 10100010010000
h ,
w1 =
i 7→ h , i entspricht
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
102 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Beispiel
Eine Binärmaschine M0 mit zwei Übergängen hat einem Code der Form
c(M) = 111001w0 1w1 111 . Etwa
hq0 , 1i 7→ hq1 , Li entspricht
w0 = 10100010010000
hq1 ,
w1 = 100
i 7→ h , i entspricht
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
102 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Beispiel
Eine Binärmaschine M0 mit zwei Übergängen hat einem Code der Form
c(M) = 111001w0 1w1 111 . Etwa
hq0 , 1i 7→ hq1 , Li entspricht
w0 = 10100010010000
hq1 , #i 7→ h , i entspricht
w1 = 10010
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
102 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Beispiel
Eine Binärmaschine M0 mit zwei Übergängen hat einem Code der Form
c(M) = 111001w0 1w1 111 . Etwa
hq0 , 1i 7→ hq1 , Li entspricht
w0 = 10100010010000
hq1 , #i 7→ hq1 , i entspricht
w1 = 10010100
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
102 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Beispiel
Eine Binärmaschine M0 mit zwei Übergängen hat einem Code der Form
c(M) = 111001w0 1w1 111 . Etwa
hq0 , 1i 7→ hq1 , Li entspricht
w0 = 10100010010000
hq1 , #i 7→ hq1 , 1i entspricht
w1 = 100101001000
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
102 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Beispiel
Eine Binärmaschine M0 mit zwei Übergängen hat einem Code der Form
c(M) = 111001w0 1w1 111 . Etwa
hq0 , 1i 7→ hq1 , Li entspricht
w0 = 10100010010000
hq1 , #i 7→ hq1 , 1i entspricht
w1 = 100101001000
Satz
Die Sprachen xC = { c(M) : M ist eine binäre xTM } , x ∈ {n, d} , der
Codes (nicht)deterministischer TMs sind entscheidbar.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
102 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Beispiel
Eine Binärmaschine M0 mit zwei Übergängen hat einem Code der Form
c(M) = 111001w0 1w1 111 . Etwa
hq0 , 1i 7→ hq1 , Li entspricht
w0 = 10100010010000
hq1 , #i 7→ hq1 , 1i entspricht
w1 = 100101001000
Satz
Die Sprachen xC = { c(M) : M ist eine binäre xTM } , x ∈ {n, d} , der
Codes (nicht)deterministischer TMs sind entscheidbar.
Beweis.
Das entspricht einem Syntaxcheck: Randbegrenzer 111 überprüfen,
Zustandszahl n auslesen, Übergangscodes wj separieren und auf
Konsistenz prüfen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
102 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Beispiel
Eine Binärmaschine M0 mit zwei Übergängen hat einem Code der Form
c(M) = 111001w0 1w1 111 . Etwa
hq0 , 1i 7→ hq1 , Li entspricht
w0 = 10100010010000
hq1 , #i 7→ hq1 , 1i entspricht
w1 = 100101001000
Satz
Die Sprachen xC = { c(M) : M ist eine binäre xTM } , x ∈ {n, d} , der
Codes (nicht)deterministischer TMs sind entscheidbar.
Beweis.
Das entspricht einem Syntaxcheck: Randbegrenzer 111 überprüfen,
Zustandszahl n auslesen, Übergangscodes wj separieren und auf
Konsistenz prüfen. Im deterministischen Fall ist noch sicherzustellen, dass
verschiedene Übergänge verschiedene linke Seiten haben.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
102 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Beispiel
Wir erinnern an die nicht semi-entscheidbare Sprache
Lcode := { w ∈ {0, 1}∗ : w = c(M) für eine TM M mit w ∈
/ L(M) }
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
103 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Beispiel
Wir erinnern an die nicht semi-entscheidbare Sprache
Lcode := { w ∈ {0, 1}∗ : w = c(M) für eine TM M mit w ∈
/ L(M) }
Die Maschine M0 aus obigem Beispiel akzeptiert ihren eigenen Code, da
sie nach einem Schritt im Endzustand q1 hält. Folglich gilt c(M0 ) ∈
/ Lcode .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
103 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Beispiel
Wir erinnern an die nicht semi-entscheidbare Sprache
Lcode := { w ∈ {0, 1}∗ : w = c(M) für eine TM M mit w ∈
/ L(M) }
Die Maschine M0 aus obigem Beispiel akzeptiert ihren eigenen Code, da
sie nach einem Schritt im Endzustand q1 hält. Folglich gilt c(M0 ) ∈
/ Lcode .
Eine ähnliche Maschine M1 mit den Übergängen
hq0 , 1i 7→ hq1 , #i
und hq1 , #i 7→ hq1 , Ri
erfüllt hingegen c(M1 ) ∈ Lcode , da sie nie hält.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
103 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Beispiel
Wir erinnern an die nicht semi-entscheidbare Sprache
Lcode := { w ∈ {0, 1}∗ : w = c(M) für eine TM M mit w ∈
/ L(M) }
Die Maschine M0 aus obigem Beispiel akzeptiert ihren eigenen Code, da
sie nach einem Schritt im Endzustand q1 hält. Folglich gilt c(M0 ) ∈
/ Lcode .
Eine ähnliche Maschine M1 mit den Übergängen
hq0 , 1i 7→ hq1 , #i
und hq1 , #i 7→ hq1 , Ri
erfüllt hingegen c(M1 ) ∈ Lcode , da sie nie hält.
Wir rekapitulieren die Anforderungen an MU für legale Eingaben c(M)w :
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
103 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Beispiel
Wir erinnern an die nicht semi-entscheidbare Sprache
Lcode := { w ∈ {0, 1}∗ : w = c(M) für eine TM M mit w ∈
/ L(M) }
Die Maschine M0 aus obigem Beispiel akzeptiert ihren eigenen Code, da
sie nach einem Schritt im Endzustand q1 hält. Folglich gilt c(M0 ) ∈
/ Lcode .
Eine ähnliche Maschine M1 mit den Übergängen
hq0 , 1i 7→ hq1 , #i
und hq1 , #i 7→ hq1 , Ri
erfüllt hingegen c(M1 ) ∈ Lcode , da sie nie hält.
Wir rekapitulieren die Anforderungen an MU für legale Eingaben c(M)w :
. MU hält auf c(M)w gdw. M hält auf w , und wenn die Maschinen
halten, dann mit identischer Ausgabe.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
103 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Beispiel
Wir erinnern an die nicht semi-entscheidbare Sprache
Lcode := { w ∈ {0, 1}∗ : w = c(M) für eine TM M mit w ∈
/ L(M) }
Die Maschine M0 aus obigem Beispiel akzeptiert ihren eigenen Code, da
sie nach einem Schritt im Endzustand q1 hält. Folglich gilt c(M0 ) ∈
/ Lcode .
Eine ähnliche Maschine M1 mit den Übergängen
hq0 , 1i 7→ hq1 , #i
und hq1 , #i 7→ hq1 , Ri
erfüllt hingegen c(M1 ) ∈ Lcode , da sie nie hält.
Wir rekapitulieren die Anforderungen an MU für legale Eingaben c(M)w :
. MU hält auf c(M)w gdw. M hält auf w , und wenn die Maschinen
halten, dann mit identischer Ausgabe.
. MU akzeptiert c(M)w gdw. M akzeptiert w .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
103 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Der Einfachheit halber konzipieren wir MU erst als 3-Band-Maschine.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
104 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Der Einfachheit halber konzipieren wir MU erst als 3-Band-Maschine. Diese
kann gemäß unserer Überlegungen in Kapitel 5 auch als 1-Band-Maschine
realisiert werden; erst diese liefert den Code c(MU ) .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
104 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Der Einfachheit halber konzipieren wir MU erst als 3-Band-Maschine. Diese
kann gemäß unserer Überlegungen in Kapitel 5 auch als 1-Band-Maschine
realisiert werden; erst diese liefert den Code c(MU ) .
Auf B0 steht zunächst die Eingabe c(M)w .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
104 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Der Einfachheit halber konzipieren wir MU erst als 3-Band-Maschine. Diese
kann gemäß unserer Überlegungen in Kapitel 5 auch als 1-Band-Maschine
realisiert werden; erst diese liefert den Code c(MU ) .
Auf B0 steht zunächst die Eingabe c(M)w .
Der vordere Teil c(M) wird nach B1 verschoben und einem
Syntaxcheck unterzogen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
104 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Der Einfachheit halber konzipieren wir MU erst als 3-Band-Maschine. Diese
kann gemäß unserer Überlegungen in Kapitel 5 auch als 1-Band-Maschine
realisiert werden; erst diese liefert den Code c(MU ) .
Auf B0 steht zunächst die Eingabe c(M)w .
Der vordere Teil c(M) wird nach B1 verschoben und einem
Syntaxcheck unterzogen. Damit verbleibt die Eingabe w für M auf
B0 , das ab jetzt die Rolle des einzigen Bandes von M spielt.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
104 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Der Einfachheit halber konzipieren wir MU erst als 3-Band-Maschine. Diese
kann gemäß unserer Überlegungen in Kapitel 5 auch als 1-Band-Maschine
realisiert werden; erst diese liefert den Code c(MU ) .
Auf B0 steht zunächst die Eingabe c(M)w .
Der vordere Teil c(M) wird nach B1 verschoben und einem
Syntaxcheck unterzogen. Damit verbleibt die Eingabe w für M auf
B0 , das ab jetzt die Rolle des einzigen Bandes von M spielt.
Auf B2 wird über den aktuellen Zustand qi von M mittels i + 1
Nullen buchgeführt; zunächst wird hier eine Null geschrieben.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
104 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Der Einfachheit halber konzipieren wir MU erst als 3-Band-Maschine. Diese
kann gemäß unserer Überlegungen in Kapitel 5 auch als 1-Band-Maschine
realisiert werden; erst diese liefert den Code c(MU ) .
Auf B0 steht zunächst die Eingabe c(M)w .
Der vordere Teil c(M) wird nach B1 verschoben und einem
Syntaxcheck unterzogen. Damit verbleibt die Eingabe w für M auf
B0 , das ab jetzt die Rolle des einzigen Bandes von M spielt.
Auf B2 wird über den aktuellen Zustand qi von M mittels i + 1
Nullen buchgeführt; zunächst wird hier eine Null geschrieben.
Die Simulation von M liest zunächst auf B0 ein Symbol aus
{#, 0, 1} . In Verbindung mit der Zustandsinformation auf B2 wird
nichtdeterministisch nach einem passenden Übergang auf B1 gesucht.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
104 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Der Einfachheit halber konzipieren wir MU erst als 3-Band-Maschine. Diese
kann gemäß unserer Überlegungen in Kapitel 5 auch als 1-Band-Maschine
realisiert werden; erst diese liefert den Code c(MU ) .
Auf B0 steht zunächst die Eingabe c(M)w .
Der vordere Teil c(M) wird nach B1 verschoben und einem
Syntaxcheck unterzogen. Damit verbleibt die Eingabe w für M auf
B0 , das ab jetzt die Rolle des einzigen Bandes von M spielt.
Auf B2 wird über den aktuellen Zustand qi von M mittels i + 1
Nullen buchgeführt; zunächst wird hier eine Null geschrieben.
Die Simulation von M liest zunächst auf B0 ein Symbol aus
{#, 0, 1} . In Verbindung mit der Zustandsinformation auf B2 wird
nichtdeterministisch nach einem passenden Übergang auf B1 gesucht.
Gibt es keinen solchen, so hält MU , wobei genau dann der
Finalzustand von MU anzunehmen ist, wenn 0n auf B2 steht.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
104 / 236
Unentscheidbare Probleme
7.1 Universelle Turingmaschine
Der Einfachheit halber konzipieren wir MU erst als 3-Band-Maschine. Diese
kann gemäß unserer Überlegungen in Kapitel 5 auch als 1-Band-Maschine
realisiert werden; erst diese liefert den Code c(MU ) .
Auf B0 steht zunächst die Eingabe c(M)w .
Der vordere Teil c(M) wird nach B1 verschoben und einem
Syntaxcheck unterzogen. Damit verbleibt die Eingabe w für M auf
B0 , das ab jetzt die Rolle des einzigen Bandes von M spielt.
Auf B2 wird über den aktuellen Zustand qi von M mittels i + 1
Nullen buchgeführt; zunächst wird hier eine Null geschrieben.
Die Simulation von M liest zunächst auf B0 ein Symbol aus
{#, 0, 1} . In Verbindung mit der Zustandsinformation auf B2 wird
nichtdeterministisch nach einem passenden Übergang auf B1 gesucht.
Gibt es keinen solchen, so hält MU , wobei genau dann der
Finalzustand von MU anzunehmen ist, wenn 0n auf B2 steht.
Andernfalls wird gemäß der rechten Seite der Zustandsindex auf B2
angepaßt, die entsprechende Aktion auf B0 ausgeführt, und der Kopf
auf B1 z.B. am Rand des Codes c(M) geparkt.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
104 / 236
Unentscheidbare Probleme
7.2 Das Halteproblem
7.2 Das Halteproblem
In Kapitel 5 war Lhalt := { c(M)w : M TM, die bei Eingabe w hält }
erwähnt worden, aber erst jetzt ist die Binärcodierung von TMs verfügbar.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
105 / 236
Unentscheidbare Probleme
7.2 Das Halteproblem
7.2 Das Halteproblem
In Kapitel 5 war Lhalt := { c(M)w : M TM, die bei Eingabe w hält }
erwähnt worden, aber erst jetzt ist die Binärcodierung von TMs verfügbar.
Problem: Bei deterministischen Maschinen läßt jede Eingabe höchstens
eine Berechnung zu, somit ist klar, was mit “ M hält bei Eingabe w ”
gemeint ist.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
105 / 236
Unentscheidbare Probleme
7.2 Das Halteproblem
7.2 Das Halteproblem
In Kapitel 5 war Lhalt := { c(M)w : M TM, die bei Eingabe w hält }
erwähnt worden, aber erst jetzt ist die Binärcodierung von TMs verfügbar.
Problem: Bei deterministischen Maschinen läßt jede Eingabe höchstens
eine Berechnung zu, somit ist klar, was mit “ M hält bei Eingabe w ”
gemeint ist. Aber wie steht’s mit nichtdeterministischen Maschinen?
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
105 / 236
Unentscheidbare Probleme
7.2 Das Halteproblem
7.2 Das Halteproblem
In Kapitel 5 war Lhalt := { c(M)w : M TM, die bei Eingabe w hält }
erwähnt worden, aber erst jetzt ist die Binärcodierung von TMs verfügbar.
Problem: Bei deterministischen Maschinen läßt jede Eingabe höchstens
eine Berechnung zu, somit ist klar, was mit “ M hält bei Eingabe w ”
gemeint ist. Aber wie steht’s mit nichtdeterministischen Maschinen?
Lösung: Wie in Kapitel 5 gesehen, besitzt jede nTM M eine sog.
Determinisierung M0 , die M simuliert.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
105 / 236
Unentscheidbare Probleme
7.2 Das Halteproblem
7.2 Das Halteproblem
In Kapitel 5 war Lhalt := { c(M)w : M TM, die bei Eingabe w hält }
erwähnt worden, aber erst jetzt ist die Binärcodierung von TMs verfügbar.
Problem: Bei deterministischen Maschinen läßt jede Eingabe höchstens
eine Berechnung zu, somit ist klar, was mit “ M hält bei Eingabe w ”
gemeint ist. Aber wie steht’s mit nichtdeterministischen Maschinen?
Lösung: Wie in Kapitel 5 gesehen, besitzt jede nTM M eine sog.
Determinisierung M0 , die M simuliert. Zwar war M0 als 4-Band Maschine
beschrieben worden, aber diese kann systematisch in eine TM Md mit
einem Band und Bandalphabet {#, 0, 1} transformiert werden.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
105 / 236
Unentscheidbare Probleme
7.2 Das Halteproblem
7.2 Das Halteproblem
In Kapitel 5 war Lhalt := { c(M)w : M TM, die bei Eingabe w hält }
erwähnt worden, aber erst jetzt ist die Binärcodierung von TMs verfügbar.
Problem: Bei deterministischen Maschinen läßt jede Eingabe höchstens
eine Berechnung zu, somit ist klar, was mit “ M hält bei Eingabe w ”
gemeint ist. Aber wie steht’s mit nichtdeterministischen Maschinen?
Lösung: Wie in Kapitel 5 gesehen, besitzt jede nTM M eine sog.
Determinisierung M0 , die M simuliert. Zwar war M0 als 4-Band Maschine
beschrieben worden, aber diese kann systematisch in eine TM Md mit
einem Band und Bandalphabet {#, 0, 1} transformiert werden.
Beobachtung 0: Md bzw. M0 hält genau dann bei Eingabe w , wenn
entweder w ∈ L(M) , oder jeder Berechnungspfad in M für w terminiert,
ohne zu akzeptieren.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
105 / 236
Unentscheidbare Probleme
7.2 Das Halteproblem
7.2 Das Halteproblem
In Kapitel 5 war Lhalt := { c(M)w : M TM, die bei Eingabe w hält }
erwähnt worden, aber erst jetzt ist die Binärcodierung von TMs verfügbar.
Problem: Bei deterministischen Maschinen läßt jede Eingabe höchstens
eine Berechnung zu, somit ist klar, was mit “ M hält bei Eingabe w ”
gemeint ist. Aber wie steht’s mit nichtdeterministischen Maschinen?
Lösung: Wie in Kapitel 5 gesehen, besitzt jede nTM M eine sog.
Determinisierung M0 , die M simuliert. Zwar war M0 als 4-Band Maschine
beschrieben worden, aber diese kann systematisch in eine TM Md mit
einem Band und Bandalphabet {#, 0, 1} transformiert werden.
Beobachtung 0: Md bzw. M0 hält genau dann bei Eingabe w , wenn
entweder w ∈ L(M) , oder jeder Berechnungspfad in M für w terminiert,
ohne zu akzeptieren.
Beobachtung 1: Die Funktion c(M) 7→ c(Md ) ist Turing-berechenbar.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
105 / 236
Unentscheidbare Probleme
7.2 Das Halteproblem
Definition
Lhalt := { c(M)w : M TM, und Md hält bei Eingabe w }
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
106 / 236
Unentscheidbare Probleme
7.2 Das Halteproblem
Definition
Lhalt := { c(M)w : M TM, und Md hält bei Eingabe w }
Satz
Die Sprache Lhalt ist semi-entscheidbar, aber nicht entscheidbar.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
106 / 236
Unentscheidbare Probleme
7.2 Das Halteproblem
Definition
Lhalt := { c(M)w : M TM, und Md hält bei Eingabe w }
Satz
Die Sprache Lhalt ist semi-entscheidbar, aber nicht entscheidbar.
Beweis
Semi-Entscheidbarkeit: via Kombination von Syntaxcheck mit MU :
v
v = c(M)w ?
Nein
v n. akz.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
106 / 236
Unentscheidbare Probleme
7.2 Das Halteproblem
Definition
Lhalt := { c(M)w : M TM, und Md hält bei Eingabe w }
Satz
Die Sprache Lhalt ist semi-entscheidbar, aber nicht entscheidbar.
Beweis
Semi-Entscheidbarkeit: via Kombination von Syntaxcheck mit MU :
v
v = c(M)w ?
Ja
berechne c(Md )
Nein
v n. akz.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
106 / 236
Unentscheidbare Probleme
7.2 Das Halteproblem
Definition
Lhalt := { c(M)w : M TM, und Md hält bei Eingabe w }
Satz
Die Sprache Lhalt ist semi-entscheidbar, aber nicht entscheidbar.
Beweis
Semi-Entscheidbarkeit: via Kombination von Syntaxcheck mit MU :
v
v = c(M)w ?
Ja
berechne c(Md )
c(Md )w
hält MU ?
Nein
v n. akz.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
106 / 236
Unentscheidbare Probleme
7.2 Das Halteproblem
Definition
Lhalt := { c(M)w : M TM, und Md hält bei Eingabe w }
Satz
Die Sprache Lhalt ist semi-entscheidbar, aber nicht entscheidbar.
Beweis
Semi-Entscheidbarkeit: via Kombination von Syntaxcheck mit MU :
v
v = c(M)w ?
Ja
berechne c(Md )
c(Md )w
hält MU ?
Ja
v akz.
Nein
v n. akz.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
106 / 236
Unentscheidbare Probleme
7.2 Das Halteproblem
Beweis (Forsetzung).
Entscheidbarkeit: Annahme: Lhalt ist entscheidbar. Dann existiert eine
TM Mhalt , die immer hält und L(Mhalt ) = Lhalt erfüllt.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
107 / 236
Unentscheidbare Probleme
7.2 Das Halteproblem
Beweis (Forsetzung).
Entscheidbarkeit: Annahme: Lhalt ist entscheidbar. Dann existiert eine
TM Mhalt , die immer hält und L(Mhalt ) = Lhalt erfüllt. Wir konstruieren
daraus wie folgt eine dreiteilige TM Mcode mit L(Mcode ) = Lcode , die
immer hält:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
107 / 236
Unentscheidbare Probleme
7.2 Das Halteproblem
Beweis (Forsetzung).
Entscheidbarkeit: Annahme: Lhalt ist entscheidbar. Dann existiert eine
TM Mhalt , die immer hält und L(Mhalt ) = Lhalt erfüllt. Wir konstruieren
daraus wie folgt eine dreiteilige TM Mcode mit L(Mcode ) = Lcode , die
immer hält:
w
w = c(M)?
Mcode :
Nein
w n. akz.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
107 / 236
Unentscheidbare Probleme
7.2 Das Halteproblem
Beweis (Forsetzung).
Entscheidbarkeit: Annahme: Lhalt ist entscheidbar. Dann existiert eine
TM Mhalt , die immer hält und L(Mhalt ) = Lhalt erfüllt. Wir konstruieren
daraus wie folgt eine dreiteilige TM Mcode mit L(Mcode ) = Lcode , die
immer hält:
w
w = c(M)?
Ja
c(Md )w
Mcode :
Nein
w n. akz.
Jürgen Koslowski (TU-BS)
akz. Mhalt ?
Nein
w akz.
Theoretische Informatik 2
SS 2015
107 / 236
Unentscheidbare Probleme
7.2 Das Halteproblem
Beweis (Forsetzung).
Entscheidbarkeit: Annahme: Lhalt ist entscheidbar. Dann existiert eine
TM Mhalt , die immer hält und L(Mhalt ) = Lhalt erfüllt. Wir konstruieren
daraus wie folgt eine dreiteilige TM Mcode mit L(Mcode ) = Lcode , die
immer hält:
w
w = c(M)?
Ja
c(Md )w
Mcode :
Nein
w n. akz.
Jürgen Koslowski (TU-BS)
akz. Mhalt ?
Nein
w akz.
Theoretische Informatik 2
Ja
c(Md )w
akz. MU ?
Nein
w akz.
SS 2015
107 / 236
Unentscheidbare Probleme
7.2 Das Halteproblem
Beweis (Forsetzung).
Entscheidbarkeit: Annahme: Lhalt ist entscheidbar. Dann existiert eine
TM Mhalt , die immer hält und L(Mhalt ) = Lhalt erfüllt. Wir konstruieren
daraus wie folgt eine dreiteilige TM Mcode mit L(Mcode ) = Lcode , die
immer hält:
w
w = c(M)?
Ja
c(Md )w
Mcode :
Nein
w n. akz.
Jürgen Koslowski (TU-BS)
akz. Mhalt ?
Nein
w akz.
Theoretische Informatik 2
Ja
c(Md )w
akz. MU ?
Ja
w n. akz.
Nein
w akz.
SS 2015
107 / 236
Unentscheidbare Probleme
7.2 Das Halteproblem
Beweis (Forsetzung).
Entscheidbarkeit: Annahme: Lhalt ist entscheidbar. Dann existiert eine
TM Mhalt , die immer hält und L(Mhalt ) = Lhalt erfüllt. Wir konstruieren
daraus wie folgt eine dreiteilige TM Mcode mit L(Mcode ) = Lcode , die
immer hält:
w
w = c(M)?
Ja
c(Md )w
Mcode :
Nein
w n. akz.
akz. Mhalt ?
Nein
w akz.
Ja
c(Md )w
akz. MU ?
Ja
w n. akz.
Nein
w akz.
Nach erfolgreichem Syntaxcheck w = c(M) wird die Maschine Mhalt auf
die Eingabe c(Md )w angewendet.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
107 / 236
Unentscheidbare Probleme
7.2 Das Halteproblem
Beweis (Forsetzung).
Entscheidbarkeit: Annahme: Lhalt ist entscheidbar. Dann existiert eine
TM Mhalt , die immer hält und L(Mhalt ) = Lhalt erfüllt. Wir konstruieren
daraus wie folgt eine dreiteilige TM Mcode mit L(Mcode ) = Lcode , die
immer hält:
w
w = c(M)?
Ja
c(Md )w
Mcode :
Nein
w n. akz.
akz. Mhalt ?
Nein
w akz.
Ja
c(Md )w
akz. MU ?
Ja
w n. akz.
Nein
w akz.
Nach erfolgreichem Syntaxcheck w = c(M) wird die Maschine Mhalt auf
die Eingabe c(Md )w angewendet. Hält Md (also auch M ) nicht auf
Eingabe w , so wird w = c(M) von Mcode akzeptiert.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
107 / 236
Unentscheidbare Probleme
7.2 Das Halteproblem
Beweis (Forsetzung).
Entscheidbarkeit: Annahme: Lhalt ist entscheidbar. Dann existiert eine
TM Mhalt , die immer hält und L(Mhalt ) = Lhalt erfüllt. Wir konstruieren
daraus wie folgt eine dreiteilige TM Mcode mit L(Mcode ) = Lcode , die
immer hält:
w
w = c(M)?
Ja
c(Md )w
Mcode :
Nein
w n. akz.
akz. Mhalt ?
Nein
w akz.
Ja
c(Md )w
akz. MU ?
Ja
w n. akz.
Nein
w akz.
Nach erfolgreichem Syntaxcheck w = c(M) wird die Maschine Mhalt auf
die Eingabe c(Md )w angewendet. Hält Md (also auch M ) nicht auf
Eingabe w , so wird w = c(M) von Mcode akzeptiert. Andernfalls testet
MU , ob Md (also auch M ) die Eingabe w akzeptiert. Genau dann wird
w von Mcode nicht akzeptiert. Aber dies ist ein Widerspruch zur
Nichtentscheidbarkeit von Lcode .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
107 / 236
Unentscheidbare Probleme
7.2 Das Halteproblem
Corollar
Das Komplement von Lhalt ist nicht semi-entscheidbar.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
108 / 236
Unentscheidbare Probleme
7.2 Das Halteproblem
Corollar
Das Komplement von Lhalt ist nicht semi-entscheidbar.
Beweis.
Wegen der Semi-Entscheidbarkeit von Lhalt ist die Semi-Entscheidbarkeit
des Komplements äquivalent zur Entscheidbarkeit von Lhalt .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
108 / 236
Unentscheidbare Probleme
7.2 Das Halteproblem
Corollar
Das Komplement von Lhalt ist nicht semi-entscheidbar.
Beweis.
Wegen der Semi-Entscheidbarkeit von Lhalt ist die Semi-Entscheidbarkeit
des Komplements äquivalent zur Entscheidbarkeit von Lhalt .
Wie sieht das Komplement von Lhalt überhaupt aus?
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
108 / 236
Unentscheidbare Probleme
7.2 Das Halteproblem
Corollar
Das Komplement von Lhalt ist nicht semi-entscheidbar.
Beweis.
Wegen der Semi-Entscheidbarkeit von Lhalt ist die Semi-Entscheidbarkeit
des Komplements äquivalent zur Entscheidbarkeit von Lhalt .
Wie sieht das Komplement von Lhalt überhaupt aus?
Lhalt = { v ∈ {0, 1}∗ : ∃M. v = c(M)w =⇒ Md hält nicht auf w }
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
108 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
Die obige Beweistechnik ist unter dem Namen Reduktion bekannt, da die
Frage der Entscheidbarkeit eines neuen Problems auf die der Entscheidbarkeit eines bekannten Problems reduziert wird.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
109 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
Die obige Beweistechnik ist unter dem Namen Reduktion bekannt, da die
Frage der Entscheidbarkeit eines neuen Problems auf die der Entscheidbarkeit eines bekannten Problems reduziert wird. Ein ähnliches Verfahren
wird auch in Kapitel 8, Komplexitätstheorie, nützlich sein.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
109 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
Die obige Beweistechnik ist unter dem Namen Reduktion bekannt, da die
Frage der Entscheidbarkeit eines neuen Problems auf die der Entscheidbarkeit eines bekannten Problems reduziert wird. Ein ähnliches Verfahren
wird auch in Kapitel 8, Komplexitätstheorie, nützlich sein.
Studierende sollen diese Beweistechnik beherrschen und einen Vorrat an
unentscheidbaren Problemen kennen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
109 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
Die obige Beweistechnik ist unter dem Namen Reduktion bekannt, da die
Frage der Entscheidbarkeit eines neuen Problems auf die der Entscheidbarkeit eines bekannten Problems reduziert wird. Ein ähnliches Verfahren
wird auch in Kapitel 8, Komplexitätstheorie, nützlich sein.
Studierende sollen diese Beweistechnik beherrschen und einen Vorrat an
unentscheidbaren Problemen kennen.
Reduktionsschema
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
109 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
Die obige Beweistechnik ist unter dem Namen Reduktion bekannt, da die
Frage der Entscheidbarkeit eines neuen Problems auf die der Entscheidbarkeit eines bekannten Problems reduziert wird. Ein ähnliches Verfahren
wird auch in Kapitel 8, Komplexitätstheorie, nützlich sein.
Studierende sollen diese Beweistechnik beherrschen und einen Vorrat an
unentscheidbaren Problemen kennen.
Reduktionsschema
Gegeben: eine formale Sprache L ⊆ {0, 1}∗ .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
109 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
Die obige Beweistechnik ist unter dem Namen Reduktion bekannt, da die
Frage der Entscheidbarkeit eines neuen Problems auf die der Entscheidbarkeit eines bekannten Problems reduziert wird. Ein ähnliches Verfahren
wird auch in Kapitel 8, Komplexitätstheorie, nützlich sein.
Studierende sollen diese Beweistechnik beherrschen und einen Vorrat an
unentscheidbaren Problemen kennen.
Reduktionsschema
Gegeben: eine formale Sprache L ⊆ {0, 1}∗ .
Zu zeigen: L ist nicht entscheidbar.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
109 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
Die obige Beweistechnik ist unter dem Namen Reduktion bekannt, da die
Frage der Entscheidbarkeit eines neuen Problems auf die der Entscheidbarkeit eines bekannten Problems reduziert wird. Ein ähnliches Verfahren
wird auch in Kapitel 8, Komplexitätstheorie, nützlich sein.
Studierende sollen diese Beweistechnik beherrschen und einen Vorrat an
unentscheidbaren Problemen kennen.
Reduktionsschema
Gegeben: eine formale Sprache L ⊆ {0, 1}∗ .
Zu zeigen: L ist nicht entscheidbar.
Annahme: L ist entscheidbar. Dann exisiert eine TM M mit L(M) = L ,
die immer hält.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
109 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
Die obige Beweistechnik ist unter dem Namen Reduktion bekannt, da die
Frage der Entscheidbarkeit eines neuen Problems auf die der Entscheidbarkeit eines bekannten Problems reduziert wird. Ein ähnliches Verfahren
wird auch in Kapitel 8, Komplexitätstheorie, nützlich sein.
Studierende sollen diese Beweistechnik beherrschen und einen Vorrat an
unentscheidbaren Problemen kennen.
Reduktionsschema
Gegeben: eine formale Sprache L ⊆ {0, 1}∗ .
Zu zeigen: L ist nicht entscheidbar.
Annahme: L ist entscheidbar. Dann exisiert eine TM M mit L(M) = L ,
die immer hält.
Verfahren: Konstruiere mittels M eine TM M̃ für eine bekanntermaßen
unentscheidbare Sprache L̃ , Widerspruch!
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
109 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
Die obige Beweistechnik ist unter dem Namen Reduktion bekannt, da die
Frage der Entscheidbarkeit eines neuen Problems auf die der Entscheidbarkeit eines bekannten Problems reduziert wird. Ein ähnliches Verfahren
wird auch in Kapitel 8, Komplexitätstheorie, nützlich sein.
Studierende sollen diese Beweistechnik beherrschen und einen Vorrat an
unentscheidbaren Problemen kennen.
Reduktionsschema
Gegeben: eine formale Sprache L ⊆ {0, 1}∗ .
Zu zeigen: L ist nicht entscheidbar.
Annahme: L ist entscheidbar. Dann exisiert eine TM M mit L(M) = L ,
die immer hält.
Verfahren: Konstruiere mittels M eine TM M̃ für eine bekanntermaßen
unentscheidbare Sprache L̃ , Widerspruch!
Damit kann L nicht entscheidbar gewesen sein.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
109 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
7.3.0 Das Akzeptanzproblem
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
110 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
7.3.0 Das Akzeptanzproblem
Satz
Die Sprache Lacc := { c(M)w : M TM mit w ∈ L(M) } ist
unentscheidbar.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
110 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
7.3.0 Das Akzeptanzproblem
Satz
Die Sprache Lacc := { c(M)w : M TM mit w ∈ L(M) } ist
unentscheidbar.
Beweis.
Wir nehmen an, die TM Macc entscheidet Lacc und hält immer.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
110 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
7.3.0 Das Akzeptanzproblem
Satz
Die Sprache Lacc := { c(M)w : M TM mit w ∈ L(M) } ist
unentscheidbar.
Beweis.
Wir nehmen an, die TM Macc entscheidet Lacc und hält immer.
Idee: Eine TM M so modifizieren, dass sie jede Eingabe w akzeptiert, bei
der sie hält.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
110 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
7.3.0 Das Akzeptanzproblem
Satz
Die Sprache Lacc := { c(M)w : M TM mit w ∈ L(M) } ist
unentscheidbar.
Beweis.
Wir nehmen an, die TM Macc entscheidet Lacc und hält immer.
Idee: Eine TM M so modifizieren, dass sie jede Eingabe w akzeptiert, bei
der sie hält.
Man kann die Nichtfinalzustände nicht zu Finalzuständen machen, aber
man kann einen neuen Endzustand qn hinzufügen und neue Übergänge
hqi , si 7→ hqn , si , sofern keine M- Übergänge aus hqi , si existieren; die
resultierende TM, bezeichnen wir mit M̄ .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
110 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
7.3.0 Das Akzeptanzproblem
Satz
Die Sprache Lacc := { c(M)w : M TM mit w ∈ L(M) } ist
unentscheidbar.
Beweis.
Wir nehmen an, die TM Macc entscheidet Lacc und hält immer.
Idee: Eine TM M so modifizieren, dass sie jede Eingabe w akzeptiert, bei
der sie hält.
Man kann die Nichtfinalzustände nicht zu Finalzuständen machen, aber
man kann einen neuen Endzustand qn hinzufügen und neue Übergänge
hqi , si 7→ hqn , si , sofern keine M- Übergänge aus hqi , si existieren; die
resultierende TM, bezeichnen wir mit M̄ .
Die Funktion c(M) 7→ c(M̄) ist natürlich Turing-berechenbar.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
110 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
Beweis (Fortsetzung).
Nun konstruieren wir eine zweiteilige TM Mhalt , die Lhalt entscheidet:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
111 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
Beweis (Fortsetzung).
Nun konstruieren wir eine zweiteilige TM Mhalt , die Lhalt entscheidet:
u
Mhalt :
u = c(M)w ?
Nein
u n. akz.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
111 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
Beweis (Fortsetzung).
Nun konstruieren wir eine zweiteilige TM Mhalt , die Lhalt entscheidet:
u
Mhalt :
u = c(M)w ?
Ja
c(M̄)w
Nein
u n. akz.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
akz. Macc ?
Nein
u n. akz.
SS 2015
111 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
Beweis (Fortsetzung).
Nun konstruieren wir eine zweiteilige TM Mhalt , die Lhalt entscheidet:
u
Mhalt :
u = c(M)w ?
Ja
c(M̄)w
Nein
u n. akz.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
akz. Macc ?
Ja
u akz.
Nein
u n. akz.
SS 2015
111 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
Beweis (Fortsetzung).
Nun konstruieren wir eine zweiteilige TM Mhalt , die Lhalt entscheidet:
u
Mhalt :
u = c(M)w ?
Ja
c(M̄)w
Nein
u n. akz.
akz. Macc ?
Ja
u akz.
Nein
u n. akz.
Mhalt hält auf jede Eingabe, da jede Teilmaschine dies tut.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
111 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
Beweis (Fortsetzung).
Nun konstruieren wir eine zweiteilige TM Mhalt , die Lhalt entscheidet:
u
Mhalt :
u = c(M)w ?
Ja
c(M̄)w
Nein
u n. akz.
akz. Macc ?
Ja
u akz.
Nein
u n. akz.
Mhalt hält auf jede Eingabe, da jede Teilmaschine dies tut.
Nach erfolgreichem Syntaxcheck ist festzustellen, dass M auf w genau
dann hält, wenn M̄ die Eingabe w akzeptiert.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
111 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
Beweis (Fortsetzung).
Nun konstruieren wir eine zweiteilige TM Mhalt , die Lhalt entscheidet:
u
Mhalt :
u = c(M)w ?
Ja
c(M̄)w
Nein
u n. akz.
akz. Macc ?
Ja
u akz.
Nein
u n. akz.
Mhalt hält auf jede Eingabe, da jede Teilmaschine dies tut.
Nach erfolgreichem Syntaxcheck ist festzustellen, dass M auf w genau
dann hält, wenn M̄ die Eingabe w akzeptiert.
Da Lhalt aber nicht entscheidbar ist, kann Macc nicht existieren
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
.
111 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
Beweis (Fortsetzung).
Nun konstruieren wir eine zweiteilige TM Mhalt , die Lhalt entscheidet:
u
Mhalt :
u = c(M)w ?
Ja
c(M̄)w
Nein
u n. akz.
akz. Macc ?
Ja
u akz.
Nein
u n. akz.
Mhalt hält auf jede Eingabe, da jede Teilmaschine dies tut.
Nach erfolgreichem Syntaxcheck ist festzustellen, dass M auf w genau
dann hält, wenn M̄ die Eingabe w akzeptiert.
Da Lhalt aber nicht entscheidbar ist, kann Macc nicht existieren
.
Andererseits ist das Akzeptanzproblem für Kellerautomaten entscheidbar:
Kellerautomaten sind analog binär codierbar und können algorithmisch in
cfG’n umgewandelt werden, sogar in CNF.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
111 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
Beweis (Fortsetzung).
Nun konstruieren wir eine zweiteilige TM Mhalt , die Lhalt entscheidet:
u
Mhalt :
u = c(M)w ?
Ja
c(M̄)w
Nein
u n. akz.
akz. Macc ?
Ja
u akz.
Nein
u n. akz.
Mhalt hält auf jede Eingabe, da jede Teilmaschine dies tut.
Nach erfolgreichem Syntaxcheck ist festzustellen, dass M auf w genau
dann hält, wenn M̄ die Eingabe w akzeptiert.
Da Lhalt aber nicht entscheidbar ist, kann Macc nicht existieren
.
Andererseits ist das Akzeptanzproblem für Kellerautomaten entscheidbar:
Kellerautomaten sind analog binär codierbar und können algorithmisch in
cfG’n umgewandelt werden, sogar in CNF. Der CYK-Algorithmus
entscheidet dann das Akzeptanzproblem.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
111 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
7.3.1 Akzeptanz des leeren Worts
Satz
Die Sprache Lε := { c(M) : M TM mit ε ∈ L(M) } ist unentscheidbar.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
112 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
7.3.1 Akzeptanz des leeren Worts
Satz
Die Sprache Lε := { c(M) : M TM mit ε ∈ L(M) } ist unentscheidbar.
Beweis.
Wir nehmen an, die TM Mε entscheidet Lε und hält immer.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
112 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
7.3.1 Akzeptanz des leeren Worts
Satz
Die Sprache Lε := { c(M) : M TM mit ε ∈ L(M) } ist unentscheidbar.
Beweis.
Wir nehmen an, die TM Mε entscheidet Lε und hält immer.
Idee: Die Akzeptanz von w ∈ L(M) durch M auf die Akzeptanz von ε
durch eine TM Mw zurückführen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
112 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
7.3.1 Akzeptanz des leeren Worts
Satz
Die Sprache Lε := { c(M) : M TM mit ε ∈ L(M) } ist unentscheidbar.
Beweis.
Wir nehmen an, die TM Mε entscheidet Lε und hält immer.
Idee: Die Akzeptanz von w ∈ L(M) durch M auf die Akzeptanz von ε
durch eine TM Mw zurückführen. Diese enthält alle Zustände von M ,
aber mit um m := |w | erhöhtem Index, sowie m neue Zustände qi ,
i < m . Mit Hilfe von Übergängen hqi , #i 7→ hqi , si i sowie
hqi , si i 7→ hqi+1 , Ri , i < m , und hqm−1 , sm−1 i 7→ hqm , sm−1 i wird
w = s0 s1 . . . sm−1 von links nach rechts auf das leere Band geschrieben.
Dann wird M mit um m erhöhten Zustandsindizes ausgeführt.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
112 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
7.3.1 Akzeptanz des leeren Worts
Satz
Die Sprache Lε := { c(M) : M TM mit ε ∈ L(M) } ist unentscheidbar.
Beweis.
Wir nehmen an, die TM Mε entscheidet Lε und hält immer.
Idee: Die Akzeptanz von w ∈ L(M) durch M auf die Akzeptanz von ε
durch eine TM Mw zurückführen. Diese enthält alle Zustände von M ,
aber mit um m := |w | erhöhtem Index, sowie m neue Zustände qi ,
i < m . Mit Hilfe von Übergängen hqi , #i 7→ hqi , si i sowie
hqi , si i 7→ hqi+1 , Ri , i < m , und hqm−1 , sm−1 i 7→ hqm , sm−1 i wird
w = s0 s1 . . . sm−1 von links nach rechts auf das leere Band geschrieben.
Dann wird M mit um m erhöhten Zustandsindizes ausgeführt.
Die Funktion hc(M), w i 7→ c(Mw ) ist natürlich Turing-berechenbar.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
112 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
Beweis (Fortsetzung).
Nun konstruieren wir eine zweiteilige TM Macc , die Lacc entscheidet:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
113 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
Beweis (Fortsetzung).
Nun konstruieren wir eine zweiteilige TM Macc , die Lacc entscheidet:
u
Macc :
u = c(M)w ?
Nein
u n. akz.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
113 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
Beweis (Fortsetzung).
Nun konstruieren wir eine zweiteilige TM Macc , die Lacc entscheidet:
u
Macc :
u = c(M)w ?
Ja
c(Mw )
Nein
u n. akz.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
akz. Mε ?
Nein
u n. akz.
SS 2015
113 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
Beweis (Fortsetzung).
Nun konstruieren wir eine zweiteilige TM Macc , die Lacc entscheidet:
u
Macc :
u = c(M)w ?
Ja
c(Mw )
Nein
u n. akz.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
akz. Mε ?
Ja
u akz.
Nein
u n. akz.
SS 2015
113 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
Beweis (Fortsetzung).
Nun konstruieren wir eine zweiteilige TM Macc , die Lacc entscheidet:
u
Macc :
u = c(M)w ?
Ja
c(Mw )
Nein
u n. akz.
akz. Mε ?
Ja
u akz.
Nein
u n. akz.
Macc hält auf jede Eingabe, da beide Teilmaschinen dies tun.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
113 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
Beweis (Fortsetzung).
Nun konstruieren wir eine zweiteilige TM Macc , die Lacc entscheidet:
u
Macc :
u = c(M)w ?
Ja
c(Mw )
Nein
u n. akz.
akz. Mε ?
Ja
u akz.
Nein
u n. akz.
Macc hält auf jede Eingabe, da beide Teilmaschinen dies tun.
Nach erfolgreichem Syntaxcheck ist festzustellen, dass w genau dann von
M akzeptiert wird, wenn Mw die Eingabe ε akzeptiert.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
113 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
Beweis (Fortsetzung).
Nun konstruieren wir eine zweiteilige TM Macc , die Lacc entscheidet:
u
Macc :
u = c(M)w ?
Ja
c(Mw )
Nein
u n. akz.
akz. Mε ?
Ja
u akz.
Nein
u n. akz.
Macc hält auf jede Eingabe, da beide Teilmaschinen dies tun.
Nach erfolgreichem Syntaxcheck ist festzustellen, dass w genau dann von
M akzeptiert wird, wenn Mw die Eingabe ε akzeptiert.
Da Lacc aber nicht entscheidbar ist, kann Mε nicht existieren
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
.
SS 2015
113 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
7.3.2 Terminierung eines Algorithmus
Satz
Die Sprache
Lterm := { c(M) : M TM, so dass Md auf jede Eingabe hält } ist
unentscheidbar.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
114 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
7.3.2 Terminierung eines Algorithmus
Satz
Die Sprache
Lterm := { c(M) : M TM, so dass Md auf jede Eingabe hält } ist
unentscheidbar.
Beweis.
Wir nehmen an, die TM Mterm entscheidet Lterm und hält immer.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
114 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
7.3.2 Terminierung eines Algorithmus
Satz
Die Sprache
Lterm := { c(M) : M TM, so dass Md auf jede Eingabe hält } ist
unentscheidbar.
Beweis.
Wir nehmen an, die TM Mterm entscheidet Lterm und hält immer.
Idee: Einschränkung des Verhaltens einer TM M auf ihr Verhalten bei
leerer Eingabe:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
114 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
7.3.2 Terminierung eines Algorithmus
Satz
Die Sprache
Lterm := { c(M) : M TM, so dass Md auf jede Eingabe hält } ist
unentscheidbar.
Beweis.
Wir nehmen an, die TM Mterm entscheidet Lterm und hält immer.
Idee: Einschränkung des Verhaltens einer TM M auf ihr Verhalten bei
leerer Eingabe: die modifizierte Maschine M̃ soll zunächst die Eingabe
löschen, mit Hilfe von Übergängen hq0 , si 7→ hq1 , #i 7→ hq0 , Li , s ∈ Σ ,
sowie hq0 , #i 7→ hq2 , #i ,
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
114 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
7.3.2 Terminierung eines Algorithmus
Satz
Die Sprache
Lterm := { c(M) : M TM, so dass Md auf jede Eingabe hält } ist
unentscheidbar.
Beweis.
Wir nehmen an, die TM Mterm entscheidet Lterm und hält immer.
Idee: Einschränkung des Verhaltens einer TM M auf ihr Verhalten bei
leerer Eingabe: die modifizierte Maschine M̃ soll zunächst die Eingabe
löschen, mit Hilfe von Übergängen hq0 , si 7→ hq1 , #i 7→ hq0 , Li , s ∈ Σ ,
sowie hq0 , #i 7→ hq2 , #i , und bei leerem Band weiter wie M mit um 2
erhöhten Zustandsindizes verfahren.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
114 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
7.3.2 Terminierung eines Algorithmus
Satz
Die Sprache
Lterm := { c(M) : M TM, so dass Md auf jede Eingabe hält } ist
unentscheidbar.
Beweis.
Wir nehmen an, die TM Mterm entscheidet Lterm und hält immer.
Idee: Einschränkung des Verhaltens einer TM M auf ihr Verhalten bei
leerer Eingabe: die modifizierte Maschine M̃ soll zunächst die Eingabe
löschen, mit Hilfe von Übergängen hq0 , si 7→ hq1 , #i 7→ hq0 , Li , s ∈ Σ ,
sowie hq0 , #i 7→ hq2 , #i , und bei leerem Band weiter wie M mit um 2
erhöhten Zustandsindizes verfahren.
Die Funktion c(M) 7→ c(M̃) ist natürlich Turing-berechenbar.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
114 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
Beweis (Fortsetzung).
Nun konstruieren wir eine dreiteilige TM Mε , die Lε entscheidet:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
115 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
Beweis (Fortsetzung).
Nun konstruieren wir eine dreiteilige TM Mε , die Lε entscheidet:
u
u = c(M)?
Mε :
Nein
u n. akz.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
115 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
Beweis (Fortsetzung).
Nun konstruieren wir eine dreiteilige TM Mε , die Lε entscheidet:
u
u = c(M)?
Ja
akz. Mterm ?
c(M̃d )
Mε :
Nein
u n. akz.
Jürgen Koslowski (TU-BS)
Nein
u n. akz.
Theoretische Informatik 2
SS 2015
115 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
Beweis (Fortsetzung).
Nun konstruieren wir eine dreiteilige TM Mε , die Lε entscheidet:
u
u = c(M)?
Ja
akz. Mterm ?
c(M̃d )
Mε :
Nein
u n. akz.
Jürgen Koslowski (TU-BS)
Nein
u n. akz.
Theoretische Informatik 2
Ja
c(Md )
akz. MU ?
Nein
u n. akz.
SS 2015
115 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
Beweis (Fortsetzung).
Nun konstruieren wir eine dreiteilige TM Mε , die Lε entscheidet:
u
u = c(M)?
Ja
akz. Mterm ?
c(M̃d )
Mε :
Nein
u n. akz.
Jürgen Koslowski (TU-BS)
Nein
u n. akz.
Theoretische Informatik 2
Ja
c(Md )
akz. MU ?
Ja
u akz.
Nein
u n. akz.
SS 2015
115 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
Beweis (Fortsetzung).
Nun konstruieren wir eine dreiteilige TM Mε , die Lε entscheidet:
u
u = c(M)?
Ja
akz. Mterm ?
c(M̃d )
Mε :
Nein
u n. akz.
Nein
u n. akz.
Ja
c(Md )
akz. MU ?
Ja
u akz.
Nein
u n. akz.
Mε hält auf jede Eingabe, da die ersten beiden Teilmaschinen dies tun und
die dritte nur bei garantierter Terminierung aufgerufen wird.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
115 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
Beweis (Fortsetzung).
Nun konstruieren wir eine dreiteilige TM Mε , die Lε entscheidet:
u
u = c(M)?
Ja
akz. Mterm ?
c(M̃d )
Mε :
Nein
u n. akz.
Nein
u n. akz.
Ja
c(Md )
akz. MU ?
Ja
u akz.
Nein
u n. akz.
Mε hält auf jede Eingabe, da die ersten beiden Teilmaschinen dies tun und
die dritte nur bei garantierter Terminierung aufgerufen wird.
Nach erfolgreichem Syntaxcheck für M bedeutet die Nichtakzeptanz von
c(M̃d ) durch Mterm , dass Md bei Eingabe ε nicht hält, und M folglich
ε nicht akzeptiert. Im “Ja”-Fall hält Md bei Eingabe ε , es ist aber noch
zu überprüfen, ob ε auch akzeptiert wird.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
115 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
Beweis (Fortsetzung).
Nun konstruieren wir eine dreiteilige TM Mε , die Lε entscheidet:
u
u = c(M)?
Ja
akz. Mterm ?
c(M̃d )
Mε :
Nein
u n. akz.
Nein
u n. akz.
Ja
c(Md )
akz. MU ?
Ja
u akz.
Nein
u n. akz.
Mε hält auf jede Eingabe, da die ersten beiden Teilmaschinen dies tun und
die dritte nur bei garantierter Terminierung aufgerufen wird.
Nach erfolgreichem Syntaxcheck für M bedeutet die Nichtakzeptanz von
c(M̃d ) durch Mterm , dass Md bei Eingabe ε nicht hält, und M folglich
ε nicht akzeptiert. Im “Ja”-Fall hält Md bei Eingabe ε , es ist aber noch
zu überprüfen, ob ε auch akzeptiert wird. Das leistet MU mit Eingabe
c(Md ) . Im positiven Fall akzeptiert auch M das leere Wort, d.h.,
c(M) ∈ Lε .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
115 / 236
Unentscheidbare Probleme
7.3 Weitere unentscheidbare Probleme
Beweis (Fortsetzung).
Nun konstruieren wir eine dreiteilige TM Mε , die Lε entscheidet:
u
u = c(M)?
Ja
akz. Mterm ?
c(M̃d )
Mε :
Nein
u n. akz.
Nein
u n. akz.
Ja
c(Md )
akz. MU ?
Ja
u akz.
Nein
u n. akz.
Mε hält auf jede Eingabe, da die ersten beiden Teilmaschinen dies tun und
die dritte nur bei garantierter Terminierung aufgerufen wird.
Nach erfolgreichem Syntaxcheck für M bedeutet die Nichtakzeptanz von
c(M̃d ) durch Mterm , dass Md bei Eingabe ε nicht hält, und M folglich
ε nicht akzeptiert. Im “Ja”-Fall hält Md bei Eingabe ε , es ist aber noch
zu überprüfen, ob ε auch akzeptiert wird. Das leistet MU mit Eingabe
c(Md ) . Im positiven Fall akzeptiert auch M das leere Wort, d.h.,
c(M) ∈ Lε . Die Unentscheidbarkeit von Lε liefert den gesuchten .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
115 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
7.4 Satz von Rice
Wir brauchen ein effektiveres Verfahren, die Nichtentscheidbarkeit von
Teilsprachen von dC oder nC und verwandten Sprachen festzustellen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
116 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
7.4 Satz von Rice
Wir brauchen ein effektiveres Verfahren, die Nichtentscheidbarkeit von
Teilsprachen von dC oder nC und verwandten Sprachen festzustellen.
Definition
Für eine Eigenschaft S formaler Sprachen setze
LS := { c(M) : M TM und L(M) hat Eigenschaft S }
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
116 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
7.4 Satz von Rice
Wir brauchen ein effektiveres Verfahren, die Nichtentscheidbarkeit von
Teilsprachen von dC oder nC und verwandten Sprachen festzustellen.
Definition
Für eine Eigenschaft S formaler Sprachen setze
LS := { c(M) : M TM und L(M) hat Eigenschaft S }
Wir nennen S trivial, falls keine Sprache der Form L(M) die Eigenschaft
S erfüllt, oder jede solche Sprache dies tut.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
116 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
7.4 Satz von Rice
Wir brauchen ein effektiveres Verfahren, die Nichtentscheidbarkeit von
Teilsprachen von dC oder nC und verwandten Sprachen festzustellen.
Definition
Für eine Eigenschaft S formaler Sprachen setze
LS := { c(M) : M TM und L(M) hat Eigenschaft S }
Wir nennen S trivial, falls keine Sprache der Form L(M) die Eigenschaft
S erfüllt, oder jede solche Sprache dies tut.
Für triviales S , etwa “L ist (nicht) semientscheidbar”, ist LS entscheidbar.
Interessanter ist die Umkehrung:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
116 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
7.4 Satz von Rice
Wir brauchen ein effektiveres Verfahren, die Nichtentscheidbarkeit von
Teilsprachen von dC oder nC und verwandten Sprachen festzustellen.
Definition
Für eine Eigenschaft S formaler Sprachen setze
LS := { c(M) : M TM und L(M) hat Eigenschaft S }
Wir nennen S trivial, falls keine Sprache der Form L(M) die Eigenschaft
S erfüllt, oder jede solche Sprache dies tut.
Für triviales S , etwa “L ist (nicht) semientscheidbar”, ist LS entscheidbar.
Interessanter ist die Umkehrung:
Satz von Rice
Für nicht-triviale Eigenschaften S ist die Sprache LS nicht entscheidbar.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
116 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
Damit erweisen sich z.B. folgende Sprachen als unentscheidbar:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
117 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
Damit erweisen sich z.B. folgende Sprachen als unentscheidbar:
{ c(M) : M TM und L(M) regulär }
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
117 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
Damit erweisen sich z.B. folgende Sprachen als unentscheidbar:
{ c(M) : M TM und L(M) regulär }
{ c(M) : M TM und L(M) kontextfrei }
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
117 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
Damit erweisen sich z.B. folgende Sprachen als unentscheidbar:
{ c(M) : M TM und L(M) regulär }
{ c(M) : M TM und L(M) kontextfrei }
{ c(M) : M TM und L(M) 6= ∅ }
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
117 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
Damit erweisen sich z.B. folgende Sprachen als unentscheidbar:
{ c(M) : M TM und L(M) regulär }
{ c(M) : M TM und L(M) kontextfrei }
{ c(M) : M TM und L(M) 6= ∅ }
Was die vorangehenden ausführlichen Beispiele angeht, so läßt sich etwa Lε
mit Hilfe der Eigenschaft “ ε ∈ L(M) ” charakterisieren.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
117 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
Damit erweisen sich z.B. folgende Sprachen als unentscheidbar:
{ c(M) : M TM und L(M) regulär }
{ c(M) : M TM und L(M) kontextfrei }
{ c(M) : M TM und L(M) 6= ∅ }
Was die vorangehenden ausführlichen Beispiele angeht, so läßt sich etwa Lε
mit Hilfe der Eigenschaft “ ε ∈ L(M) ” charakterisieren.
Dagegen ist Lterm kein Beispiel für die Anwendbarkeit des Satzes von Rice,
da die Forderung, M möge auf jede Eingabe halten, keine Eigenschaft der
Sprache L(M) ist,
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
117 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
Damit erweisen sich z.B. folgende Sprachen als unentscheidbar:
{ c(M) : M TM und L(M) regulär }
{ c(M) : M TM und L(M) kontextfrei }
{ c(M) : M TM und L(M) 6= ∅ }
Was die vorangehenden ausführlichen Beispiele angeht, so läßt sich etwa Lε
mit Hilfe der Eigenschaft “ ε ∈ L(M) ” charakterisieren.
Dagegen ist Lterm kein Beispiel für die Anwendbarkeit des Satzes von Rice,
da die Forderung, M möge auf jede Eingabe halten, keine Eigenschaft der
Sprache L(M) ist, denn M ist durch L(M) nicht eindeutig bestimmt.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
117 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
Damit erweisen sich z.B. folgende Sprachen als unentscheidbar:
{ c(M) : M TM und L(M) regulär }
{ c(M) : M TM und L(M) kontextfrei }
{ c(M) : M TM und L(M) 6= ∅ }
Was die vorangehenden ausführlichen Beispiele angeht, so läßt sich etwa Lε
mit Hilfe der Eigenschaft “ ε ∈ L(M) ” charakterisieren.
Dagegen ist Lterm kein Beispiel für die Anwendbarkeit des Satzes von Rice,
da die Forderung, M möge auf jede Eingabe halten, keine Eigenschaft der
Sprache L(M) ist, denn M ist durch L(M) nicht eindeutig bestimmt.
Lcode ist nicht semi-entscheidbar, geschweige denn entscheidbar. Dennoch
könnte man die Eigenschaft “ c(M) ∈
/ L(M) ” betrachten:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
117 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
Damit erweisen sich z.B. folgende Sprachen als unentscheidbar:
{ c(M) : M TM und L(M) regulär }
{ c(M) : M TM und L(M) kontextfrei }
{ c(M) : M TM und L(M) 6= ∅ }
Was die vorangehenden ausführlichen Beispiele angeht, so läßt sich etwa Lε
mit Hilfe der Eigenschaft “ ε ∈ L(M) ” charakterisieren.
Dagegen ist Lterm kein Beispiel für die Anwendbarkeit des Satzes von Rice,
da die Forderung, M möge auf jede Eingabe halten, keine Eigenschaft der
Sprache L(M) ist, denn M ist durch L(M) nicht eindeutig bestimmt.
Lcode ist nicht semi-entscheidbar, geschweige denn entscheidbar. Dennoch
könnte man die Eigenschaft “ c(M) ∈
/ L(M) ” betrachten: dies ist ebenfalls
keine “legale” Eigenschaft, die eine Sprache L ⊆ {0, 1}∗ haben kann oder
nicht!
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
117 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
Damit erweisen sich z.B. folgende Sprachen als unentscheidbar:
{ c(M) : M TM und L(M) regulär }
{ c(M) : M TM und L(M) kontextfrei }
{ c(M) : M TM und L(M) 6= ∅ }
Was die vorangehenden ausführlichen Beispiele angeht, so läßt sich etwa Lε
mit Hilfe der Eigenschaft “ ε ∈ L(M) ” charakterisieren.
Dagegen ist Lterm kein Beispiel für die Anwendbarkeit des Satzes von Rice,
da die Forderung, M möge auf jede Eingabe halten, keine Eigenschaft der
Sprache L(M) ist, denn M ist durch L(M) nicht eindeutig bestimmt.
Lcode ist nicht semi-entscheidbar, geschweige denn entscheidbar. Dennoch
könnte man die Eigenschaft “ c(M) ∈
/ L(M) ” betrachten: dies ist ebenfalls
keine “legale” Eigenschaft, die eine Sprache L ⊆ {0, 1}∗ haben kann oder
nicht! Denkbar wäre die Existenz mehrerer TMs, die L akzeptieren, und
von denen manche Codes zu L gehören und andere nicht.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
117 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
Damit erweisen sich z.B. folgende Sprachen als unentscheidbar:
{ c(M) : M TM und L(M) regulär }
{ c(M) : M TM und L(M) kontextfrei }
{ c(M) : M TM und L(M) 6= ∅ }
Was die vorangehenden ausführlichen Beispiele angeht, so läßt sich etwa Lε
mit Hilfe der Eigenschaft “ ε ∈ L(M) ” charakterisieren.
Dagegen ist Lterm kein Beispiel für die Anwendbarkeit des Satzes von Rice,
da die Forderung, M möge auf jede Eingabe halten, keine Eigenschaft der
Sprache L(M) ist, denn M ist durch L(M) nicht eindeutig bestimmt.
Lcode ist nicht semi-entscheidbar, geschweige denn entscheidbar. Dennoch
könnte man die Eigenschaft “ c(M) ∈
/ L(M) ” betrachten: dies ist ebenfalls
keine “legale” Eigenschaft, die eine Sprache L ⊆ {0, 1}∗ haben kann oder
nicht! Denkbar wäre die Existenz mehrerer TMs, die L akzeptieren, und
von denen manche Codes zu L gehören und andere nicht. Insofern ist auch
hier der Satz von Rice nicht anwendbar!
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
117 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
Beweis des Satzes von Rice.
S sei nichttrivial.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
118 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
Beweis des Satzes von Rice.
S sei nichttrivial. Falls ∅ die Eigenschaft S nicht hat, existiert eine TM
M0 , so dass L(M0 ) 6= ∅ die Eigenschaft S besitzt.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
118 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
Beweis des Satzes von Rice.
S sei nichttrivial. Falls ∅ die Eigenschaft S nicht hat, existiert eine TM
M0 , so dass L(M0 ) 6= ∅ die Eigenschaft S besitzt.
Für eine beliebige TM M und w ∈ {0, 1}∗ sei Mw die folgende
Verknüpfung von M0 mit M : wenn M0 ihre Eingabe akzeptiert, ist
danach M mit Eingabe w auszugeführen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
118 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
Beweis des Satzes von Rice.
S sei nichttrivial. Falls ∅ die Eigenschaft S nicht hat, existiert eine TM
M0 , so dass L(M0 ) 6= ∅ die Eigenschaft S besitzt.
Für eine beliebige TM M und w ∈ {0, 1}∗ sei Mw die folgende
Verknüpfung von M0 mit M : wenn M0 ihre Eingabe akzeptiert, ist
danach M mit Eingabe w auszugeführen. Genauer: nachdem M0
akzeptiert hat, ist das Band zu löschen, dann ist w auf das leere Band zu
schreiben, und schließlich M auszuführen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
118 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
Beweis des Satzes von Rice.
S sei nichttrivial. Falls ∅ die Eigenschaft S nicht hat, existiert eine TM
M0 , so dass L(M0 ) 6= ∅ die Eigenschaft S besitzt.
Für eine beliebige TM M und w ∈ {0, 1}∗ sei Mw die folgende
Verknüpfung von M0 mit M : wenn M0 ihre Eingabe akzeptiert, ist
danach M mit Eingabe w auszugeführen. Genauer: nachdem M0
akzeptiert hat, ist das Band zu löschen, dann ist w auf das leere Band zu
schreiben, und schließlich M auszuführen. Damit ist die Abbildung
hc(M), w i 7→ c(Mw ) Turing-berechenbar (Details?), und es gilt
(
L(M0 ) falls w ∈ L(M)
w
L(M ) =
∅
sonst
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
118 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
Beweis des Satzes von Rice.
S sei nichttrivial. Falls ∅ die Eigenschaft S nicht hat, existiert eine TM
M0 , so dass L(M0 ) 6= ∅ die Eigenschaft S besitzt.
Für eine beliebige TM M und w ∈ {0, 1}∗ sei Mw die folgende
Verknüpfung von M0 mit M : wenn M0 ihre Eingabe akzeptiert, ist
danach M mit Eingabe w auszugeführen. Genauer: nachdem M0
akzeptiert hat, ist das Band zu löschen, dann ist w auf das leere Band zu
schreiben, und schließlich M auszuführen. Damit ist die Abbildung
hc(M), w i 7→ c(Mw ) Turing-berechenbar (Details?), und es gilt
(
L(M0 ) falls w ∈ L(M)
w
L(M ) =
∅
sonst
Annahme: LS ist entscheidbar.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
118 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
Beweis des Satzes von Rice.
S sei nichttrivial. Falls ∅ die Eigenschaft S nicht hat, existiert eine TM
M0 , so dass L(M0 ) 6= ∅ die Eigenschaft S besitzt.
Für eine beliebige TM M und w ∈ {0, 1}∗ sei Mw die folgende
Verknüpfung von M0 mit M : wenn M0 ihre Eingabe akzeptiert, ist
danach M mit Eingabe w auszugeführen. Genauer: nachdem M0
akzeptiert hat, ist das Band zu löschen, dann ist w auf das leere Band zu
schreiben, und schließlich M auszuführen. Damit ist die Abbildung
hc(M), w i 7→ c(Mw ) Turing-berechenbar (Details?), und es gilt
(
L(M0 ) falls w ∈ L(M)
w
L(M ) =
∅
sonst
Annahme: LS ist entscheidbar. Dann existiert eine TM MS mit
L(MS ) = LS , die immer hält.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
118 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
Beweis des Satzes von Rice.
S sei nichttrivial. Falls ∅ die Eigenschaft S nicht hat, existiert eine TM
M0 , so dass L(M0 ) 6= ∅ die Eigenschaft S besitzt.
Für eine beliebige TM M und w ∈ {0, 1}∗ sei Mw die folgende
Verknüpfung von M0 mit M : wenn M0 ihre Eingabe akzeptiert, ist
danach M mit Eingabe w auszugeführen. Genauer: nachdem M0
akzeptiert hat, ist das Band zu löschen, dann ist w auf das leere Band zu
schreiben, und schließlich M auszuführen. Damit ist die Abbildung
hc(M), w i 7→ c(Mw ) Turing-berechenbar (Details?), und es gilt
(
L(M0 ) falls w ∈ L(M)
w
L(M ) =
∅
sonst
Annahme: LS ist entscheidbar. Dann existiert eine TM MS mit
L(MS ) = LS , die immer hält.
Nun konstruieren wir eine zweiteilige TM Macc , die Lacc entscheidet:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
118 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
Beweis (Fortsetzung).
u
Macc :
u = c(M)w ?
Nein
u n. akz.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
119 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
Beweis (Fortsetzung).
u
Macc :
u = c(M)w ?
Nein
u n. akz.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
119 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
Beweis (Fortsetzung).
u
Macc :
u = c(M)w ?
Ja
c(Mw )
Nein
u n. akz.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
akz. MS ?
Nein
u n. akz.
SS 2015
119 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
Beweis (Fortsetzung).
u
Macc :
u = c(M)w ?
Ja
w
c(M )
Nein
u n. akz.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
akz. MS ?
Ja
u akz.
Nein
u n. akz.
SS 2015
119 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
Beweis (Fortsetzung).
u
Macc :
u = c(M)w ?
Ja
w
c(M )
Nein
u n. akz.
akz. MS ?
Ja
u akz.
Nein
u n. akz.
Macc hält auf jede Eingabe, da beide Teilmaschinen dies tun.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
119 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
Beweis (Fortsetzung).
u
Macc :
u = c(M)w ?
Ja
w
c(M )
Nein
u n. akz.
akz. MS ?
Ja
u akz.
Nein
u n. akz.
Macc hält auf jede Eingabe, da beide Teilmaschinen dies tun.
u ∈ L(Macc )
Jürgen Koslowski (TU-BS)
gdw u = c(M)w ∧ c(Mw ) ∈ L(MS ) = LS
Theoretische Informatik 2
SS 2015
119 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
Beweis (Fortsetzung).
u
Macc :
u = c(M)w ?
Ja
w
c(M )
Nein
u n. akz.
akz. MS ?
Ja
u akz.
Nein
u n. akz.
Macc hält auf jede Eingabe, da beide Teilmaschinen dies tun.
u ∈ L(Macc )
gdw u = c(M)w ∧ c(Mw ) ∈ L(MS ) = LS
gdw u = c(M)w ∧ L(Mw ) hat Eigenschaft S
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
119 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
Beweis (Fortsetzung).
u
Macc :
u = c(M)w ?
Ja
w
c(M )
Nein
u n. akz.
akz. MS ?
Ja
u akz.
Nein
u n. akz.
Macc hält auf jede Eingabe, da beide Teilmaschinen dies tun.
u ∈ L(Macc )
gdw u = c(M)w ∧ c(Mw ) ∈ L(MS ) = LS
gdw u = c(M)w ∧ L(Mw ) hat Eigenschaft S
gdw u = c(M)w ∧ L(Mw ) 6= ∅
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
119 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
Beweis (Fortsetzung).
u
Macc :
u = c(M)w ?
Ja
w
c(M )
Nein
u n. akz.
akz. MS ?
Ja
u akz.
Nein
u n. akz.
Macc hält auf jede Eingabe, da beide Teilmaschinen dies tun.
u ∈ L(Macc )
gdw u = c(M)w ∧ c(Mw ) ∈ L(MS ) = LS
gdw u = c(M)w ∧ L(Mw ) hat Eigenschaft S
gdw u = c(M)w ∧ L(Mw ) 6= ∅
gdw u = c(M)w ∧ L(Mw ) = L(M0 )
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
119 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
Beweis (Fortsetzung).
u
Macc :
u = c(M)w ?
Ja
w
c(M )
Nein
u n. akz.
akz. MS ?
Ja
u akz.
Nein
u n. akz.
Macc hält auf jede Eingabe, da beide Teilmaschinen dies tun.
u ∈ L(Macc )
gdw u = c(M)w ∧ c(Mw ) ∈ L(MS ) = LS
gdw u = c(M)w ∧ L(Mw ) hat Eigenschaft S
gdw u = c(M)w ∧ L(Mw ) 6= ∅
gdw u = c(M)w ∧ L(Mw ) = L(M0 )
gdw u = c(M)w ∧ w ∈ L(M)
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
119 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
Beweis (Fortsetzung).
u
Macc :
u = c(M)w ?
Ja
w
c(M )
Nein
u n. akz.
akz. MS ?
Ja
u akz.
Nein
u n. akz.
Macc hält auf jede Eingabe, da beide Teilmaschinen dies tun.
u ∈ L(Macc )
gdw u = c(M)w ∧ c(Mw ) ∈ L(MS ) = LS
gdw u = c(M)w ∧ L(Mw ) hat Eigenschaft S
gdw u = c(M)w ∧ L(Mw ) 6= ∅
gdw u = c(M)w ∧ L(Mw ) = L(M0 )
gdw u = c(M)w ∧ w ∈ L(M)
gdw u ∈ Lacc
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
119 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
Beweis (Fortsetzung).
u
Macc :
u = c(M)w ?
Ja
w
c(M )
Nein
u n. akz.
akz. MS ?
Ja
u akz.
Nein
u n. akz.
Macc hält auf jede Eingabe, da beide Teilmaschinen dies tun.
u ∈ L(Macc )
gdw u = c(M)w ∧ c(Mw ) ∈ L(MS ) = LS
gdw u = c(M)w ∧ L(Mw ) hat Eigenschaft S
gdw u = c(M)w ∧ L(Mw ) 6= ∅
gdw u = c(M)w ∧ L(Mw ) = L(M0 )
gdw u = c(M)w ∧ w ∈ L(M)
gdw u ∈ Lacc
Also L(Macc ) = Lacc , Widerspruch. Damit existiert Macc nicht und Lacc
ist nicht entscheidbar.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
119 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
Beweis (Fortsetzung).
Falls ∅ die Eigenschaft S hat, betrachten wir die deren Negation S̄ .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
120 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
Beweis (Fortsetzung).
Falls ∅ die Eigenschaft S hat, betrachten wir die deren Negation S̄ . Weil
∅ die Eigenschaft S̄ nicht hat, die ebenso wie S nichttrivial ist, folgt wie
oben, dass LS̄ nicht entscheidbar ist.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
120 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
Beweis (Fortsetzung).
Falls ∅ die Eigenschaft S hat, betrachten wir die deren Negation S̄ . Weil
∅ die Eigenschaft S̄ nicht hat, die ebenso wie S nichttrivial ist, folgt wie
oben, dass LS̄ nicht entscheidbar ist.
Wir wissen aber bereits, dass die entscheidbaren Sprachen unter
Komplementbildung abgeschlossen sind.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
120 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
Beweis (Fortsetzung).
Falls ∅ die Eigenschaft S hat, betrachten wir die deren Negation S̄ . Weil
∅ die Eigenschaft S̄ nicht hat, die ebenso wie S nichttrivial ist, folgt wie
oben, dass LS̄ nicht entscheidbar ist.
Wir wissen aber bereits, dass die entscheidbaren Sprachen unter
Komplementbildung abgeschlossen sind. Also gilt das auch für die nicht
entscheidbaren Sprachen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
120 / 236
Unentscheidbare Probleme
7.4 Satz von Rice
Beweis (Fortsetzung).
Falls ∅ die Eigenschaft S hat, betrachten wir die deren Negation S̄ . Weil
∅ die Eigenschaft S̄ nicht hat, die ebenso wie S nichttrivial ist, folgt wie
oben, dass LS̄ nicht entscheidbar ist.
Wir wissen aber bereits, dass die entscheidbaren Sprachen unter
Komplementbildung abgeschlossen sind. Also gilt das auch für die nicht
entscheidbaren Sprachen. Weiterhin sind die entscheidbaren Sprachen unter
endlichen Durchschnitten abgeschlossen. Wegen
LS̄ = LS ∩ nC
unentscheidbar
muß auch LS unentscheidbar sein, folglich also auch LS .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
120 / 236
Komplexität von Algorithmen
Kapitel 8
Komplexität von Algorithmen
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
121 / 236
Komplexität von Algorithmen
8.0 Übersicht
8.0 Übersicht
Die Klasse der algorithmisch lösbaren (= entscheidbaren) Probleme soll
jetzt detaillierter untersucht werden.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
122 / 236
Komplexität von Algorithmen
8.0 Übersicht
8.0 Übersicht
Die Klasse der algorithmisch lösbaren (= entscheidbaren) Probleme soll
jetzt detaillierter untersucht werden. Das wesentliche Unterscheidungsmerkmal wird sein, ob ein Problem “effizient lösbar” ist in dem Sinne, daß
die Laufzeit einer dTM, die das Problem löst, durch ein Polynom in der
Größe der Eingabe beschränkt ist.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
122 / 236
Komplexität von Algorithmen
8.0 Übersicht
8.0 Übersicht
Die Klasse der algorithmisch lösbaren (= entscheidbaren) Probleme soll
jetzt detaillierter untersucht werden. Das wesentliche Unterscheidungsmerkmal wird sein, ob ein Problem “effizient lösbar” ist in dem Sinne, daß
die Laufzeit einer dTM, die das Problem löst, durch ein Polynom in der
Größe der Eingabe beschränkt ist. Die zugehörige Klasse heißt P .
Beispiel
Eingabe: ungerichteter Graph G = hV , E i
Aufgabe: entscheiden, ob G 2-färbbar ist,
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
122 / 236
Komplexität von Algorithmen
8.0 Übersicht
8.0 Übersicht
Die Klasse der algorithmisch lösbaren (= entscheidbaren) Probleme soll
jetzt detaillierter untersucht werden. Das wesentliche Unterscheidungsmerkmal wird sein, ob ein Problem “effizient lösbar” ist in dem Sinne, daß
die Laufzeit einer dTM, die das Problem löst, durch ein Polynom in der
Größe der Eingabe beschränkt ist. Die zugehörige Klasse heißt P .
Beispiel
Eingabe: ungerichteter Graph G = hV , E i
Aufgabe: entscheiden, ob G 2-färbbar ist, d.h., ob die Knoten so mit zwei
Farben gefärbt werden können, daß jede Kante verschiedenfarbige
Endpunkte hat.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
122 / 236
Komplexität von Algorithmen
8.0 Übersicht
8.0 Übersicht
Die Klasse der algorithmisch lösbaren (= entscheidbaren) Probleme soll
jetzt detaillierter untersucht werden. Das wesentliche Unterscheidungsmerkmal wird sein, ob ein Problem “effizient lösbar” ist in dem Sinne, daß
die Laufzeit einer dTM, die das Problem löst, durch ein Polynom in der
Größe der Eingabe beschränkt ist. Die zugehörige Klasse heißt P .
Beispiel
Eingabe: ungerichteter Graph G = hV , E i
Aufgabe: entscheiden, ob G 2-färbbar ist, d.h., ob die Knoten so mit zwei
Farben gefärbt werden können, daß jede Kante verschiedenfarbige
Endpunkte hat.
Beispiel
Eingabe: natürliche Zahl n > 0
Aufgabe: entscheiden, ob n eine Primzahl ist.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
122 / 236
Komplexität von Algorithmen
8.0 Übersicht
Wenn hingegen eine potentielle Lösung in polynomialer Zeit von einer dTM
überprüft werden kann, gehört das Problem zu NP .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
123 / 236
Komplexität von Algorithmen
8.0 Übersicht
Wenn hingegen eine potentielle Lösung in polynomialer Zeit von einer dTM
überprüft werden kann, gehört das Problem zu NP .
Beispiel
Eingabe: ungerichteter Graph G = hV , E i
Aufgabe: entscheiden, ob G 3-färbbar ist.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
123 / 236
Komplexität von Algorithmen
8.0 Übersicht
Wenn hingegen eine potentielle Lösung in polynomialer Zeit von einer dTM
überprüft werden kann, gehört das Problem zu NP .
Beispiel
Eingabe: ungerichteter Graph G = hV , E i
Aufgabe: entscheiden, ob G 3-färbbar ist.
Für eine potentielle 3-Färbung V f 3 = {0, 1, 2} sind für jede Kante die
Farben der Endpunkte zu vergleichen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
123 / 236
Komplexität von Algorithmen
8.0 Übersicht
Wenn hingegen eine potentielle Lösung in polynomialer Zeit von einer dTM
überprüft werden kann, gehört das Problem zu NP .
Beispiel
Eingabe: ungerichteter Graph G = hV , E i
Aufgabe: entscheiden, ob G 3-färbbar ist.
Für eine potentielle 3-Färbung V f 3 = {0, 1, 2} sind für jede Kante die
Farben der Endpunkte zu vergleichen.
Beispiel
Eingabe: n geographische Orte (“Städte”) und ihre Entfernungen (bzw.
Reiskosten), sowie eine Zahl K > 0
Aufgabe: entscheiden, ob es eine Rundreise gibt, die alle Städte genau
einmal besucht und deren Länge (oder Preis) durch K beschränkt ist.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
123 / 236
Komplexität von Algorithmen
8.0 Übersicht
Wenn hingegen eine potentielle Lösung in polynomialer Zeit von einer dTM
überprüft werden kann, gehört das Problem zu NP .
Beispiel
Eingabe: ungerichteter Graph G = hV , E i
Aufgabe: entscheiden, ob G 3-färbbar ist.
Für eine potentielle 3-Färbung V f 3 = {0, 1, 2} sind für jede Kante die
Farben der Endpunkte zu vergleichen.
Beispiel
Eingabe: n geographische Orte (“Städte”) und ihre Entfernungen (bzw.
Reiskosten), sowie eine Zahl K > 0
Aufgabe: entscheiden, ob es eine Rundreise gibt, die alle Städte genau
einmal besucht und deren Länge (oder Preis) durch K beschränkt ist.
Für eine Permutation der Orte ist die Länge (der Preis) der zugehörigen
Rundreise zu berechnen und mit K zu vergleichen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
123 / 236
Komplexität von Algorithmen
Offenes Problem
Stimmt P mit NP überein?
Jürgen Koslowski (TU-BS)
8.0 Übersicht
Millennium-Problem
Theoretische Informatik 2
SS 2015
124 / 236
Komplexität von Algorithmen
Offenes Problem
Stimmt P mit NP überein?
8.0 Übersicht
Millennium-Problem
Die “schwierigsten” Probleme innerhalb der Klasse NP heißen
NP-vollständig.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
124 / 236
Komplexität von Algorithmen
Offenes Problem
Stimmt P mit NP überein?
8.0 Übersicht
Millennium-Problem
Die “schwierigsten” Probleme innerhalb der Klasse NP heißen
NP-vollständig. Gelingt der Nachweis, dass eins von ihnen zu P gehört,
dann folgt P = NP .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
124 / 236
Komplexität von Algorithmen
Offenes Problem
Stimmt P mit NP überein?
8.0 Übersicht
Millennium-Problem
Die “schwierigsten” Probleme innerhalb der Klasse NP heißen
NP-vollständig. Gelingt der Nachweis, dass eins von ihnen zu P gehört,
dann folgt P = NP . (Es gilt als sehr unwahrscheinlich, dass ein effizienter
Algorithmus für ein NP-vollständiges Problem gefunden werden kann.)
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
124 / 236
Komplexität von Algorithmen
Offenes Problem
Stimmt P mit NP überein?
8.0 Übersicht
Millennium-Problem
Die “schwierigsten” Probleme innerhalb der Klasse NP heißen
NP-vollständig. Gelingt der Nachweis, dass eins von ihnen zu P gehört,
dann folgt P = NP . (Es gilt als sehr unwahrscheinlich, dass ein effizienter
Algorithmus für ein NP-vollständiges Problem gefunden werden kann.)
Es sind inzwischen sehr viele NP-vollständige Probleme bekannt:
− Garey, Michael R.; Johnson, David S. (1979), Computers and
Intractability: A Guide to the Theory of NP-Completeness, W. H.
Freeman;
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
124 / 236
Komplexität von Algorithmen
Offenes Problem
Stimmt P mit NP überein?
8.0 Übersicht
Millennium-Problem
Die “schwierigsten” Probleme innerhalb der Klasse NP heißen
NP-vollständig. Gelingt der Nachweis, dass eins von ihnen zu P gehört,
dann folgt P = NP . (Es gilt als sehr unwahrscheinlich, dass ein effizienter
Algorithmus für ein NP-vollständiges Problem gefunden werden kann.)
Es sind inzwischen sehr viele NP-vollständige Probleme bekannt:
− Garey, Michael R.; Johnson, David S. (1979), Computers and
Intractability: A Guide to the Theory of NP-Completeness, W. H.
Freeman;
− Eine ständig aktualisierte Liste findet sich bei
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
Wikipedia
SS 2015
124 / 236
Komplexität von Algorithmen
Offenes Problem
Stimmt P mit NP überein?
8.0 Übersicht
Millennium-Problem
Die “schwierigsten” Probleme innerhalb der Klasse NP heißen
NP-vollständig. Gelingt der Nachweis, dass eins von ihnen zu P gehört,
dann folgt P = NP . (Es gilt als sehr unwahrscheinlich, dass ein effizienter
Algorithmus für ein NP-vollständiges Problem gefunden werden kann.)
Es sind inzwischen sehr viele NP-vollständige Probleme bekannt:
− Garey, Michael R.; Johnson, David S. (1979), Computers and
Intractability: A Guide to the Theory of NP-Completeness, W. H.
Freeman;
− Eine ständig aktualisierte Liste findet sich bei
Wikipedia
− Pierluigi Crescenzi, and Viggo Kann (Eds.):
A compendium of NP optimization problems
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
124 / 236
Komplexität von Algorithmen
8.0 Übersicht
8.0.1 Wiederholung: Groß-O-Notation
Wir wollen Funktionen N
Jürgen Koslowski (TU-BS)
R+ in Bezug auf ihr Wachstum vergleichen.
Theoretische Informatik 2
SS 2015
125 / 236
Komplexität von Algorithmen
8.0 Übersicht
8.0.1 Wiederholung: Groß-O-Notation
Wir wollen Funktionen N
R+ in Bezug auf ihr Wachstum vergleichen.
Informell soll O(g ) die Klasse aller Funktionen sein, die asymptotisch (also
für große Werte von n ∈ N ) nicht schneller wachsen als g .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
125 / 236
Komplexität von Algorithmen
8.0 Übersicht
8.0.1 Wiederholung: Groß-O-Notation
Wir wollen Funktionen N
R+ in Bezug auf ihr Wachstum vergleichen.
Informell soll O(g ) die Klasse aller Funktionen sein, die asymptotisch (also
für große Werte von n ∈ N ) nicht schneller wachsen als g . Genauer:
Definition
f ∈ O(g )
gdw ∃c ∈ R+ . ∃n0 > 0. ∀n ≥ n0 . f (n) ≤ c · g (n)
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
125 / 236
Komplexität von Algorithmen
8.0 Übersicht
8.0.1 Wiederholung: Groß-O-Notation
Wir wollen Funktionen N
R+ in Bezug auf ihr Wachstum vergleichen.
Informell soll O(g ) die Klasse aller Funktionen sein, die asymptotisch (also
für große Werte von n ∈ N ) nicht schneller wachsen als g . Genauer:
Definition
f ∈ O(g )
gdw ∃c ∈ R+ . ∃n0 > 0. ∀n ≥ n0 . f (n) ≤ c · g (n)
Beispiel
Jedes Polynom p vom Grad t erfüllt p ∈ O(nt ) .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
125 / 236
Komplexität von Algorithmen
8.0 Übersicht
8.0.1 Wiederholung: Groß-O-Notation
Wir wollen Funktionen N
R+ in Bezug auf ihr Wachstum vergleichen.
Informell soll O(g ) die Klasse aller Funktionen sein, die asymptotisch (also
für große Werte von n ∈ N ) nicht schneller wachsen als g . Genauer:
Definition
f ∈ O(g )
gdw ∃c ∈ R+ . ∃n0 > 0. ∀n ≥ n0 . f (n) ≤ c · g (n)
Beispiel
Jedes Polynom p vom Grad t erfüllt p ∈ O(nt ) . Denn aus
p(n) =
X
pi ni
i≤t
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
125 / 236
Komplexität von Algorithmen
8.0 Übersicht
8.0.1 Wiederholung: Groß-O-Notation
Wir wollen Funktionen N
R+ in Bezug auf ihr Wachstum vergleichen.
Informell soll O(g ) die Klasse aller Funktionen sein, die asymptotisch (also
für große Werte von n ∈ N ) nicht schneller wachsen als g . Genauer:
Definition
f ∈ O(g )
gdw ∃c ∈ R+ . ∃n0 > 0. ∀n ≥ n0 . f (n) ≤ c · g (n)
Beispiel
Jedes Polynom p vom Grad t erfüllt p ∈ O(nt ) . Denn aus
p(n) =
X
i≤t
Jürgen Koslowski (TU-BS)
pi ni = nt
X
pi /nk−i
i≤t
Theoretische Informatik 2
SS 2015
125 / 236
Komplexität von Algorithmen
8.0 Übersicht
8.0.1 Wiederholung: Groß-O-Notation
Wir wollen Funktionen N
R+ in Bezug auf ihr Wachstum vergleichen.
Informell soll O(g ) die Klasse aller Funktionen sein, die asymptotisch (also
für große Werte von n ∈ N ) nicht schneller wachsen als g . Genauer:
Definition
f ∈ O(g )
gdw ∃c ∈ R+ . ∃n0 > 0. ∀n ≥ n0 . f (n) ≤ c · g (n)
Beispiel
Jedes Polynom p vom Grad t erfüllt p ∈ O(nt ) . Denn aus
!
p(n) =
X
i≤t
Jürgen Koslowski (TU-BS)
i
pi n = n
t
X
pi /n
k−i
=n
i≤t
Theoretische Informatik 2
t
pt +
X
pi /n
t−i
i<t
SS 2015
125 / 236
Komplexität von Algorithmen
8.0 Übersicht
8.0.1 Wiederholung: Groß-O-Notation
Wir wollen Funktionen N
R+ in Bezug auf ihr Wachstum vergleichen.
Informell soll O(g ) die Klasse aller Funktionen sein, die asymptotisch (also
für große Werte von n ∈ N ) nicht schneller wachsen als g . Genauer:
Definition
f ∈ O(g )
gdw ∃c ∈ R+ . ∃n0 > 0. ∀n ≥ n0 . f (n) ≤ c · g (n)
Beispiel
Jedes Polynom p vom Grad t erfüllt p ∈ O(nt ) . Denn aus
!
p(n) =
X
i≤t
i
pi n = n
t
X
pi /n
k−i
=n
i≤t
t
pt +
X
pi /n
t−i
i<t
folgt sofort
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
125 / 236
Komplexität von Algorithmen
8.0 Übersicht
8.0.1 Wiederholung: Groß-O-Notation
Wir wollen Funktionen N
R+ in Bezug auf ihr Wachstum vergleichen.
Informell soll O(g ) die Klasse aller Funktionen sein, die asymptotisch (also
für große Werte von n ∈ N ) nicht schneller wachsen als g . Genauer:
Definition
f ∈ O(g )
gdw ∃c ∈ R+ . ∃n0 > 0. ∀n ≥ n0 . f (n) ≤ c · g (n)
Beispiel
Jedes Polynom p vom Grad t erfüllt p ∈ O(nt ) . Denn aus
!
p(n) =
X
i
pi n = n
i≤t
folgt sofort p(n) ≤ (pt +
Jürgen Koslowski (TU-BS)
t
X
pi /n
k−i
=n
i≤t
kt)nt
t
pt +
X
pi /n
t−i
i<t
für k ≥ max{pi : i < t} .
Theoretische Informatik 2
SS 2015
125 / 236
Komplexität von Algorithmen
8.0 Übersicht
8.0.1 Wiederholung: Groß-O-Notation
Wir wollen Funktionen N
R+ in Bezug auf ihr Wachstum vergleichen.
Informell soll O(g ) die Klasse aller Funktionen sein, die asymptotisch (also
für große Werte von n ∈ N ) nicht schneller wachsen als g . Genauer:
Definition
f ∈ O(g )
gdw ∃c ∈ R+ . ∃n0 > 0. ∀n ≥ n0 . f (n) ≤ c · g (n)
Beispiel
Jedes Polynom p vom Grad t erfüllt p ∈ O(nt ) . Denn aus
!
p(n) =
X
i≤t
i
pi n = n
t
X
pi /n
k−i
=n
i≤t
t
pt +
X
pi /n
t−i
i<t
kt)nt
folgt sofort p(n) ≤ (pt +
für k ≥ max{pi : i < t} . Andererseits
gilt 2n ∈
/ O(nt ) , denn limn→∞ nt /2n = 0 .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
125 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Vor einer genaueren Analyse graphentheoretischer Probleme ist zu klären,
wie Graphen sinnvoll als Eingaben für TMs codiert werden können.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
126 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Vor einer genaueren Analyse graphentheoretischer Probleme ist zu klären,
wie Graphen sinnvoll als Eingaben für TMs codiert werden können.
Definition
Ein gerichteter Graph G = hV , E i besteht aus einer Menge V von Knoten
(Vertices) und einer Relation E ⊆ V × V .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
126 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Vor einer genaueren Analyse graphentheoretischer Probleme ist zu klären,
wie Graphen sinnvoll als Eingaben für TMs codiert werden können.
Definition
Ein gerichteter Graph G = hV , E i besteht aus einer Menge V von Knoten
(Vertices) und einer Relation E ⊆ V × V . Paare hu, v i ∈ E werden
graphisch als gerichtete Kanten (Edges) oder Pfeile u
v dargestellt,
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
126 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Vor einer genaueren Analyse graphentheoretischer Probleme ist zu klären,
wie Graphen sinnvoll als Eingaben für TMs codiert werden können.
Definition
Ein gerichteter Graph G = hV , E i besteht aus einer Menge V von Knoten
(Vertices) und einer Relation E ⊆ V × V . Paare hu, v i ∈ E werden
graphisch als gerichtete Kanten (Edges) oder Pfeile u
v dargestellt,
während E als binäre Adjazenzmatrix über V aufgefaßt werden kann
(
1 falls hu, v i ∈ E
Eu,v =
0 sonst
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
126 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Vor einer genaueren Analyse graphentheoretischer Probleme ist zu klären,
wie Graphen sinnvoll als Eingaben für TMs codiert werden können.
Definition
Ein gerichteter Graph G = hV , E i besteht aus einer Menge V von Knoten
(Vertices) und einer Relation E ⊆ V × V . Paare hu, v i ∈ E werden
graphisch als gerichtete Kanten (Edges) oder Pfeile u
v dargestellt,
während E als binäre Adjazenzmatrix über V aufgefaßt werden kann
(
1 falls hu, v i ∈ E
Eu,v =
0 sonst
G heißt ungerichtet, falls die Relation E symmetrisch ist.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
126 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Vor einer genaueren Analyse graphentheoretischer Probleme ist zu klären,
wie Graphen sinnvoll als Eingaben für TMs codiert werden können.
Definition
Ein gerichteter Graph G = hV , E i besteht aus einer Menge V von Knoten
(Vertices) und einer Relation E ⊆ V × V . Paare hu, v i ∈ E werden
graphisch als gerichtete Kanten (Edges) oder Pfeile u
v dargestellt,
während E als binäre Adjazenzmatrix über V aufgefaßt werden kann
(
1 falls hu, v i ∈ E
Eu,v =
0 sonst
G heißt ungerichtet, falls die Relation E symmetrisch ist. Dann werden in
der graphischen Darstellung die Hin- und Rückpfeile u
v durch
eine ungerichtete Kante u
v ersetzt.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
126 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Anstelle von Adjazenzmatrizen kann man auch sog. Adjazenzlisten
verwenden, in denen für jeden Knoten seine direkten Nachfolger gespeichert
sind, im Wesentlichen die Positionen der Einsen aus der entsprechenden
Zeile der Adjazenzmatrix:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
127 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Anstelle von Adjazenzmatrizen kann man auch sog. Adjazenzlisten
verwenden, in denen für jeden Knoten seine direkten Nachfolger gespeichert
sind, im Wesentlichen die Positionen der Einsen aus der entsprechenden
Zeile der Adjazenzmatrix:
Beispiel
0
1
2
3
Jürgen Koslowski (TU-BS)
4
Theoretische Informatik 2
SS 2015
127 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Anstelle von Adjazenzmatrizen kann man auch sog. Adjazenzlisten
verwenden, in denen für jeden Knoten seine direkten Nachfolger gespeichert
sind, im Wesentlichen die Positionen der Einsen aus der entsprechenden
Zeile der Adjazenzmatrix:
Beispiel
0
1





2
3
Jürgen Koslowski (TU-BS)

4
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
Theoretische Informatik 2
0
1
0
0
0






SS 2015
127 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Anstelle von Adjazenzmatrizen kann man auch sog. Adjazenzlisten
verwenden, in denen für jeden Knoten seine direkten Nachfolger gespeichert
sind, im Wesentlichen die Positionen der Einsen aus der entsprechenden
Zeile der Adjazenzmatrix:
Beispiel
0
1





2
3
Jürgen Koslowski (TU-BS)

4
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
Theoretische Informatik 2
0
1
0
0
0






0 → (1)
1 → (1, 2, 4)
2→()
3 → (0)
4 → (2, 3)
SS 2015
127 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Anstelle von Adjazenzmatrizen kann man auch sog. Adjazenzlisten
verwenden, in denen für jeden Knoten seine direkten Nachfolger gespeichert
sind, im Wesentlichen die Positionen der Einsen aus der entsprechenden
Zeile der Adjazenzmatrix:
Beispiel
0
1





2
3

4
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0






0 → (1)
1 → (1, 2, 4)
2→()
3 → (0)
4 → (2, 3)
Während die Größe der Adjazenzmatrix durch |V |2 gegeben ist, ist der
Wert für die Darstellung mittels Adjazenzlisten mit |E | + |V | vielleicht
präziser, wegen |E | ∈ O(|V |2 ) aber von derselben Größenordnung.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
127 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Definition
Einer topologischen Sortierung eines gerichteten Graphen G = hV , E i mit
n Knoten ist eine Funktion V ord n = {0, . . . , n − 1} mit der Eigenschaft
hu, v i ∈ E
Jürgen Koslowski (TU-BS)
impliziert
ord(u) < ord(v )
Theoretische Informatik 2
SS 2015
128 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Definition
Einer topologischen Sortierung eines gerichteten Graphen G = hV , E i mit
n Knoten ist eine Funktion V ord n = {0, . . . , n − 1} mit der Eigenschaft
hu, v i ∈ E
impliziert
ord(u) < ord(v )
Beispiel
•
•
•
•
Jürgen Koslowski (TU-BS)
•
Theoretische Informatik 2
SS 2015
128 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Definition
Einer topologischen Sortierung eines gerichteten Graphen G = hV , E i mit
n Knoten ist eine Funktion V ord n = {0, . . . , n − 1} mit der Eigenschaft
hu, v i ∈ E
impliziert
ord(u) < ord(v )
Beispiel
•
0
•
•
Jürgen Koslowski (TU-BS)
•
Theoretische Informatik 2
SS 2015
128 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Definition
Einer topologischen Sortierung eines gerichteten Graphen G = hV , E i mit
n Knoten ist eine Funktion V ord n = {0, . . . , n − 1} mit der Eigenschaft
hu, v i ∈ E
impliziert
ord(u) < ord(v )
Beispiel
1
0
•
•
Jürgen Koslowski (TU-BS)
•
Theoretische Informatik 2
SS 2015
128 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Definition
Einer topologischen Sortierung eines gerichteten Graphen G = hV , E i mit
n Knoten ist eine Funktion V ord n = {0, . . . , n − 1} mit der Eigenschaft
hu, v i ∈ E
impliziert
ord(u) < ord(v )
Beispiel
1
0
•
•
Jürgen Koslowski (TU-BS)
2
Theoretische Informatik 2
SS 2015
128 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Definition
Einer topologischen Sortierung eines gerichteten Graphen G = hV , E i mit
n Knoten ist eine Funktion V ord n = {0, . . . , n − 1} mit der Eigenschaft
hu, v i ∈ E
impliziert
ord(u) < ord(v )
Beispiel
1
0
3
•
Jürgen Koslowski (TU-BS)
2
Theoretische Informatik 2
SS 2015
128 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Definition
Einer topologischen Sortierung eines gerichteten Graphen G = hV , E i mit
n Knoten ist eine Funktion V ord n = {0, . . . , n − 1} mit der Eigenschaft
hu, v i ∈ E
impliziert
ord(u) < ord(v )
Beispiel
1
0
3
4
Jürgen Koslowski (TU-BS)
2
Theoretische Informatik 2
SS 2015
128 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Definition
Einer topologischen Sortierung eines gerichteten Graphen G = hV , E i mit
n Knoten ist eine Funktion V ord n = {0, . . . , n − 1} mit der Eigenschaft
hu, v i ∈ E
impliziert
ord(u) < ord(v )
Beispiel
1
0
3
4
2
Die neue Kante von 4 nach 1 zerstört die topologische Sortierbarkeit.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
128 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Definition
Einer topologischen Sortierung eines gerichteten Graphen G = hV , E i mit
n Knoten ist eine Funktion V ord n = {0, . . . , n − 1} mit der Eigenschaft
hu, v i ∈ E
impliziert
ord(u) < ord(v )
Beispiel
1
0
3
4
2
Die neue Kante von 4 nach 1 zerstört die topologische Sortierbarkeit.
Allgemein kann ein gerichteter Graph genau dann topologisch sortiert
werden, wenn er keine Zyklen hat (Test für die Existenz von Zyklen).
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
128 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Naiver Algorithmus für Topologisches Sortieren)
Eingabe: Gerichteter Graph G = (V , E ) mit n Knoten und k Kanten
Ausgabe: Topologische Sortierung V ord n, falls G azyklisch
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
129 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Naiver Algorithmus für Topologisches Sortieren)
Eingabe: Gerichteter Graph G = (V , E ) mit n Knoten und k Kanten
Ausgabe: Topologische Sortierung V ord n, falls G azyklisch
1:
{(0) Initialisierung}
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
129 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Naiver Algorithmus für Topologisches Sortieren)
Eingabe: Gerichteter Graph G = (V , E ) mit n Knoten und k Kanten
Ausgabe: Topologische Sortierung V ord n, falls G azyklisch
1:
2:
3:
{(0) Initialisierung}
i := 0
{ i : die Zahl, die ord zuweisen soll}
W := V
{ W : die Menge der noch nicht bearbeiteten Knoten}
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
129 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Naiver Algorithmus für Topologisches Sortieren)
Eingabe: Gerichteter Graph G = (V , E ) mit n Knoten und k Kanten
Ausgabe: Topologische Sortierung V ord n, falls G azyklisch
1:
2:
3:
4:
{(0) Initialisierung}
i := 0
{ i : die Zahl, die ord zuweisen soll}
W := V
{ W : die Menge der noch nicht bearbeiteten Knoten}
{(1) Rekursionsschritt}
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
129 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Naiver Algorithmus für Topologisches Sortieren)
Eingabe: Gerichteter Graph G = (V , E ) mit n Knoten und k Kanten
Ausgabe: Topologische Sortierung V ord n, falls G azyklisch
1:
2:
3:
4:
5:
6:
7:
8:
9:
{(0) Initialisierung}
i := 0
{ i : die Zahl, die ord zuweisen soll}
W := V
{ W : die Menge der noch nicht bearbeiteten Knoten}
{(1) Rekursionsschritt}
while ein Knoten x ∈ W ohne Vorgänger in W existiert do
ord(x) := i
i := i + 1
W := W − {x}
end while {Zyklus falls W 6= ∅ , sonst topologische Sortierung}
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
129 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Naiver Algorithmus für Topologisches Sortieren)
Eingabe: Gerichteter Graph G = (V , E ) mit n Knoten und k Kanten
Ausgabe: Topologische Sortierung V ord n, falls G azyklisch
1:
2:
3:
4:
5:
6:
7:
8:
9:
{(0) Initialisierung}
i := 0
{ i : die Zahl, die ord zuweisen soll}
W := V
{ W : die Menge der noch nicht bearbeiteten Knoten}
{(1) Rekursionsschritt}
while ein Knoten x ∈ W ohne Vorgänger in W existiert do
ord(x) := i
i := i + 1
W := W − {x}
end while {Zyklus falls W 6= ∅ , sonst topologische Sortierung}
Korrektheit: klar.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
129 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Naiver Algorithmus für Topologisches Sortieren)
Eingabe: Gerichteter Graph G = (V , E ) mit n Knoten und k Kanten
Ausgabe: Topologische Sortierung V ord n, falls G azyklisch
1:
2:
3:
4:
5:
6:
7:
8:
9:
{(0) Initialisierung}
i := 0
{ i : die Zahl, die ord zuweisen soll}
W := V
{ W : die Menge der noch nicht bearbeiteten Knoten}
{(1) Rekursionsschritt}
while ein Knoten x ∈ W ohne Vorgänger in W existiert do
ord(x) := i
i := i + 1
W := W − {x}
end while {Zyklus falls W 6= ∅ , sonst topologische Sortierung}
Korrektheit: klar.
Laufzeit: (unter Verwendung von Adjazenzmatrizen)
Die Befehle in Zeilen 3,2,6,7 und 8 benötigen konstante Zeit A .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
129 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Naiver Algorithmus für Topologisches Sortieren)
Eingabe: Gerichteter Graph G = (V , E ) mit n Knoten und k Kanten
Ausgabe: Topologische Sortierung V ord n, falls G azyklisch
1:
2:
3:
4:
5:
6:
7:
8:
9:
{(0) Initialisierung}
i := 0
{ i : die Zahl, die ord zuweisen soll}
W := V
{ W : die Menge der noch nicht bearbeiteten Knoten}
{(1) Rekursionsschritt}
while ein Knoten x ∈ W ohne Vorgänger in W existiert do
ord(x) := i
i := i + 1
W := W − {x}
end while {Zyklus falls W 6= ∅ , sonst topologische Sortierung}
Korrektheit: klar.
Laufzeit: (unter Verwendung von Adjazenzmatrizen)
Die Befehle in Zeilen 3,2,6,7 und 8 benötigen konstante Zeit A .
Schleife 5 wird m2 -mal durchlaufen, mit m = n, . . . , 1 , da W schrumpft;
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
129 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Naiver Algorithmus für Topologisches Sortieren)
Eingabe: Gerichteter Graph G = (V , E ) mit n Knoten und k Kanten
Ausgabe: Topologische Sortierung V ord n, falls G azyklisch
1:
2:
3:
4:
5:
6:
7:
8:
9:
{(0) Initialisierung}
i := 0
{ i : die Zahl, die ord zuweisen soll}
W := V
{ W : die Menge der noch nicht bearbeiteten Knoten}
{(1) Rekursionsschritt}
while ein Knoten x ∈ W ohne Vorgänger in W existiert do
ord(x) := i
i := i + 1
W := W − {x}
end while {Zyklus falls W 6= ∅ , sonst topologische Sortierung}
Korrektheit: klar.
Laufzeit: (unter Verwendung von Adjazenzmatrizen)
Die Befehle in Zeilen 3,2,6,7 und 8 benötigen konstante Zeit A .
Schleife 5 wird m2 -mal durchlaufen, mit m = n, . . . , 1 , da W schrumpft;
in der Rest-Matrix über W ist eine 0-Spalte zu finden, in Zeit K .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
129 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Naiver Algorithmus für Topologisches Sortieren)
Eingabe: Gerichteter Graph G = (V , E ) mit n Knoten und k Kanten
Ausgabe: Topologische Sortierung V ord n, falls G azyklisch
1:
2:
3:
4:
5:
6:
7:
8:
9:
{(0) Initialisierung}
i := 0
{ i : die Zahl, die ord zuweisen soll}
W := V
{ W : die Menge der noch nicht bearbeiteten Knoten}
{(1) Rekursionsschritt}
while ein Knoten x ∈ W ohne Vorgänger in W existiert do
ord(x) := i
i := i + 1
W := W − {x}
end while {Zyklus falls W 6= ∅ , sonst topologische Sortierung}
Korrektheit: klar.
Laufzeit: (unter Verwendung von Adjazenzmatrizen)
Die Befehle in Zeilen 3,2,6,7 und 8 benötigen konstante Zeit A .
Schleife 5 wird m2 -mal durchlaufen, mit m = n, . . . , 1 , da W schrumpft;
in der Rest-Matrix über W ist eine 0-Spalte zu finden, in Zeit K .
n
n
X
X
T (n) = 2A +
(Km2 + 3A) = 2A + K
m2 + 3An ∈ O(n3 )
m=1
Jürgen Koslowski (TU-BS)
m=1
Theoretische Informatik 2
SS 2015
129 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Verbesserter Algorithmus für topologisches Sortieren)
1:
2:
{(0) Initialisierung}
i := 0
{Laufzeit A , i : die Zahl, die ord zuweisen soll}
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
{A}
SS 2015
130 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Verbesserter Algorithmus für topologisches Sortieren)
1:
2:
3:
4:
{(0) Initialisierung}
i := 0
{Laufzeit A , i : die Zahl, die ord zuweisen soll}
for alle Knoten v in V do
In[v ] := 0
{Laufzeit A , In[v ] : Vorgängeranzahl von v }
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
{A}
SS 2015
130 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Verbesserter Algorithmus für topologisches Sortieren)
1:
2:
3:
4:
5:
{(0) Initialisierung}
i := 0
{Laufzeit A , i : die Zahl, die ord zuweisen soll}
for alle Knoten v in V do
In[v ] := 0
{Laufzeit A , In[v ] : Vorgängeranzahl von v }
end for
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
{A}
SS 2015
130 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Verbesserter Algorithmus für topologisches Sortieren)
1:
2:
3:
4:
5:
{(0) Initialisierung}
i := 0
{Laufzeit A , i : die Zahl, die ord zuweisen soll}
for alle Knoten v in V do
In[v ] := 0
{Laufzeit A , In[v ] : Vorgängeranzahl von v }
end for {Laufzeit A · n }
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
{A}
{A·n}
SS 2015
130 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Verbesserter Algorithmus für topologisches Sortieren)
1:
2:
3:
4:
5:
6:
7:
8:
9:
{(0) Initialisierung}
i := 0
{Laufzeit A , i : die Zahl, die ord zuweisen soll}
for alle Knoten v in V do
In[v ] := 0
{Laufzeit A , In[v ] : Vorgängeranzahl von v }
end for {Laufzeit A · n }
for alle Knoten u in V do
for alle Knoten v mit einer Kante (u, v ) in E do
In[v ] := In[v ] + 1 {Laufzeit A }
end for
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
{A}
{A·n}
SS 2015
130 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Verbesserter Algorithmus für topologisches Sortieren)
1:
2:
3:
4:
5:
6:
7:
8:
9:
{(0) Initialisierung}
i := 0
{Laufzeit A , i : die Zahl, die ord zuweisen soll}
for alle Knoten v in V do
In[v ] := 0
{Laufzeit A , In[v ] : Vorgängeranzahl von v }
end for {Laufzeit A · n }
for alle Knoten u in V do
for alle Knoten v mit einer Kante (u, v ) in E do
In[v ] := In[v ] + 1 {Laufzeit A }
end for {Laufzeit A · k(v ) , k(v ) Länge der Nachfolgerliste von v }
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
{A}
{A·n}
SS 2015
130 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Verbesserter Algorithmus für topologisches Sortieren)
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
{(0) Initialisierung}
i := 0
{Laufzeit A , i : die Zahl, die ord zuweisen soll}
for alle Knoten v in V do
In[v ] := 0
{Laufzeit A , In[v ] : Vorgängeranzahl von v }
end for {Laufzeit A · n }
for alle Knoten u in V do
for alle Knoten v mit einer Kante (u, v ) in E do
In[v ] := In[v ] + 1 {Laufzeit A }
end for {Laufzeit A · k(v ) , k(v ) Länge der Nachfolgerliste von v }
end for
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
{A}
{A·n}
SS 2015
130 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Verbesserter Algorithmus für topologisches Sortieren)
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
{(0) Initialisierung}
i := 0
{Laufzeit A , i : die Zahl, die ord zuweisen soll}
for alle Knoten v in V do
In[v ] := 0
{Laufzeit A , In[v ] : Vorgängeranzahl von v }
end for {Laufzeit A · n }
for alle Knoten u in V do
for alle Knoten v mit einer Kante (u, v ) in E do
In[v ] := In[v ] + 1 {Laufzeit A }
end for {Laufzeit A · k(v ) , k(v ) Länge der Nachfolgerliste von v }
end for {Laufzeit A · k bei Adjazenzlisten}
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
{A}
{A·n}
{A·k }
SS 2015
130 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Verbesserter Algorithmus für topologisches Sortieren)
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
{(0) Initialisierung}
i := 0
{Laufzeit A , i : die Zahl, die ord zuweisen soll}
for alle Knoten v in V do
In[v ] := 0
{Laufzeit A , In[v ] : Vorgängeranzahl von v }
end for {Laufzeit A · n }
for alle Knoten u in V do
for alle Knoten v mit einer Kante (u, v ) in E do
In[v ] := In[v ] + 1 {Laufzeit A }
end for {Laufzeit A · k(v ) , k(v ) Länge der Nachfolgerliste von v }
end for {Laufzeit A · k bei Adjazenzlisten}
U := ∅
{Laufzeit A , U - Menge aller Knoten v mit In[v ] = 0 }
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
{A}
{A·n}
{A·k }
{A}
SS 2015
130 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Verbesserter Algorithmus für topologisches Sortieren)
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
{(0) Initialisierung}
i := 0
{Laufzeit A , i : die Zahl, die ord zuweisen soll}
for alle Knoten v in V do
In[v ] := 0
{Laufzeit A , In[v ] : Vorgängeranzahl von v }
end for {Laufzeit A · n }
for alle Knoten u in V do
for alle Knoten v mit einer Kante (u, v ) in E do
In[v ] := In[v ] + 1 {Laufzeit A }
end for {Laufzeit A · k(v ) , k(v ) Länge der Nachfolgerliste von v }
end for {Laufzeit A · k bei Adjazenzlisten}
U := ∅
{Laufzeit A , U - Menge aller Knoten v mit In[v ] = 0 }
for alle Knoten v in V do
if In[v ] = 0 then
U := U ∪ {v }
end if
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
{A}
{A·n}
{A·k }
{A}
SS 2015
130 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Verbesserter Algorithmus für topologisches Sortieren)
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
{(0) Initialisierung}
i := 0
{Laufzeit A , i : die Zahl, die ord zuweisen soll}
for alle Knoten v in V do
In[v ] := 0
{Laufzeit A , In[v ] : Vorgängeranzahl von v }
end for {Laufzeit A · n }
for alle Knoten u in V do
for alle Knoten v mit einer Kante (u, v ) in E do
In[v ] := In[v ] + 1 {Laufzeit A }
end for {Laufzeit A · k(v ) , k(v ) Länge der Nachfolgerliste von v }
end for {Laufzeit A · k bei Adjazenzlisten}
U := ∅
{Laufzeit A , U - Menge aller Knoten v mit In[v ] = 0 }
for alle Knoten v in V do
if In[v ] = 0 then
U := U ∪ {v }
end if {Laufzeit 2A }
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
{A}
{A·n}
{A·k }
{A}
SS 2015
130 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Verbesserter Algorithmus für topologisches Sortieren)
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
{(0) Initialisierung}
i := 0
{Laufzeit A , i : die Zahl, die ord zuweisen soll}
for alle Knoten v in V do
In[v ] := 0
{Laufzeit A , In[v ] : Vorgängeranzahl von v }
end for {Laufzeit A · n }
for alle Knoten u in V do
for alle Knoten v mit einer Kante (u, v ) in E do
In[v ] := In[v ] + 1 {Laufzeit A }
end for {Laufzeit A · k(v ) , k(v ) Länge der Nachfolgerliste von v }
end for {Laufzeit A · k bei Adjazenzlisten}
U := ∅
{Laufzeit A , U - Menge aller Knoten v mit In[v ] = 0 }
for alle Knoten v in V do
if In[v ] = 0 then
U := U ∪ {v }
end if {Laufzeit 2A }
end for
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
{A}
{A·n}
{A·k }
{A}
SS 2015
130 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Verbesserter Algorithmus für topologisches Sortieren)
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
{(0) Initialisierung}
i := 0
{Laufzeit A , i : die Zahl, die ord zuweisen soll}
for alle Knoten v in V do
In[v ] := 0
{Laufzeit A , In[v ] : Vorgängeranzahl von v }
end for {Laufzeit A · n }
for alle Knoten u in V do
for alle Knoten v mit einer Kante (u, v ) in E do
In[v ] := In[v ] + 1 {Laufzeit A }
end for {Laufzeit A · k(v ) , k(v ) Länge der Nachfolgerliste von v }
end for {Laufzeit A · k bei Adjazenzlisten}
U := ∅
{Laufzeit A , U - Menge aller Knoten v mit In[v ] = 0 }
for alle Knoten v in V do
if In[v ] = 0 then
U := U ∪ {v }
end if {Laufzeit 2A }
end for {Laufzeit 2A · n }
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
{A}
{A·n}
{A·k }
{A}
{ 2A · n }
SS 2015
130 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Verbesserter Algorithmus für topologisches Sortieren)
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
{(0) Initialisierung}
i := 0
{Laufzeit A , i : die Zahl, die ord zuweisen soll}
for alle Knoten v in V do
In[v ] := 0
{Laufzeit A , In[v ] : Vorgängeranzahl von v }
end for {Laufzeit A · n }
for alle Knoten u in V do
for alle Knoten v mit einer Kante (u, v ) in E do
In[v ] := In[v ] + 1 {Laufzeit A }
end for {Laufzeit A · k(v ) , k(v ) Länge der Nachfolgerliste von v }
end for {Laufzeit A · k bei Adjazenzlisten}
U := ∅
{Laufzeit A , U - Menge aller Knoten v mit In[v ] = 0 }
for alle Knoten v in V do
if In[v ] = 0 then
U := U ∪ {v }
end if {Laufzeit 2A }
end for {Laufzeit 2A · n }
{(1) Rekursionsschritt}
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
{A}
{A·n}
{A·k }
{A}
{ 2A · n }
SS 2015
130 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Verbesserter Algorithmus für topologisches Sortieren)
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
{(0) Initialisierung}
i := 0
{Laufzeit A , i : die Zahl, die ord zuweisen soll}
for alle Knoten v in V do
In[v ] := 0
{Laufzeit A , In[v ] : Vorgängeranzahl von v }
end for {Laufzeit A · n }
for alle Knoten u in V do
for alle Knoten v mit einer Kante (u, v ) in E do
In[v ] := In[v ] + 1 {Laufzeit A }
end for {Laufzeit A · k(v ) , k(v ) Länge der Nachfolgerliste von v }
end for {Laufzeit A · k bei Adjazenzlisten}
U := ∅
{Laufzeit A , U - Menge aller Knoten v mit In[v ] = 0 }
for alle Knoten v in V do
if In[v ] = 0 then
U := U ∪ {v }
end if {Laufzeit 2A }
end for {Laufzeit 2A · n }
{(1) Rekursionsschritt}
while U einen Knoten v enthält do
U := U − {v } ;
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
{A}
{A·n}
{A·k }
{A}
{ 2A · n }
SS 2015
130 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Verbesserter Algorithmus für topologisches Sortieren)
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
{(0) Initialisierung}
i := 0
{Laufzeit A , i : die Zahl, die ord zuweisen soll}
for alle Knoten v in V do
In[v ] := 0
{Laufzeit A , In[v ] : Vorgängeranzahl von v }
end for {Laufzeit A · n }
for alle Knoten u in V do
for alle Knoten v mit einer Kante (u, v ) in E do
In[v ] := In[v ] + 1 {Laufzeit A }
end for {Laufzeit A · k(v ) , k(v ) Länge der Nachfolgerliste von v }
end for {Laufzeit A · k bei Adjazenzlisten}
U := ∅
{Laufzeit A , U - Menge aller Knoten v mit In[v ] = 0 }
for alle Knoten v in V do
if In[v ] = 0 then
U := U ∪ {v }
end if {Laufzeit 2A }
end for {Laufzeit 2A · n }
{(1) Rekursionsschritt}
while U einen Knoten v enthält do
U := U − {v } ; ord(v ) := i ;
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
{A}
{A·n}
{A·k }
{A}
{ 2A · n }
SS 2015
130 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Verbesserter Algorithmus für topologisches Sortieren)
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
{(0) Initialisierung}
i := 0
{Laufzeit A , i : die Zahl, die ord zuweisen soll}
for alle Knoten v in V do
In[v ] := 0
{Laufzeit A , In[v ] : Vorgängeranzahl von v }
end for {Laufzeit A · n }
for alle Knoten u in V do
for alle Knoten v mit einer Kante (u, v ) in E do
In[v ] := In[v ] + 1 {Laufzeit A }
end for {Laufzeit A · k(v ) , k(v ) Länge der Nachfolgerliste von v }
end for {Laufzeit A · k bei Adjazenzlisten}
U := ∅
{Laufzeit A , U - Menge aller Knoten v mit In[v ] = 0 }
for alle Knoten v in V do
if In[v ] = 0 then
U := U ∪ {v }
end if {Laufzeit 2A }
end for {Laufzeit 2A · n }
{(1) Rekursionsschritt}
while U einen Knoten v enthält do
U := U − {v } ; ord(v ) := i ; i := i + 1
{Laufzeit 3A }
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
{A}
{A·n}
{A·k }
{A}
{ 2A · n }
SS 2015
130 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Verbesserter Algorithmus für topologisches Sortieren)
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
{(0) Initialisierung}
i := 0
{Laufzeit A , i : die Zahl, die ord zuweisen soll}
for alle Knoten v in V do
In[v ] := 0
{Laufzeit A , In[v ] : Vorgängeranzahl von v }
end for {Laufzeit A · n }
for alle Knoten u in V do
for alle Knoten v mit einer Kante (u, v ) in E do
In[v ] := In[v ] + 1 {Laufzeit A }
end for {Laufzeit A · k(v ) , k(v ) Länge der Nachfolgerliste von v }
end for {Laufzeit A · k bei Adjazenzlisten}
U := ∅
{Laufzeit A , U - Menge aller Knoten v mit In[v ] = 0 }
for alle Knoten v in V do
if In[v ] = 0 then
U := U ∪ {v }
end if {Laufzeit 2A }
end for {Laufzeit 2A · n }
{(1) Rekursionsschritt}
while U einen Knoten v enthält do
U := U − {v } ; ord(v ) := i ; i := i + 1
{Laufzeit 3A }
for alle Knoten w mit (v , w ) ∈ E do
In[w ] := In[w ] − 1 {Laufzeit A }
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
{A}
{A·n}
{A·k }
{A}
{ 2A · n }
SS 2015
130 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Verbesserter Algorithmus für topologisches Sortieren)
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
{(0) Initialisierung}
i := 0
{Laufzeit A , i : die Zahl, die ord zuweisen soll}
for alle Knoten v in V do
In[v ] := 0
{Laufzeit A , In[v ] : Vorgängeranzahl von v }
end for {Laufzeit A · n }
for alle Knoten u in V do
for alle Knoten v mit einer Kante (u, v ) in E do
In[v ] := In[v ] + 1 {Laufzeit A }
end for {Laufzeit A · k(v ) , k(v ) Länge der Nachfolgerliste von v }
end for {Laufzeit A · k bei Adjazenzlisten}
U := ∅
{Laufzeit A , U - Menge aller Knoten v mit In[v ] = 0 }
for alle Knoten v in V do
if In[v ] = 0 then
U := U ∪ {v }
end if {Laufzeit 2A }
end for {Laufzeit 2A · n }
{(1) Rekursionsschritt}
while U einen Knoten v enthält do
U := U − {v } ; ord(v ) := i ; i := i + 1
{Laufzeit 3A }
for alle Knoten w mit (v , w ) ∈ E do
In[w ] := In[w ] − 1 {Laufzeit A }
if In[w ] = 0 then
U := U ∪ {w }
end if
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
{A}
{A·n}
{A·k }
{A}
{ 2A · n }
SS 2015
130 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Verbesserter Algorithmus für topologisches Sortieren)
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
{(0) Initialisierung}
i := 0
{Laufzeit A , i : die Zahl, die ord zuweisen soll}
for alle Knoten v in V do
In[v ] := 0
{Laufzeit A , In[v ] : Vorgängeranzahl von v }
end for {Laufzeit A · n }
for alle Knoten u in V do
for alle Knoten v mit einer Kante (u, v ) in E do
In[v ] := In[v ] + 1 {Laufzeit A }
end for {Laufzeit A · k(v ) , k(v ) Länge der Nachfolgerliste von v }
end for {Laufzeit A · k bei Adjazenzlisten}
U := ∅
{Laufzeit A , U - Menge aller Knoten v mit In[v ] = 0 }
for alle Knoten v in V do
if In[v ] = 0 then
U := U ∪ {v }
end if {Laufzeit 2A }
end for {Laufzeit 2A · n }
{(1) Rekursionsschritt}
while U einen Knoten v enthält do
U := U − {v } ; ord(v ) := i ; i := i + 1
{Laufzeit 3A }
for alle Knoten w mit (v , w ) ∈ E do
In[w ] := In[w ] − 1 {Laufzeit A }
if In[w ] = 0 then
U := U ∪ {w }
end if {Laufzeit 2A }
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
{A}
{A·n}
{A·k }
{A}
{ 2A · n }
SS 2015
130 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Verbesserter Algorithmus für topologisches Sortieren)
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
{(0) Initialisierung}
i := 0
{Laufzeit A , i : die Zahl, die ord zuweisen soll}
for alle Knoten v in V do
In[v ] := 0
{Laufzeit A , In[v ] : Vorgängeranzahl von v }
end for {Laufzeit A · n }
for alle Knoten u in V do
for alle Knoten v mit einer Kante (u, v ) in E do
In[v ] := In[v ] + 1 {Laufzeit A }
end for {Laufzeit A · k(v ) , k(v ) Länge der Nachfolgerliste von v }
end for {Laufzeit A · k bei Adjazenzlisten}
U := ∅
{Laufzeit A , U - Menge aller Knoten v mit In[v ] = 0 }
for alle Knoten v in V do
if In[v ] = 0 then
U := U ∪ {v }
end if {Laufzeit 2A }
end for {Laufzeit 2A · n }
{(1) Rekursionsschritt}
while U einen Knoten v enthält do
U := U − {v } ; ord(v ) := i ; i := i + 1
{Laufzeit 3A }
for alle Knoten w mit (v , w ) ∈ E do
In[w ] := In[w ] − 1 {Laufzeit A }
if In[w ] = 0 then
U := U ∪ {w }
end if {Laufzeit 2A }
end for {Laufzeit 3A · k(v ) }
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
{A}
{A·n}
{A·k }
{A}
{ 2A · n }
SS 2015
130 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Verbesserter Algorithmus für topologisches Sortieren)
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
{(0) Initialisierung}
i := 0
{Laufzeit A , i : die Zahl, die ord zuweisen soll}
for alle Knoten v in V do
In[v ] := 0
{Laufzeit A , In[v ] : Vorgängeranzahl von v }
end for {Laufzeit A · n }
for alle Knoten u in V do
for alle Knoten v mit einer Kante (u, v ) in E do
In[v ] := In[v ] + 1 {Laufzeit A }
end for {Laufzeit A · k(v ) , k(v ) Länge der Nachfolgerliste von v }
end for {Laufzeit A · k bei Adjazenzlisten}
U := ∅
{Laufzeit A , U - Menge aller Knoten v mit In[v ] = 0 }
for alle Knoten v in V do
if In[v ] = 0 then
U := U ∪ {v }
end if {Laufzeit 2A }
end for {Laufzeit 2A · n }
{(1) Rekursionsschritt}
while U einen Knoten v enthält do
U := U − {v } ; ord(v ) := i ; i := i + 1
{Laufzeit 3A }
for alle Knoten w mit (v , w ) ∈ E do
In[w ] := In[w ] − 1 {Laufzeit A }
if In[w ] = 0 then
U := U ∪ {w }
end if {Laufzeit 2A }
end for {Laufzeit 3A · k(v ) }
end while {Laufzeit 3A · (n + k) , Zyklus falls i < n , sonst topologische Sortierung}
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
{A}
{A·n}
{A·k }
{A}
{ 2A · n }
{ 3A · (n + k) }
SS 2015
130 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Gesamtlaufzeit: T (n, k) = 4A(n + k) + 2A(n + 1) ∈ O(n + k) .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
131 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Gesamtlaufzeit: T (n, k) = 4A(n + k) + 2A(n + 1) ∈ O(n + k) .
Die FOR-Schleifen in Zeilen 6 und 7 garantieren nur in dieser Reihenfolge
eine Laufzeit von A · k in Zeile 10. Bei umgekehrter Reihenfolge, oder
Verwendung von Adjazenzmatrizen, ergäbe sich hier A · n2 .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
131 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Gesamtlaufzeit: T (n, k) = 4A(n + k) + 2A(n + 1) ∈ O(n + k) .
Die FOR-Schleifen in Zeilen 6 und 7 garantieren nur in dieser Reihenfolge
eine Laufzeit von A · k in Zeile 10. Bei umgekehrter Reihenfolge, oder
Verwendung von Adjazenzmatrizen, ergäbe sich hier A · n2 . Ein ähnliches
Argument liefert für die FOR-Schleife in Zeile 20 innerhalb der
WHILE-Schleife in Zeile 18 den Term 3A · k in Zeile 26. Im Falle von
Adjazenzmatrizen stünde hier 3A · n2 .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
131 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Gesamtlaufzeit: T (n, k) = 4A(n + k) + 2A(n + 1) ∈ O(n + k) .
Die FOR-Schleifen in Zeilen 6 und 7 garantieren nur in dieser Reihenfolge
eine Laufzeit von A · k in Zeile 10. Bei umgekehrter Reihenfolge, oder
Verwendung von Adjazenzmatrizen, ergäbe sich hier A · n2 . Ein ähnliches
Argument liefert für die FOR-Schleife in Zeile 20 innerhalb der
WHILE-Schleife in Zeile 18 den Term 3A · k in Zeile 26. Im Falle von
Adjazenzmatrizen stünde hier 3A · n2 .
Damit wäre bei Verwendung von Adjazenzmatrizen die Laufzeit gegeben
durch T (n) = 4A · (n + n2 ) + 2A · (n + 1) ∈ O(n2 ) .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
131 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Gesamtlaufzeit: T (n, k) = 4A(n + k) + 2A(n + 1) ∈ O(n + k) .
Die FOR-Schleifen in Zeilen 6 und 7 garantieren nur in dieser Reihenfolge
eine Laufzeit von A · k in Zeile 10. Bei umgekehrter Reihenfolge, oder
Verwendung von Adjazenzmatrizen, ergäbe sich hier A · n2 . Ein ähnliches
Argument liefert für die FOR-Schleife in Zeile 20 innerhalb der
WHILE-Schleife in Zeile 18 den Term 3A · k in Zeile 26. Im Falle von
Adjazenzmatrizen stünde hier 3A · n2 .
Damit wäre bei Verwendung von Adjazenzmatrizen die Laufzeit gegeben
durch T (n) = 4A · (n + n2 ) + 2A · (n + 1) ∈ O(n2 ) .
Bei der Bestimmung der Effizienz kommt es also darauf an, wie man die
Größe der Eingabe definiert: Hinsichtlich der Knotenzahl |V | läuft der
Algorithmus mit Adjazenzmatrizen in quadratischer Zeit, verglichen mit
kubischer Zeit des naiven Algorithmus.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
131 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Gesamtlaufzeit: T (n, k) = 4A(n + k) + 2A(n + 1) ∈ O(n + k) .
Die FOR-Schleifen in Zeilen 6 und 7 garantieren nur in dieser Reihenfolge
eine Laufzeit von A · k in Zeile 10. Bei umgekehrter Reihenfolge, oder
Verwendung von Adjazenzmatrizen, ergäbe sich hier A · n2 . Ein ähnliches
Argument liefert für die FOR-Schleife in Zeile 20 innerhalb der
WHILE-Schleife in Zeile 18 den Term 3A · k in Zeile 26. Im Falle von
Adjazenzmatrizen stünde hier 3A · n2 .
Damit wäre bei Verwendung von Adjazenzmatrizen die Laufzeit gegeben
durch T (n) = 4A · (n + n2 ) + 2A · (n + 1) ∈ O(n2 ) .
Bei der Bestimmung der Effizienz kommt es also darauf an, wie man die
Größe der Eingabe definiert: Hinsichtlich der Knotenzahl |V | läuft der
Algorithmus mit Adjazenzmatrizen in quadratischer Zeit, verglichen mit
kubischer Zeit des naiven Algorithmus. Hinsichtlich der Summe |V | + |E |
läuft der obige Algorithmus in linearer Zeit.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
131 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Korrektheit: Wenn G azyklisch ist, gibt es in jeder Runde Knoten ohne
Vorgänger. Folglich gilt U 6= ∅ , solange noch unsortierte Knoten existieren.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
132 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Korrektheit: Wenn G azyklisch ist, gibt es in jeder Runde Knoten ohne
Vorgänger. Folglich gilt U 6= ∅ , solange noch unsortierte Knoten existieren.
Erfolgt in Zeile 19 die Zuweisung ord(v ) = i , so wurden allen Vorgängern
von v in früheren Schritten kleinere Werte zugewiesen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
132 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Korrektheit: Wenn G azyklisch ist, gibt es in jeder Runde Knoten ohne
Vorgänger. Folglich gilt U 6= ∅ , solange noch unsortierte Knoten existieren.
Erfolgt in Zeile 19 die Zuweisung ord(v ) = i , so wurden allen Vorgängern
von v in früheren Schritten kleinere Werte zugewiesen.
Aus obiger Analyse darf man allerdings nicht den Schluss ziehen, die
Codierung gerichteter Graphen mittels Adjazenzlisten wäre der Codierung
mittels Adjazenzmatrizen überlegen, zumal |E | ∈ O(|V |2 ) gilt.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
132 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Korrektheit: Wenn G azyklisch ist, gibt es in jeder Runde Knoten ohne
Vorgänger. Folglich gilt U 6= ∅ , solange noch unsortierte Knoten existieren.
Erfolgt in Zeile 19 die Zuweisung ord(v ) = i , so wurden allen Vorgängern
von v in früheren Schritten kleinere Werte zugewiesen.
Aus obiger Analyse darf man allerdings nicht den Schluss ziehen, die
Codierung gerichteter Graphen mittels Adjazenzlisten wäre der Codierung
mittels Adjazenzmatrizen überlegen, zumal |E | ∈ O(|V |2 ) gilt.
Beispiel
v
u
x
w
y
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
132 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Korrektheit: Wenn G azyklisch ist, gibt es in jeder Runde Knoten ohne
Vorgänger. Folglich gilt U 6= ∅ , solange noch unsortierte Knoten existieren.
Erfolgt in Zeile 19 die Zuweisung ord(v ) = i , so wurden allen Vorgängern
von v in früheren Schritten kleinere Werte zugewiesen.
Aus obiger Analyse darf man allerdings nicht den Schluss ziehen, die
Codierung gerichteter Graphen mittels Adjazenzlisten wäre der Codierung
mittels Adjazenzmatrizen überlegen, zumal |E | ∈ O(|V |2 ) gilt.
Beispiel
v
u
Adjazenzlisten: u → (v ) ,
v → (w , x) , w → ( ) ,
x → (w ) ,
y → (x) ,
x
w
y
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
132 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Korrektheit: Wenn G azyklisch ist, gibt es in jeder Runde Knoten ohne
Vorgänger. Folglich gilt U 6= ∅ , solange noch unsortierte Knoten existieren.
Erfolgt in Zeile 19 die Zuweisung ord(v ) = i , so wurden allen Vorgängern
von v in früheren Schritten kleinere Werte zugewiesen.
Aus obiger Analyse darf man allerdings nicht den Schluss ziehen, die
Codierung gerichteter Graphen mittels Adjazenzlisten wäre der Codierung
mittels Adjazenzmatrizen überlegen, zumal |E | ∈ O(|V |2 ) gilt.
Beispiel
v
u
x
w
y
Jürgen Koslowski (TU-BS)
Adjazenzlisten: u → (v ) ,
Knoten i
In[i]
u
0
1
v
2
w
2
x
0
y
v → (w , x) , w → ( ) , x → (w ) , y → (x) ,
∈ U?
In[i]
∈ U?
In[i]
∈ U?
Theoretische Informatik 2
SS 2015
132 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Korrektheit: Wenn G azyklisch ist, gibt es in jeder Runde Knoten ohne
Vorgänger. Folglich gilt U 6= ∅ , solange noch unsortierte Knoten existieren.
Erfolgt in Zeile 19 die Zuweisung ord(v ) = i , so wurden allen Vorgängern
von v in früheren Schritten kleinere Werte zugewiesen.
Aus obiger Analyse darf man allerdings nicht den Schluss ziehen, die
Codierung gerichteter Graphen mittels Adjazenzlisten wäre der Codierung
mittels Adjazenzmatrizen überlegen, zumal |E | ∈ O(|V |2 ) gilt.
Beispiel
v
u
x
w
y
Jürgen Koslowski (TU-BS)
Adjazenzlisten: u → (v ) ,
Knoten i
In[i]
u
0
1
v
2
w
2
x
0
y
v → (w , x) , w → ( ) , x → (w ) , y → (x) ,
∈ U?
In[i]
∈ U?
In[i]
∈ U?
yes
Theoretische Informatik 2
SS 2015
132 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Korrektheit: Wenn G azyklisch ist, gibt es in jeder Runde Knoten ohne
Vorgänger. Folglich gilt U 6= ∅ , solange noch unsortierte Knoten existieren.
Erfolgt in Zeile 19 die Zuweisung ord(v ) = i , so wurden allen Vorgängern
von v in früheren Schritten kleinere Werte zugewiesen.
Aus obiger Analyse darf man allerdings nicht den Schluss ziehen, die
Codierung gerichteter Graphen mittels Adjazenzlisten wäre der Codierung
mittels Adjazenzmatrizen überlegen, zumal |E | ∈ O(|V |2 ) gilt.
Beispiel
v
0
x
w
y
Jürgen Koslowski (TU-BS)
Adjazenzlisten:
Knoten i
u
v
w
x
y
u → (v ) , v → (w , x) , w → ( ) , x → (w ) , y → (x) ,
In[i]
∈ U?
In[i]
∈ U?
In[i]
∈ U?
0
yes
1
0
2
2
0
Theoretische Informatik 2
SS 2015
132 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Korrektheit: Wenn G azyklisch ist, gibt es in jeder Runde Knoten ohne
Vorgänger. Folglich gilt U 6= ∅ , solange noch unsortierte Knoten existieren.
Erfolgt in Zeile 19 die Zuweisung ord(v ) = i , so wurden allen Vorgängern
von v in früheren Schritten kleinere Werte zugewiesen.
Aus obiger Analyse darf man allerdings nicht den Schluss ziehen, die
Codierung gerichteter Graphen mittels Adjazenzlisten wäre der Codierung
mittels Adjazenzmatrizen überlegen, zumal |E | ∈ O(|V |2 ) gilt.
Beispiel
v
0
x
w
y
Jürgen Koslowski (TU-BS)
Adjazenzlisten:
Knoten i
u
v
w
x
y
u → (v ) , v → (w , x) , w → ( ) , x → (w ) , y → (x) ,
In[i]
∈ U?
In[i]
∈ U?
In[i]
∈ U?
0
yes
1
0
yes
2
2
0
Theoretische Informatik 2
SS 2015
132 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Korrektheit: Wenn G azyklisch ist, gibt es in jeder Runde Knoten ohne
Vorgänger. Folglich gilt U 6= ∅ , solange noch unsortierte Knoten existieren.
Erfolgt in Zeile 19 die Zuweisung ord(v ) = i , so wurden allen Vorgängern
von v in früheren Schritten kleinere Werte zugewiesen.
Aus obiger Analyse darf man allerdings nicht den Schluss ziehen, die
Codierung gerichteter Graphen mittels Adjazenzlisten wäre der Codierung
mittels Adjazenzmatrizen überlegen, zumal |E | ∈ O(|V |2 ) gilt.
Beispiel
1
0
x
w
y
Jürgen Koslowski (TU-BS)
Adjazenzlisten:
Knoten i
u
v
w
x
y
u → (v ) , v → (w , x) , w → ( ) , x → (w ) , y → (x) ,
In[i]
∈ U?
In[i]
∈ U?
In[i]
∈ U?
0
yes
1
0
yes
2
1
2
1
0
Theoretische Informatik 2
SS 2015
132 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Korrektheit: Wenn G azyklisch ist, gibt es in jeder Runde Knoten ohne
Vorgänger. Folglich gilt U 6= ∅ , solange noch unsortierte Knoten existieren.
Erfolgt in Zeile 19 die Zuweisung ord(v ) = i , so wurden allen Vorgängern
von v in früheren Schritten kleinere Werte zugewiesen.
Aus obiger Analyse darf man allerdings nicht den Schluss ziehen, die
Codierung gerichteter Graphen mittels Adjazenzlisten wäre der Codierung
mittels Adjazenzmatrizen überlegen, zumal |E | ∈ O(|V |2 ) gilt.
Beispiel
1
0
x
w
y
Jürgen Koslowski (TU-BS)
Adjazenzlisten:
Knoten i
u
v
w
x
y
u → (v ) , v → (w , x) , w → ( ) , x → (w ) , y → (x) ,
In[i]
∈ U?
In[i]
∈ U?
In[i]
∈ U?
0
yes
1
0
yes
2
1
2
1
0
yes
Theoretische Informatik 2
SS 2015
132 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Korrektheit: Wenn G azyklisch ist, gibt es in jeder Runde Knoten ohne
Vorgänger. Folglich gilt U 6= ∅ , solange noch unsortierte Knoten existieren.
Erfolgt in Zeile 19 die Zuweisung ord(v ) = i , so wurden allen Vorgängern
von v in früheren Schritten kleinere Werte zugewiesen.
Aus obiger Analyse darf man allerdings nicht den Schluss ziehen, die
Codierung gerichteter Graphen mittels Adjazenzlisten wäre der Codierung
mittels Adjazenzmatrizen überlegen, zumal |E | ∈ O(|V |2 ) gilt.
Beispiel
1
0
x
w
2
Jürgen Koslowski (TU-BS)
Adjazenzlisten:
Knoten i
u
v
w
x
y
u → (v ) , v → (w , x) , w → ( ) , x → (w ) , y → (x) ,
In[i]
∈ U?
In[i]
∈ U?
In[i]
∈ U?
0
yes
1
0
yes
2
1
2
1
0
0
yes
Theoretische Informatik 2
SS 2015
132 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Korrektheit: Wenn G azyklisch ist, gibt es in jeder Runde Knoten ohne
Vorgänger. Folglich gilt U 6= ∅ , solange noch unsortierte Knoten existieren.
Erfolgt in Zeile 19 die Zuweisung ord(v ) = i , so wurden allen Vorgängern
von v in früheren Schritten kleinere Werte zugewiesen.
Aus obiger Analyse darf man allerdings nicht den Schluss ziehen, die
Codierung gerichteter Graphen mittels Adjazenzlisten wäre der Codierung
mittels Adjazenzmatrizen überlegen, zumal |E | ∈ O(|V |2 ) gilt.
Beispiel
1
0
x
w
2
Jürgen Koslowski (TU-BS)
Adjazenzlisten:
Knoten i
u
v
w
x
y
u → (v ) , v → (w , x) , w → ( ) , x → (w ) , y → (x) ,
In[i]
∈ U?
In[i]
∈ U?
In[i]
∈ U?
0
yes
1
0
yes
2
1
2
1
0
yes
0
yes
Theoretische Informatik 2
SS 2015
132 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Korrektheit: Wenn G azyklisch ist, gibt es in jeder Runde Knoten ohne
Vorgänger. Folglich gilt U 6= ∅ , solange noch unsortierte Knoten existieren.
Erfolgt in Zeile 19 die Zuweisung ord(v ) = i , so wurden allen Vorgängern
von v in früheren Schritten kleinere Werte zugewiesen.
Aus obiger Analyse darf man allerdings nicht den Schluss ziehen, die
Codierung gerichteter Graphen mittels Adjazenzlisten wäre der Codierung
mittels Adjazenzmatrizen überlegen, zumal |E | ∈ O(|V |2 ) gilt.
Beispiel
1
0
3
w
2
Jürgen Koslowski (TU-BS)
Adjazenzlisten:
Knoten i
u
v
w
x
y
u → (v ) , v → (w , x) , w → ( ) ,
In[i]
∈ U?
In[i]
∈ U?
0
yes
1
0
yes
2
1
2
1
0
yes
Theoretische Informatik 2
x → (w ) , y → (x) ,
In[i]
∈ U?
0
0
yes
SS 2015
132 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Korrektheit: Wenn G azyklisch ist, gibt es in jeder Runde Knoten ohne
Vorgänger. Folglich gilt U 6= ∅ , solange noch unsortierte Knoten existieren.
Erfolgt in Zeile 19 die Zuweisung ord(v ) = i , so wurden allen Vorgängern
von v in früheren Schritten kleinere Werte zugewiesen.
Aus obiger Analyse darf man allerdings nicht den Schluss ziehen, die
Codierung gerichteter Graphen mittels Adjazenzlisten wäre der Codierung
mittels Adjazenzmatrizen überlegen, zumal |E | ∈ O(|V |2 ) gilt.
Beispiel
1
0
3
w
2
Jürgen Koslowski (TU-BS)
Adjazenzlisten:
Knoten i
u
v
w
x
y
u → (v ) , v → (w , x) , w → ( ) ,
In[i]
∈ U?
In[i]
∈ U?
0
yes
1
0
yes
2
1
2
1
0
yes
Theoretische Informatik 2
x → (w ) , y → (x) ,
In[i]
∈ U?
0
0
yes
yes
SS 2015
132 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Korrektheit: Wenn G azyklisch ist, gibt es in jeder Runde Knoten ohne
Vorgänger. Folglich gilt U 6= ∅ , solange noch unsortierte Knoten existieren.
Erfolgt in Zeile 19 die Zuweisung ord(v ) = i , so wurden allen Vorgängern
von v in früheren Schritten kleinere Werte zugewiesen.
Aus obiger Analyse darf man allerdings nicht den Schluss ziehen, die
Codierung gerichteter Graphen mittels Adjazenzlisten wäre der Codierung
mittels Adjazenzmatrizen überlegen, zumal |E | ∈ O(|V |2 ) gilt.
Beispiel
1
0
3
4
2
Jürgen Koslowski (TU-BS)
Adjazenzlisten:
Knoten i
u
v
w
x
y
u → (v ) , v → (w , x) , w → ( ) ,
In[i]
∈ U?
In[i]
∈ U?
0
yes
1
0
yes
2
1
2
1
0
yes
Theoretische Informatik 2
x → (w ) , y → (x) ,
In[i]
∈ U?
0
0
yes
yes
SS 2015
132 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Nun wenden wir uns der 2-Färbung ungerichteter Graphen zu.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
133 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Nun wenden wir uns der 2-Färbung ungerichteter Graphen zu.
Satz
Ein ungerichteter Graph ist genau dann 2-färbbar, wenn er keine Zyklen
ungerader Länge besitzt.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
133 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Nun wenden wir uns der 2-Färbung ungerichteter Graphen zu.
Satz
Ein ungerichteter Graph ist genau dann 2-färbbar, wenn er keine Zyklen
ungerader Länge besitzt.
Beweis.
Zyklen ungerader Länge sind offensichtlich nicht 2-färbbar, dürfen somit
nicht als Untergraphen auftreten.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
133 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Nun wenden wir uns der 2-Färbung ungerichteter Graphen zu.
Satz
Ein ungerichteter Graph ist genau dann 2-färbbar, wenn er keine Zyklen
ungerader Länge besitzt.
Beweis.
Zyklen ungerader Länge sind offensichtlich nicht 2-färbbar, dürfen somit
nicht als Untergraphen auftreten.
Gibt es keine Zyklen ungerade Länge, so färben wir pro Komponente einen
Knoten v und alle Knoten in gerader Entfernung von v rot, und alle
übrigen Knoten blau. Nach Voraussetzung haben alle Verbindungen
zwischen je zwei gleichfarbigen Knoten nur gerade Längen, während alle
Verbindungen zwischen Knoten unterschiedlicher Farbe von ungerader
Länge sind.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
133 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Nun wenden wir uns der 2-Färbung ungerichteter Graphen zu.
Satz
Ein ungerichteter Graph ist genau dann 2-färbbar, wenn er keine Zyklen
ungerader Länge besitzt.
Beweis.
Zyklen ungerader Länge sind offensichtlich nicht 2-färbbar, dürfen somit
nicht als Untergraphen auftreten.
Gibt es keine Zyklen ungerade Länge, so färben wir pro Komponente einen
Knoten v und alle Knoten in gerader Entfernung von v rot, und alle
übrigen Knoten blau. Nach Voraussetzung haben alle Verbindungen
zwischen je zwei gleichfarbigen Knoten nur gerade Längen, während alle
Verbindungen zwischen Knoten unterschiedlicher Farbe von ungerader
Länge sind.
Idee für Implementieung: Schichtweises Vorgehen: färbe gewähltes v rot,
alle Nachbarn blau, die ungefärbten Nachbarn dieser Menge rot usw.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
133 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Algorithmus für 2-Färbung)
Eingabe: ungerichteter Graph G = hV , E i
Ausgabe: eine 2-Färbung V = ROT + BLAU , falls eine existiert
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
134 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Algorithmus für 2-Färbung)
Eingabe: ungerichteter Graph G = hV , E i
Ausgabe: eine 2-Färbung V = ROT + BLAU , falls eine existiert
1:
2:
3:
{(0) Initialisierung}
ROT := ∅ ; BLAU := ∅ ; F := ∅ ;
{(1) Rekursionsschritt}
Jürgen Koslowski (TU-BS)
{Laufzeit 3A , F : Menge der Knoten in Bearbeitung}
Theoretische Informatik 2
{ O(1) }
SS 2015
134 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Algorithmus für 2-Färbung)
Eingabe: ungerichteter Graph G = hV , E i
Ausgabe: eine 2-Färbung V = ROT + BLAU , falls eine existiert
1:
2:
3:
4:
{(0) Initialisierung}
ROT := ∅ ; BLAU := ∅ ; F := ∅ ;
{(1) Rekursionsschritt}
while ∃v ∈ V do
Jürgen Koslowski (TU-BS)
{Laufzeit 3A , F : Menge der Knoten in Bearbeitung}
Theoretische Informatik 2
{ O(1) }
SS 2015
134 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Algorithmus für 2-Färbung)
Eingabe: ungerichteter Graph G = hV , E i
Ausgabe: eine 2-Färbung V = ROT + BLAU , falls eine existiert
1:
2:
3:
4:
5:
{(0) Initialisierung}
ROT := ∅ ; BLAU := ∅ ; F := ∅ ;
{(1) Rekursionsschritt}
while ∃v ∈ V do
V := V − {v } ;
Jürgen Koslowski (TU-BS)
{Laufzeit 3A , F : Menge der Knoten in Bearbeitung}
Theoretische Informatik 2
{ O(1) }
SS 2015
134 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Algorithmus für 2-Färbung)
Eingabe: ungerichteter Graph G = hV , E i
Ausgabe: eine 2-Färbung V = ROT + BLAU , falls eine existiert
1:
2:
3:
4:
5:
{(0) Initialisierung}
ROT := ∅ ; BLAU := ∅ ; F := ∅ ; {Laufzeit 3A , F : Menge der Knoten in Bearbeitung}
{(1) Rekursionsschritt}
while ∃v ∈ V do
V := V − {v } ; ROT := ROT + {v } ; F := F + {v } {Laufzeit 4A }
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
{ O(1) }
SS 2015
134 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Algorithmus für 2-Färbung)
Eingabe: ungerichteter Graph G = hV , E i
Ausgabe: eine 2-Färbung V = ROT + BLAU , falls eine existiert
1:
2:
3:
4:
5:
6:
{(0) Initialisierung}
ROT := ∅ ; BLAU := ∅ ; F := ∅ ; {Laufzeit 3A , F : Menge der Knoten in Bearbeitung}
{(1) Rekursionsschritt}
while ∃v ∈ V do
V := V − {v } ; ROT := ROT + {v } ; F := F + {v } {Laufzeit 4A }
while ∃w ∈ F do
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
{ O(1) }
SS 2015
134 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Algorithmus für 2-Färbung)
Eingabe: ungerichteter Graph G = hV , E i
Ausgabe: eine 2-Färbung V = ROT + BLAU , falls eine existiert
1:
2:
3:
4:
5:
6:
7:
{(0) Initialisierung}
ROT := ∅ ; BLAU := ∅ ; F := ∅ ; {Laufzeit 3A , F : Menge der Knoten in Bearbeitung}
{(1) Rekursionsschritt}
while ∃v ∈ V do
V := V − {v } ; ROT := ROT + {v } ; F := F + {v } {Laufzeit 4A }
while ∃w ∈ F do
for alle Knoten u ∈ V mit {u, w } ∈ E do
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
{ O(1) }
SS 2015
134 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Algorithmus für 2-Färbung)
Eingabe: ungerichteter Graph G = hV , E i
Ausgabe: eine 2-Färbung V = ROT + BLAU , falls eine existiert
1:
2:
3:
4:
5:
6:
7:
8:
9:
{(0) Initialisierung}
ROT := ∅ ; BLAU := ∅ ; F := ∅ ; {Laufzeit 3A , F : Menge der Knoten in Bearbeitung}
{(1) Rekursionsschritt}
while ∃v ∈ V do
V := V − {v } ; ROT := ROT + {v } ; F := F + {v } {Laufzeit 4A }
while ∃w ∈ F do
for alle Knoten u ∈ V mit {u, w } ∈ E do
if w ∈ ROT then
BLAU := BLAU + {u}
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
{ O(1) }
SS 2015
134 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Algorithmus für 2-Färbung)
Eingabe: ungerichteter Graph G = hV , E i
Ausgabe: eine 2-Färbung V = ROT + BLAU , falls eine existiert
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
{(0) Initialisierung}
ROT := ∅ ; BLAU := ∅ ; F := ∅ ; {Laufzeit 3A , F : Menge der Knoten in Bearbeitung}
{(1) Rekursionsschritt}
while ∃v ∈ V do
V := V − {v } ; ROT := ROT + {v } ; F := F + {v } {Laufzeit 4A }
while ∃w ∈ F do
for alle Knoten u ∈ V mit {u, w } ∈ E do
if w ∈ ROT then
BLAU := BLAU + {u}
else
ROT := ROT + {u}
end if
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
{ O(1) }
SS 2015
134 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Algorithmus für 2-Färbung)
Eingabe: ungerichteter Graph G = hV , E i
Ausgabe: eine 2-Färbung V = ROT + BLAU , falls eine existiert
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
{(0) Initialisierung}
ROT := ∅ ; BLAU := ∅ ; F := ∅ ; {Laufzeit 3A , F : Menge der Knoten in Bearbeitung}
{(1) Rekursionsschritt}
while ∃v ∈ V do
V := V − {v } ; ROT := ROT + {v } ; F := F + {v } {Laufzeit 4A }
while ∃w ∈ F do
for alle Knoten u ∈ V mit {u, w } ∈ E do
if w ∈ ROT then
BLAU := BLAU + {u}
else
ROT := ROT + {u}
end if {Laufzeit 2A }
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
{ O(1) }
SS 2015
134 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Algorithmus für 2-Färbung)
Eingabe: ungerichteter Graph G = hV , E i
Ausgabe: eine 2-Färbung V = ROT + BLAU , falls eine existiert
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
{(0) Initialisierung}
ROT := ∅ ; BLAU := ∅ ; F := ∅ ; {Laufzeit 3A , F : Menge der Knoten in Bearbeitung}
{(1) Rekursionsschritt}
while ∃v ∈ V do
V := V − {v } ; ROT := ROT + {v } ; F := F + {v } {Laufzeit 4A }
while ∃w ∈ F do
for alle Knoten u ∈ V mit {u, w } ∈ E do
if w ∈ ROT then
BLAU := BLAU + {u}
else
ROT := ROT + {u}
end if {Laufzeit 2A }
F := F + {u} ; V := V − {u} {Laufzeit 2A }
end for
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
{ O(1) }
SS 2015
134 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Algorithmus für 2-Färbung)
Eingabe: ungerichteter Graph G = hV , E i
Ausgabe: eine 2-Färbung V = ROT + BLAU , falls eine existiert
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
{(0) Initialisierung}
ROT := ∅ ; BLAU := ∅ ; F := ∅ ; {Laufzeit 3A , F : Menge der Knoten in Bearbeitung}
{(1) Rekursionsschritt}
while ∃v ∈ V do
V := V − {v } ; ROT := ROT + {v } ; F := F + {v } {Laufzeit 4A }
while ∃w ∈ F do
for alle Knoten u ∈ V mit {u, w } ∈ E do
if w ∈ ROT then
BLAU := BLAU + {u}
else
ROT := ROT + {u}
end if {Laufzeit 2A }
F := F + {u} ; V := V − {u} {Laufzeit 2A }
end for
F := F − {w }
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
{ O(1) }
SS 2015
134 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Algorithmus für 2-Färbung)
Eingabe: ungerichteter Graph G = hV , E i
Ausgabe: eine 2-Färbung V = ROT + BLAU , falls eine existiert
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
{(0) Initialisierung}
ROT := ∅ ; BLAU := ∅ ; F := ∅ ; {Laufzeit 3A , F : Menge der Knoten in Bearbeitung}
{(1) Rekursionsschritt}
while ∃v ∈ V do
V := V − {v } ; ROT := ROT + {v } ; F := F + {v } {Laufzeit 4A }
while ∃w ∈ F do
for alle Knoten u ∈ V mit {u, w } ∈ E do
if w ∈ ROT then
BLAU := BLAU + {u}
else
ROT := ROT + {u}
end if {Laufzeit 2A }
F := F + {u} ; V := V − {u} {Laufzeit 2A }
end for
F := F − {w } {Laufzeit A }
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
{ O(1) }
SS 2015
134 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Algorithmus für 2-Färbung)
Eingabe: ungerichteter Graph G = hV , E i
Ausgabe: eine 2-Färbung V = ROT + BLAU , falls eine existiert
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
{(0) Initialisierung}
ROT := ∅ ; BLAU := ∅ ; F := ∅ ; {Laufzeit 3A , F : Menge der Knoten in Bearbeitung}
{(1) Rekursionsschritt}
while ∃v ∈ V do
V := V − {v } ; ROT := ROT + {v } ; F := F + {v } {Laufzeit 4A }
while ∃w ∈ F do
for alle Knoten u ∈ V mit {u, w } ∈ E do
if w ∈ ROT then
BLAU := BLAU + {u}
else
ROT := ROT + {u}
end if {Laufzeit 2A }
F := F + {u} ; V := V − {u} {Laufzeit 2A }
end for
F := F − {w } {Laufzeit A }
end while
end while
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
{ O(1) }
{ O(n + k) }
SS 2015
134 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Algorithmus für 2-Färbung)
Eingabe: ungerichteter Graph G = hV , E i
Ausgabe: eine 2-Färbung V = ROT + BLAU , falls eine existiert
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
{(0) Initialisierung}
ROT := ∅ ; BLAU := ∅ ; F := ∅ ; {Laufzeit 3A , F : Menge der Knoten in Bearbeitung}
{(1) Rekursionsschritt}
while ∃v ∈ V do
V := V − {v } ; ROT := ROT + {v } ; F := F + {v } {Laufzeit 4A }
while ∃w ∈ F do
for alle Knoten u ∈ V mit {u, w } ∈ E do
if w ∈ ROT then
BLAU := BLAU + {u}
else
ROT := ROT + {u}
end if {Laufzeit 2A }
F := F + {u} ; V := V − {u} {Laufzeit 2A }
end for
F := F − {w } {Laufzeit A }
end while
end while
{(2) Ausgabe}
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
{ O(1) }
{ O(n + k) }
SS 2015
134 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Algorithmus für 2-Färbung)
Eingabe: ungerichteter Graph G = hV , E i
Ausgabe: eine 2-Färbung V = ROT + BLAU , falls eine existiert
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
{(0) Initialisierung}
ROT := ∅ ; BLAU := ∅ ; F := ∅ ; {Laufzeit 3A , F : Menge der Knoten in Bearbeitung}
{(1) Rekursionsschritt}
while ∃v ∈ V do
V := V − {v } ; ROT := ROT + {v } ; F := F + {v } {Laufzeit 4A }
while ∃w ∈ F do
for alle Knoten u ∈ V mit {u, w } ∈ E do
if w ∈ ROT then
BLAU := BLAU + {u}
else
ROT := ROT + {u}
end if {Laufzeit 2A }
F := F + {u} ; V := V − {u} {Laufzeit 2A }
end for
F := F − {w } {Laufzeit A }
end while
end while
{(2) Ausgabe}
Überprüfen, ob BLAU oder ROT eine Kante enthalten
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
{ O(1) }
{ O(n + k) }
{ O(n + k) }
SS 2015
134 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Algorithmus für 2-Färbung)
Eingabe: ungerichteter Graph G = hV , E i
Ausgabe: eine 2-Färbung V = ROT + BLAU , falls eine existiert
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
{(0) Initialisierung}
ROT := ∅ ; BLAU := ∅ ; F := ∅ ; {Laufzeit 3A , F : Menge der Knoten in Bearbeitung}
{(1) Rekursionsschritt}
while ∃v ∈ V do
V := V − {v } ; ROT := ROT + {v } ; F := F + {v } {Laufzeit 4A }
while ∃w ∈ F do
for alle Knoten u ∈ V mit {u, w } ∈ E do
if w ∈ ROT then
BLAU := BLAU + {u}
else
ROT := ROT + {u}
end if {Laufzeit 2A }
F := F + {u} ; V := V − {u} {Laufzeit 2A }
end for
F := F − {w } {Laufzeit A }
end while
end while
{(2) Ausgabe}
Überprüfen, ob BLAU oder ROT eine Kante enthalten
{ O(1) }
{ O(n + k) }
{ O(n + k) }
Die Laufzeit ist linear in |V | + |E | , da jeder Knoten und jede Kante einmal
“angefasst” werden.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
134 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Korrektheit: Zu jedem Zeitpunkt liegt jeder Knoten v entweder in V , in
ROT oder in BLAU .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
135 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Korrektheit: Zu jedem Zeitpunkt liegt jeder Knoten v entweder in V , in
ROT oder in BLAU . Sobald V = ∅ , ist somit jeder Knoten gefärbt.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
135 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Korrektheit: Zu jedem Zeitpunkt liegt jeder Knoten v entweder in V , in
ROT oder in BLAU . Sobald V = ∅ , ist somit jeder Knoten gefärbt. Falls
ROT und BLAU keine Kante enthalten, liegt eine 2-Färbung vor.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
135 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Korrektheit: Zu jedem Zeitpunkt liegt jeder Knoten v entweder in V , in
ROT oder in BLAU . Sobald V = ∅ , ist somit jeder Knoten gefärbt. Falls
ROT und BLAU keine Kante enthalten, liegt eine 2-Färbung vor.
Gehören die Endpunkte von hu, w i ∈ E zu ROT ( BLAU ), sind beide
durch einen Weg (un)gerader Länge mit dem Startknoten v verbunden
(Induktion). Damit liefern diese Wege samt hu, w i einen Zyklus ungerader
Länge, Widerspruch.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
135 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Korrektheit: Zu jedem Zeitpunkt liegt jeder Knoten v entweder in V , in
ROT oder in BLAU . Sobald V = ∅ , ist somit jeder Knoten gefärbt. Falls
ROT und BLAU keine Kante enthalten, liegt eine 2-Färbung vor.
Gehören die Endpunkte von hu, w i ∈ E zu ROT ( BLAU ), sind beide
durch einen Weg (un)gerader Länge mit dem Startknoten v verbunden
(Induktion). Damit liefern diese Wege samt hu, w i einen Zyklus ungerader
Länge, Widerspruch.
Beispiel
a
b
c
d
e
f
V
F
ROT
BLAU
Jürgen Koslowski (TU-BS)
Knoten
a...f
−
−
−
Theoretische Informatik 2
SS 2015
135 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Korrektheit: Zu jedem Zeitpunkt liegt jeder Knoten v entweder in V , in
ROT oder in BLAU . Sobald V = ∅ , ist somit jeder Knoten gefärbt. Falls
ROT und BLAU keine Kante enthalten, liegt eine 2-Färbung vor.
Gehören die Endpunkte von hu, w i ∈ E zu ROT ( BLAU ), sind beide
durch einen Weg (un)gerader Länge mit dem Startknoten v verbunden
(Induktion). Damit liefern diese Wege samt hu, w i einen Zyklus ungerader
Länge, Widerspruch.
Beispiel
a
b
c
d
e
f
V
F
ROT
BLAU
Jürgen Koslowski (TU-BS)
Knoten
a...f
−
−
−
a∈V
Theoretische Informatik 2
SS 2015
135 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Korrektheit: Zu jedem Zeitpunkt liegt jeder Knoten v entweder in V , in
ROT oder in BLAU . Sobald V = ∅ , ist somit jeder Knoten gefärbt. Falls
ROT und BLAU keine Kante enthalten, liegt eine 2-Färbung vor.
Gehören die Endpunkte von hu, w i ∈ E zu ROT ( BLAU ), sind beide
durch einen Weg (un)gerader Länge mit dem Startknoten v verbunden
(Induktion). Damit liefern diese Wege samt hu, w i einen Zyklus ungerader
Länge, Widerspruch.
Beispiel
a
b
c
d
e
f
V
F
ROT
BLAU
Jürgen Koslowski (TU-BS)
Knoten
a...f
−
−
−
a∈V
b...f
a
a
−
Theoretische Informatik 2
SS 2015
135 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Korrektheit: Zu jedem Zeitpunkt liegt jeder Knoten v entweder in V , in
ROT oder in BLAU . Sobald V = ∅ , ist somit jeder Knoten gefärbt. Falls
ROT und BLAU keine Kante enthalten, liegt eine 2-Färbung vor.
Gehören die Endpunkte von hu, w i ∈ E zu ROT ( BLAU ), sind beide
durch einen Weg (un)gerader Länge mit dem Startknoten v verbunden
(Induktion). Damit liefern diese Wege samt hu, w i einen Zyklus ungerader
Länge, Widerspruch.
Beispiel
a
b
c
d
e
f
V
F
ROT
BLAU
Jürgen Koslowski (TU-BS)
Knoten
a...f
−
−
−
a∈V
b...f
a
a
−
a∈F
Theoretische Informatik 2
SS 2015
135 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Korrektheit: Zu jedem Zeitpunkt liegt jeder Knoten v entweder in V , in
ROT oder in BLAU . Sobald V = ∅ , ist somit jeder Knoten gefärbt. Falls
ROT und BLAU keine Kante enthalten, liegt eine 2-Färbung vor.
Gehören die Endpunkte von hu, w i ∈ E zu ROT ( BLAU ), sind beide
durch einen Weg (un)gerader Länge mit dem Startknoten v verbunden
(Induktion). Damit liefern diese Wege samt hu, w i einen Zyklus ungerader
Länge, Widerspruch.
Beispiel
a
c
e
b
d
V
F
ROT
BLAU
Knoten
a...f
−
−
−
a∈V
b...f
a
a
−
a∈F
a
b, c
f
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
135 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Korrektheit: Zu jedem Zeitpunkt liegt jeder Knoten v entweder in V , in
ROT oder in BLAU . Sobald V = ∅ , ist somit jeder Knoten gefärbt. Falls
ROT und BLAU keine Kante enthalten, liegt eine 2-Färbung vor.
Gehören die Endpunkte von hu, w i ∈ E zu ROT ( BLAU ), sind beide
durch einen Weg (un)gerader Länge mit dem Startknoten v verbunden
(Induktion). Damit liefern diese Wege samt hu, w i einen Zyklus ungerader
Länge, Widerspruch.
Beispiel
a
b
c
d
e
f
V
F
ROT
BLAU
Jürgen Koslowski (TU-BS)
Knoten
a...f
−
−
−
a∈V
b...f
a
a
−
a∈F
d, e, f
b, c
a
b, c
Theoretische Informatik 2
SS 2015
135 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Korrektheit: Zu jedem Zeitpunkt liegt jeder Knoten v entweder in V , in
ROT oder in BLAU . Sobald V = ∅ , ist somit jeder Knoten gefärbt. Falls
ROT und BLAU keine Kante enthalten, liegt eine 2-Färbung vor.
Gehören die Endpunkte von hu, w i ∈ E zu ROT ( BLAU ), sind beide
durch einen Weg (un)gerader Länge mit dem Startknoten v verbunden
(Induktion). Damit liefern diese Wege samt hu, w i einen Zyklus ungerader
Länge, Widerspruch.
Beispiel
a
b
c
d
e
f
V
F
ROT
BLAU
Jürgen Koslowski (TU-BS)
Knoten
a...f
−
−
−
a∈V
b...f
a
a
−
a∈F
d, e, f
b, c
a
b, c
c ∈F
Theoretische Informatik 2
SS 2015
135 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Korrektheit: Zu jedem Zeitpunkt liegt jeder Knoten v entweder in V , in
ROT oder in BLAU . Sobald V = ∅ , ist somit jeder Knoten gefärbt. Falls
ROT und BLAU keine Kante enthalten, liegt eine 2-Färbung vor.
Gehören die Endpunkte von hu, w i ∈ E zu ROT ( BLAU ), sind beide
durch einen Weg (un)gerader Länge mit dem Startknoten v verbunden
(Induktion). Damit liefern diese Wege samt hu, w i einen Zyklus ungerader
Länge, Widerspruch.
Beispiel
a
c
e
b
d
V
F
ROT
BLAU
Knoten
a...f
−
−
−
a∈V
b...f
a
a
−
a∈F
d, e, f
b, c
a
b, c
c ∈F
a.d.e
b, c
f
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
135 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Korrektheit: Zu jedem Zeitpunkt liegt jeder Knoten v entweder in V , in
ROT oder in BLAU . Sobald V = ∅ , ist somit jeder Knoten gefärbt. Falls
ROT und BLAU keine Kante enthalten, liegt eine 2-Färbung vor.
Gehören die Endpunkte von hu, w i ∈ E zu ROT ( BLAU ), sind beide
durch einen Weg (un)gerader Länge mit dem Startknoten v verbunden
(Induktion). Damit liefern diese Wege samt hu, w i einen Zyklus ungerader
Länge, Widerspruch.
Beispiel
a
b
c
d
e
f
V
F
ROT
BLAU
Jürgen Koslowski (TU-BS)
Knoten
a...f
−
−
−
a∈V
b...f
a
a
−
a∈F
d, e, f
b, c
a
b, c
c ∈F
f
b, d, e
a.d.e
b, c
Theoretische Informatik 2
SS 2015
135 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Korrektheit: Zu jedem Zeitpunkt liegt jeder Knoten v entweder in V , in
ROT oder in BLAU . Sobald V = ∅ , ist somit jeder Knoten gefärbt. Falls
ROT und BLAU keine Kante enthalten, liegt eine 2-Färbung vor.
Gehören die Endpunkte von hu, w i ∈ E zu ROT ( BLAU ), sind beide
durch einen Weg (un)gerader Länge mit dem Startknoten v verbunden
(Induktion). Damit liefern diese Wege samt hu, w i einen Zyklus ungerader
Länge, Widerspruch.
Beispiel
a
b
c
d
e
f
V
F
ROT
BLAU
Jürgen Koslowski (TU-BS)
Knoten
a...f
−
−
−
a∈V
b...f
a
a
−
a∈F
d, e, f
b, c
a
b, c
c ∈F
f
b, d, e
a.d.e
b, c
Theoretische Informatik 2
d ∈F
SS 2015
135 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Korrektheit: Zu jedem Zeitpunkt liegt jeder Knoten v entweder in V , in
ROT oder in BLAU . Sobald V = ∅ , ist somit jeder Knoten gefärbt. Falls
ROT und BLAU keine Kante enthalten, liegt eine 2-Färbung vor.
Gehören die Endpunkte von hu, w i ∈ E zu ROT ( BLAU ), sind beide
durch einen Weg (un)gerader Länge mit dem Startknoten v verbunden
(Induktion). Damit liefern diese Wege samt hu, w i einen Zyklus ungerader
Länge, Widerspruch.
Beispiel
a
c
e
b
d
V
F
ROT
BLAU
Knoten
a...f
−
−
−
a∈V
b...f
a
a
−
a∈F
d, e, f
b, c
a
b, c
c ∈F
f
b, d, e
a.d.e
b, c
d ∈F
a.d.e
b, c, f
f
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
135 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Korrektheit: Zu jedem Zeitpunkt liegt jeder Knoten v entweder in V , in
ROT oder in BLAU . Sobald V = ∅ , ist somit jeder Knoten gefärbt. Falls
ROT und BLAU keine Kante enthalten, liegt eine 2-Färbung vor.
Gehören die Endpunkte von hu, w i ∈ E zu ROT ( BLAU ), sind beide
durch einen Weg (un)gerader Länge mit dem Startknoten v verbunden
(Induktion). Damit liefern diese Wege samt hu, w i einen Zyklus ungerader
Länge, Widerspruch.
Beispiel
a
b
c
d
e
f
V
F
ROT
BLAU
Jürgen Koslowski (TU-BS)
Knoten
a...f
−
−
−
a∈V
b...f
a
a
−
a∈F
d, e, f
b, c
a
b, c
c ∈F
f
b, d, e
a.d.e
b, c
Theoretische Informatik 2
d ∈F
−
b, e, f
a.d.e
b, c, f
SS 2015
135 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Korrektheit: Zu jedem Zeitpunkt liegt jeder Knoten v entweder in V , in
ROT oder in BLAU . Sobald V = ∅ , ist somit jeder Knoten gefärbt. Falls
ROT und BLAU keine Kante enthalten, liegt eine 2-Färbung vor.
Gehören die Endpunkte von hu, w i ∈ E zu ROT ( BLAU ), sind beide
durch einen Weg (un)gerader Länge mit dem Startknoten v verbunden
(Induktion). Damit liefern diese Wege samt hu, w i einen Zyklus ungerader
Länge, Widerspruch.
Beispiel
a
c
e
b
d
V
F
ROT
BLAU
Knoten
a...f
−
−
−
a∈V
b...f
a
a
−
a∈F
d, e, f
b, c
a
b, c
c ∈F
f
b, d, e
a.d.e
b, c
d ∈F
−
b, e, f
a.d.e
b, c, f
b∈F
a.d.e
b, c, f
f
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
135 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Korrektheit: Zu jedem Zeitpunkt liegt jeder Knoten v entweder in V , in
ROT oder in BLAU . Sobald V = ∅ , ist somit jeder Knoten gefärbt. Falls
ROT und BLAU keine Kante enthalten, liegt eine 2-Färbung vor.
Gehören die Endpunkte von hu, w i ∈ E zu ROT ( BLAU ), sind beide
durch einen Weg (un)gerader Länge mit dem Startknoten v verbunden
(Induktion). Damit liefern diese Wege samt hu, w i einen Zyklus ungerader
Länge, Widerspruch.
Beispiel
a
b
c
d
e
f
V
F
ROT
BLAU
Jürgen Koslowski (TU-BS)
Knoten
a...f
−
−
−
a∈V
b...f
a
a
−
a∈F
d, e, f
b, c
a
b, c
c ∈F
f
b, d, e
a.d.e
b, c
Theoretische Informatik 2
d ∈F
−
b, e, f
a.d.e
b, c, f
b∈F
−
e, f
a.d.e
b, c, f
SS 2015
135 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Korrektheit: Zu jedem Zeitpunkt liegt jeder Knoten v entweder in V , in
ROT oder in BLAU . Sobald V = ∅ , ist somit jeder Knoten gefärbt. Falls
ROT und BLAU keine Kante enthalten, liegt eine 2-Färbung vor.
Gehören die Endpunkte von hu, w i ∈ E zu ROT ( BLAU ), sind beide
durch einen Weg (un)gerader Länge mit dem Startknoten v verbunden
(Induktion). Damit liefern diese Wege samt hu, w i einen Zyklus ungerader
Länge, Widerspruch.
Beispiel
a
c
e
b
d
V
F
ROT
BLAU
Knoten
a...f
−
−
−
a∈V
b...f
a
a
−
a∈F
d, e, f
b, c
a
b, c
c ∈F
f
b, d, e
a.d.e
b, c
d ∈F
−
b, e, f
a.d.e
b, c, f
b∈F
−
e, f
a.d.e
b, c, f
e ∈F
a.d.e
b, c, f
f
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
135 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Korrektheit: Zu jedem Zeitpunkt liegt jeder Knoten v entweder in V , in
ROT oder in BLAU . Sobald V = ∅ , ist somit jeder Knoten gefärbt. Falls
ROT und BLAU keine Kante enthalten, liegt eine 2-Färbung vor.
Gehören die Endpunkte von hu, w i ∈ E zu ROT ( BLAU ), sind beide
durch einen Weg (un)gerader Länge mit dem Startknoten v verbunden
(Induktion). Damit liefern diese Wege samt hu, w i einen Zyklus ungerader
Länge, Widerspruch.
Beispiel
a
b
c
d
e
f
V
F
ROT
BLAU
Jürgen Koslowski (TU-BS)
Knoten
a...f
−
−
−
a∈V
b...f
a
a
−
a∈F
d, e, f
b, c
a
b, c
c ∈F
f
b, d, e
a.d.e
b, c
Theoretische Informatik 2
d ∈F
−
b, e, f
a.d.e
b, c, f
b∈F
−
e, f
a.d.e
b, c, f
e ∈F
−
f
a.d.e
b, c, f
SS 2015
135 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Korrektheit: Zu jedem Zeitpunkt liegt jeder Knoten v entweder in V , in
ROT oder in BLAU . Sobald V = ∅ , ist somit jeder Knoten gefärbt. Falls
ROT und BLAU keine Kante enthalten, liegt eine 2-Färbung vor.
Gehören die Endpunkte von hu, w i ∈ E zu ROT ( BLAU ), sind beide
durch einen Weg (un)gerader Länge mit dem Startknoten v verbunden
(Induktion). Damit liefern diese Wege samt hu, w i einen Zyklus ungerader
Länge, Widerspruch.
Beispiel
a
c
e
b
d
V
F
ROT
BLAU
Knoten
a...f
−
−
−
a∈V
b...f
a
a
−
a∈F
d, e, f
b, c
a
b, c
c ∈F
f
b, d, e
a.d.e
b, c
d ∈F
−
b, e, f
a.d.e
b, c, f
b∈F
−
e, f
a.d.e
b, c, f
e ∈F
−
f
a.d.e
b, c, f
f ∈F
a.d.e
b, c, f
f
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
135 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
Korrektheit: Zu jedem Zeitpunkt liegt jeder Knoten v entweder in V , in
ROT oder in BLAU . Sobald V = ∅ , ist somit jeder Knoten gefärbt. Falls
ROT und BLAU keine Kante enthalten, liegt eine 2-Färbung vor.
Gehören die Endpunkte von hu, w i ∈ E zu ROT ( BLAU ), sind beide
durch einen Weg (un)gerader Länge mit dem Startknoten v verbunden
(Induktion). Damit liefern diese Wege samt hu, w i einen Zyklus ungerader
Länge, Widerspruch.
Beispiel
a
b
c
d
e
f
V
F
ROT
BLAU
Jürgen Koslowski (TU-BS)
Knoten
a...f
−
−
−
a∈V
b...f
a
a
−
a∈F
d, e, f
b, c
a
b, c
c ∈F
f
b, d, e
a.d.e
b, c
Theoretische Informatik 2
d ∈F
−
b, e, f
a.d.e
b, c, f
b∈F
−
e, f
a.d.e
b, c, f
e ∈F
−
f
a.d.e
b, c, f
SS 2015
f ∈F
−
−
a.d.e
b, c, f
135 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Algorithmus für 3-Färbung)
Eingabe: Ungerichteter Graph G = (V , E ) mit n Knoten und k Kanten
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
136 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Algorithmus für 3-Färbung)
Eingabe: Ungerichteter Graph G = (V , E ) mit n Knoten und k Kanten
Ausgabe: G mit 3 Farben färben
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
136 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Algorithmus für 3-Färbung)
Eingabe: Ungerichteter Graph G = (V , E ) mit n Knoten und k Kanten
Ausgabe: G mit 3 Farben färben
Es ist kein effizienter Algorithmus bekannt (Begründung später). Wenn man
alle möglichen Färbungen auf ihre Korrektheit prüfen will, ergibt sich eine
Laufzeit O(3n ) .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
136 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Algorithmus für 3-Färbung)
Eingabe: Ungerichteter Graph G = (V , E ) mit n Knoten und k Kanten
Ausgabe: G mit 3 Farben färben
Es ist kein effizienter Algorithmus bekannt (Begründung später). Wenn man
alle möglichen Färbungen auf ihre Korrektheit prüfen will, ergibt sich eine
Laufzeit O(3n ) . Andererseits kann man nichtdeterministisch eine
potentielle Färbung raten und diese deterministisch überprüfen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
136 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Algorithmus für 3-Färbung)
Eingabe: Ungerichteter Graph G = (V , E ) mit n Knoten und k Kanten
Ausgabe: G mit 3 Farben färben
Es ist kein effizienter Algorithmus bekannt (Begründung später). Wenn man
alle möglichen Färbungen auf ihre Korrektheit prüfen will, ergibt sich eine
Laufzeit O(3n ) . Andererseits kann man nichtdeterministisch eine
potentielle Färbung raten und diese deterministisch überprüfen.
Beispiel (Algorithmus für gerichteten Weg)
Eingabe: Gerichteter Graph G = hV , E i , Knoten v , w ∈ V
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
136 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Algorithmus für 3-Färbung)
Eingabe: Ungerichteter Graph G = (V , E ) mit n Knoten und k Kanten
Ausgabe: G mit 3 Farben färben
Es ist kein effizienter Algorithmus bekannt (Begründung später). Wenn man
alle möglichen Färbungen auf ihre Korrektheit prüfen will, ergibt sich eine
Laufzeit O(3n ) . Andererseits kann man nichtdeterministisch eine
potentielle Färbung raten und diese deterministisch überprüfen.
Beispiel (Algorithmus für gerichteten Weg)
Eingabe: Gerichteter Graph G = hV , E i , Knoten v , w ∈ V
Aufgabe: entscheiden, ob gerichteter G -Weg von v nach w existiert
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
136 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Algorithmus für 3-Färbung)
Eingabe: Ungerichteter Graph G = (V , E ) mit n Knoten und k Kanten
Ausgabe: G mit 3 Farben färben
Es ist kein effizienter Algorithmus bekannt (Begründung später). Wenn man
alle möglichen Färbungen auf ihre Korrektheit prüfen will, ergibt sich eine
Laufzeit O(3n ) . Andererseits kann man nichtdeterministisch eine
potentielle Färbung raten und diese deterministisch überprüfen.
Beispiel (Algorithmus für gerichteten Weg)
Eingabe: Gerichteter Graph G = hV , E i , Knoten v , w ∈ V
Aufgabe: entscheiden, ob gerichteter G -Weg von v nach w existiert
Idee: iterativ die von v aus erreichbaren Knoten bestimmen und in einer
Hilfs-Menge M sammeln; wenn w am Ende zu M gehört, existiert ein
gerichteter Weg von v nach w .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
136 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
1:
2:
3:
4:
5:
6:
7:
8:
9:
{(0) Initialisierung}
M := {v } { M : die von v erreichbaren Knoten}
{(1) Rekursionsschritt}
while eine Kante hx, y i mit x ∈ M und y ∈
/ M existiert do
M := M + {y }
E := E − {hx, y i}
end while
{(2) Ausgabe}
JA, falls w ∈ M , sonst NEIN
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
137 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
1:
2:
3:
4:
5:
6:
7:
8:
9:
{(0) Initialisierung}
M := {v } { M : die von v erreichbaren Knoten}
{(1) Rekursionsschritt}
while eine Kante hx, y i mit x ∈ M und y ∈
/ M existiert do
M := M + {y }
E := E − {hx, y i}
end while
{(2) Ausgabe}
JA, falls w ∈ M , sonst NEIN
Korrektheit: Klar!
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
137 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
1:
2:
3:
4:
5:
6:
7:
8:
9:
{(0) Initialisierung}
M := {v } { M : die von v erreichbaren Knoten}
{(1) Rekursionsschritt}
while eine Kante hx, y i mit x ∈ M und y ∈
/ M existiert do
M := M + {y }
E := E − {hx, y i}
end while
{(2) Ausgabe}
JA, falls w ∈ M , sonst NEIN
Korrektheit: Klar!
Laufzeit: Entscheidend ist die WHILE-Schleife in Zeilen 4–7.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
137 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
1:
2:
3:
4:
5:
6:
7:
8:
9:
{(0) Initialisierung}
M := {v } { M : die von v erreichbaren Knoten}
{(1) Rekursionsschritt}
while eine Kante hx, y i mit x ∈ M und y ∈
/ M existiert do
M := M + {y }
E := E − {hx, y i}
end while
{(2) Ausgabe}
JA, falls w ∈ M , sonst NEIN
Korrektheit: Klar!
Laufzeit: Entscheidend ist die WHILE-Schleife in Zeilen 4–7. Bei
Verwendung von Adjazenzlisten werden maximal n -mal alle k Kanten
getestet, was in einer Laufzeit von O(n · k) resultiert.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
137 / 236
Komplexität von Algorithmen
8.1.0 Beispiele effizienter Algorithmen (für Graphen)
Beispiel (Fortsetzung)
1:
2:
3:
4:
5:
6:
7:
8:
9:
{(0) Initialisierung}
M := {v } { M : die von v erreichbaren Knoten}
{(1) Rekursionsschritt}
while eine Kante hx, y i mit x ∈ M und y ∈
/ M existiert do
M := M + {y }
E := E − {hx, y i}
end while
{(2) Ausgabe}
JA, falls w ∈ M , sonst NEIN
Korrektheit: Klar!
Laufzeit: Entscheidend ist die WHILE-Schleife in Zeilen 4–7. Bei
Verwendung von Adjazenzlisten werden maximal n -mal alle k Kanten
getestet, was in einer Laufzeit von O(n · k) resultiert. Im Falle von
Adjazenzmatrizen ist stattdessen eine (n × n)-Matrix maximal n -mal nach
Einsen zu durchsuchen, also ergibt sich O(n3 ) .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
137 / 236
Komplexität von Algorithmen
8.1.1 Weitere Vorüberlegungen
8.1.1 Weitere Vorüberlegungen
Wir betrachten zunächst 1-Band TMs wie auf Folie 37.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
138 / 236
Komplexität von Algorithmen
8.1.1 Weitere Vorüberlegungen
8.1.1 Weitere Vorüberlegungen
Wir betrachten zunächst 1-Band TMs wie auf Folie 37.Im Allgemeinen soll
die Codierung der Eingaben “vernünftig” sein, etwa:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
138 / 236
Komplexität von Algorithmen
8.1.1 Weitere Vorüberlegungen
8.1.1 Weitere Vorüberlegungen
Wir betrachten zunächst 1-Band TMs wie auf Folie 37.Im Allgemeinen soll
die Codierung der Eingaben “vernünftig” sein, etwa:
Zahlen werden binär (oder dezimal) codiert (so dass ihr Wert exponentiell in der Länge der Darstellung ist), aber nicht unär (wobei der Wert
mit der Länge übereinstimmt).
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
138 / 236
Komplexität von Algorithmen
8.1.1 Weitere Vorüberlegungen
8.1.1 Weitere Vorüberlegungen
Wir betrachten zunächst 1-Band TMs wie auf Folie 37.Im Allgemeinen soll
die Codierung der Eingaben “vernünftig” sein, etwa:
Zahlen werden binär (oder dezimal) codiert (so dass ihr Wert exponentiell in der Länge der Darstellung ist), aber nicht unär (wobei der Wert
mit der Länge übereinstimmt).
Graphen werden mittels Adjazenzmatrizen oder -listen codiert.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
138 / 236
Komplexität von Algorithmen
8.1.1 Weitere Vorüberlegungen
8.1.1 Weitere Vorüberlegungen
Wir betrachten zunächst 1-Band TMs wie auf Folie 37.Im Allgemeinen soll
die Codierung der Eingaben “vernünftig” sein, etwa:
Zahlen werden binär (oder dezimal) codiert (so dass ihr Wert exponentiell in der Länge der Darstellung ist), aber nicht unär (wobei der Wert
mit der Länge übereinstimmt).
Graphen werden mittels Adjazenzmatrizen oder -listen codiert.
Teilmengen n -elementiger Mengen werden als binäre n -Tupel codiert.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
138 / 236
Komplexität von Algorithmen
8.1.1 Weitere Vorüberlegungen
8.1.1 Weitere Vorüberlegungen
Wir betrachten zunächst 1-Band TMs wie auf Folie 37.Im Allgemeinen soll
die Codierung der Eingaben “vernünftig” sein, etwa:
Zahlen werden binär (oder dezimal) codiert (so dass ihr Wert exponentiell in der Länge der Darstellung ist), aber nicht unär (wobei der Wert
mit der Länge übereinstimmt).
Graphen werden mittels Adjazenzmatrizen oder -listen codiert.
Teilmengen n -elementiger Mengen werden als binäre n -Tupel codiert.
Besteht die Eingabe aus mehreren Teilen, ist darauf zu achten, dass diese
Teile geeignet voneinander getrennt werden, vergl. die Codierung binärer
TMs auf Folie 560.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
138 / 236
Komplexität von Algorithmen
8.1.1 Weitere Vorüberlegungen
8.1.1 Weitere Vorüberlegungen
Wir betrachten zunächst 1-Band TMs wie auf Folie 37.Im Allgemeinen soll
die Codierung der Eingaben “vernünftig” sein, etwa:
Zahlen werden binär (oder dezimal) codiert (so dass ihr Wert exponentiell in der Länge der Darstellung ist), aber nicht unär (wobei der Wert
mit der Länge übereinstimmt).
Graphen werden mittels Adjazenzmatrizen oder -listen codiert.
Teilmengen n -elementiger Mengen werden als binäre n -Tupel codiert.
Besteht die Eingabe aus mehreren Teilen, ist darauf zu achten, dass diese
Teile geeignet voneinander getrennt werden, vergl. die Codierung binärer
TMs auf Folie 560.
Ein wesentliches Problem der Aussagenlogik bestand darin, die Erfüllbarkeit
von Formeln ϕ(x0 , . . . , xn−1 ) in den Variablen xi , i < n , zu überprüfen.
Besonders nützlich waren dabei Formeln in einer speziellen Normalform.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
138 / 236
Komplexität von Algorithmen
8.1.1 Weitere Vorüberlegungen
Zur Erinnerung:
Definition
Eine aussagenlogische Formel ϕ liegt in konjunktiver Normalform (KNF)
vor, wenn
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
139 / 236
Komplexität von Algorithmen
8.1.1 Weitere Vorüberlegungen
Zur Erinnerung:
Definition
Eine aussagenlogische Formel ϕ liegt in konjunktiver Normalform (KNF)
vor, wenn
− ϕ die Konjunktion von Klauseln Ki , i < n , ist;
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
139 / 236
Komplexität von Algorithmen
8.1.1 Weitere Vorüberlegungen
Zur Erinnerung:
Definition
Eine aussagenlogische Formel ϕ liegt in konjunktiver Normalform (KNF)
vor, wenn
− ϕ die Konjunktion von Klauseln Ki , i < n , ist;
− jede Klausel Ki die Disjunktion von Literalen Lij , j < mi , ist;
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
139 / 236
Komplexität von Algorithmen
8.1.1 Weitere Vorüberlegungen
Zur Erinnerung:
Definition
Eine aussagenlogische Formel ϕ liegt in konjunktiver Normalform (KNF)
vor, wenn
− ϕ die Konjunktion von Klauseln Ki , i < n , ist;
− jede Klausel Ki die Disjunktion von Literalen Lij , j < mi , ist;
− jedes Literal Lij entweder eine Variable oder Negation einer solchen ist.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
139 / 236
Komplexität von Algorithmen
8.1.1 Weitere Vorüberlegungen
Zur Erinnerung:
Definition
Eine aussagenlogische Formel ϕ liegt in konjunktiver Normalform (KNF)
vor, wenn
− ϕ die Konjunktion von Klauseln Ki , i < n , ist;
− jede Klausel Ki die Disjunktion von Literalen Lij , j < mi , ist;
− jedes Literal Lij entweder eine Variable oder Negation einer solchen ist.
Ist die Anzahl der Literale pro Klausel durch m ∈ N beschränkt, sprechen
man von m -KNF.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
139 / 236
Komplexität von Algorithmen
8.1.1 Weitere Vorüberlegungen
Zur Erinnerung:
Definition
Eine aussagenlogische Formel ϕ liegt in konjunktiver Normalform (KNF)
vor, wenn
− ϕ die Konjunktion von Klauseln Ki , i < n , ist;
− jede Klausel Ki die Disjunktion von Literalen Lij , j < mi , ist;
− jedes Literal Lij entweder eine Variable oder Negation einer solchen ist.
Ist die Anzahl der Literale pro Klausel durch m ∈ N beschränkt, sprechen
man von m -KNF.
Jede aussagenlogische Formel kann in eine äquivalente Formel in KNF
umgewandelt werden, etwa unter Verwendung der Distributivgesetze und
der de Morgan’schen Regeln.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
139 / 236
Komplexität von Algorithmen
8.1.1 Weitere Vorüberlegungen
Zur Erinnerung:
Definition
Eine aussagenlogische Formel ϕ liegt in konjunktiver Normalform (KNF)
vor, wenn
− ϕ die Konjunktion von Klauseln Ki , i < n , ist;
− jede Klausel Ki die Disjunktion von Literalen Lij , j < mi , ist;
− jedes Literal Lij entweder eine Variable oder Negation einer solchen ist.
Ist die Anzahl der Literale pro Klausel durch m ∈ N beschränkt, sprechen
man von m -KNF.
Jede aussagenlogische Formel kann in eine äquivalente Formel in KNF
umgewandelt werden, etwa unter Verwendung der Distributivgesetze und
der de Morgan’schen Regeln.
Ein Beispiel in 2-KNF ist etwa
ϕ = (¬x ∨ y ) ∧ (¬x ∨ z) ∧ (x ∨ ¬z)
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
139 / 236
Komplexität von Algorithmen
8.1.1 Weitere Vorüberlegungen
In Analogie zur m -Färbbarkeit von Graphen stellt sich im Fall logischer
Formeln die Frage der m -Erfüllbarkeit:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
140 / 236
Komplexität von Algorithmen
8.1.1 Weitere Vorüberlegungen
In Analogie zur m -Färbbarkeit von Graphen stellt sich im Fall logischer
Formeln die Frage der m -Erfüllbarkeit:
Beispiel
Das E-Problem m -Sat hat als Eingabe eine Formel ϕ in m -KNF. Zu
entscheiden ist, ob diese Formel erfüllbar ist, in dem Sinne, dass eine
Belegung der auftretenden Variablen mit 0 (bzw. false ) und 1 (bzw.
true ) existiert, so dass ϕ den Wert 1 ( true ) erhält.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
140 / 236
Komplexität von Algorithmen
8.1.1 Weitere Vorüberlegungen
In Analogie zur m -Färbbarkeit von Graphen stellt sich im Fall logischer
Formeln die Frage der m -Erfüllbarkeit:
Beispiel
Das E-Problem m -Sat hat als Eingabe eine Formel ϕ in m -KNF. Zu
entscheiden ist, ob diese Formel erfüllbar ist, in dem Sinne, dass eine
Belegung der auftretenden Variablen mit 0 (bzw. false ) und 1 (bzw.
true ) existiert, so dass ϕ den Wert 1 ( true ) erhält.
In Abschnitt 8.3 werden wir mittels Reduktion feststellen, dass 2-Sat zu P
gehört, während die NP-Vollständigkeit von 3-Sat in Abschnitt 8.4
nachgewiesen wird.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
140 / 236
Komplexität von Algorithmen
8.1.1 Weitere Vorüberlegungen
In Analogie zur m -Färbbarkeit von Graphen stellt sich im Fall logischer
Formeln die Frage der m -Erfüllbarkeit:
Beispiel
Das E-Problem m -Sat hat als Eingabe eine Formel ϕ in m -KNF. Zu
entscheiden ist, ob diese Formel erfüllbar ist, in dem Sinne, dass eine
Belegung der auftretenden Variablen mit 0 (bzw. false ) und 1 (bzw.
true ) existiert, so dass ϕ den Wert 1 ( true ) erhält.
In Abschnitt 8.3 werden wir mittels Reduktion feststellen, dass 2-Sat zu P
gehört, während die NP-Vollständigkeit von 3-Sat in Abschnitt 8.4
nachgewiesen wird. Das unbeschränkte Erfüllbarkeitsproblem Sat ist
natürlich ebenfalls NP-vollständig (Cooke’scher Satz).
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
140 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
8.2 Die Komplexitätsklassen P und NP
Unter P ( NP ) wollen wir die Klasse aller E-Probleme verstehen, die von
einem (nicht-)deterministischen Algorithmus in polynomialer Zeit gelöst
werden können.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
141 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
8.2 Die Komplexitätsklassen P und NP
Unter P ( NP ) wollen wir die Klasse aller E-Probleme verstehen, die von
einem (nicht-)deterministischen Algorithmus in polynomialer Zeit gelöst
werden können.
Dabei soll die konkrete Implementierung des Algorithmus irrelevant sein,
d.h., P und NP sind unabhängig vom verwendeten Algorithmusmodell.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
141 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
8.2 Die Komplexitätsklassen P und NP
Unter P ( NP ) wollen wir die Klasse aller E-Probleme verstehen, die von
einem (nicht-)deterministischen Algorithmus in polynomialer Zeit gelöst
werden können.
Dabei soll die konkrete Implementierung des Algorithmus irrelevant sein,
d.h., P und NP sind unabhängig vom verwendeten Algorithmusmodell.
Wenn dies gewährleistet ist, kann man ein bequemes Modell wählen,
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
141 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
8.2 Die Komplexitätsklassen P und NP
Unter P ( NP ) wollen wir die Klasse aller E-Probleme verstehen, die von
einem (nicht-)deterministischen Algorithmus in polynomialer Zeit gelöst
werden können.
Dabei soll die konkrete Implementierung des Algorithmus irrelevant sein,
d.h., P und NP sind unabhängig vom verwendeten Algorithmusmodell.
Wenn dies gewährleistet ist, kann man ein bequemes Modell wählen, etwa
TMs mit mehreren Bändern.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
141 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
8.2 Die Komplexitätsklassen P und NP
Unter P ( NP ) wollen wir die Klasse aller E-Probleme verstehen, die von
einem (nicht-)deterministischen Algorithmus in polynomialer Zeit gelöst
werden können.
Dabei soll die konkrete Implementierung des Algorithmus irrelevant sein,
d.h., P und NP sind unabhängig vom verwendeten Algorithmusmodell.
Wenn dies gewährleistet ist, kann man ein bequemes Modell wählen, etwa
TMs mit mehreren Bändern.
Definition
Eine Turing-berechenbare Funktion N t N wird als Zeitkomplexität einer
nTM M bezeichnet, wenn M für jede Eingabe w ∈ Σn immer nach
höchstens t(n) Schritten hält.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
141 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
8.2 Die Komplexitätsklassen P und NP
Unter P ( NP ) wollen wir die Klasse aller E-Probleme verstehen, die von
einem (nicht-)deterministischen Algorithmus in polynomialer Zeit gelöst
werden können.
Dabei soll die konkrete Implementierung des Algorithmus irrelevant sein,
d.h., P und NP sind unabhängig vom verwendeten Algorithmusmodell.
Wenn dies gewährleistet ist, kann man ein bequemes Modell wählen, etwa
TMs mit mehreren Bändern.
Definition
Eine Turing-berechenbare Funktion N t N wird als Zeitkomplexität einer
nTM M bezeichnet, wenn M für jede Eingabe w ∈ Σn immer nach
höchstens t(n) Schritten hält. D. h., die Tiefe des Berechnungsbaums von
w ist durch t(|w |) beschränkt.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
141 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Bemerkung
Gelegentlich wird für die Zeitkomplexität nichtdeterministischer Maschinen
M gefordert, dass nur für Wörter aus L(M) eine (etwa die kürzeste)
akzeptierende Berechnung der Länge nach durch t(|w |) beschränkt sein
muß.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
142 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Bemerkung
Gelegentlich wird für die Zeitkomplexität nichtdeterministischer Maschinen
M gefordert, dass nur für Wörter aus L(M) eine (etwa die kürzeste)
akzeptierende Berechnung der Länge nach durch t(|w |) beschränkt sein
muß. Dies folgt sofort aus der obigen Definition.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
142 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Bemerkung
Gelegentlich wird für die Zeitkomplexität nichtdeterministischer Maschinen
M gefordert, dass nur für Wörter aus L(M) eine (etwa die kürzeste)
akzeptierende Berechnung der Länge nach durch t(|w |) beschränkt sein
muß. Dies folgt sofort aus der obigen Definition.
Umgekehrt kann man M um einen Schrittzähler ergänzen und Berechnungen von w abbrechen, sobald sie mehr als t(|w |) Schritte brauchen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
142 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Bemerkung
Gelegentlich wird für die Zeitkomplexität nichtdeterministischer Maschinen
M gefordert, dass nur für Wörter aus L(M) eine (etwa die kürzeste)
akzeptierende Berechnung der Länge nach durch t(|w |) beschränkt sein
muß. Dies folgt sofort aus der obigen Definition.
Umgekehrt kann man M um einen Schrittzähler ergänzen und Berechnungen von w abbrechen, sobald sie mehr als t(|w |) Schritte brauchen.
Dabei sind |w | und t(|w |) vorher zu bestimmen, was O(|w | + T (|w |))
Schritte braucht, wobei T die Zeitkomplexität einer dTM ist, die t
berechnet.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
142 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Bemerkung
Gelegentlich wird für die Zeitkomplexität nichtdeterministischer Maschinen
M gefordert, dass nur für Wörter aus L(M) eine (etwa die kürzeste)
akzeptierende Berechnung der Länge nach durch t(|w |) beschränkt sein
muß. Dies folgt sofort aus der obigen Definition.
Umgekehrt kann man M um einen Schrittzähler ergänzen und Berechnungen von w abbrechen, sobald sie mehr als t(|w |) Schritte brauchen.
Dabei sind |w | und t(|w |) vorher zu bestimmen, was O(|w | + T (|w |))
Schritte braucht, wobei T die Zeitkomplexität einer dTM ist, die t
berechnet. Die Zeitkomplexität der modifizierten Maschine liegt dann in
O(n + T (n) + t(n)) .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
142 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Bemerkung
Gelegentlich wird für die Zeitkomplexität nichtdeterministischer Maschinen
M gefordert, dass nur für Wörter aus L(M) eine (etwa die kürzeste)
akzeptierende Berechnung der Länge nach durch t(|w |) beschränkt sein
muß. Dies folgt sofort aus der obigen Definition.
Umgekehrt kann man M um einen Schrittzähler ergänzen und Berechnungen von w abbrechen, sobald sie mehr als t(|w |) Schritte brauchen.
Dabei sind |w | und t(|w |) vorher zu bestimmen, was O(|w | + T (|w |))
Schritte braucht, wobei T die Zeitkomplexität einer dTM ist, die t
berechnet. Die Zeitkomplexität der modifizierten Maschine liegt dann in
O(n + T (n) + t(n)) . Dies stimmt nur mit O(t(n)) überein, falls
{n, T (n)} ⊆ O(t(n)) gilt.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
142 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Bemerkung
Gelegentlich wird für die Zeitkomplexität nichtdeterministischer Maschinen
M gefordert, dass nur für Wörter aus L(M) eine (etwa die kürzeste)
akzeptierende Berechnung der Länge nach durch t(|w |) beschränkt sein
muß. Dies folgt sofort aus der obigen Definition.
Umgekehrt kann man M um einen Schrittzähler ergänzen und Berechnungen von w abbrechen, sobald sie mehr als t(|w |) Schritte brauchen.
Dabei sind |w | und t(|w |) vorher zu bestimmen, was O(|w | + T (|w |))
Schritte braucht, wobei T die Zeitkomplexität einer dTM ist, die t
berechnet. Die Zeitkomplexität der modifizierten Maschine liegt dann in
O(n + T (n) + t(n)) . Dies stimmt nur mit O(t(n)) überein, falls
{n, T (n)} ⊆ O(t(n)) gilt.
Damit sind beide Definitionen der Zeitkomplexität nicht äquivalent, aber
sofern es sich bei t und T um Polynome handelt, bleibt die
Zeitkomplexität polynomial, was für unsere Zwecke ausreicht.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
142 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Beispiel
Vollständig deterministische endliche Automaten (vDEA’s) verbrauchen pro
Schritt ein Symbol der Eingabe und halten dann.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
143 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Beispiel
Vollständig deterministische endliche Automaten (vDEA’s) verbrauchen pro
Schritt ein Symbol der Eingabe und halten dann. Also benötigen sie lineare
Zeit O(n) .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
143 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Beispiel
Vollständig deterministische endliche Automaten (vDEA’s) verbrauchen pro
Schritt ein Symbol der Eingabe und halten dann. Also benötigen sie lineare
Zeit O(n) .
Beispiel
Eine dTM für die Sprache L = { w ∈ {a, b}∗ : w = sp(w ) } aller
Palindrome über Σ = {a, b} könnte wie folgt operieren:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
143 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Beispiel
Vollständig deterministische endliche Automaten (vDEA’s) verbrauchen pro
Schritt ein Symbol der Eingabe und halten dann. Also benötigen sie lineare
Zeit O(n) .
Beispiel
Eine dTM für die Sprache L = { w ∈ {a, b}∗ : w = sp(w ) } aller
Palindrome über Σ = {a, b} könnte wie folgt operieren:
Zeichen am rechten Rand löschen und im Zustand speichern;
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
143 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Beispiel
Vollständig deterministische endliche Automaten (vDEA’s) verbrauchen pro
Schritt ein Symbol der Eingabe und halten dann. Also benötigen sie lineare
Zeit O(n) .
Beispiel
Eine dTM für die Sprache L = { w ∈ {a, b}∗ : w = sp(w ) } aller
Palindrome über Σ = {a, b} könnte wie folgt operieren:
Zeichen am rechten Rand löschen und im Zustand speichern;
linken Rand suchen, und dortiges Zeichen mit dem gespeicherten Wert
vergleichen; im Erfolgsfall linkes Randzeichen löschen und mit dem
nächsten Zeichen von links symmetrisch analog verfahren.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
143 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Beispiel
Vollständig deterministische endliche Automaten (vDEA’s) verbrauchen pro
Schritt ein Symbol der Eingabe und halten dann. Also benötigen sie lineare
Zeit O(n) .
Beispiel
Eine dTM für die Sprache L = { w ∈ {a, b}∗ : w = sp(w ) } aller
Palindrome über Σ = {a, b} könnte wie folgt operieren:
Zeichen am rechten Rand löschen und im Zustand speichern;
linken Rand suchen, und dortiges Zeichen mit dem gespeicherten Wert
vergleichen; im Erfolgsfall linkes Randzeichen löschen und mit dem
nächsten Zeichen von links symmetrisch analog verfahren.
Bei gleichzeitigem Schreiben und Bewegen erfordern die dn/2e Durchläufe
n + 1 , n − 1 , . . . 1 Schritte, was sich durch dn/2e(dn/2e + 3)/2 ∈ O(n2 )
abschätzen läßt.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
143 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Anmerkungen:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
144 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Anmerkungen:
Bei gleichzeitiger Bearbeitung von k Zeichen läßt sich eine
Beschleunigung um den Faktor k erreichen, da sich die Anzahl der
Durchläufe entsprechend verringert.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
144 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Anmerkungen:
Bei gleichzeitiger Bearbeitung von k Zeichen läßt sich eine
Beschleunigung um den Faktor k erreichen, da sich die Anzahl der
Durchläufe entsprechend verringert.
Bei Verwendung einer 2-Band TM kann die Eingabe einmal kopiert
und die Kopie direkt in umgekehrter Richtung mit dem Original
verglichen werden, wodurch das Speichern des am Rand gelöschten
Symbols und die jeweilige Suche nach dem anderen Rand entfällt.
Damit läßt sich eine Laufzeit der Größenordnung O(n) realisieren.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
144 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Anmerkungen:
Bei gleichzeitiger Bearbeitung von k Zeichen läßt sich eine
Beschleunigung um den Faktor k erreichen, da sich die Anzahl der
Durchläufe entsprechend verringert.
Bei Verwendung einer 2-Band TM kann die Eingabe einmal kopiert
und die Kopie direkt in umgekehrter Richtung mit dem Original
verglichen werden, wodurch das Speichern des am Rand gelöschten
Symbols und die jeweilige Suche nach dem anderen Rand entfällt.
Damit läßt sich eine Laufzeit der Größenordnung O(n) realisieren.
In Abschnitt 8.4 werden wir zeigen, dass folgende Definition der Klassen P
und NP unter solchen Modifikationen des Maschinenmodells robust ist.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
144 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Anmerkungen:
Bei gleichzeitiger Bearbeitung von k Zeichen läßt sich eine
Beschleunigung um den Faktor k erreichen, da sich die Anzahl der
Durchläufe entsprechend verringert.
Bei Verwendung einer 2-Band TM kann die Eingabe einmal kopiert
und die Kopie direkt in umgekehrter Richtung mit dem Original
verglichen werden, wodurch das Speichern des am Rand gelöschten
Symbols und die jeweilige Suche nach dem anderen Rand entfällt.
Damit läßt sich eine Laufzeit der Größenordnung O(n) realisieren.
In Abschnitt 8.4 werden wir zeigen, dass folgende Definition der Klassen P
und NP unter solchen Modifikationen des Maschinenmodells robust ist.
Definition
P ( NP ) ist die Klasse der entscheidbaren formalen Sprachen L , die von
einer dTM (nTM) mit polynomialer Zeitkomplexität akzeptiert werden
können, d.h., es existiert eine d/nTM M mit L = L(M) , und ein Polynom
p so dass jede Berechnung von w nach höchstens p(|w |) Schritten hält.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
144 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Satz
P ⊆ NP
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
145 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Satz
P ⊆ NP
Beweis.
Klar, da jede dTM auch eine nTM ist.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
145 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Satz
P ⊆ NP
Beweis.
Klar, da jede dTM auch eine nTM ist.
Im nichtdeterministischen Fall gibt es einen alternativen Zugang: anstelle
eine Sprache aus NP zu entscheiden, kann man sie verifizieren:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
145 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Satz
P ⊆ NP
Beweis.
Klar, da jede dTM auch eine nTM ist.
Im nichtdeterministischen Fall gibt es einen alternativen Zugang: anstelle
eine Sprache aus NP zu entscheiden, kann man sie verifizieren:
Definition
Für L ⊆ Σ∗ heißt Lcheck ⊆ Γ∗ mit Σ ⊆ Γ Zertifikatssprache, falls
Lcheck ∈ P , eine entsprechende dTM heißt Verifizierer;
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
145 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Satz
P ⊆ NP
Beweis.
Klar, da jede dTM auch eine nTM ist.
Im nichtdeterministischen Fall gibt es einen alternativen Zugang: anstelle
eine Sprache aus NP zu entscheiden, kann man sie verifizieren:
Definition
Für L ⊆ Σ∗ heißt Lcheck ⊆ Γ∗ mit Σ ⊆ Γ Zertifikatssprache, falls
Lcheck ∈ P , eine entsprechende dTM heißt Verifizierer;
es existiert ein Polynom q so dass für jedes w ∈ Σ∗ gilt
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
145 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Satz
P ⊆ NP
Beweis.
Klar, da jede dTM auch eine nTM ist.
Im nichtdeterministischen Fall gibt es einen alternativen Zugang: anstelle
eine Sprache aus NP zu entscheiden, kann man sie verifizieren:
Definition
Für L ⊆ Σ∗ heißt Lcheck ⊆ Γ∗ mit Σ ⊆ Γ Zertifikatssprache, falls
Lcheck ∈ P , eine entsprechende dTM heißt Verifizierer;
es existiert ein Polynom q so dass für jedes w ∈ Σ∗ gilt
w ∈L
gdw wz ∈ Lcheck
Jürgen Koslowski (TU-BS)
für ein Wort z ∈ Γ∗ mit |z| ≤ q(|w |)
Theoretische Informatik 2
SS 2015
145 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Satz
P ⊆ NP
Beweis.
Klar, da jede dTM auch eine nTM ist.
Im nichtdeterministischen Fall gibt es einen alternativen Zugang: anstelle
eine Sprache aus NP zu entscheiden, kann man sie verifizieren:
Definition
Für L ⊆ Σ∗ heißt Lcheck ⊆ Γ∗ mit Σ ⊆ Γ Zertifikatssprache, falls
Lcheck ∈ P , eine entsprechende dTM heißt Verifizierer;
es existiert ein Polynom q so dass für jedes w ∈ Σ∗ gilt
w ∈L
gdw wz ∈ Lcheck
für ein Wort z ∈ Γ∗ mit |z| ≤ q(|w |)
Ein solches z heißt Zertifikat für w .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
145 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Satz
NP besteht genau aus den Sprachen, die Zertifikatssprachen besitzen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
146 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Satz
NP besteht genau aus den Sprachen, die Zertifikatssprachen besitzen.
Beweis
Ein Verifizierer Mcheck , mit Zeitkomplexität p , für Lcheck , mit
Längenkomplexität q , liefert einen Entscheider M für L wie folgt:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
146 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Satz
NP besteht genau aus den Sprachen, die Zertifikatssprachen besitzen.
Beweis
Ein Verifizierer Mcheck , mit Zeitkomplexität p , für Lcheck , mit
Längenkomplexität q , liefert einen Entscheider M für L wie folgt:
B0 enthält die Eingabe w ; ihre Länge |w | und q(|w |) werden auf
auf B3 gespeichert, was O(q(|w |)) Schritte erfordert;
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
146 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Satz
NP besteht genau aus den Sprachen, die Zertifikatssprachen besitzen.
Beweis
Ein Verifizierer Mcheck , mit Zeitkomplexität p , für Lcheck , mit
Längenkomplexität q , liefert einen Entscheider M für L wie folgt:
B0 enthält die Eingabe w ; ihre Länge |w | und q(|w |) werden auf
auf B3 gespeichert, was O(q(|w |)) Schritte erfordert;
auf B1 wird nichtdeterministisch ein Wort z ∈ Γ∗ mit |z| ≤ q(|w |)
erzeugt (“geraten”); dies erfordert |z| ∈ O(q(|w |)) Schritte;
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
146 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Satz
NP besteht genau aus den Sprachen, die Zertifikatssprachen besitzen.
Beweis
Ein Verifizierer Mcheck , mit Zeitkomplexität p , für Lcheck , mit
Längenkomplexität q , liefert einen Entscheider M für L wie folgt:
B0 enthält die Eingabe w ; ihre Länge |w | und q(|w |) werden auf
auf B3 gespeichert, was O(q(|w |)) Schritte erfordert;
auf B1 wird nichtdeterministisch ein Wort z ∈ Γ∗ mit |z| ≤ q(|w |)
erzeugt (“geraten”); dies erfordert |z| ∈ O(q(|w |)) Schritte;
auf B2 wird Mcheck mit Eingabe wz simuliert.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
146 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Satz
NP besteht genau aus den Sprachen, die Zertifikatssprachen besitzen.
Beweis
Ein Verifizierer Mcheck , mit Zeitkomplexität p , für Lcheck , mit
Längenkomplexität q , liefert einen Entscheider M für L wie folgt:
B0 enthält die Eingabe w ; ihre Länge |w | und q(|w |) werden auf
auf B3 gespeichert, was O(q(|w |)) Schritte erfordert;
auf B1 wird nichtdeterministisch ein Wort z ∈ Γ∗ mit |z| ≤ q(|w |)
erzeugt (“geraten”); dies erfordert |z| ∈ O(q(|w |)) Schritte;
auf B2 wird Mcheck mit Eingabe wz simuliert.
M hält und akzeptiert genau dann, wenn die Simulation von Mcheck dies
tut und hat Zeitkomplexität in O(p(q(n))) .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
146 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Satz
NP besteht genau aus den Sprachen, die Zertifikatssprachen besitzen.
Beweis
Ein Verifizierer Mcheck , mit Zeitkomplexität p , für Lcheck , mit
Längenkomplexität q , liefert einen Entscheider M für L wie folgt:
B0 enthält die Eingabe w ; ihre Länge |w | und q(|w |) werden auf
auf B3 gespeichert, was O(q(|w |)) Schritte erfordert;
auf B1 wird nichtdeterministisch ein Wort z ∈ Γ∗ mit |z| ≤ q(|w |)
erzeugt (“geraten”); dies erfordert |z| ∈ O(q(|w |)) Schritte;
auf B2 wird Mcheck mit Eingabe wz simuliert.
M hält und akzeptiert genau dann, wenn die Simulation von Mcheck dies
tut und hat Zeitkomplexität in O(p(q(n))) .
Umgekehrt sei M ein Entscheider für L mit Zeitkomplexität t .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
146 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Satz
NP besteht genau aus den Sprachen, die Zertifikatssprachen besitzen.
Beweis
Ein Verifizierer Mcheck , mit Zeitkomplexität p , für Lcheck , mit
Längenkomplexität q , liefert einen Entscheider M für L wie folgt:
B0 enthält die Eingabe w ; ihre Länge |w | und q(|w |) werden auf
auf B3 gespeichert, was O(q(|w |)) Schritte erfordert;
auf B1 wird nichtdeterministisch ein Wort z ∈ Γ∗ mit |z| ≤ q(|w |)
erzeugt (“geraten”); dies erfordert |z| ∈ O(q(|w |)) Schritte;
auf B2 wird Mcheck mit Eingabe wz simuliert.
M hält und akzeptiert genau dann, wenn die Simulation von Mcheck dies
tut und hat Zeitkomplexität in O(p(q(n))) .
Umgekehrt sei M ein Entscheider für L mit Zeitkomplexität t . Als
Zertifikate für w ∈ L verwenden wir die Wegbeschreibungen der
akzeptierenden Berechnungen von w im M-Berechnungsbaum, genauer:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
146 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Beweis (Fortsetzung)
Der M-Berechnungsbaum von w hat eine Tiefe ≤ t(|w |) .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
147 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Beweis (Fortsetzung)
Der M-Berechnungsbaum von w hat eine Tiefe ≤ t(|w |) . Die maximale
Verzweigungszahl sei r ∈ N .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
147 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Beweis (Fortsetzung)
Der M-Berechnungsbaum von w hat eine Tiefe ≤ t(|w |) . Die maximale
Verzweigungszahl sei r ∈ N . Jeder Weg von der Initialkonfiguration zu einer
Haltekonfiguration, also jede Berechnung, kann nun durch ein Wort in
{0, . . . , r − 1}∗ der Länge ≤ t(|w |) eindeutig beschrieben werden (aber
nicht jedes derartige Wort muß einer Berechnung entsprechen).
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
147 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Beweis (Fortsetzung)
Der M-Berechnungsbaum von w hat eine Tiefe ≤ t(|w |) . Die maximale
Verzweigungszahl sei r ∈ N . Jeder Weg von der Initialkonfiguration zu einer
Haltekonfiguration, also jede Berechnung, kann nun durch ein Wort in
{0, . . . , r − 1}∗ der Länge ≤ t(|w |) eindeutig beschrieben werden (aber
nicht jedes derartige Wort muß einer Berechnung entsprechen). Lcheck
besteht dann aus den Wörtern wz ∈ (Σ + r )∗ mit w ∈ L und z
Wegbeschreibung einer akzeptierenden Berechnung für w .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
147 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Beweis (Fortsetzung)
Der M-Berechnungsbaum von w hat eine Tiefe ≤ t(|w |) . Die maximale
Verzweigungszahl sei r ∈ N . Jeder Weg von der Initialkonfiguration zu einer
Haltekonfiguration, also jede Berechnung, kann nun durch ein Wort in
{0, . . . , r − 1}∗ der Länge ≤ t(|w |) eindeutig beschrieben werden (aber
nicht jedes derartige Wort muß einer Berechnung entsprechen). Lcheck
besteht dann aus den Wörtern wz ∈ (Σ + r )∗ mit w ∈ L und z
Wegbeschreibung einer akzeptierenden Berechnung für w .
Die Maschine Mcheck simuliert bei Eingabe wz den Ablauf der Maschine
M mit Eingabe w gemäß der durch z spezifizierten Berechnung und ist
somit deterministisch.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
147 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Beweis (Fortsetzung)
Der M-Berechnungsbaum von w hat eine Tiefe ≤ t(|w |) . Die maximale
Verzweigungszahl sei r ∈ N . Jeder Weg von der Initialkonfiguration zu einer
Haltekonfiguration, also jede Berechnung, kann nun durch ein Wort in
{0, . . . , r − 1}∗ der Länge ≤ t(|w |) eindeutig beschrieben werden (aber
nicht jedes derartige Wort muß einer Berechnung entsprechen). Lcheck
besteht dann aus den Wörtern wz ∈ (Σ + r )∗ mit w ∈ L und z
Wegbeschreibung einer akzeptierenden Berechnung für w .
Die Maschine Mcheck simuliert bei Eingabe wz den Ablauf der Maschine
M mit Eingabe w gemäß der durch z spezifizierten Berechnung und ist
somit deterministisch. Das erfordert |z| ≤ t(|w |) Simulationsschritte von
Mcheck . Deren Länge ist aber durch eine Konstante beschränkt .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
147 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Beweis (Fortsetzung)
Der M-Berechnungsbaum von w hat eine Tiefe ≤ t(|w |) . Die maximale
Verzweigungszahl sei r ∈ N . Jeder Weg von der Initialkonfiguration zu einer
Haltekonfiguration, also jede Berechnung, kann nun durch ein Wort in
{0, . . . , r − 1}∗ der Länge ≤ t(|w |) eindeutig beschrieben werden (aber
nicht jedes derartige Wort muß einer Berechnung entsprechen). Lcheck
besteht dann aus den Wörtern wz ∈ (Σ + r )∗ mit w ∈ L und z
Wegbeschreibung einer akzeptierenden Berechnung für w .
Die Maschine Mcheck simuliert bei Eingabe wz den Ablauf der Maschine
M mit Eingabe w gemäß der durch z spezifizierten Berechnung und ist
somit deterministisch. Das erfordert |z| ≤ t(|w |) Simulationsschritte von
Mcheck . Deren Länge ist aber durch eine Konstante beschränkt .
Das obige maschinenbezogene Zertifikat wird in der Praxis meist sehr
unhandlich sein.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
147 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Beweis (Fortsetzung)
Der M-Berechnungsbaum von w hat eine Tiefe ≤ t(|w |) . Die maximale
Verzweigungszahl sei r ∈ N . Jeder Weg von der Initialkonfiguration zu einer
Haltekonfiguration, also jede Berechnung, kann nun durch ein Wort in
{0, . . . , r − 1}∗ der Länge ≤ t(|w |) eindeutig beschrieben werden (aber
nicht jedes derartige Wort muß einer Berechnung entsprechen). Lcheck
besteht dann aus den Wörtern wz ∈ (Σ + r )∗ mit w ∈ L und z
Wegbeschreibung einer akzeptierenden Berechnung für w .
Die Maschine Mcheck simuliert bei Eingabe wz den Ablauf der Maschine
M mit Eingabe w gemäß der durch z spezifizierten Berechnung und ist
somit deterministisch. Das erfordert |z| ≤ t(|w |) Simulationsschritte von
Mcheck . Deren Länge ist aber durch eine Konstante beschränkt .
Das obige maschinenbezogene Zertifikat wird in der Praxis meist sehr
unhandlich sein. Dort verwendet man meistens problembezogene Zertifikate.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
147 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Beispiel (Eine Zertifikatssprache für 3-Färbbarkeit)
Die Codierung ungerichteter Graphen G = hV , E i erfolgt mittels
Adjazenzmatrizen w und der Größenangabe n := |V | .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
148 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Beispiel (Eine Zertifikatssprache für 3-Färbbarkeit)
Die Codierung ungerichteter Graphen G = hV , E i erfolgt mittels
Adjazenzmatrizen w und der Größenangabe n := |V | . Als Zertifikat
verwenden wir Codierungen z von Zufallszerlegungen V = R + G + B .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
148 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Beispiel (Eine Zertifikatssprache für 3-Färbbarkeit)
Die Codierung ungerichteter Graphen G = hV , E i erfolgt mittels
Adjazenzmatrizen w und der Größenangabe n := |V | . Als Zertifikat
verwenden wir Codierungen z von Zufallszerlegungen V = R + G + B .
wz ∈ Lcheck
Jürgen Koslowski (TU-BS)
gdw
∀e ∈ E . e 6⊆ R ∧ e 6⊆ G ∧ e 6⊆ B
Theoretische Informatik 2
SS 2015
148 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Beispiel (Eine Zertifikatssprache für 3-Färbbarkeit)
Die Codierung ungerichteter Graphen G = hV , E i erfolgt mittels
Adjazenzmatrizen w und der Größenangabe n := |V | . Als Zertifikat
verwenden wir Codierungen z von Zufallszerlegungen V = R + G + B .
wz ∈ Lcheck
gdw
∀e ∈ E . e 6⊆ R ∧ e 6⊆ G ∧ e 6⊆ B
Teilmengen von V lassen sich als binäre n -Tupel codieren, während
Adjazenzmatrizen die Größe n2 haben.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
148 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Beispiel (Eine Zertifikatssprache für 3-Färbbarkeit)
Die Codierung ungerichteter Graphen G = hV , E i erfolgt mittels
Adjazenzmatrizen w und der Größenangabe n := |V | . Als Zertifikat
verwenden wir Codierungen z von Zufallszerlegungen V = R + G + B .
wz ∈ Lcheck
gdw
∀e ∈ E . e 6⊆ R ∧ e 6⊆ G ∧ e 6⊆ B
Teilmengen von V lassen sich als binäre n -Tupel codieren, während
Adjazenzmatrizen die Größe n2 haben.
Lcheck ∈ P : zu überprüfen ist, ob die Eingabe aus n2 + 3n Bits besteht,
und dann, ob die Teilmengen R, G , B ⊆ V , paarweise disjunkt sind, V
ausschöpfen, und keine Kanten {u, v } ∈ E als Teilmenge enthalten. Dies
kann durch bitweise Vergleiche geschehen, also in polynomialer Zeit.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
148 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Beispiel (Eine Zertifikatssprache für 3-Färbbarkeit)
Die Codierung ungerichteter Graphen G = hV , E i erfolgt mittels
Adjazenzmatrizen w und der Größenangabe n := |V | . Als Zertifikat
verwenden wir Codierungen z von Zufallszerlegungen V = R + G + B .
wz ∈ Lcheck
gdw
∀e ∈ E . e 6⊆ R ∧ e 6⊆ G ∧ e 6⊆ B
Teilmengen von V lassen sich als binäre n -Tupel codieren, während
Adjazenzmatrizen die Größe n2 haben.
Lcheck ∈ P : zu überprüfen ist, ob die Eingabe aus n2 + 3n Bits besteht,
und dann, ob die Teilmengen R, G , B ⊆ V , paarweise disjunkt sind, V
ausschöpfen, und keine Kanten {u, v } ∈ E als Teilmenge enthalten. Dies
kann durch bitweise Vergleiche geschehen, also in polynomialer Zeit.
Damit gilt 3-Färbbarkeit ∈ NP .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
148 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Abschließend überlegen wir uns, dass zumindest P nicht mit der Klasse der
entscheidbaren Probleme übereinstimmt:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
149 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Abschließend überlegen wir uns, dass zumindest P nicht mit der Klasse der
entscheidbaren Probleme übereinstimmt:
Beispiel
Folgende entscheidbare(!) Sprache gehört nicht zu P :
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
149 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Abschließend überlegen wir uns, dass zumindest P nicht mit der Klasse der
entscheidbaren Probleme übereinstimmt:
Beispiel
Folgende entscheidbare(!) Sprache gehört nicht zu P :
Lexp := { c(M) : M akzeptiert c(M) in ≤ 2|c(M)| Schritten }
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
149 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Abschließend überlegen wir uns, dass zumindest P nicht mit der Klasse der
entscheidbaren Probleme übereinstimmt:
Beispiel
Folgende entscheidbare(!) Sprache gehört nicht zu P :
Lexp := { c(M) : M akzeptiert c(M) in ≤ 2|c(M)| Schritten }
P ist unter Komplementbildung abgeschlossen (warum?).
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
149 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Abschließend überlegen wir uns, dass zumindest P nicht mit der Klasse der
entscheidbaren Probleme übereinstimmt:
Beispiel
Folgende entscheidbare(!) Sprache gehört nicht zu P :
Lexp := { c(M) : M akzeptiert c(M) in ≤ 2|c(M)| Schritten }
P ist unter Komplementbildung abgeschlossen (warum?). Die Annahme
Lexp ∈ P impliziert dann Lexp ∈ P .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
149 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Abschließend überlegen wir uns, dass zumindest P nicht mit der Klasse der
entscheidbaren Probleme übereinstimmt:
Beispiel
Folgende entscheidbare(!) Sprache gehört nicht zu P :
Lexp := { c(M) : M akzeptiert c(M) in ≤ 2|c(M)| Schritten }
P ist unter Komplementbildung abgeschlossen (warum?). Die Annahme
Lexp ∈ P impliziert dann Lexp ∈ P . Wähle eine TM M̄ mit L(M̄) = Lexp
und mit einem Polynom p̄ als Zeitkomplexität.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
149 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Abschließend überlegen wir uns, dass zumindest P nicht mit der Klasse der
entscheidbaren Probleme übereinstimmt:
Beispiel
Folgende entscheidbare(!) Sprache gehört nicht zu P :
Lexp := { c(M) : M akzeptiert c(M) in ≤ 2|c(M)| Schritten }
P ist unter Komplementbildung abgeschlossen (warum?). Die Annahme
Lexp ∈ P impliziert dann Lexp ∈ P . Wähle eine TM M̄ mit L(M̄) = Lexp
und mit einem Polynom p̄ als Zeitkomplexität. Wähle n0 ∈ N mit
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
149 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Abschließend überlegen wir uns, dass zumindest P nicht mit der Klasse der
entscheidbaren Probleme übereinstimmt:
Beispiel
Folgende entscheidbare(!) Sprache gehört nicht zu P :
Lexp := { c(M) : M akzeptiert c(M) in ≤ 2|c(M)| Schritten }
P ist unter Komplementbildung abgeschlossen (warum?). Die Annahme
Lexp ∈ P impliziert dann Lexp ∈ P . Wähle eine TM M̄ mit L(M̄) = Lexp
und mit einem Polynom p̄ als Zeitkomplexität. Wähle n0 ∈ N mit
p̄(n) < 2n für alle n ≥ n0 , und
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
149 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Abschließend überlegen wir uns, dass zumindest P nicht mit der Klasse der
entscheidbaren Probleme übereinstimmt:
Beispiel
Folgende entscheidbare(!) Sprache gehört nicht zu P :
Lexp := { c(M) : M akzeptiert c(M) in ≤ 2|c(M)| Schritten }
P ist unter Komplementbildung abgeschlossen (warum?). Die Annahme
Lexp ∈ P impliziert dann Lexp ∈ P . Wähle eine TM M̄ mit L(M̄) = Lexp
und mit einem Polynom p̄ als Zeitkomplexität. Wähle n0 ∈ N mit
p̄(n) < 2n für alle n ≥ n0 , und
|c(M̄)| ≥ n0
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
149 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Abschließend überlegen wir uns, dass zumindest P nicht mit der Klasse der
entscheidbaren Probleme übereinstimmt:
Beispiel
Folgende entscheidbare(!) Sprache gehört nicht zu P :
Lexp := { c(M) : M akzeptiert c(M) in ≤ 2|c(M)| Schritten }
P ist unter Komplementbildung abgeschlossen (warum?). Die Annahme
Lexp ∈ P impliziert dann Lexp ∈ P . Wähle eine TM M̄ mit L(M̄) = Lexp
und mit einem Polynom p̄ als Zeitkomplexität. Wähle n0 ∈ N mit
p̄(n) < 2n für alle n ≥ n0 , und
|c(M̄)| ≥ n0 (ggf. Zustände zu M̄ hinzufügen, ändert p̄ nicht)
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
149 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Abschließend überlegen wir uns, dass zumindest P nicht mit der Klasse der
entscheidbaren Probleme übereinstimmt:
Beispiel
Folgende entscheidbare(!) Sprache gehört nicht zu P :
Lexp := { c(M) : M akzeptiert c(M) in ≤ 2|c(M)| Schritten }
P ist unter Komplementbildung abgeschlossen (warum?). Die Annahme
Lexp ∈ P impliziert dann Lexp ∈ P . Wähle eine TM M̄ mit L(M̄) = Lexp
und mit einem Polynom p̄ als Zeitkomplexität. Wähle n0 ∈ N mit
p̄(n) < 2n für alle n ≥ n0 , und
|c(M̄)| ≥ n0 (ggf. Zustände zu M̄ hinzufügen, ändert p̄ nicht)
Falls c(M̄) ∈ Lexp , wird c(M̄) von M̄ in höchstens p̄(|c(M̄)|) < 2|c(M̄)|
Schritten akzeptiert, d.h., c(M̄) ∈ Lexp , .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
149 / 236
Komplexität von Algorithmen
8.2 Die Komplexitätsklassen P und NP
Abschließend überlegen wir uns, dass zumindest P nicht mit der Klasse der
entscheidbaren Probleme übereinstimmt:
Beispiel
Folgende entscheidbare(!) Sprache gehört nicht zu P :
Lexp := { c(M) : M akzeptiert c(M) in ≤ 2|c(M)| Schritten }
P ist unter Komplementbildung abgeschlossen (warum?). Die Annahme
Lexp ∈ P impliziert dann Lexp ∈ P . Wähle eine TM M̄ mit L(M̄) = Lexp
und mit einem Polynom p̄ als Zeitkomplexität. Wähle n0 ∈ N mit
p̄(n) < 2n für alle n ≥ n0 , und
|c(M̄)| ≥ n0 (ggf. Zustände zu M̄ hinzufügen, ändert p̄ nicht)
Falls c(M̄) ∈ Lexp , wird c(M̄) von M̄ in höchstens p̄(|c(M̄)|) < 2|c(M̄)|
Schritten akzeptiert, d.h., c(M̄) ∈ Lexp , .
Falls c(M̄) ∈ Lexp , wird c(M̄) von M̄ in höchstens 2|c(M̄)| Schritten
akzeptiert, also c(M̄) ∈ L(M̄) = Lexp , .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
149 / 236
Komplexität von Algorithmen
8.3 Die Klasse FP von Berechnungsproblemen
8.3 Berechnungsprobleme und Reduzierbarkeit
Bisher hatten wir die Zeitkomplexität von E-Problemen betrachtet.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
150 / 236
Komplexität von Algorithmen
8.3 Die Klasse FP von Berechnungsproblemen
8.3 Berechnungsprobleme und Reduzierbarkeit
Bisher hatten wir die Zeitkomplexität von E-Problemen betrachtet. Um
verschiedene E-Probleme miteinander vergleichen, genauer, sie aufeinander
reduzieren, zu können, müssen wir auch die Zeitkomplexität von
B-Problemen betrachten.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
150 / 236
Komplexität von Algorithmen
8.3 Die Klasse FP von Berechnungsproblemen
8.3 Berechnungsprobleme und Reduzierbarkeit
Bisher hatten wir die Zeitkomplexität von E-Problemen betrachtet. Um
verschiedene E-Probleme miteinander vergleichen, genauer, sie aufeinander
reduzieren, zu können, müssen wir auch die Zeitkomplexität von
B-Problemen betrachten.
Beispiel
Unser Algorithmus zur 2-Färbung von Graphen (falls eine solche existiert)
bildet den Code eines Graphen auf den Code einer 2-Färbung ab, bzw. auf
die codierte Nachricht, dass keine solche Färbung existiert.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
150 / 236
Komplexität von Algorithmen
8.3 Die Klasse FP von Berechnungsproblemen
8.3 Berechnungsprobleme und Reduzierbarkeit
Bisher hatten wir die Zeitkomplexität von E-Problemen betrachtet. Um
verschiedene E-Probleme miteinander vergleichen, genauer, sie aufeinander
reduzieren, zu können, müssen wir auch die Zeitkomplexität von
B-Problemen betrachten.
Beispiel
Unser Algorithmus zur 2-Färbung von Graphen (falls eine solche existiert)
bildet den Code eines Graphen auf den Code einer 2-Färbung ab, bzw. auf
die codierte Nachricht, dass keine solche Färbung existiert.
Definition
FP ist die Klasse aller Funktionen Σ∗ f Γ∗ , für die eine dTM M und
ein Polynom p existieren, so dass f von M berechnet wird und die
Berechnung von f (w ) ∈ Γ∗ höchstens p(|w |) Schritte benötigt.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
150 / 236
Komplexität von Algorithmen
8.3 Die Klasse FP von Berechnungsproblemen
Beispiel (Starke Komponenten)
Eingabe: gerichteter Graph G = hV , E i
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
151 / 236
Komplexität von Algorithmen
8.3 Die Klasse FP von Berechnungsproblemen
Beispiel (Starke Komponenten)
Eingabe: gerichteter Graph G = hV , E i
Aufgabe: die maximalen Mengen wechselseitig durch gerichtete Wege
miteinander verbundener Knoten (=”starke Komponenten”) berechnen
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
151 / 236
Komplexität von Algorithmen
8.3 Die Klasse FP von Berechnungsproblemen
Beispiel (Starke Komponenten)
Eingabe: gerichteter Graph G = hV , E i
Aufgabe: die maximalen Mengen wechselseitig durch gerichtete Wege
miteinander verbundener Knoten (=”starke Komponenten”) berechnen
1:
2:
{Initialisierung}
i := 0
{ i : der Komponentenzähler}
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
151 / 236
Komplexität von Algorithmen
8.3 Die Klasse FP von Berechnungsproblemen
Beispiel (Starke Komponenten)
Eingabe: gerichteter Graph G = hV , E i
Aufgabe: die maximalen Mengen wechselseitig durch gerichtete Wege
miteinander verbundener Knoten (=”starke Komponenten”) berechnen
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
{Initialisierung}
i := 0
{ i : der Komponentenzähler}
{Rekursionsschritt}
while V 6= ∅ do
wähle v ∈ V ; V := V − {v } ; Ki := {v } { Ki : die neu zu startende Komponente}
for alle Knoten w ∈ V do
if gerWeg(v , w ) und gerWeg(w , v ) then
Ki := Ki + {w } ; V := V − {w }
end if
end for
i := i + 1
end while
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
151 / 236
Komplexität von Algorithmen
8.3 Die Klasse FP von Berechnungsproblemen
Beispiel (Starke Komponenten)
Eingabe: gerichteter Graph G = hV , E i
Aufgabe: die maximalen Mengen wechselseitig durch gerichtete Wege
miteinander verbundener Knoten (=”starke Komponenten”) berechnen
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
{Initialisierung}
i := 0
{ i : der Komponentenzähler}
{Rekursionsschritt}
while V 6= ∅ do
wähle v ∈ V ; V := V − {v } ; Ki := {v } { Ki : die neu zu startende Komponente}
for alle Knoten w ∈ V do
if gerWeg(v , w ) und gerWeg(w , v ) then
Ki := Ki + {w } ; V := V − {w }
end if
end for
i := i + 1
end while
Im Wesentlichen wird der Algorithmus für gerichteten Weg mit Laufzeit
O(n + k) in der maximal n -mal zu durchlaufenden FOR-Schleife zweimal
aufgerufen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
151 / 236
Komplexität von Algorithmen
8.3 Die Klasse FP von Berechnungsproblemen
Beispiel (Starke Komponenten)
Eingabe: gerichteter Graph G = hV , E i
Aufgabe: die maximalen Mengen wechselseitig durch gerichtete Wege
miteinander verbundener Knoten (=”starke Komponenten”) berechnen
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
{Initialisierung}
i := 0
{ i : der Komponentenzähler}
{Rekursionsschritt}
while V 6= ∅ do
wähle v ∈ V ; V := V − {v } ; Ki := {v } { Ki : die neu zu startende Komponente}
for alle Knoten w ∈ V do
if gerWeg(v , w ) und gerWeg(w , v ) then
Ki := Ki + {w } ; V := V − {w }
end if
end for
i := i + 1
end while
Im Wesentlichen wird der Algorithmus für gerichteten Weg mit Laufzeit
O(n + k) in der maximal n -mal zu durchlaufenden FOR-Schleife zweimal
aufgerufen. Da die WHILE-Schleife auch maximal n -mal durchlaufen wird,
ergibt sich mit Adjazenzlisten eine Laufzeit von O(n2 (n + k)) , und mit
Adjazenzmatrizen von O(n4 ) .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
151 / 236
Komplexität von Algorithmen
8.3 Die Klasse FP von Berechnungsproblemen
Beispiel
b
a
c
hat die starken Komponenten
e
d
f
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
152 / 236
Komplexität von Algorithmen
8.3 Die Klasse FP von Berechnungsproblemen
Beispiel
b
{a,b,c}
a
c
hat die starken Komponenten
e
d
f
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
152 / 236
Komplexität von Algorithmen
8.3 Die Klasse FP von Berechnungsproblemen
Beispiel
b
{a,b,c}
a
c
hat die starken Komponenten
{d,e}
e
d
f
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
152 / 236
Komplexität von Algorithmen
8.3 Die Klasse FP von Berechnungsproblemen
Beispiel
b
{a,b,c}
a
c
hat die starken Komponenten
{d,e}
e
d
{f}
f
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
152 / 236
Komplexität von Algorithmen
8.3 Die Klasse FP von Berechnungsproblemen
Beispiel
b
{a,b,c}
a
c
hat die starken Komponenten
{d,e}
e
d
{f}
f
Die starken Komponenten von G bilden die Knoten eines Graphen Ḡ :
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
152 / 236
Komplexität von Algorithmen
8.3 Die Klasse FP von Berechnungsproblemen
Beispiel
b
{a,b,c}
a
c
hat die starken Komponenten
{d,e}
e
d
{f}
f
Die starken Komponenten von G bilden die Knoten eines Graphen Ḡ :
dabei ist hK , K 0 i genau dann eine Kante von Ḡ , wenn eine G -Kante von
einem K -Knoten zu einem K 0 -Knoten existiert.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
152 / 236
Komplexität von Algorithmen
8.3 Die Klasse FP von Berechnungsproblemen
Beispiel
b
{a,b,c}
a
c
hat die starken Komponenten
{d,e}
e
d
{f}
f
Die starken Komponenten von G bilden die Knoten eines Graphen Ḡ :
dabei ist hK , K 0 i genau dann eine Kante von Ḡ , wenn eine G -Kante von
einem K -Knoten zu einem K 0 -Knoten existiert. Konstruktionsbedingt ist
Ḡ azyklisch, also topologisch sortierbar.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
152 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
8.4 FP-Reduzierbarkeit
Definition
Eine Sprache L ⊆ Σ∗ ist auf eine Sprache K ⊆ Γ∗ FP-reduzierbar,
Notation L / K , wenn eine Funktion Σ∗ f Γ∗ in FP existiert mit
w ∈L
Jürgen Koslowski (TU-BS)
gdw f (w ) ∈ K
Theoretische Informatik 2
SS 2015
153 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
8.4 FP-Reduzierbarkeit
Definition
Eine Sprache L ⊆ Σ∗ ist auf eine Sprache K ⊆ Γ∗ FP-reduzierbar,
Notation L / K , wenn eine Funktion Σ∗ f Γ∗ in FP existiert mit
w ∈L
gdw f (w ) ∈ K
Die Einschränkung auf Funktionen aus FP ist wichtig, denn andernfalls
wären alle entscheidbaren Sprachen wechselseitig aufeinander reduzierbar:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
153 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
8.4 FP-Reduzierbarkeit
Definition
Eine Sprache L ⊆ Σ∗ ist auf eine Sprache K ⊆ Γ∗ FP-reduzierbar,
Notation L / K , wenn eine Funktion Σ∗ f Γ∗ in FP existiert mit
w ∈L
gdw f (w ) ∈ K
Die Einschränkung auf Funktionen aus FP ist wichtig, denn andernfalls
wären alle entscheidbaren Sprachen wechselseitig aufeinander reduzierbar:
für echte Teilmengen L ⊆ Σ∗ und K ⊆ Γ∗ wähle u ∈ K und ū ∈ Γ∗ − K
und definiere Σ∗ f Γ∗ durch
(
u falls w ∈ L
f (w ) =
ū falls w ∈
/L
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
153 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
8.4 FP-Reduzierbarkeit
Definition
Eine Sprache L ⊆ Σ∗ ist auf eine Sprache K ⊆ Γ∗ FP-reduzierbar,
Notation L / K , wenn eine Funktion Σ∗ f Γ∗ in FP existiert mit
w ∈L
gdw f (w ) ∈ K
Die Einschränkung auf Funktionen aus FP ist wichtig, denn andernfalls
wären alle entscheidbaren Sprachen wechselseitig aufeinander reduzierbar:
für echte Teilmengen L ⊆ Σ∗ und K ⊆ Γ∗ wähle u ∈ K und ū ∈ Γ∗ − K
und definiere Σ∗ f Γ∗ durch
(
u falls w ∈ L
f (w ) =
ū falls w ∈
/L
Dann gilt w ∈ L gdw f (w ) ∈ K , aber die “Reduktion” benötigt soviel Zeit
wie die Entscheidung, ob w ∈ L gilt.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
153 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Die Relation / wird als Hauptwerkzeug zur Strukturierung der Klasse E
aller Entscheidungsprobleme dienen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
154 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Die Relation / wird als Hauptwerkzeug zur Strukturierung der Klasse E
aller Entscheidungsprobleme dienen. Informell bedeutet L / K , dass L
höchstens so schwierig zu lösen ist wie K .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
154 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Die Relation / wird als Hauptwerkzeug zur Strukturierung der Klasse E
aller Entscheidungsprobleme dienen. Informell bedeutet L / K , dass L
höchstens so schwierig zu lösen ist wie K .
Da FP unter Komposition abgeschossen ist und alle Identitätsfunktionen
enthält, folgen Reflexivität und Transitivität der Relation / .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
154 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Die Relation / wird als Hauptwerkzeug zur Strukturierung der Klasse E
aller Entscheidungsprobleme dienen. Informell bedeutet L / K , dass L
höchstens so schwierig zu lösen ist wie K .
Da FP unter Komposition abgeschossen ist und alle Identitätsfunktionen
enthält, folgen Reflexivität und Transitivität der Relation / .
Andererseits werden wir bald sehen, dass / nicht antisymmetrisch ist.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
154 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Die Relation / wird als Hauptwerkzeug zur Strukturierung der Klasse E
aller Entscheidungsprobleme dienen. Informell bedeutet L / K , dass L
höchstens so schwierig zu lösen ist wie K .
Da FP unter Komposition abgeschossen ist und alle Identitätsfunktionen
enthält, folgen Reflexivität und Transitivität der Relation / .
Andererseits werden wir bald sehen, dass / nicht antisymmetrisch ist. Es ist
also keine Ordnungsrelation im strengen Sinne, aber zumindest noch eine
Quasi-Ordnung auf der Klasse der Entscheidungsprobleme, bzw. eine
Ordnung den /- Äquivalenzklassen, d.h., auf den Klassen gleich schwieriger
Probleme
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
154 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Die Relation / wird als Hauptwerkzeug zur Strukturierung der Klasse E
aller Entscheidungsprobleme dienen. Informell bedeutet L / K , dass L
höchstens so schwierig zu lösen ist wie K .
Da FP unter Komposition abgeschossen ist und alle Identitätsfunktionen
enthält, folgen Reflexivität und Transitivität der Relation / .
Andererseits werden wir bald sehen, dass / nicht antisymmetrisch ist. Es ist
also keine Ordnungsrelation im strengen Sinne, aber zumindest noch eine
Quasi-Ordnung auf der Klasse der Entscheidungsprobleme, bzw. eine
Ordnung den /- Äquivalenzklassen, d.h., auf den Klassen gleich schwieriger
Probleme (d.h., L / M und M / L ).
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
154 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Die Relation / wird als Hauptwerkzeug zur Strukturierung der Klasse E
aller Entscheidungsprobleme dienen. Informell bedeutet L / K , dass L
höchstens so schwierig zu lösen ist wie K .
Da FP unter Komposition abgeschossen ist und alle Identitätsfunktionen
enthält, folgen Reflexivität und Transitivität der Relation / .
Andererseits werden wir bald sehen, dass / nicht antisymmetrisch ist. Es ist
also keine Ordnungsrelation im strengen Sinne, aber zumindest noch eine
Quasi-Ordnung auf der Klasse der Entscheidungsprobleme, bzw. eine
Ordnung den /- Äquivalenzklassen, d.h., auf den Klassen gleich schwieriger
Probleme (d.h., L / M und M / L ).
Zur besseren Orientierung erwähnen wir bereits jetzt, dass die oberen
/-Schranken der Klasse NP , d.h., die Probleme, die mindestens so
schwierig wie jedes NP-Problem sind, NP-hart heißen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
154 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Die Relation / wird als Hauptwerkzeug zur Strukturierung der Klasse E
aller Entscheidungsprobleme dienen. Informell bedeutet L / K , dass L
höchstens so schwierig zu lösen ist wie K .
Da FP unter Komposition abgeschossen ist und alle Identitätsfunktionen
enthält, folgen Reflexivität und Transitivität der Relation / .
Andererseits werden wir bald sehen, dass / nicht antisymmetrisch ist. Es ist
also keine Ordnungsrelation im strengen Sinne, aber zumindest noch eine
Quasi-Ordnung auf der Klasse der Entscheidungsprobleme, bzw. eine
Ordnung den /- Äquivalenzklassen, d.h., auf den Klassen gleich schwieriger
Probleme (d.h., L / M und M / L ).
Zur besseren Orientierung erwähnen wir bereits jetzt, dass die oberen
/-Schranken der Klasse NP , d.h., die Probleme, die mindestens so
schwierig wie jedes NP-Problem sind, NP-hart heißen. Schließlich
bezeichnet man die NP-harten Probleme innerhalb der Klasse NP , also
die schwierigsten NP-Probleme, als NP-vollständig.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
154 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Beispiel (Das E-Problem Kanten-2-Färbbarkeit)
Eingabe: ungerichtete Graphen
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
155 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Beispiel (Das E-Problem Kanten-2-Färbbarkeit)
Eingabe: ungerichtete Graphen
zu entscheiden: können die Kanten derart mit 2 Farben gefärbt werden,
dass Kanten mit gemeinsamem Endpunkt verschieden gefärbt sind.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
155 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Beispiel (Das E-Problem Kanten-2-Färbbarkeit)
Eingabe: ungerichtete Graphen
zu entscheiden: können die Kanten derart mit 2 Farben gefärbt werden,
dass Kanten mit gemeinsamem Endpunkt verschieden gefärbt sind.
Wir zeigen Kanten-2-Färbbarkeit / 2-Färbbarkeit.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
155 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Beispiel (Das E-Problem Kanten-2-Färbbarkeit)
Eingabe: ungerichtete Graphen
zu entscheiden: können die Kanten derart mit 2 Farben gefärbt werden,
dass Kanten mit gemeinsamem Endpunkt verschieden gefärbt sind.
Wir zeigen Kanten-2-Färbbarkeit / 2-Färbbarkeit.
Idee: Die Kanten von G als Knoten eines sog. Kantengraphen GK
interpretieren.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
155 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Beispiel (Das E-Problem Kanten-2-Färbbarkeit)
Eingabe: ungerichtete Graphen
zu entscheiden: können die Kanten derart mit 2 Farben gefärbt werden,
dass Kanten mit gemeinsamem Endpunkt verschieden gefärbt sind.
Wir zeigen Kanten-2-Färbbarkeit / 2-Färbbarkeit.
Idee: Die Kanten von G als Knoten eines sog. Kantengraphen GK
interpretieren. Formal: GK := hVK , EK i mit
VK := E
und {e, e 0 } ∈ EK
Jürgen Koslowski (TU-BS)
gdw
Theoretische Informatik 2
e ∩ e 0 6= ∅ ∧ e 6= e 0
SS 2015
155 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Beispiel (Das E-Problem Kanten-2-Färbbarkeit)
Eingabe: ungerichtete Graphen
zu entscheiden: können die Kanten derart mit 2 Farben gefärbt werden,
dass Kanten mit gemeinsamem Endpunkt verschieden gefärbt sind.
Wir zeigen Kanten-2-Färbbarkeit / 2-Färbbarkeit.
Idee: Die Kanten von G als Knoten eines sog. Kantengraphen GK
interpretieren. Formal: GK := hVK , EK i mit
VK := E
und {e, e 0 } ∈ EK
e ∩ e 0 6= ∅ ∧ e 6= e 0
gdw
Etwa
{0, 2}
2
G :
Jürgen Koslowski (TU-BS)
0
1
4
3
7→
GK :
Theoretische Informatik 2
{1, 2}
{0, 1}
{1, 3}
SS 2015
155 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Beispiel (Fortsetzung)
Korrektheit der Reduktion G 7→ GK : wir zeigen
G ist genau dann Kanten-2-färbbar wenn GK 2-färbbar ist
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
156 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Beispiel (Fortsetzung)
Korrektheit der Reduktion G 7→ GK : wir zeigen
G ist genau dann Kanten-2-färbbar wenn GK 2-färbbar ist
Für eine Zerlegung der Kantenmenge E = R + B gilt.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
156 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Beispiel (Fortsetzung)
Korrektheit der Reduktion G 7→ GK : wir zeigen
G ist genau dann Kanten-2-färbbar wenn GK 2-färbbar ist
Für eine Zerlegung der Kantenmenge E = R + B gilt.
R + B = E ist eine Kanten-2-Färbung von G
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
156 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Beispiel (Fortsetzung)
Korrektheit der Reduktion G 7→ GK : wir zeigen
G ist genau dann Kanten-2-färbbar wenn GK 2-färbbar ist
Für eine Zerlegung der Kantenmenge E = R + B gilt.
R + B = E ist eine Kanten-2-Färbung von G
⇔ wenn {u, v }, {x, y } einfarbig, dann {u, v } ∩ {x, y } = ∅
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
156 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Beispiel (Fortsetzung)
Korrektheit der Reduktion G 7→ GK : wir zeigen
G ist genau dann Kanten-2-färbbar wenn GK 2-färbbar ist
Für eine Zerlegung der Kantenmenge E = R + B gilt.
R + B = E ist eine Kanten-2-Färbung von G
⇔ wenn {u, v }, {x, y } einfarbig, dann {u, v } ∩ {x, y } = ∅
⇔ wenn {u, v }, {x, y } einfarbig, dann ist dies keine GK -Kante
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
156 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Beispiel (Fortsetzung)
Korrektheit der Reduktion G 7→ GK : wir zeigen
G ist genau dann Kanten-2-färbbar wenn GK 2-färbbar ist
Für eine Zerlegung der Kantenmenge E = R + B gilt.
R + B = E ist eine Kanten-2-Färbung von G
⇔ wenn {u, v }, {x, y } einfarbig, dann {u, v } ∩ {x, y } = ∅
⇔ wenn {u, v }, {x, y } einfarbig, dann ist dies keine GK -Kante
⇔ R + B = E ist eine 2-Färbung von GK
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
156 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Beispiel (Fortsetzung)
Korrektheit der Reduktion G 7→ GK : wir zeigen
G ist genau dann Kanten-2-färbbar wenn GK 2-färbbar ist
Für eine Zerlegung der Kantenmenge E = R + B gilt.
R + B = E ist eine Kanten-2-Färbung von G
⇔ wenn {u, v }, {x, y } einfarbig, dann {u, v } ∩ {x, y } = ∅
⇔ wenn {u, v }, {x, y } einfarbig, dann ist dies keine GK -Kante
⇔ R + B = E ist eine 2-Färbung von GK
Laufzeit: Die Adjazenzmatrizen A und AK der ungerichteten Graphen G
bzw. GK sind symmetrisch, also durch die Einträge im oberen Dreieck
bestimmt.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
156 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Beispiel (Fortsetzung)
Korrektheit der Reduktion G 7→ GK : wir zeigen
G ist genau dann Kanten-2-färbbar wenn GK 2-färbbar ist
Für eine Zerlegung der Kantenmenge E = R + B gilt.
R + B = E ist eine Kanten-2-Färbung von G
⇔ wenn {u, v }, {x, y } einfarbig, dann {u, v } ∩ {x, y } = ∅
⇔ wenn {u, v }, {x, y } einfarbig, dann ist dies keine GK -Kante
⇔ R + B = E ist eine 2-Färbung von GK
Laufzeit: Die Adjazenzmatrizen A und AK der ungerichteten Graphen G
bzw. GK sind symmetrisch, also durch die Einträge im oberen Dreieck
bestimmt. Mit n := |V | ergibt sich in Laufzeit O(n2 )
X
|VK | = |E | =
Ai,j
i<j<n
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
156 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Beispiel (Fortsetzung)
Wir verwenden die Positionen hi, ji mit i < j < n der Einsen in A als
Knoten des Kantengraphen; diese seien lexikographisch geordnet.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
157 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Beispiel (Fortsetzung)
Wir verwenden die Positionen hi, ji mit i < j < n der Einsen in A als
Knoten des Kantengraphen; diese seien lexikographisch geordnet.
Die Kanten von GK entsprechen Paaren von Einsen in derselben Zeile oder
Spalte im oberen Dreieck von A . Genauer, für i < j < l < n gilt:
Ai,j = Ai,l = 1
impliziert hi, ji
hi, li
in GK
Ai,l = Aj,l = 1
impliziert hi, li
hj, li
in GK
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
157 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Beispiel (Fortsetzung)
Wir verwenden die Positionen hi, ji mit i < j < n der Einsen in A als
Knoten des Kantengraphen; diese seien lexikographisch geordnet.
Die Kanten von GK entsprechen Paaren von Einsen in derselben Zeile oder
Spalte im oberen Dreieck von A . Genauer, für i < j < l < n gilt:
Ai,j = Ai,l = 1
impliziert hi, ji
hi, li
in GK
Ai,l = Aj,l = 1
impliziert hi, li
hj, li
in GK
In jedem Fall sind drei geschachtelte Schleifen über i < n , über i < j < n
und über i < j < l < n zu durchlaufen, was eine Laufzeit von O(n3 )
liefert. Allerdings erfordert die Initialisierung der Matrix AK mit Nullen
bereits O(n4 ) Schritte.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
157 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Satz
Aus L / K ∈ P (NP) folgt L ∈ P (NP) , d.h., bzgl. / ist P ( NP ) ein
unterer Abschnitt der Klasse E aller E-Probleme.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
158 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Satz
Aus L / K ∈ P (NP) folgt L ∈ P (NP) , d.h., bzgl. / ist P ( NP ) ein
unterer Abschnitt der Klasse E aller E-Probleme.
Beweis.
Wähle eine FP-Reduktion L ⊆ Σ∗ f Γ∗ ⊇ K , die von einer dTM Mf
berechnet wird, und eine d/nTM MK mit L(MK ) = K .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
158 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Satz
Aus L / K ∈ P (NP) folgt L ∈ P (NP) , d.h., bzgl. / ist P ( NP ) ein
unterer Abschnitt der Klasse E aller E-Probleme.
Beweis.
Wähle eine FP-Reduktion L ⊆ Σ∗ f Γ∗ ⊇ K , die von einer dTM Mf
berechnet wird, und eine d/nTM MK mit L(MK ) = K . Diese Maschinen
mögen polynomiale Zeitkomplexität pf bzw. pK haben.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
158 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Satz
Aus L / K ∈ P (NP) folgt L ∈ P (NP) , d.h., bzgl. / ist P ( NP ) ein
unterer Abschnitt der Klasse E aller E-Probleme.
Beweis.
Wähle eine FP-Reduktion L ⊆ Σ∗ f Γ∗ ⊇ K , die von einer dTM Mf
berechnet wird, und eine d/nTM MK mit L(MK ) = K . Diese Maschinen
mögen polynomiale Zeitkomplexität pf bzw. pK haben. Die
Hintereinanderschaltung ML von Mf und MK erfüllt
w ∈ L(ML )
Jürgen Koslowski (TU-BS)
gdw f (w ) ∈ L(MK ) = K
Theoretische Informatik 2
gdw
w ∈L
SS 2015
158 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Satz
Aus L / K ∈ P (NP) folgt L ∈ P (NP) , d.h., bzgl. / ist P ( NP ) ein
unterer Abschnitt der Klasse E aller E-Probleme.
Beweis.
Wähle eine FP-Reduktion L ⊆ Σ∗ f Γ∗ ⊇ K , die von einer dTM Mf
berechnet wird, und eine d/nTM MK mit L(MK ) = K . Diese Maschinen
mögen polynomiale Zeitkomplexität pf bzw. pK haben. Die
Hintereinanderschaltung ML von Mf und MK erfüllt
w ∈ L(ML )
gdw f (w ) ∈ L(MK ) = K
gdw
w ∈L
Da das Schreiben der Ausgabe f (w ) mindestens |f (w )| Schritte erfordert,
ist die Laufzeit von ML auf Eingabe w durch pK (pf (|w |)) beschränkt,
also hat ML ebenfalls polynomiale Zeitkomplexität.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
158 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Satz
Aus L / K ∈ P (NP) folgt L ∈ P (NP) , d.h., bzgl. / ist P ( NP ) ein
unterer Abschnitt der Klasse E aller E-Probleme.
Beweis.
Wähle eine FP-Reduktion L ⊆ Σ∗ f Γ∗ ⊇ K , die von einer dTM Mf
berechnet wird, und eine d/nTM MK mit L(MK ) = K . Diese Maschinen
mögen polynomiale Zeitkomplexität pf bzw. pK haben. Die
Hintereinanderschaltung ML von Mf und MK erfüllt
w ∈ L(ML )
gdw f (w ) ∈ L(MK ) = K
gdw
w ∈L
Da das Schreiben der Ausgabe f (w ) mindestens |f (w )| Schritte erfordert,
ist die Laufzeit von ML auf Eingabe w durch pK (pf (|w |)) beschränkt,
also hat ML ebenfalls polynomiale Zeitkomplexität.
Die Zugehörigkeit zu P bzw. NP kann somit auch durch Reduktion auf
andere P bzw. NP-Probleme nachgewiesen werden.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
158 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
8.4.1 2-Sat ∈ P
Der Nachweis von 2-Sat ∈ P verwendet die Reduktion auf ein graphentheoretisches Problem, das aufgrund früherer Ergebnisse zu P gehört.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
159 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
8.4.1 2-Sat ∈ P
Der Nachweis von 2-Sat ∈ P verwendet die Reduktion auf ein graphentheoretisches Problem, das aufgrund früherer Ergebnisse zu P gehört.
In klassischer Logik haben wir die Implikation α ⇒ β als Abkürzung von
¬α ∨ β eingeführt.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
159 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
8.4.1 2-Sat ∈ P
Der Nachweis von 2-Sat ∈ P verwendet die Reduktion auf ein graphentheoretisches Problem, das aufgrund früherer Ergebnisse zu P gehört.
In klassischer Logik haben wir die Implikation α ⇒ β als Abkürzung von
¬α ∨ β eingeführt. Für eine Klausel α ∨ β gilt also
¬α ⇒ β ≡ α ∨ β ≡ ¬β ⇒ α
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
159 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
8.4.1 2-Sat ∈ P
Der Nachweis von 2-Sat ∈ P verwendet die Reduktion auf ein graphentheoretisches Problem, das aufgrund früherer Ergebnisse zu P gehört.
In klassischer Logik haben wir die Implikation α ⇒ β als Abkürzung von
¬α ∨ β eingeführt. Für eine Klausel α ∨ β gilt also
¬α ⇒ β ≡ α ∨ β ≡ ¬β ⇒ α
Das motiviert uns, 2-KNF Formeln ϕ in Implikationsgraphen G (ϕ) umzuformen, mit den Literalen aller auftretendende Variablen als Knoten und je
zwei gerichteten Kanten gemäß der obigen Implikationen, etwa
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
159 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
8.4.1 2-Sat ∈ P
Der Nachweis von 2-Sat ∈ P verwendet die Reduktion auf ein graphentheoretisches Problem, das aufgrund früherer Ergebnisse zu P gehört.
In klassischer Logik haben wir die Implikation α ⇒ β als Abkürzung von
¬α ∨ β eingeführt. Für eine Klausel α ∨ β gilt also
¬α ⇒ β ≡ α ∨ β ≡ ¬β ⇒ α
Das motiviert uns, 2-KNF Formeln ϕ in Implikationsgraphen G (ϕ) umzuformen, mit den Literalen aller auftretendende Variablen als Knoten und je
zwei gerichteten Kanten gemäß der obigen Implikationen, etwa
ϕ = (x ∨ y )
Jürgen Koslowski (TU-BS)
7→
Theoretische Informatik 2
G (ϕ) :
SS 2015
159 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
8.4.1 2-Sat ∈ P
Der Nachweis von 2-Sat ∈ P verwendet die Reduktion auf ein graphentheoretisches Problem, das aufgrund früherer Ergebnisse zu P gehört.
In klassischer Logik haben wir die Implikation α ⇒ β als Abkürzung von
¬α ∨ β eingeführt. Für eine Klausel α ∨ β gilt also
¬α ⇒ β ≡ α ∨ β ≡ ¬β ⇒ α
Das motiviert uns, 2-KNF Formeln ϕ in Implikationsgraphen G (ϕ) umzuformen, mit den Literalen aller auftretendende Variablen als Knoten und je
zwei gerichteten Kanten gemäß der obigen Implikationen, etwa
ϕ = (x ∨ y )
Jürgen Koslowski (TU-BS)
7→
Theoretische Informatik 2
G (ϕ) :
x
¬x
y
¬y
SS 2015
159 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
8.4.1 2-Sat ∈ P
Der Nachweis von 2-Sat ∈ P verwendet die Reduktion auf ein graphentheoretisches Problem, das aufgrund früherer Ergebnisse zu P gehört.
In klassischer Logik haben wir die Implikation α ⇒ β als Abkürzung von
¬α ∨ β eingeführt. Für eine Klausel α ∨ β gilt also
¬α ⇒ β ≡ α ∨ β ≡ ¬β ⇒ α
Das motiviert uns, 2-KNF Formeln ϕ in Implikationsgraphen G (ϕ) umzuformen, mit den Literalen aller auftretendende Variablen als Knoten und je
zwei gerichteten Kanten gemäß der obigen Implikationen, etwa
ϕ = (x ∨ y ) ∧ (¬x ∨ z)
Jürgen Koslowski (TU-BS)
7→
Theoretische Informatik 2
G (ϕ) :
x
¬x
y
¬y
SS 2015
159 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
8.4.1 2-Sat ∈ P
Der Nachweis von 2-Sat ∈ P verwendet die Reduktion auf ein graphentheoretisches Problem, das aufgrund früherer Ergebnisse zu P gehört.
In klassischer Logik haben wir die Implikation α ⇒ β als Abkürzung von
¬α ∨ β eingeführt. Für eine Klausel α ∨ β gilt also
¬α ⇒ β ≡ α ∨ β ≡ ¬β ⇒ α
Das motiviert uns, 2-KNF Formeln ϕ in Implikationsgraphen G (ϕ) umzuformen, mit den Literalen aller auftretendende Variablen als Knoten und je
zwei gerichteten Kanten gemäß der obigen Implikationen, etwa
ϕ = (x ∨ y ) ∧ (¬x ∨ z)
Jürgen Koslowski (TU-BS)
7→
Theoretische Informatik 2
G (ϕ) :
x
¬x
y
¬y
z
¬z
SS 2015
159 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
8.4.1 2-Sat ∈ P
Der Nachweis von 2-Sat ∈ P verwendet die Reduktion auf ein graphentheoretisches Problem, das aufgrund früherer Ergebnisse zu P gehört.
In klassischer Logik haben wir die Implikation α ⇒ β als Abkürzung von
¬α ∨ β eingeführt. Für eine Klausel α ∨ β gilt also
¬α ⇒ β ≡ α ∨ β ≡ ¬β ⇒ α
Das motiviert uns, 2-KNF Formeln ϕ in Implikationsgraphen G (ϕ) umzuformen, mit den Literalen aller auftretendende Variablen als Knoten und je
zwei gerichteten Kanten gemäß der obigen Implikationen, etwa
ϕ = (x ∨ y ) ∧ (¬x ∨ z) ∧ (¬z ∨ ¬y )
Jürgen Koslowski (TU-BS)
7→
Theoretische Informatik 2
G (ϕ) :
x
¬x
y
¬y
z
¬z
SS 2015
159 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
8.4.1 2-Sat ∈ P
Der Nachweis von 2-Sat ∈ P verwendet die Reduktion auf ein graphentheoretisches Problem, das aufgrund früherer Ergebnisse zu P gehört.
In klassischer Logik haben wir die Implikation α ⇒ β als Abkürzung von
¬α ∨ β eingeführt. Für eine Klausel α ∨ β gilt also
¬α ⇒ β ≡ α ∨ β ≡ ¬β ⇒ α
Das motiviert uns, 2-KNF Formeln ϕ in Implikationsgraphen G (ϕ) umzuformen, mit den Literalen aller auftretendende Variablen als Knoten und je
zwei gerichteten Kanten gemäß der obigen Implikationen, etwa
ϕ = (x ∨ y ) ∧ (¬x ∨ z) ∧ (¬z ∨ ¬y )
Jürgen Koslowski (TU-BS)
7→
Theoretische Informatik 2
G (ϕ) :
x
¬x
y
¬y
z
¬z
SS 2015
159 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Behauptung: ϕ ist erfüllbar gdw für jede Variable x die Literale x und
¬x in verschiedenen starken Komponenten von G (ϕ) liegen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
160 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Behauptung: ϕ ist erfüllbar gdw für jede Variable x die Literale x und
¬x in verschiedenen starken Komponenten von G (ϕ) liegen.
( ⇒ ) Wenn eine Belegung der Variablen existiert, die jeder Klausel (α ∨ β)
den Wert true zuordnet, muß insbesondere α oder β mit true belegt
sein.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
160 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Behauptung: ϕ ist erfüllbar gdw für jede Variable x die Literale x und
¬x in verschiedenen starken Komponenten von G (ϕ) liegen.
( ⇒ ) Wenn eine Belegung der Variablen existiert, die jeder Klausel (α ∨ β)
den Wert true zuordnet, muß insbesondere α oder β mit true belegt
sein. Damit hat G (ϕ) keine Kante von einem mit true zu einem mit
false belegten Literal.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
160 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Behauptung: ϕ ist erfüllbar gdw für jede Variable x die Literale x und
¬x in verschiedenen starken Komponenten von G (ϕ) liegen.
( ⇒ ) Wenn eine Belegung der Variablen existiert, die jeder Klausel (α ∨ β)
den Wert true zuordnet, muß insbesondere α oder β mit true belegt
sein. Damit hat G (ϕ) keine Kante von einem mit true zu einem mit
false belegten Literal. Da je zwei Knoten einer starken Komponente auf
einem gerichteten Kreis liegen, können somit die verschieden belegten
Literale x und ¬x nicht in derselben starken Komponente auftreten.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
160 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Behauptung: ϕ ist erfüllbar gdw für jede Variable x die Literale x und
¬x in verschiedenen starken Komponenten von G (ϕ) liegen.
( ⇒ ) Wenn eine Belegung der Variablen existiert, die jeder Klausel (α ∨ β)
den Wert true zuordnet, muß insbesondere α oder β mit true belegt
sein. Damit hat G (ϕ) keine Kante von einem mit true zu einem mit
false belegten Literal. Da je zwei Knoten einer starken Komponente auf
einem gerichteten Kreis liegen, können somit die verschieden belegten
Literale x und ¬x nicht in derselben starken Komponente auftreten.
( ⇐ ) Wähle eine topologische Sortierung ord des Graphen der starken
Komponenten [α] von G (ϕ) , α Literal, und setze
x = true
Jürgen Koslowski (TU-BS)
gdw
ord[¬x] < ord[x]
Theoretische Informatik 2
SS 2015
160 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Behauptung: ϕ ist erfüllbar gdw für jede Variable x die Literale x und
¬x in verschiedenen starken Komponenten von G (ϕ) liegen.
( ⇒ ) Wenn eine Belegung der Variablen existiert, die jeder Klausel (α ∨ β)
den Wert true zuordnet, muß insbesondere α oder β mit true belegt
sein. Damit hat G (ϕ) keine Kante von einem mit true zu einem mit
false belegten Literal. Da je zwei Knoten einer starken Komponente auf
einem gerichteten Kreis liegen, können somit die verschieden belegten
Literale x und ¬x nicht in derselben starken Komponente auftreten.
( ⇐ ) Wähle eine topologische Sortierung ord des Graphen der starken
Komponenten [α] von G (ϕ) , α Literal, und setze
x = true
gdw
ord[¬x] < ord[x]
Ist (α ∨ β) eine Klausel mit α = false , dann gilt wegen der Kanten
¬β ⇒ α und ¬α ⇒ β in G (ϕ)
ord[¬β] ≤ ord[α] < ord[¬α] ≤ ord[β]
und folglich β = true .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
160 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Auf welches Problem habe wir 2-Sat eigentlich reduziert?
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
161 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Auf welches Problem habe wir 2-Sat eigentlich reduziert?
Definition
SinvKomp hat als Eingabe einen gerichteten Graphen G = hV , E i und
eine selbstinverse Abbildung V f V ohne Fixpunkte.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
161 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Auf welches Problem habe wir 2-Sat eigentlich reduziert?
Definition
SinvKomp hat als Eingabe einen gerichteten Graphen G = hV , E i und
eine selbstinverse Abbildung V f V ohne Fixpunkte.
Zu entscheiden ist, ob für jedes u ∈ V die Knoten u und f (u) in
verschiedenen starken Komponenten von G liegen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
161 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Auf welches Problem habe wir 2-Sat eigentlich reduziert?
Definition
SinvKomp hat als Eingabe einen gerichteten Graphen G = hV , E i und
eine selbstinverse Abbildung V f V ohne Fixpunkte.
Zu entscheiden ist, ob für jedes u ∈ V die Knoten u und f (u) in
verschiedenen starken Komponenten von G liegen.
Offenbar gehört SinvKomp zu P , da die Berechnung der starken
Komponenten in polynomialer Zeitkomplexität erfolgen kann, wie auch die
Überprüfung, ob a und f (a) zu derselben starken Komponente gehören.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
161 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Auf welches Problem habe wir 2-Sat eigentlich reduziert?
Definition
SinvKomp hat als Eingabe einen gerichteten Graphen G = hV , E i und
eine selbstinverse Abbildung V f V ohne Fixpunkte.
Zu entscheiden ist, ob für jedes u ∈ V die Knoten u und f (u) in
verschiedenen starken Komponenten von G liegen.
Offenbar gehört SinvKomp zu P , da die Berechnung der starken
Komponenten in polynomialer Zeitkomplexität erfolgen kann, wie auch die
Überprüfung, ob a und f (a) zu derselben starken Komponente gehören.
Es bleibt nachzuweisen, dass unsere Reduktion ϕ 7→ G (ϕ) zu FP gehört.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
161 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Auf welches Problem habe wir 2-Sat eigentlich reduziert?
Definition
SinvKomp hat als Eingabe einen gerichteten Graphen G = hV , E i und
eine selbstinverse Abbildung V f V ohne Fixpunkte.
Zu entscheiden ist, ob für jedes u ∈ V die Knoten u und f (u) in
verschiedenen starken Komponenten von G liegen.
Offenbar gehört SinvKomp zu P , da die Berechnung der starken
Komponenten in polynomialer Zeitkomplexität erfolgen kann, wie auch die
Überprüfung, ob a und f (a) zu derselben starken Komponente gehören.
Es bleibt nachzuweisen, dass unsere Reduktion ϕ 7→ G (ϕ) zu FP gehört.
Als Maß m für die Größe der Eingabe ϕ bietet sich die Länge der Formel
an, ohne die Klammern bei Infix-Notation.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
161 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Auf welches Problem habe wir 2-Sat eigentlich reduziert?
Definition
SinvKomp hat als Eingabe einen gerichteten Graphen G = hV , E i und
eine selbstinverse Abbildung V f V ohne Fixpunkte.
Zu entscheiden ist, ob für jedes u ∈ V die Knoten u und f (u) in
verschiedenen starken Komponenten von G liegen.
Offenbar gehört SinvKomp zu P , da die Berechnung der starken
Komponenten in polynomialer Zeitkomplexität erfolgen kann, wie auch die
Überprüfung, ob a und f (a) zu derselben starken Komponente gehören.
Es bleibt nachzuweisen, dass unsere Reduktion ϕ 7→ G (ϕ) zu FP gehört.
Als Maß m für die Größe der Eingabe ϕ bietet sich die Länge der Formel
an, ohne die Klammern bei Infix-Notation. Die Ermittlung der Variablen in
ϕ und somit der Knoten von G (ϕ) erfordert lineare Zeit, ebenso wie das
Eintragen der zwei Kanten pro Klausel.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
161 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Beispiel
Die obige Formel ϕ = (x ∨ y ) ∧ (¬x ∨ z) ∧ (¬z ∨ ¬y ) ist erfüllbar, da sich
die positiven und negativen Varianten der Variablen x , y und z auf die
beiden starken Komponenten des zugehörigen Graphen G (ϕ) verteilen.
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
162 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Beispiel
Die obige Formel ϕ = (x ∨ y ) ∧ (¬x ∨ z) ∧ (¬z ∨ ¬y ) ist erfüllbar, da sich
die positiven und negativen Varianten der Variablen x , y und z auf die
beiden starken Komponenten des zugehörigen Graphen G (ϕ) verteilen. Die
Belegung x = z = true und y = false und ihre Negation liefern beide den
Wert true für ϕ .
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
162 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Beispiel
Die obige Formel ϕ = (x ∨ y ) ∧ (¬x ∨ z) ∧ (¬z ∨ ¬y ) ist erfüllbar, da sich
die positiven und negativen Varianten der Variablen x , y und z auf die
beiden starken Komponenten des zugehörigen Graphen G (ϕ) verteilen. Die
Belegung x = z = true und y = false und ihre Negation liefern beide den
Wert true für ϕ .
Andererseits ist ψ = (y ∨ x) ∧ (¬y ∨ z) ∧ (¬z ∨ x) ∧ (¬x ∨ ¬t) ∧ (t ∨ ¬x)
nicht erfüllbar, da G (ψ) nur eine starke Komponente besitzt:
Jürgen Koslowski (TU-BS)
Theoretische Informatik 2
SS 2015
162 / 236
Komplexität von Algorithmen
8.4 FP - Reduzierbarkeit
Beispiel
Die obige Formel ϕ = (x ∨ y ) �
Herunterladen