01.11.2013 Aufrufe

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 ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!