Vortrag 1 Grundbegriffe der Berechenbarkeitstheorie - Fakultät für ...
Vortrag 1 Grundbegriffe der Berechenbarkeitstheorie - Fakultät für ...
Vortrag 1 Grundbegriffe der Berechenbarkeitstheorie - Fakultät für ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>Vortrag</strong> 1<br />
<strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong><br />
Seminar Theor. Informatik (WS 2010/11) <strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong> 1 / 39
Übersicht<br />
In diesem einführenden <strong>Vortrag</strong> werden Grundlagen aus <strong>der</strong><br />
<strong>Berechenbarkeitstheorie</strong> kurz zusammengefasst, die bereits in <strong>der</strong><br />
Vorlesung “Einführung in die Theoretische Informatik” ausführlicher<br />
behandelt wurden und die Grundlage <strong>für</strong> die folgenden Vorträge sind.<br />
1 Der intuitive Algorithmenbegriff und die <strong>Grundbegriffe</strong> <strong>der</strong><br />
<strong>Berechenbarkeitstheorie</strong> (Berechenbarkeit, Entscheidbarkeit,<br />
Aufzählbarkeit)<br />
2 Formalisierung: Turingmaschinen und die Church-Turing-These<br />
3 Universelle Maschinen und universelle Funktionen<br />
4 Approximationen partiell berechenbarer Funktionen und aufzählbarer<br />
Mengen<br />
5 Das Rekursionstheorem (Fixpunktsatz)<br />
Seminar Theor. Informatik (WS 2010/11) <strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong> 2 / 39
Teil 1:<br />
<strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong><br />
Wir führen kurz die Begriffe <strong>der</strong> Berechenbarkeit, Entscheidbarkeit<br />
und Aufzählbarkeit ein.<br />
Dann betrachten wir die grundlegenden Beziehungen zwischen diesen<br />
Konzepten.<br />
Seminar Theor. Informatik (WS 2010/11) <strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong> 3 / 39
Algorithmen<br />
Ein Algorithmus o<strong>der</strong> eine Rechenvorschrift ist ein effektives Verfahren<br />
zur Transformation von Daten<br />
Bestimme den grössten gemeinsamen Teiler von x und y!<br />
o<strong>der</strong> Berechne die Summe von x und y!<br />
o<strong>der</strong> zur Überprüfung von Eigenschaften von Daten<br />
Ist x eine Primzahl?<br />
o<strong>der</strong> zur Generierung (möglicherweise unendlicher) Datenmengen<br />
Zähle alle Primzahlen auf!<br />
NB: Der Algorithmenbegriff ist kein formaler mathematischer Begriff. Eine<br />
mögliche Formalisierung liefert <strong>der</strong> Begriff <strong>der</strong> Turingmaschine.<br />
Seminar Theor. Informatik (WS 2010/11) <strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong> 4 / 39
Daten und Zahlen<br />
Hierbei sind Daten endliche Darstellungen mathematischer Objekte.<br />
Im Rahmen des Seminars werden die betrachteten Daten natürliche<br />
Zahlen (o<strong>der</strong> endliche Tupel natürlicher Zahlen) sein.<br />
Genauer: Nicht die Zahlen selbst son<strong>der</strong>n <strong>der</strong>en Unär-, o<strong>der</strong> Binäro<strong>der</strong><br />
Dezimaldarstellung.<br />
Die Arbeitsweise von Algorithmen hängt nämlich durchaus von <strong>der</strong><br />
gewählten Zahldarstellung ab (Beispiel: Addition).<br />
Da es aber Algorithmen zur wechselseitigen Überführung <strong>der</strong><br />
Zahldarstellung gibt, spielt <strong>für</strong> die Frage <strong>der</strong> im Folgenden<br />
betrachteten Berechenbarkeit (Entscheidbarkeit, Aufzählbarkeit) die<br />
gewählte Zahldarstellung keine Rolle.<br />
Seminar Theor. Informatik (WS 2010/11) <strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong> 5 / 39
Berechenbarkeit, Entscheidbarkeit und Aufzählbarkeit<br />
Ein Berechnungsverfahren <strong>für</strong> eine Funktion f : N n → N ist ein Algorithmus<br />
B, <strong>der</strong> bei Eingabe von ⃗x = (x 1 , . . . , x n ) ∈ N n den Wert f (⃗x) berechnet und<br />
ausgibt.<br />
f : N n → N heisst berechenbar, wenn es ein Berechnungsverfahren <strong>für</strong> f gibt.<br />
Ein Entscheidungsverfahren <strong>für</strong> eine (n-dim.) Menge A ⊆ N n ist ein<br />
Algorithmus E, <strong>der</strong> bei Eingabe von ⃗x = (x 1 , . . . , x n ) ∈ N n feststellt, ob ⃗x in<br />
A liegt (und entsprechend JA o<strong>der</strong> NEIN ausgibt).<br />
A ⊆ N n heisst entscheidbar, wenn es eine Entscheidungsverfahren <strong>für</strong> A gibt.<br />
Ein Aufzählungsverfahren <strong>für</strong> eine (n-dim.) Menge A ⊆ N n ist ein<br />
Algorithmus A, <strong>der</strong> (ohne Eingabe) die Elemente von A (in beliebiger<br />
Reihenfolge) ausgibt.<br />
A ⊆ N n heisst aufzählbar, wenn es ein Aufzählungsverfahren <strong>für</strong> A gibt.<br />
Seminar Theor. Informatik (WS 2010/11) <strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong> 6 / 39
Partielle Berechenbarkeit<br />
Eine partielle (n-st.) Funktion ψ : N n → N ist eine Funktion (nach N), <strong>der</strong>en<br />
Definitionsbereich (domain) dom(ψ) eine (nicht notwendigerweise echte)<br />
Teilmenge von N n ist.<br />
Ist dom(ψ) = N n , so ist ψ eine totale Funktion.<br />
Notation:<br />
◮ ψ, ϕ, etc.: partielle Funktionen; f , g, etc.: totale Funktionen.<br />
◮ ψ(⃗x) ↓ :⇔ ⃗x ∈ dom(ψ) (ψ(⃗x) definiert)<br />
ψ(⃗x) ↑ :⇔ ⃗x ∉ dom(ψ) (ψ(⃗x) undefiniert)<br />
Ein (partielles) Berechnungsverfahren <strong>für</strong> eine partielle Funktion ψ : N n → N<br />
ist ein Algorithmus B, <strong>der</strong> bei Eingabe ⃗x = (x 1 , . . . , x n ) ∈ dom(ψ) den Wert<br />
ψ(⃗x) berechnet und ausgibt. Für ⃗x ∉ dom(ψ) liefert B keine Ausgabe und<br />
terminiert möglicherweise nicht (d.h. läuft unendlich lange).<br />
Eine partielle Funktion ψ : N n → N ist partiell berechenbar, wenn es eine<br />
partielles Berechnungsverfahren <strong>für</strong> ψ gibt.<br />
NB Eine totale Funktion f is genau dann berechenbar, wenn f partiell<br />
berechenbar ist.<br />
Seminar Theor. Informatik (WS 2010/11) <strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong> 7 / 39
Beziehungen: Berechenbarkeit vs. Aufzählbarkeit<br />
Eine partielle Funktion ψ : N n → N ist genau dann partiell berechenbar,<br />
wenn <strong>der</strong>en Graph<br />
aufzählbar ist.<br />
Graph(ψ) = {(⃗x, y) : ψ(⃗x) = y}<br />
NB Für totales f , ist <strong>der</strong> Graph genau dann aufzählbar, wenn er<br />
entscheidbar ist.<br />
Für totales f sind also folgende Aussagen äquivalent:<br />
◮<br />
◮<br />
◮<br />
f berechenbar<br />
Graph(f ) aufzählbar<br />
Graph(f ) entscheidbar<br />
Seminar Theor. Informatik (WS 2010/11) <strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong> 8 / 39
Beziehungen: Entscheidbarkeit vs. Berechenbarkeit und<br />
Aufzählbarkeit<br />
Eine Menge A ⊆ N n ist genau dann entscheidbar, wenn <strong>der</strong>en<br />
charakteristische Funktion<br />
{<br />
1 falls ⃗x ∈ A<br />
c A (⃗x) =<br />
0 sonst<br />
berechenbar ist.<br />
Eine Menge A ⊆ N n ist genau dann entscheidbar, wenn die Menge A und<br />
<strong>der</strong>en Komplement A = N n \ A aufzählbar sind.<br />
Insbeson<strong>der</strong>e ist also jede entscheidbare Menge aufzählbar. (Die Umkehrung<br />
gilt i.a. nicht! Siehe z.B. das in <strong>Vortrag</strong> 2 behandelte Halteproblem!)<br />
Seminar Theor. Informatik (WS 2010/11) <strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong> 9 / 39
Beziehungen: Entscheidbarkeit vs. Berechenbarkeit und<br />
Aufzählbarkeit (Forts.)<br />
Eine Menge A ⊆ N n ist genau dann entscheidbar, wenn A monoton<br />
aufzählber ist.<br />
Eine nichtleere Menge A ⊆ N ist genau dann entscheidbar, wenn A <strong>der</strong><br />
Wertebereich einer (1-st.) schwach monotonen berechenbaren Funktion ist.<br />
Eine unendliche Menge A ⊆ N ist genau dann entscheidbar, wenn A <strong>der</strong><br />
Wertebereich einer (1-st.) streng monotonen berechenbaren Funktion ist.<br />
Seminar Theor. Informatik (WS 2010/11) <strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong> 10 / 39
Beziehungen: Aufzählbarkeit vs. Berechenbarkeit<br />
Für eine Menge A ⊆ N n sind folgende Aussagen äquivalent:<br />
◮<br />
◮<br />
◮<br />
A is aufzählbar.<br />
Die partielle charakteristische Funktion χA von A<br />
{<br />
1 falls ⃗x ∈ A<br />
χ A (⃗x) =<br />
↑ sonst.<br />
ist partiell berechenbar.<br />
A ist <strong>der</strong> Definitionsbereich einer partiell berechenbaren Funktion.<br />
Seminar Theor. Informatik (WS 2010/11) <strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong> 11 / 39
Beziehungen: Aufzählbarkeit vs. Berechenbarkeit (Forts.)<br />
Für 1-dim. Mengen erhalten wir weitere Charakterisierungen <strong>der</strong> Aufzählbarkeit:<br />
Für eine Menge A ⊆ N sind folgende Aussagen äquivalent:<br />
◮<br />
◮<br />
◮<br />
◮<br />
◮<br />
A is aufzählbar.<br />
A ist <strong>der</strong> Wertebereich (range) einer (1-st.) partiell berechenbaren<br />
Funktion.<br />
Es gibt eine 1-st. partiell berechenbare Funktion ψ mit<br />
A = dom(ψ) = range(ψ).<br />
A = ∅ o<strong>der</strong> A ist <strong>der</strong> Wertebereich einer (1-st.) totalen berechenbaren<br />
Funktion.<br />
A ist endlich o<strong>der</strong> A ist <strong>der</strong> Wertebereich einer (1-st.) totalen<br />
injektiven berechenbaren Funktion.<br />
Seminar Theor. Informatik (WS 2010/11) <strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong> 12 / 39
Beziehungen: Aufzählbarkeit vs. Entscheidbarkeit<br />
PROJEKTIONSLEMMA. Eine Menge A ⊆ N n ist genau dann aufzählbar, wenn A<br />
die Projektion einer entscheidbaren Menge B ⊆ N n+1 ist:<br />
⃗x ∈ A ⇔ ∃ y [(⃗x, y) ∈ B]<br />
(D.h. aufzählbare Mengen sind gerade Suchprobleme mit entscheidbarem<br />
Lösungsraum.)<br />
Seminar Theor. Informatik (WS 2010/11) <strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong> 13 / 39
Teil 2:<br />
Formalisierung des Berechenbarkeitsbegriffes:<br />
Turingmaschinen und die Church-Turing-These<br />
Wir rufen das Turingmaschinenmodell kurz in Erinnerung.<br />
Hiermit wird <strong>der</strong> Berechenbarkeitsbegriff formalisiert.<br />
Da sich Entscheidbarkeit und Aufzählbarkeit auf die (partielle)<br />
Berechenbarkeit zurückführen lassen, erhalten wir so auch Formalisierungen<br />
dieser Begriffe.<br />
Die Church-Turing-These besagt, dass die Formaliserungen adäquat sind.<br />
Seminar Theor. Informatik (WS 2010/11) <strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong> 14 / 39
Schematische Darstellung einer Turingmaschine<br />
Seminar Theor. Informatik (WS 2010/11) <strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong> 15 / 39
Intuitive Beschreibung <strong>der</strong> Komponenten einer<br />
Turingmaschine<br />
SPEICHER (STRUKTUR, OPERATIONEN)<br />
• Nach beiden Seiten hin unendliches, in Fel<strong>der</strong> aufgeteiltes Band.<br />
• Jedes Feld ist mit einem Buchstaben aus dem Bandalphabet Γ<br />
beschrieben.<br />
(Leere Fel<strong>der</strong> sind mit dem Blank b (Leerzeichen) beschriftet.)<br />
• Der Zugriff auf die Daten erfolgt mit einem Lese/Schreibkopf,<br />
<strong>der</strong> auf einem Feld (dem Arbeitsfeld) sitzt und dessen Inschrift<br />
lesen und/o<strong>der</strong> überschreiben kann.<br />
Danach kann <strong>der</strong> Kopf um ein Feld (nach links o<strong>der</strong> rechts)<br />
verlegt werden.<br />
In einem Rechenschritt wird<br />
(1) die Inschrift des Arbeitsfeldes gelesen<br />
(2) die Inschrift des Arbeitsfeldes überschrieben<br />
(eventuell mit <strong>der</strong> alten Inschrift)<br />
(3) das Arbeitsfeld (um ein Feld nach links o<strong>der</strong> rechts) verlegt<br />
(o<strong>der</strong> beibehalten)<br />
Seminar Theor. Informatik (WS 2010/11) <strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong> 16 / 39
Intuitive Beschreibung <strong>der</strong> Komponenten einer<br />
Turingmaschine<br />
EIN- UND AUSGABE<br />
Ein- und Ausgabe sind Wörter über festgelegtem Eingabe- bzw.<br />
Ausgabealphabet. (Diese Alphabete sind Teil des Bandalphabets.)<br />
EINGABE<br />
• Die Eingabe wird rechts des Arbeitsfeldes auf das ansonsten<br />
leere Band geschrieben.<br />
(Dabei werden mehrere Eingaben durch Blanks getrennt.)<br />
Da die Turingmaschine auf Wörtern operiert, müssen Zahleingaben<br />
durch ihre Darstellungen ersetzt werden. Wir benutzen hierbei <strong>für</strong><br />
die Zahl n die Unärdarstellung n = 1 n .<br />
Seminar Theor. Informatik (WS 2010/11) <strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong> 17 / 39
Intuitive Beschreibung <strong>der</strong> Komponenten einer<br />
Turingmaschine<br />
AUSGABE<br />
• Die Ausgabe wird dem Band rechts des Arbeitsfeldes entnommen.<br />
Genauer: Die Ausgabe ist das längste Wort über dem Ausgabealphabet,<br />
das direkt rechts des Arbeitsfeldes steht.<br />
Seminar Theor. Informatik (WS 2010/11) <strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong> 18 / 39
Intuitive Beschreibung <strong>der</strong> Komponenten einer<br />
Turingmaschine<br />
STEUERUNG (PROGRAMM)<br />
• Die Maschine befindet sich zu jedem Zeitpunkt in einem von<br />
endlich vielen möglichen (Programm-)Zuständen.<br />
Zu Beginn <strong>der</strong> Rechnung ist die Maschine in einem<br />
ausgezeichneten Startzustand.<br />
• Die Rechenschritte <strong>der</strong> Maschine werden durch eine endliche Folge<br />
von Instruktionen, dem Programm, festgelegt.<br />
• Eine Instruktion ist dabei eine bedingte Anweisung <strong>der</strong> folgenden Form:<br />
Falls die Maschine im Zustand z ist und <strong>der</strong> Buchstabe a auf dem<br />
Arbeitsfeld steht, so überdrucke das Arbeitsfeld mit dem Buchstaben<br />
a ′ , bewege den LS-Kopf nach links (o<strong>der</strong> rechts o<strong>der</strong> lasse ihn stehen)<br />
und gehe in den neuen Zustand z ′ .<br />
• Zu je<strong>der</strong> Bedingung (Paar aus Zustand und Inschrift des Arbeitsfeldes)<br />
gibt es höchstens eine zutreffende Instruktion (→ Determinismus).<br />
Das Programm lässt sich daher auch als eine partielle Funktion<br />
δ : Z × Γ → Γ × Bew × Z<br />
darstellen.<br />
Seminar • Theor. Lässt Informatik sich keine (WS 2010/11) Instruktion <strong>Grundbegriffe</strong> anwenden, <strong>der</strong> <strong>Berechenbarkeitstheorie</strong> ist die Rechnung beendet.<br />
19 / 39
Formale Spezifikation einer Turingmaschine<br />
FORMALE SPEZIFIKATION EINER TURINGMASCHINE M = (Γ, Z, z 0 , δ)<br />
zur Berechnung einer (partiellen) Funktion ψ : N m → N:<br />
(Ein- und Ausgabealphabet sind {1}, da wir ja eine Zahl n durch n = 1 n<br />
darstellen.)<br />
Γ ist ein (endliches) Alphabet, das zumindest die Zeichen 1 und b (Blank,<br />
Leerzeichen) enthält, genannt das Bandalphabet von M.<br />
Z ist eine endliche Menge, genannt die Zustandsmenge von M,<br />
z 0 ist ein Element aus Z, genannt <strong>der</strong> Startzustand,<br />
δ ist eine partielle Funktion δ : Z × Γ → Γ × Bew × Z, genannt das<br />
Programm o<strong>der</strong> die Übergangsfunktion, wobei Bew = {L, S, R} die Menge<br />
<strong>der</strong> Bewegungen ist.<br />
Seminar Theor. Informatik (WS 2010/11) <strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong> 20 / 39
Arbeitsweise einer Turingmaschine<br />
Die Turingmaschine M = (Γ, Z, z 0 , δ) zur Berechnung einer (partiellen) Funktion<br />
ψ : N m → N arbeitet in Schritten, wobei die aktuelle Gestalt <strong>der</strong> Maschine in<br />
jedem Schritt durch eine Konfiguration beschrieben ist.<br />
Hierbei besteht jede Konfiguration aus dem aktuellen Zustand und dem aktuellen<br />
Speicher (= Bandinschrift + Position des Arbeitsfeldes):<br />
Startkonfiguration ist bei Eingabe ⃗x = (x 0 , . . . , x m ) das Paar<br />
(z 0 , . . . b b 1 x0 b . . . 1 xm b b . . . )<br />
Die Nachfolgekonfiguration einer Konfiguration wird durch das Programm δ<br />
bestimmt (wie zuvor intuitiv beschrieben; wir verzichten auf die formale<br />
Definition).<br />
Gibt es zu einer Konfiguration keine Nachfolgekonfiguration, so stoppt (hält,<br />
terminiert) die Maschine M und die Ausgabe <strong>der</strong> zuletzt erreichten<br />
Konfiguration ist <strong>der</strong> Wert ψ(⃗x) <strong>der</strong> von M berechneten Funktion. (Wird<br />
keine Stoppkonfiguartion erreicht, so terminiert M nicht und ψ(⃗x) ist<br />
undefiniert.)<br />
Die von M berechnete (partielle) m-st. Funktion wird mit ϕ (m)<br />
M<br />
bezeichnet.<br />
Seminar Theor. Informatik (WS 2010/11) <strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong> 21 / 39
Turingberechenbarkeit<br />
Eine (partielle) n-st. Funktion ψ : N n → N heisst (partiell)<br />
Turing-berechenbar o<strong>der</strong> (partiell) rekursiv, wenn es eine Turingmaschine M<br />
gibt, die ψ berechnet, d.h. <strong>für</strong> die ψ = ϕ (m)<br />
M<br />
gilt.<br />
Eine Menge A ⊆ N n heisst Turing-entscheidbar o<strong>der</strong> rekursiv, wenn die<br />
charakteristische Funktion von A Turing-berechenbar ist.<br />
Eine Menge A ⊆ N n heisst Turing-aufzählbar o<strong>der</strong> rekursiv aufzählbar (r.a.),<br />
wenn A <strong>der</strong> Definitionsbereich einer n-st. partiell Turing-berechenbaren<br />
Funktion ist.<br />
Seminar Theor. Informatik (WS 2010/11) <strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong> 22 / 39
Die Church-Turing These<br />
Die Church-Turing-These besagt, dass eine Funktion genau dann im intuitiven<br />
Sinne (partiell) berechenbar ist, wenn sie (im formalen, mathematischen Sinne)<br />
(partiell) Turing-berechenbar ist:<br />
CHURCH-TURING-THESE. ψ ist genau dann (partiell) berechenbar, wenn ψ<br />
(partiell) Turing-berechenbar ist.<br />
FOLGERUNG. A ist genau dann entscheidbar (aufzählbar), wenn A<br />
Turing-entscheidbar (Turing-aufzählbar) ist.<br />
Im Folgenden werden wir die Church-Turing-These annehmen!<br />
Seminar Theor. Informatik (WS 2010/11) <strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong> 23 / 39
Teil 3:<br />
Universelle Maschinen und Funktionen<br />
Wir normieren zunächst Turingmaschinen zur Berechnung<br />
zahlentheoretischer Funktionen und ordnen je<strong>der</strong> <strong>der</strong>art normierten Maschine<br />
eine Gödelnummer (Code) zu.<br />
Eine universelle Turingmaschine simuliert dann alle normierten Maschinen.<br />
Die von ihr berechnete partielle Funktion ist universell <strong>für</strong> die Klasse <strong>der</strong><br />
partiell berechenbaren Funktionen (gegebener Stelligkeit).<br />
Seminar Theor. Informatik (WS 2010/11) <strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong> 24 / 39
Normierung von Turingmaschinen<br />
Zwei Turingmaschinen M und M ′ zur Berechnung zahlentheoretischer<br />
Funktionen heißen äquivalent, falls sie <strong>für</strong> jede Stelligkeit m ≥ 1 dieselbe<br />
partielle Funktion berechnen, d.h. falls ϕ (m)<br />
M<br />
= ϕ(m) M<br />
<strong>für</strong> alle m ≥ 1 gilt.<br />
′<br />
Zu einer gegebenen Turingmaschine M = (Γ, Z, z 0 , δ) kann mann leicht und<br />
effektiv eine äquivalente Maschine M ′ = (Γ ′ , Z ′ , z ′ 0 , δ′ ) konstruieren mit<br />
◮ Γ ′ = {0, 1, 2}, wobei 2 das Leerzeichen b ist.<br />
◮ Z ′ = {0, . . . , k} <strong>für</strong> geeignetes k ≥ 0<br />
◮ z<br />
′<br />
0 = 0<br />
Weiter ist kein Zustand z ′ von M ′ überflüssig (d.h. zu z ′ gibt es a, a ′ , z ′′ , B<br />
mit δ ′ (z ′ , a) = (a ′ , B, z ′′ ) o<strong>der</strong> δ ′ (z ′′ , a) = (a ′ , B, z ′ )).<br />
Eine Turingmaschine diesen Typs heisst normiert.<br />
Es genügt daher normierte Turingmaschinen zu betrachten.<br />
Im Folgenden gehen wir stillschweigend davon aus, dass alle<br />
Turingmaschinen normiert sind.<br />
Seminar Theor. Informatik (WS 2010/11) <strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong> 25 / 39
Gödelnummern (normierter) Turingmaschinen<br />
Eine normierte Turingmaschine M ist durch ihre Programmfunktion<br />
bestimmt.<br />
δ : {0, . . . , k} × {0, 1, 2} → {0, 1, 2} × Bew × {0, . . . , k}<br />
Ersetzt man die Bewegungen R, L, S durch die Zahlen 0, 1, 2, so kann man<br />
jede Programmzeile durch ein Zahltupel<br />
(z, a, a ′ , b, z ′ ) ∈ {0, . . . , k} × {0, 1, 2} × {0, 1, 2} × {0, 1, 2} × {0, . . . , k}<br />
o<strong>der</strong> durch das entsprechende Binärwort 1 z+1 01 a+1 01 a′ +1 01 b+1 01 z′ +1<br />
darstellen.<br />
Die Programmfunktion insgesamt lässt sich dann durch die Binärzahl<br />
ˆδ := 1 0 0 ˆδ 0 0 0 ˆδ 1 0 0 . . . ˆδ p<br />
beschreiben, wobei die Binärwörter ˆδ 0 , . . . , ˆδ p die Programmzeilen von δ<br />
w.o. kodieren.<br />
ˆδ heisst Gödelnummer von M.<br />
Seminar Theor. Informatik (WS 2010/11) <strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong> 26 / 39
Gödelnummern von Turingmaschinen und Indizes partiell<br />
rekursiver Funktionen<br />
Wir bezeichnen die (normierte) Turingmaschine mit Gödelnummer e mit M e<br />
(o<strong>der</strong> P e ) und wir bezeichnen die von M e berechnete partielle m-st.<br />
Funktion ϕ (m)<br />
M e<br />
kurz mit ϕ (m)<br />
e . (Weiter schreiben wir statt ϕ (1)<br />
e kurz ϕ e .)<br />
Man beachte, dass man zu einer normierter Turingmaschine M die<br />
Gödelnummer e effektiv berechnen kann. Umgekehrt kann man <strong>für</strong> eine<br />
gegebene Zahl e entscheiden, ob diese Gödelnummer einer Turingmaschine<br />
ist und gegebenenfalls die zugehörige Turingmaschine M e effektiv angeben.<br />
Ist e keine Gödelnummer so identifizieren wir M e mit einer festen<br />
Turingmaschine M, die bei keiner Eingabe terminiert.<br />
Es ist also {M e } e≥0 eine Aufzählung aller (normierten) Turingmaschinen und<br />
{ϕ (m)<br />
e } e≥0 eine Aufzählung aller m-stelligen partiell rekursive Funktionen.<br />
(Hierbei ist ϕ (m)<br />
e<br />
ist.)<br />
die nirgends definierte Funktion, falls e keine Gödelnummer<br />
Seminar Theor. Informatik (WS 2010/11) <strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong> 27 / 39
Universelle Turingmaschinen und universelle partiell<br />
rekursive Funktionen<br />
SATZ ÜBER DIE EXISTENZ UNIVERSELLER TURINGMASCHINEN. Es gibt<br />
eine Turingmaschine U die sich bei Eingabe (e,⃗x) wie die e-te Turingmaschine<br />
M e bei Eingabe ⃗x verhält, d.h.<br />
(<strong>für</strong> alle m ≥ 0, e ≥ 0,⃗x ∈ N m ).<br />
ϕ (m+1)<br />
U<br />
(e,⃗x) = ϕ (m)<br />
M e<br />
(⃗x) = ϕ (m)<br />
e (⃗x)<br />
KOROLLAR (SATZ ÜBER DIE EXISTENZ UNIVERSELLER PART. REK.<br />
FUNKTIONEN o<strong>der</strong> AUFZÄHLUNGSSATZ FÜR DIE PARTIELL REKURSIVEN<br />
FUNKTIONEN) Für jedes m ≥ 1 gibt es eine (m + 1)-st. partiell rekursive<br />
Funktion ϕ (m) , <strong>der</strong>en Zweige gerade die m-st. partiell rekursiven Funktionen sind.<br />
Nämlich<br />
ϕ (m) (e,⃗x) = ϕ e (⃗x) (<strong>für</strong> alle (e,⃗x) ∈ N m+1 )<br />
ist partiell rekursiv.<br />
Seminar Theor. Informatik (WS 2010/11) <strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong> 28 / 39
Universelle Turingmaschinen und universelle partiell<br />
rekursive Funktionen: Beweis<br />
BEWEISIDEE. Verwendet man die Church-Turing These, so beweist man<br />
zunächst das Korollar indem man beobachtet, dass die Funktion<br />
ϕ (m) (e,⃗x) := ϕ e (⃗x) partiell berechenbar also auch part. rek. ist, und schliesst<br />
hieraus (mit C-T-These) auf die Existenz einer Turingmaschine U, die ϕ (m)<br />
berechnet.<br />
Ohne Church-Turing These konstruiert man die Maschine U direkt, wobei U bei<br />
Eingabe (e,⃗x) zunächst aus e die Binärdarstellung von e konstruiert und mit<br />
<strong>der</strong>en Hilfe M e auf Eingabe ⃗x Schritt-<strong>für</strong>-Schritt simuliert (s. Vorlesung<br />
Theoretische Informatik).<br />
Seminar Theor. Informatik (WS 2010/11) <strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong> 29 / 39
Uniforme Rekursivität<br />
Eine Folge {ψ e } e≥0 von partiell rekursive Funktionen (fester Stelligkeit) heisst<br />
uniform rekursiv, wenn die Funktion ψ, <strong>der</strong>en Zweige die Funktionen ψ e sind (d.h.<br />
die Funktion ψ(e,⃗x) = ψ e (⃗x)) partiell rekursiv ist.<br />
Entsprechend heisst eine Menge Ψ von partiell partiell rekursiven Funktionen<br />
(fester Stelligkeit) uniform rekursiv, falls es eine partiell rekursive Funktion ψ mit<br />
Ψ = {ψ e : e ≥ 0} gibt.<br />
Der Satz über die Existenz universeller partiell rekursiver Funktionen besagt<br />
gerade, dass <strong>für</strong> jedes m ≥ 1 die Klasse aller m-st. part. rek. Funktionen uniform<br />
rekursiv ist.<br />
Auf <strong>der</strong> an<strong>der</strong>en Seite kann man durch ein einfaches Diagonalargument zeigen,<br />
dass die Klasse aller m-st. total rekursiven Funktionen nicht uniform rekursiv ist.<br />
Seminar Theor. Informatik (WS 2010/11) <strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong> 30 / 39
Teil 4:<br />
Approximationen partiell berechenbarer Funktionen<br />
Seminar Theor. Informatik (WS 2010/11) <strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong> 31 / 39
Approximationen partiell rekursiven Funktionen<br />
Da Turingmaschinen effektiv und in Schritten arbeiten, kann man effektiv<br />
feststellen, ob eine Turingmaschine M bei Eingabe ⃗x innerhalb einer vorgegebenen<br />
Schrittzahl s stoppt und gegebenfalls den Wert von ϕ M (x) effektiv bestimmen.<br />
Wir benutzen folgende Notation (⃗x = (x 0 , . . . , x m−1 ))<br />
Es gilt:<br />
ϕ e,s (⃗x) = y :⇔ x 0 , . . . , x m−1 , y, e < s & M e stoppt bei Eingabe<br />
⃗x in ≤ s Schritten und ϕ e (⃗x) = y<br />
lim s→∞ ϕ e,s (⃗x) = ϕ e (⃗x)<br />
Das heisst, dass ϕ e,s (⃗x) = ϕ e (⃗x) <strong>für</strong> alle hinreichend grossen s gilt.<br />
Weiter gilt: ϕ e,s (⃗x) = y ⇒ ∀ s ′ ≥ s [ϕ e (⃗x) = ϕ e,s ′(⃗x) = y]<br />
Die Relationen {(e,⃗x, s) : ϕ e,s (⃗x) ↓} und {(e,⃗x, y, s) : ϕ e,s (⃗x) = y} sind<br />
entscheidbar. (Die Relationen {(e,⃗x) : ϕ e (⃗x) ↓} und {(e,⃗x, y) : ϕ e (⃗x) = y}<br />
sind dagegen nur aufzählbar aber nicht entscheidbar; s. <strong>Vortrag</strong> 2.)<br />
Seminar Theor. Informatik (WS 2010/11) <strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong> 32 / 39
Teil 5:<br />
Das Rekursionstheorem (Fixpunktsatz)<br />
Seminar Theor. Informatik (WS 2010/11) <strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong> 33 / 39
Gödelnummerierungen <strong>der</strong> partiell rekursiven Funktionen<br />
DEFINITION. Eine Gödelnummerierung o<strong>der</strong> Standardaufzählung <strong>der</strong> m-st.<br />
partiell rekursiven Funktionen ist eine universelle Funktion ψ <strong>für</strong> diese Klasse (d.h.<br />
eine (m + 1)-st. partiell rekursive Funktion ψ, <strong>der</strong>en Zweige gerade die m-st.<br />
partiell Funktionen sind) mit folgen<strong>der</strong> Eigenschaft:<br />
Zu je<strong>der</strong> (m + 1)-st. partiell rekursiven Funktion ˆψ gibt es eine total rekursive<br />
Funktion h : N → N mit ˆψ e = ψ h(e) <strong>für</strong> alle e (h heisst Übersetzungsfunktion von<br />
ˆψ nach ψ).<br />
SATZ. ϕ (m) ist eine Gödelnummerierung <strong>der</strong> m-st. partiell rekursiven Funktionen.<br />
BEWEISIDEE. Aus einer Turingmaschine M zur Berechnung von ˆψ kann man<br />
effektiv Turingmaschinen M ′ e angeben, die ˆψ e berechnen. (Nämlich M ′ e schreibt<br />
zunächst 1 e vor die gegebenen Eingaben und simuliert dann M.) Die Funktion h<br />
zur Berechnung des Index von M ′ e ist daher berechenbar und damit nach<br />
C-T-These rekursiv. Nach Definition gilt aber ˆψ e = ϕ M ′ e<br />
= ϕ Mh(e) = ϕ h(e) .<br />
Seminar Theor. Informatik (WS 2010/11) <strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong> 34 / 39
Gödelnummerierungen <strong>der</strong> partiell rekursiven Funktionen<br />
Gödelnummerierungen haben interessante Eigenschaften, die nicht alle<br />
universellen Funktionen haben. Z.B. gilt <strong>für</strong> alle Gödelnummerierungen:<br />
Jede partiell rekursive Funktion besitzt unendlich viele Indizes.<br />
Es gelten das s-m-n-Theorem und das Rekursionstheorem (Fixpunktsatz)<br />
Ersteres gilt offensichtlich <strong>für</strong> die aus <strong>der</strong> Gödelisierung von Turing-Maschinen<br />
erhaltenen Gödelnummerierung ϕ, da man zu <strong>der</strong> Programmfunktion einer<br />
(normierten) Turingmaschine M beliebig Programmzeilen hinzufügen kann, die<br />
nie ausgeführt werden, und so unendlich viele zu M äquivalente Turingmaschinen<br />
erhält.<br />
Das s-m-n-Theorem und Rekursionstheorem (Fixpunktsatz) formulieren wir auf<br />
den nächsten Folien <strong>für</strong> die Gödelnummerierung ϕ und skizzieren die Beweise.<br />
Seminar Theor. Informatik (WS 2010/11) <strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong> 35 / 39
s-m-n-Theorem<br />
SATZ (s-m-n-Theorem). Für alle m, n ≥ 1 gibt es eine rekursive Funktion S m n<br />
mit<br />
(∗) ϕ (n)<br />
S m n (e,y1,...,ym)(x 1, . . . , x n ) = ϕ (m+n)<br />
e (y 1 , . . . , y m , x 1 , . . . , x n ).<br />
BEWEISIDEE. Ein Berechnungsverfahren <strong>für</strong> S m n<br />
sieht wie folgt aus:<br />
Eingabe: e, y 1 , . . . , y m<br />
Rekonstruiere zunächst aus e die Maschine M e .<br />
Definiere hieraus eine Maschine M ′ , die zunächst links des Arbeitsfeldes die<br />
Unärdarstellungen von y 1 , . . . , y m schreibt (also eine Eingabe (x 1 , . . . , x n ) zu<br />
(y 1 , . . . , y m , x 1 , . . . , x n ) erweitert) und dann wie M e arbeitet.<br />
Es gilt also: ϕ M ′(x 1 , . . . , x n ) = ϕ (m)<br />
e (y 1 , . . . , y m , x 1 , . . . , x n ).<br />
Berechne die Gödelnummer gn(M ′ ) von M ′ und setze<br />
S m n (e, y 1 , . . . , y m ) := gn(M ′ ).<br />
Offensichtlich ist S m n<br />
berechenbar - also nach C-T-These rekursiv - und erfüllt (∗).<br />
Seminar Theor. Informatik (WS 2010/11) <strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong> 36 / 39
Rekursionstheorem (Fixpunktsatz)<br />
SATZ (Fixpunktsatz, Rekursionstheorem). Zu je<strong>der</strong> rekursiven Funktion<br />
f : N → N gibt es einen Index k mit ϕ f (k) = ϕ k .<br />
BEWEISIDEE: nächste Folie<br />
Wegen <strong>der</strong> Uniformität des Beweise erhält man folgende allgemeinere<br />
parametrisierte Version des Fixpunktsatzes:<br />
SATZ (Fixpunktsatz mit Parametern). Zu je<strong>der</strong> rekursiven Funktion<br />
f : N n+1 → N gibt es eine rekursive Funktion k : N n → N mit<br />
ϕ f (k(⃗x),⃗x) = ϕ k(⃗x) .<br />
Seminar Theor. Informatik (WS 2010/11) <strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong> 37 / 39
Rekursionstheorem: Beweisidee<br />
Wir zeigen zunächst, dass es eine rekursive Funktion h : N → N gibt mit<br />
(∗) ϕ h(x) = ϕ ϕx (x)<br />
(wobei <strong>für</strong> x mit ϕ x (x) ↑ die Funktion ϕ ϕx (x) die nirgends definierte Funktion sei).<br />
Die Funktion ψ(x, y) = ϕ ϕx (x)(y) ist partiell berechenbar. Nämlich, bei<br />
Eingabe (x, y) berechne zunächst ϕ x (x) und dann - falls ϕ x (x) ↓ - ϕ z (y)<br />
wobei z = ϕ x (x).<br />
Nach <strong>der</strong> C-T-These ist ψ also partiell rekursiv und es gibt einen Index e mit<br />
ψ = ϕ (2)<br />
e .<br />
Nach dem s-m-n-Theorem gilt daher <strong>für</strong> die rekursive Funktion S 1 1<br />
ϕ S 1<br />
1 (e,x)(y) = ϕ (2)<br />
e (x, y) = ψ(x, y) = ϕ ϕx (x)(y)<br />
Die durch h(x) := S1 1 (e, x) definierte rekursive Funktion h erfüllt daher die<br />
Bedingung (∗).<br />
Seminar Theor. Informatik (WS 2010/11) <strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong> 38 / 39
Rekursionstheorem: Beweisidee (Fortsetzung)<br />
Sei h im Folgenden eine rekursive Funktion mit<br />
(∗) ϕ h(x) = ϕ ϕx (x)<br />
Wegen <strong>der</strong> Rekursivität von f ist dann auch f ◦ h rekursiv, und es gibt einen<br />
Index e ′ mit f ◦ h = ϕ e ′, d.h. f (h(x)) = (f ◦ h)(x) = ϕ e ′(x).<br />
Insbeson<strong>der</strong>e gilt also (<strong>für</strong> x = e ′ ) f (h(e ′ )) = ϕ e ′(e ′ ) und daher<br />
(∗∗) ϕ f (h(e ′ )) = ϕ ϕe ′ (e ′ )<br />
Es folgt<br />
ϕ f (h(e′ )) = ϕ ϕe ′ (e ′ ) (wegen (∗∗))<br />
= ϕ h(e ′ ) (wegen (∗))<br />
Für k := h(e ′ ) gilt also ϕ f (k) = ϕ f (h(e ′ )) = ϕ h(e ′ ) = ϕ k .<br />
D.h. k ist <strong>der</strong> gesuchte Fixpunkt.<br />
Seminar Theor. Informatik (WS 2010/11) <strong>Grundbegriffe</strong> <strong>der</strong> <strong>Berechenbarkeitstheorie</strong> 39 / 39