22.01.2015 Aufrufe

Universelle Maschinen und universelle Funktionen

Universelle Maschinen und universelle Funktionen

Universelle Maschinen und universelle Funktionen

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>Universelle</strong> <strong>Maschinen</strong> <strong>und</strong><br />

<strong>universelle</strong> <strong>Funktionen</strong>


UNIVERSELLE FUNKTIONEN<br />

DEFINITION. Sei F eine Klasse von (partiellen) <strong>Funktionen</strong> über N. Eine<br />

(partielle) Funktion ϕ (n+1) ist n-universell für F, wenn folgendes gilt:<br />

(i) ϕ ∈ F<br />

(ii) Zu jeder n-stelligen (partiellen) Funktion ψ (n) ∈ F gibt es eine Zahl e ∈ N,<br />

sodass ψ(⃗x) = ϕ(e, ⃗x) für alle ⃗x ∈ N n .<br />

Eine Zahl e wie in (ii) heißt ein Index von ψ bzgl. ϕ.<br />

Wir schreiben auch ϕ e (⃗x) statt ϕ(e, ⃗x) <strong>und</strong> nennen ϕ e den e-ten Zweig von ϕ.<br />

Eine n + 1-stellige (partielle) Funktion ϕ ∈ F ist also genau dann n-universell<br />

für F, wenn ihre Zweige gerade alle n-st. (partiellen) <strong>Funktionen</strong> in F sind.


Im Folgenden werden wir zeigen, dass die Klasse der partiell rekursiven <strong>Funktionen</strong><br />

n-<strong>universelle</strong> <strong>Funktionen</strong> besitzt (für jedes n ≥ 1), die Klassen der<br />

total rekursiven <strong>Funktionen</strong> <strong>und</strong> der primitiv rekursiven <strong>Funktionen</strong> jedoch<br />

keine n-<strong>universelle</strong>n <strong>Funktionen</strong> besitzen.<br />

Wir erhalten sogar n-<strong>universelle</strong> partiell rekursive <strong>Funktionen</strong> mit einer interessanten<br />

zusätzlichen Eigenschaft.<br />

DEFINITION. Eine n-<strong>universelle</strong> partielle Funktion ϕ für F(REK) ist eine<br />

Standardaufzählung oder Gödelnummerierung der n-stelligen partiell rekursiven<br />

<strong>Funktionen</strong>, wenn es zu jeder (n + 1)-st. partiell rekursiven Funktion<br />

ˆϕ (n+1) eine total rekursive Funktion h gibt, so dass<br />

(iii) ˆϕ(e, ⃗x) = ϕ(h(e), ⃗x) für alle e ∈ N <strong>und</strong> ⃗x ∈ N n .<br />

Die rekursive Funktion h in (iii) heißt Übersetzungsfunktion von ˆϕ nach ϕ.


WIE ERHALTEN WIR UNIVERSELLE PARTIELL REKURSIVE FUNKTIO-<br />

NEN<br />

Wir haben bereits im Beweis des Äquivalenzsatzes gesehen, wie wir eine Turingmaschine<br />

M durch ihre Gödelnummer ˜M kodieren können.<br />

Hiermit können wir eine n-<strong>universelle</strong> partiell rekursive Funktion ϕ (n+1) durch<br />

folgende Rechenvorschrift definieren: Bei Eingabe (e, ⃗x) prüfe zunächst, ob<br />

e die Gödelnummer ˜M einer TM M ist. Falls ja, simuliere M bei Eingabe ⃗x<br />

<strong>und</strong> - falls die Rechnung terminiert - gebe das Ergebnis der Rechnung aus:<br />

ϕ(e, ⃗x) := ϕ M (⃗x). Falls nein, setze ϕ(e, ⃗x) := 0.<br />

Da der beschriebene Turingmaschinen-Interpreter effektiv arbeitet, ist ϕ partiell<br />

berechenbar, also nach der Church-Turing-These partiell rekursiv. Da<br />

nach dem Äquivalenzsatz, partielle Turing-Berechenbarkeit <strong>und</strong> partielle Rekursivität<br />

zusammenfallen, sind die Zweige von ϕ gerade alle n-stelligen partiell<br />

rekursiven <strong>Funktionen</strong>. Also ist ϕ n-universell für F(REK).<br />

Der Bezug auf die Church-Turing-These bei unserem ersten wichtigen Ergebnis<br />

aus der Berechenbarkeitstheorie ist natürlich unbefriedigend, weshalb wir<br />

im Folgenden durch Formalisierung des skizzierten Arguments einen mathematisch<br />

strengen Beweis noch nachliefern werden.


DIE BEDEUTUNG VON GÖDELNUMMERIERUNGEN<br />

Gödelisieren wir statt Turingmaschinen Registermaschinen (oder partiell rekursive<br />

<strong>Funktionen</strong>), um zu diesem Konzept wiederum einen Interpreter zu<br />

konstruieren, so liefert das eine alternative n-<strong>universelle</strong> partiell rekursive<br />

Funktion ˆϕ.<br />

Da wir (im Rahmen des Beweis des Äquivalenzsatzes) gezeigt haben, dass<br />

man zu jeder Registermaschine M effektiv eine äquivalente Turingmaschine<br />

M ′ angeben kann, folgt aus der Effektivität der Gödelisierungen, dass es eine<br />

berechenbare - also nach der Church-Turing-These - rekursive Funktion h<br />

gibt, die die Gödelnummer von M auf die Gödelnummer von M ′ abbildet, also<br />

ˆϕ nach ϕ übersetzt.<br />

Da wir zeigen werden, dass die auf der Interpretation von TMs basierende<br />

<strong>universelle</strong> Funktion ϕ eine Gödelnummerierung ist, gilt diese Beobachtung<br />

ganz allgemein. Für jede effektive Darstellungsweise von partiell rekursiven<br />

<strong>Funktionen</strong> (die sich durch geeignete Gödelisierung mit Hilfe einer partiell<br />

rekursiven Funktion ˆϕ beschreiben lässt) kann man - mit Hilfe der Übersetzungsfunktion<br />

von ˆϕ nach ϕ - zu einer gegebenen Darstellung effektiv eine<br />

äquivalente Turingmaschine angeben.


UNIVERSELLE TURINGMASCHINEN<br />

Um eine n-<strong>universelle</strong> Funktion ϕ für F(REK) formal (ohne Rückgriff auf<br />

die Church-Turing-These) zu definieren, konstruieren wir eine <strong>universelle</strong> Turingmaschine<br />

U, indem wir einen TM-Interpreter angeben, der selbst eine<br />

Turingmaschine ist.<br />

Wir tun dies nicht nur für Turingmaschinen zur Berechnung von Zahlfunktionen<br />

(d.h. für <strong>Maschinen</strong> mit Ein- <strong>und</strong> Ausgabealphabet {1}), sondern tun dies<br />

für beliebige Alphabete, wobei wir zunächst davon ausgehen, dass das Eingabealphabet<br />

die Bits 0 <strong>und</strong> 1 enthält. (Wir werden uns dann später überlegen,<br />

wie wir auf diese Annahme verzichten können.)<br />

Weiter wird unser Interpreter U keine 1-Band-TM sondern eine 3-Band-TM<br />

sein (die wir aber nach dem Bandreduktionssatz durch eine 1-Band-TM ersetzen<br />

können).<br />

Schließlich genügt es (ähnlich wie im Beweis des Äquivalenzsatzes), dass U<br />

geeignet normierte <strong>Maschinen</strong> interpretiert, die wiederum geeignet gödelisiert<br />

sind. Hierbei werden wir nicht die im Beweis des Äquivalenzsatzes verwendete<br />

Gödelisierung verwenden sondern eine alternative Gödelisierung mit Hilfe von<br />

Binärwörtern. (Da TMs ja auf Wörtern - nicht auf Zahlen - operieren, wird<br />

dies die Simulation vereinfachen.)


NORMIERUNG VON TURINGMASCHINEN<br />

Eine Turingmaschine M = (Σ, n, Σ, Γ, Z, z 0 , δ) zur Berechnung einer n-stelligen<br />

partiellen Funktion ψ : (Σ ∗ ) n → Σ ∗ ist normiert, falls<br />

• Γ = Σ ∪ {b, 0, 1}<br />

• Z = {0, 1, . . . , p} (für p ≥ 1 geeignet)<br />

• z 0 = 0<br />

• 1 ist ausgezeichneter Stoppzustand, d.h. δ(z, a) ↑ ⇔ z = 1.<br />

Die erste Forderung besagt gerade, dass M Bandalphabet-normiert ist. Die<br />

anderen Forderungen entsprechen gerade den im Beweis des Äquivalenzsatzes<br />

vorgenommenen Normierungen. Aus den an diesen Stellen gemachten<br />

Beobachtungen folgt daher, dass man jeder TM M effektiv eine äquivalente<br />

normierte TM M ′ zuordnen kann, wobei sich Rechenzeit <strong>und</strong> Platzbedarf von<br />

M ′ wie folgt abschätzen lassen:<br />

time M ′(⃗x) ≤ O(time M (⃗x)) & space M ′(⃗x) ≤ O(space M (⃗x))


KODIERUNG NORMIERTER TURINGMASCHINEN<br />

Für gegebenes Eingabealphabet Σ <strong>und</strong> gegebene Stelligkeit n ≥ 1 unterscheiden<br />

sich normierte TMs<br />

M = (Σ, n, Σ, Σ ∪ {b, 0, 1}, {0, . . . , p}, 0, δ)<br />

zur Berechnung von n-stelligen partiellen <strong>Funktionen</strong> vom Typ ψ : (Σ ∗ ) n → Σ ∗<br />

nur in der Anzahl der Zustände <strong>und</strong> der Programmfunktion δ. Da sich die<br />

Zustände aus dem Programm ergeben, genügt es daher zur Kodierung von<br />

M das Programm δ zu kodieren:<br />

Hierzu kodieren wir zunächst Buchstaben des Bandalphabets, Zustände <strong>und</strong><br />

Bewegungen unär (Γ = {a 0 = b, a 1 = 0, a 2 = 1, . . . , a m }, m ≥ 2):<br />

⌈a i ⌉ := 1 i+1 ⌈z⌉ := 1 z+1 ⌈L⌉ := 1 ⌈S⌉ := 1 2 ⌈R⌉ := 1 3 .<br />

Jeder Instruktion I = (z, a i , a j , B, z ′ ) - d.h. Programmzeile δ(z, a i ) = (a j , B, z ′ )<br />

- ordnen wir dann folgendes Binärwort zu:<br />

⌈I⌉ = ⌈z⌉0⌈a i ⌉0⌈a j ⌉0⌈B⌉0⌈z ′ ⌉<br />

Durch Auflisten der Programmzeilen δ ˆ= {I 1 , . . . , I k } erhalten wir dann die<br />

Binärkodierung von δ <strong>und</strong> damit von M:<br />

⌈M⌉ := ⌈δ⌉ := 00⌈I 1 ⌉00⌈I 2 ⌉00 . . . ⌈I k ⌉


EXISTENZ UNIVERSELLER TMs<br />

SATZ. Sei Σ ein Alphabet <strong>und</strong> n ≥ 1. Es gibt eine 3-Band-Turingmaschine<br />

U = U Σ,n , die bei Eingabe<br />

wobei<br />

(⌈M⌉, ⃗x) ∈ {0, 1} ∗ × (Σ ∗ ) n ,<br />

M = (Σ, n, Σ, Σ ∪ {b, 0, 1}, {0, . . . , p}, 0, δ)<br />

eine normierte TM zur Berechnung einer n-stelligen partiellen Funktion vom<br />

Typ (Σ ∗ ) n → Σ ∗ ist, die Maschine M für Eingabe ⃗x simuliert, d.h. den Wert<br />

liefert.<br />

Weiter gilt, dass<br />

ϕ U (⌈M⌉, ⃗x) = ϕ M (⃗x)<br />

time U (⌈M⌉, ⃗x) ∈ O(|⌈M⌉| · max(time M (⃗x), |x 1 |, . . . , |x n |))<br />

space U (⌈M⌉, ⃗x) ∈ O(|⌈M⌉| + space M (⃗x)).


BEWEISIDEE. Wir verzichten auf eine formale Spezifikation von U <strong>und</strong><br />

begnügen uns mit einer informellen Beschreibung der Arbeitsweise von U<br />

bei Eingabe (⌈M⌉, ⃗x).<br />

Die Bänder von U haben folgende Funktion:<br />

Band 1: U verhält sich auf Band 1 wie die simulierte (1-Band-) Maschine M<br />

bei Eingabe ⃗x.<br />

Band 2: Hier wird das kodierte Programm ⌈δ⌉ von M abgespeichert.<br />

Band 3: Hier wird die Kodierung ⌈z⌉ des aktuellen M-Zustandes z gespeichert.<br />

Die Rechnung von U besteht aus drei Phasen, der Initialisierungsphase, der<br />

Simulationsphase <strong>und</strong> der Ausgabephase.<br />

In der Initialisierungsphase wird unter Löschen ⌈M⌉ von Band 1 auf Band<br />

2 kopiert <strong>und</strong> auf Band 3 der kodierte Startzustand ⌈0⌉ geschrieben. In der<br />

Ausgabephase wird nach Abschluss der Simulation die Ausgabe von Band 1<br />

auf (das Ausgabe-)Band 3 kopiert.<br />

In der Simulationsphase wird jeder Schritt von M durch eine Folge von Rechenschritten<br />

mit Hilfe des folgenden Simulationszyklus simuliert.


Simulationszyklus von U zur Simulation eines M-Schrittes:<br />

1. Lese (<strong>und</strong> merke im Zustand) den Buchstaben a auf dem Arbeitsfeld von<br />

Band 1.<br />

2. Durch Mustervergleich finde das erste Vorkommen der Folge 00⌈z⌉0⌈a⌉0 auf<br />

Band 2, wobei ⌈z⌉ die aktuelle Inschrift von Band 3 ist. Dort befindet sich dann<br />

die Kodierung der auszuführenden M-Instruktion ⌈I⌉ = ⌈z⌉0⌈a⌉0⌈a ′ ⌉0⌈B⌉0⌈z ′ ⌉.<br />

(Findet U das gesuchte Muster nicht, so hat M den Stoppzustand erreicht,<br />

<strong>und</strong> die Simulationsphase wird beendet.)<br />

3. Simuliere diese Instruktion: (a) führe die angegebenen Druck- (a ′ ) <strong>und</strong> Bewegungsbefehle<br />

(B) auf Band 1 aus <strong>und</strong> (b) schreibe die Kodierung ⌈z ′ ⌉ des<br />

neuen Zustands auf Band 3.<br />

Die behaupteten Platz- <strong>und</strong> Zeitschranken lassen sich leicht nachprüfen. Für<br />

die Zeit hat man nur zu beachten, dass die Simulation eines M-Schrittes<br />

O(|⌈M⌉|) Schritte erfordert.<br />

q.e.d.


Aus dem vorhergehenden Satz können wir nun leicht folgende Verschärfung<br />

ableiten:<br />

SATZ ÜBER DIE EXISTENZ UNIVERSELLER TURINGMASCHINEN. Zu<br />

jedem Alphabet Σ <strong>und</strong> zu jeder Stelligkeit n ≥ 1 gibt es eine Turingmaschine<br />

mit folgender Eigenschaft:<br />

Ũ = Ũ Σ,n = (Σ, n + 1, Σ, Σ ∪ {b, 0, 1}, Z, z 0 , δ)<br />

Zu jeder partiell Turing-berechenbaren Funktion ψ : (Σ ∗ ) n → Σ ∗ gibt es ein<br />

Wort w ∈ Σ ∗ mit ψ = (ϕŨ) w , d.h.,<br />

∀⃗x ∈ (Σ ∗ ) n (ψ(⃗x) = ϕŨ(w, ⃗x)).<br />

BEWEISIDEE. Für Σ ⊇ {0, 1} genügt es eine zu der im vorhergenden Satz<br />

kostruierten 3-Band-TM U = U Σ,n äquivalente 1-Band-TM Ũ zu wählen.<br />

Für Σ = Σ 1 = {1} muss Ũ zusätzlich die erste Eingabe w als Unärkodierung<br />

eines Binärwortes auffassen. Es wird also zuerst das durch w = 1 m kodierte<br />

Binärwort w ′ = w m berechnen <strong>und</strong> w durch dieses ersetzen. Danach kann Ũ<br />

dann wie die Maschine Ũ {0,1},n arbeiten.


UNIVERSELLE PARTIELL REKURSIVE FUNKTIONEN<br />

Aus dem Satz über die Existenz <strong>universelle</strong>r TMs (<strong>und</strong> dem Äquivalenzsatz)<br />

erhalten wir unmittelbar die Existenz n-<strong>universelle</strong>r<br />

partiell rekursiver <strong>Funktionen</strong>. Es genügt hierzu die von der <strong>universelle</strong>n<br />

TM Ũ Σ1 ,n berechnete partielle Zahlfunktion<br />

ϕ ′ Ũ Σ1 ,n : Nn+1 → N<br />

zu betrachten, die wir via unserer Unärkodierung n = 1 n+1 aus<br />

über die Gleichung<br />

ϕŨΣ1<br />

,n<br />

ϕ ′ Ũ (e,x 1,...,x n )+1<br />

1 Σ1 ,n<br />

= ϕŨΣ1<br />

,n (1e+1 , 1 x 1+1 , . . . , 1 x n+1 )<br />

erhalten.<br />

Dieses Ergebnis lässt sich noch wie folgt verschärfen:


NORMALFORMTHEOREM VON KLEENE<br />

SATZ: Für jede Zahl n ≥ 1 gibt es eine primitiv rekursive Funktion<br />

U (1) <strong>und</strong> ein primitiv rekursives Prädikat T (n+2) , so dass es<br />

zu jeder n-stelligen partiell rekursiven Funktion ψ (n) eine Zahl<br />

e ∈ N gibt mit<br />

Weiter ist die durch<br />

∀⃗x ∈ N n (ψ(⃗x) = U(µyT (e, ⃗x, y))).<br />

ϕ(e, ⃗x) = U(µyT (e, ⃗x, y))<br />

definierte partielle Funktion ϕ (n+1) eine Gödelnummerierung der<br />

n-stelligen partiell rekursiven <strong>Funktionen</strong>. Darüberhinaus können<br />

die Übersetzungsfunktionen nach ϕ primitiv rekursiv <strong>und</strong> injektiv<br />

gewählt werden.


BEWEISIDEE. Für gegebenes n ≥ 1 sei Ũ = Ũ Σ1 ,n die <strong>universelle</strong><br />

Turingmaschine zur Berechnung n-stelliger partieller <strong>Funktionen</strong><br />

über Σ ∗ 1 <strong>und</strong> sei ϕ := ϕ′ die von Ũ berechnete Zahlfunktion,<br />

Ũ Σ1 ,n<br />

von der wir bereits festgestellt haben, dass sie n-universell für<br />

F(REK) ist. Wenden wir die (im Beweis des Äquivalenzsatzes<br />

eingeführte) Gödelisierung von TMs auf Ũ an, so erhalten wir<br />

das primitiv rekursives Prädikat rechnung (n+3) , für das<br />

Ũ<br />

ϕ(e, ⃗x) = (µy(rechnungŨ(e, ⃗x, (y) 1 , (y) 2 ))) 2<br />

für alle e ∈ N <strong>und</strong> ⃗x ∈ N n gilt. Setzen wir also<br />

<strong>und</strong><br />

T (e, ⃗x, y) ⇔ rechnungŨ(e, ⃗x, (y) 1 , (y) 2 )<br />

U(y) = (y) 2 ,<br />

so ergibt sich hieraus der erste Teil des Normalformsatzes.


Zu zeigen bleibt die Existenz injektiver, primitiv rekursiver Übersetzungsfunktionen<br />

nach ϕ:<br />

Gegeben: ˆϕ (n+1) ∈ F(REK).<br />

Gesucht: h ∈ F(PRIM) injektiv mit ˆϕ e = ϕ h(e) für alle e ∈ N.<br />

Idee zur Definition von h:<br />

1. Wähle eine normierte TM M mit Programm δ, die ˆϕ berechnet.<br />

2. Für jedes e gewinne aus M eine normierte TM M e mit Programm δ e , die<br />

bei Eingabe ⃗x ∈ N n die Ausgabe ˆϕ(e, ⃗x) wie folgt berechnet: M e ergänzt die<br />

Eingabe ⃗x um den Parameter e <strong>und</strong> simuliert dann δ auf der erweiterten<br />

Eingabe (e, ⃗x).<br />

3. Zeige, dass sich die Gödelnummer h(e) := gn(M e ) von M e (d.h. 1 h(e) ist die<br />

Unärdarstellung von ⌈δ e ⌉) primitiv rekursiv berechnen lässt.<br />

Es folgt<br />

ˆϕ(e, ⃗x) = U(µy(T (gn(M e ), ⃗x, y))) = ϕ(h(e), ⃗x),<br />

weshalb h die gesuchte Übersetzungsfunktion von ˆϕ nach ϕ ist. q.e.d.


NOTATION.<br />

Für die Standardaufzählung ϕ (n+1) der n-stelligen partiell rekursiven<br />

<strong>Funktionen</strong> benutzen wir folgende Notation:<br />

• {e} (n) (⃗x) := ϕ e (⃗x)<br />

Sprechweise: {e} (n) ist die e-te n-st. part. rek. Funktion<br />

Gilt ψ = {e}, so heisst e (part. rek.) Index von ψ.<br />

• W (n)<br />

e := Db(ϕ e ) = Db({e}) = {⃗x : (e, ⃗x) ∈ W (n+1) }<br />

W (n+1) := Db(ϕ)<br />

Sprechweise: W e<br />

(n) ist die e-te n-st. rek. aufzb. Menge<br />

Gilt A = W e , so heisst e (r.a.) Index von A.


Zum Abschluss dieses Abschnitts wollen wir noch zeigen, dass<br />

es - im Gegensatz zu den partiell rekursiven <strong>Funktionen</strong> - keine<br />

<strong>universelle</strong>n total rekursiven bzw. primitiv rekursiven <strong>Funktionen</strong><br />

gibt.<br />

Da die Klassen F tot (REK) <strong>und</strong> F(PRIM) den Nachfolger <strong>und</strong> die<br />

Projektionen enthalten <strong>und</strong> gegen simultane Substitution abgeschlossen<br />

sind, folgt dies aus folgender allgemeineren Beobachtung:<br />

SATZ. Sei F eine Klasse totaler <strong>Funktionen</strong> über N, die die Nachfolgerfunktion<br />

S sowie die Projektionen U n i<br />

enthält <strong>und</strong> die gegen<br />

die simultane Substitution abgeschlossen ist. Dann besitzt F keine<br />

n-<strong>universelle</strong> Funktion (n ≥ 1).


BEWEIS DURCH DIAGONALISIERUNG (für n = 1):<br />

Widerspruchsannahme: f (2) ∈ F sei 1-universell für F.<br />

Definiere die Funktion g durch<br />

g(x) = f(x, x) + 1 = S(f(U 1 1 (x), U 1 1 (x))) = S(f(U 1 1 , U 1 1 ))(x)<br />

Nach Wahl von F gilt dann g ∈ F.<br />

g ist aber so gewählt, dass es sich für jede Zahl e vom e-ten Zweig von f an<br />

der Stelle e unterscheidet:<br />

g(e) = f(e, e) + 1 = f e (e) + 1 > f e (e)<br />

Es gilt daher g ∉ {f e : e ≥ 0}. Wegen g ∈ F widerspricht dies aber der 1-<br />

Universalität von f ! q.e.d.<br />

Dieses Diagonalargument versagt bei partiellen <strong>Funktionen</strong>, da für <strong>und</strong>efiniertes<br />

ϕ(x, x) der Wert von ϕ(x, x) + 1 ebenfalls <strong>und</strong>efiniert ist <strong>und</strong> daher<br />

ϕ(x, x) = ϕ(x, x) + 1 gilt!

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!