18.09.2013 Aufrufe

Skript in PDF - Theoretische Informatik - Technische Universität ...

Skript in PDF - Theoretische Informatik - Technische Universität ...

Skript in PDF - Theoretische Informatik - Technische Universität ...

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.

114 KAPITEL 4. CHURCHSCHE THESE<br />

Bemerkung 3. Nicht jede Tur<strong>in</strong>g-berechenbare Funktion ist primitiv-rekursiv. In<br />

der Tat s<strong>in</strong>d alle primitiv-rekursiven total (d.h. überall def<strong>in</strong>iert), und es gibt partielle<br />

Tur<strong>in</strong>g-berechenbare Funktionen.<br />

Aber auch alle totalen Tur<strong>in</strong>g-berechenbaren Funktionen s<strong>in</strong>d leider nicht primitivrekursiv.<br />

Das können wir abstrakt wie folgt zeigen: alle primitiv-rekursiven Funktionen<br />

können wir systematisch aufzählen, z.B. setzen wir f0 = K0, f1 = succ, f2 = π 1 1 .<br />

Mit den gegebenen Funktionen f0, . . . , fi machen wir alle möglichen Verknüpfungen<br />

und primitiven Rekursionen. Dabei entstehen fi+1, . . . , fj, dann ist fj+1 die nächste<br />

noch nicht e<strong>in</strong>genommene Projektion, usw. Diese Aufzählung kann bestimmt e<strong>in</strong>e<br />

TM durchführen. Dann ist die Funktion<br />

P(n) = 1 + fn(n, n, . . .,n)<br />

Tur<strong>in</strong>g-berechenbar. Aber P ist nicht primitiv-rekursiv: falls nämlich P = fn, haben<br />

wir<br />

P(n) = 1 + fn(n) = fn(n) – e<strong>in</strong> Widerspruch.<br />

Es ist U. Ackermann 1928 gelungen, e<strong>in</strong> viel konkreteres Beispiel e<strong>in</strong>er Funktion anzugeben,<br />

die nicht primitiv-rekursiv ist, sich aber mit e<strong>in</strong>em e<strong>in</strong>fachen Algorithmus<br />

berechnen läßt. Die Funktion, die man heute Ackermann-Funktion nennt, ist e<strong>in</strong>e<br />

von R. Peter und R. M. Rob<strong>in</strong>son später entdeckte Vere<strong>in</strong>fachung der ursprünglichen<br />

Idee:<br />

Beispiel 9. Die Ackermann-Funktion A :<br />

A(0, m) = m + 1<br />

A(n + 1, 0) = A(n, 1) und<br />

A(n + 1, m + 1) = A(n, A(n + 1, m)).<br />

Es gilt also<br />

A(0, 0) = 1,<br />

A(0, 1) = 2,<br />

A(1, 0) = A(0, 1) = 2,<br />

A(0, 2) = 3,<br />

A(1, 1) = A(0, A(1, 0)) = A(0, 2) = 3,<br />

A(2, 0) = A(1, 1) = 3,<br />

2 → ist wie folgt def<strong>in</strong>iert:<br />

usw. Wir erhalten e<strong>in</strong>en Algorithmus, um jeden Wert A(n, m) zu berechnen: alle<br />

möglichen Paare (n, m) werden so aufgezählt, dass der Wert A(n, m) direkt aus den<br />

vorigen Werten berechnet wird:<br />

(0, 0), (0, 1), (1, 0), (0, 2), (1, 1), (2, 0), . . ., Das können wir durch e<strong>in</strong>e TM realisieren,<br />

und wir sehen also, dass die Ackermann-Funktion TM-berechenbar ist.<br />

Trotzdem ist sie nicht primitiv-rekursiv! Man kann nämlich beweisen, dass sie<br />

schneller wächst, als jede primitiv-rekursive Funktion.<br />

Es gilt z.B. folgendes, wie sich leicht durch Induktion über m beweisen lässt:<br />

A(1, m) = m + 2<br />

A(2, m) = 2m + 3<br />

A(3, m) = 2 m+3 − 3<br />

A(4, m) = 22..2 − 3, wobei 22..2 Zum Beispiel<br />

m + 2 Exponentiationen hat.<br />

A(4, 1) = 216 − 3 und A(4, 2) = 2216 − 3 > 101000 .<br />

Bemerkung 4. Wir wollen jetzt die Klasse aller primitiv-rekursiven Funktionen<br />

durch e<strong>in</strong>e neue Operation ergänzen, um alle berechenbaren Funktionen repräsentieren<br />

zu können. Das wird der M<strong>in</strong>imierungsoperator µ se<strong>in</strong>, der z.B. jeder 2-stelligen<br />

Funktion f(n, m) die 1-stellige Funktion<br />

µf(n) = m<strong>in</strong>{m; f(n, m) = 0}<br />

zuordnet. Hier müssen wir aber aufpassen: µf ist nicht immer def<strong>in</strong>iert, da es für<br />

e<strong>in</strong>e Zahl n geschehen kann, dass f(n, m) = 0 für alle m ∈ . Deshalb arbeiten

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!