29.10.2013 Aufrufe

Abschnitt 1.5: Turing-Berechenbarkeit - Universität Kassel

Abschnitt 1.5: Turing-Berechenbarkeit - Universität Kassel

Abschnitt 1.5: Turing-Berechenbarkeit - Universität Kassel

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.

Kapitel 1: <strong>Berechenbarkeit</strong>stheorie <strong>1.5</strong> <strong>Turing</strong>-<strong>Berechenbarkeit</strong><br />

<strong>1.5</strong> <strong>Turing</strong>-<strong>Berechenbarkeit</strong><br />

A.M. <strong>Turing</strong> (1937): Maschinenmodell zur exakten Beschreibung des<br />

Begriffs „effektiv berechenbar“<br />

✎☞<br />

✍✌Stift<br />

✘✘✘<br />

✘✘✘<br />

<br />

<br />

<br />

❅ ❅<br />

Mensch<br />

a<br />

b<br />

c b<br />

Rechenblatt<br />

a b b c<br />

endliche<br />

Kontrolle<br />

<strong>Turing</strong>maschine<br />

Lese-/Schreibkopf<br />

Eine <strong>Turing</strong>maschine arbeitet auf Wörtern, d.h. auf Ketten von<br />

Buchstaben (oder Zeichen) über einem endlichen Zeichenvorrat<br />

(Alphabet).<br />

Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) <strong>Berechenbarkeit</strong> und Formale Sprachen 78 / 309


Kapitel 1: <strong>Berechenbarkeit</strong>stheorie <strong>1.5</strong> <strong>Turing</strong>-<strong>Berechenbarkeit</strong><br />

Ein Alphabet Σ ist eine endliche, nicht-leere Menge, deren Elemente<br />

Buchstaben, Zeichen oder Symbole genannt werden.<br />

Beispiele:<br />

Σ1 := {a, b}<br />

Σ2 := {(,),+,−,∗,/, a}<br />

Σ3 := {0, 1,#}<br />

Durch Hintereinanderschreiben von Zeichen erhält man Wörter.<br />

∀n ≥ 1 : Σn = Wörter der Länge n über Σ<br />

ε = Wort der Länge 0 (leeres Wort)<br />

Σ + := <br />

Σn nicht-leere Wörter über Σ<br />

n≥1<br />

Σ∗ := Σ + ∪{ε} Wörter über Σ<br />

Beispiele:<br />

Σ2 1<br />

Σ∗ 1<br />

= {aa, ab, ba, bb}<br />

= {ε, a, b, aa, ab, ba, bb, aaa,...}<br />

Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) <strong>Berechenbarkeit</strong> und Formale Sprachen 79 / 309


Kapitel 1: <strong>Berechenbarkeit</strong>stheorie <strong>1.5</strong> <strong>Turing</strong>-<strong>Berechenbarkeit</strong><br />

Für w ∈ Σ ∗ ist |w| die Länge von w:<br />

|ε| = 0<br />

|w| = n für alle w ∈ Σ n , n ≥ 1.<br />

Für w ∈ Σ ∗ und a ∈ Σ ist |w|a die a-Länge von w:<br />

|ε|a = 0<br />

|wb|a = |w|a für b = a<br />

|wa|a = |w|a + 1<br />

Beachte:<br />

∀u ∈ Σ m ∀v ∈ Σ n : uv ∈ Σ m+n<br />

∀u ∈ Σ m : εu = u = uε<br />

∀u, v, w ∈ Σ ∗ : (uv)w = u(vw)<br />

(Σ ∗ ,·,ε) ist Halbgruppe mit neutralem Element ε (d.h. ein Monoid)<br />

Jedes w ∈ Σ ∗ lässt sich eindeutig als Folge von Zeichen aus Σ<br />

schreiben.<br />

Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) <strong>Berechenbarkeit</strong> und Formale Sprachen 80 / 309


Lemma 1.25<br />

Kapitel 1: <strong>Berechenbarkeit</strong>stheorie <strong>1.5</strong> <strong>Turing</strong>-<strong>Berechenbarkeit</strong><br />

Seien u, v, x, y ∈ Σ ∗ mit uv = xy. Dann gilt genau einer der drei<br />

folgenden Fälle:<br />

(1.) |u| = |x| und u = x und v = y.<br />

(2.) |u| > |x|, und es gibt ein z ∈ Σ + mit u = xz und y = zv.<br />

(3.) |u| < |x|, und es gibt ein z ∈ Σ + mit x = uz und v = zy.<br />

Abkürzende Schreibweise:<br />

u 0 = ε, u 1 = u und u n+1 = u n u für alle u ∈ Σ ∗ , n ≥ 1.<br />

Mit R : Σ ∗ → Σ ∗ wird die Spiegelungsfunktion (engl.: reversal)<br />

bezeichnet:<br />

ε R = ε,(ua) R = au R für alle u ∈ Σ ∗ und a ∈ Σ.<br />

Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) <strong>Berechenbarkeit</strong> und Formale Sprachen 81 / 309


Kapitel 1: <strong>Berechenbarkeit</strong>stheorie <strong>1.5</strong> <strong>Turing</strong>-<strong>Berechenbarkeit</strong><br />

Eine Teilmenge L von Σ ∗ heißt eine Formale Sprache über Σ.<br />

Beispiele:<br />

(1.) L1 := { w ∈ Σ ∗ 1<br />

| |w| ist eine ungerade Zahl}<br />

(2.) L2 := { korrekt geklammerte arithmetische Ausdrücke über Σ2}<br />

z.B.: (a−a)∗a+a/(a+a)−a ∈ L2<br />

(((a))) ∈ L2<br />

((a+)−a(∈ L2<br />

Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) <strong>Berechenbarkeit</strong> und Formale Sprachen 82 / 309


<strong>Turing</strong>maschine (TM)<br />

...<br />

Kapitel 1: <strong>Berechenbarkeit</strong>stheorie <strong>1.5</strong> <strong>Turing</strong>-<strong>Berechenbarkeit</strong><br />

unendliches Band<br />

✷ ✷ ✷ ✷ a b c # 0 1 1 0 ✷ ✷<br />

endliche<br />

Kontrolleinheit<br />

Lese-/Schreibkopf<br />

Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) <strong>Berechenbarkeit</strong> und Formale Sprachen 83 / 309<br />

...


Definition 1.26<br />

Kapitel 1: <strong>Berechenbarkeit</strong>stheorie <strong>1.5</strong> <strong>Turing</strong>-<strong>Berechenbarkeit</strong><br />

Eine <strong>Turing</strong>maschine (TM) ist gegeben durch ein 7-Tupel<br />

M = (Z,Σ,Γ,δ, z0,✷, E):<br />

– Z endliche Zustandsmenge<br />

– Σ Eingabealphabet<br />

– Γ ⊃ Σ Arbeitsalphabet<br />

– z0 ∈ Z Startzustand<br />

– ✷ ∈ ΓΣ Blank (Leerzeichen)<br />

– E ⊆ Z Endzustände<br />

– δ : ((Z E)×Γ) → (Z ×Γ×{L, R, N}) Überführungsfunktion<br />

Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) <strong>Berechenbarkeit</strong> und Formale Sprachen 84 / 309


Rechenschritte von M:<br />

δ(z1, a) = (z ′ 1 , b, L):<br />

Kapitel 1: <strong>Berechenbarkeit</strong>stheorie <strong>1.5</strong> <strong>Turing</strong>-<strong>Berechenbarkeit</strong><br />

... ✷ ✷ 1 0 a b c ✷ ✷<br />

...<br />

⇓<br />

z 1<br />

✷ ✷ 1 0 b b c ✷ ✷<br />

z ′ 1<br />

Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) <strong>Berechenbarkeit</strong> und Formale Sprachen 85 / 309<br />

...<br />

...


δ(z2, a) = (z ′ 2 , b, R):<br />

Kapitel 1: <strong>Berechenbarkeit</strong>stheorie <strong>1.5</strong> <strong>Turing</strong>-<strong>Berechenbarkeit</strong><br />

...<br />

✷ ✷ 1 0 a b c ✷ ✷<br />

⇓<br />

z 2<br />

... ✷ ✷ 1 0 b b c ✷ ✷<br />

z ′ 2<br />

Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) <strong>Berechenbarkeit</strong> und Formale Sprachen 86 / 309<br />

...<br />

...


δ(z3, a) = (z ′ 3 , b, N):<br />

Kapitel 1: <strong>Berechenbarkeit</strong>stheorie <strong>1.5</strong> <strong>Turing</strong>-<strong>Berechenbarkeit</strong><br />

...<br />

✷ ✷ 1 0 a b c ✷ ✷<br />

⇓<br />

z 3<br />

... ✷ ✷ 1 0 b b c ✷ ✷<br />

z ′ 3<br />

Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) <strong>Berechenbarkeit</strong> und Formale Sprachen 87 / 309<br />

...<br />

...


Definition 1.27<br />

Kapitel 1: <strong>Berechenbarkeit</strong>stheorie <strong>1.5</strong> <strong>Turing</strong>-<strong>Berechenbarkeit</strong><br />

Eine Konfiguration der TM M ist ein Wort k ∈ Γ ∗ ZΓ + .<br />

k deckt den von ✷ verschiedenen Teil des Bandes ab.<br />

Beispiele:<br />

10z1abc, 1z ′ 1 0bbc,<br />

10z2abc, 10bz ′ 2 bc,<br />

10z3abc, 10z ′ 3 bbc<br />

Startkonfiguration für Eingabe x ∈ Σ + : z0x<br />

Startkonfiguration für Eingabe ε : z0✷<br />

Haltekonfiguration: uzv mit z ∈ E.<br />

Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) <strong>Berechenbarkeit</strong> und Formale Sprachen 88 / 309


Kapitel 1: <strong>Berechenbarkeit</strong>stheorie <strong>1.5</strong> <strong>Turing</strong>-<strong>Berechenbarkeit</strong><br />

Definition 1.28 (Berechnungsrelation ⊢ :)<br />

⎧<br />

a1...amzb1...bn ⊢<br />

Sonderfälle:<br />

⎪⎨<br />

⎪⎩<br />

a1...amz ′ cb2...bn<br />

falls δ(z, b1) = (z ′ , c, N) (m ≥ 0, n ≥ 1)<br />

a1...amcz ′ b2...bn<br />

falls δ(z, b1) = (z ′ , c, R) (m ≥ 0, n ≥ 2)<br />

a1...am−1z ′ amcb2...bn<br />

falls δ(z, b1) = (z ′ , c, L) (m ≥ 1, n ≥ 1)<br />

a1...amzb1 ⊢ a1...amcz ′ ✷ falls δ(z, b1) = (z ′ , c, R).<br />

zb1...bn ⊢ z ′ ✷cb2...bn falls δ(z, b1) = (z ′ , c, L).<br />

⊢ ∗ bezeichnet den reflexiv-transitiven Abschluss von ⊢, d.h.<br />

k ⊢ ∗ k ′ gdw. ∃m ≥ 0∃k0,...,km : k = k0 ⊢ k1 ⊢ ... ⊢ km = k ′<br />

Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) <strong>Berechenbarkeit</strong> und Formale Sprachen 89 / 309


Kapitel 1: <strong>Berechenbarkeit</strong>stheorie <strong>1.5</strong> <strong>Turing</strong>-<strong>Berechenbarkeit</strong><br />

Eine Rechnung von M bei Eingabe x ∈ Σ ∗ ist eine Folge<br />

z0x = k0 ⊢ k1 ⊢ k2 ⊢ ....<br />

Eine Rechnung kann endlich oder unendlich sein.<br />

Eine erfolgreiche Rechnung von M bei Eingabe x ∈ Σ ∗ ist eine<br />

endliche Rechnung z0x = k0 ⊢ k1 ⊢ k2 ⊢ ... ⊢ km−1 ⊢ km,<br />

sodass km eine Haltekonfiguration ist.<br />

T(M) = { x ∈ Σ ∗ | ∃ erfolgreiche Rechnung von M mit Eingabe x }<br />

ist die von M akzeptierte Sprache.<br />

Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) <strong>Berechenbarkeit</strong> und Formale Sprachen 90 / 309


Beispiel TM für binäres „+1“:<br />

Kapitel 1: <strong>Berechenbarkeit</strong>stheorie <strong>1.5</strong> <strong>Turing</strong>-<strong>Berechenbarkeit</strong><br />

M = ({z0, z1, z2, ze},{0, 1},{0, 1,✷},δ, z0,✷,{ze}) mit<br />

δ(z0, 0) = (z0, 0, R), δ(z0, 1) = (z0, 1, R),<br />

δ(z0,✷) = (z1,✷, L)<br />

δ(z1, 0) = (z2, 1, L), δ(z1, 1) = (z1, 0, L),<br />

δ(z1,✷) = (ze, 1, N)<br />

δ(z2, 0) = (z2, 0, L), δ(z2, 1) = (z2, 1, L),<br />

δ(z2,✷) = (ze,✷, R)<br />

Beispielrechnung:<br />

z0101 ⊢ 1z001 ⊢ 10z01 ⊢ 101z0✷<br />

⊢ 10z11✷ ⊢ 1z100✷ ⊢ z2110✷<br />

⊢ z2✷110✷ ⊢ ✷ze110✷,<br />

also z0101 ⊢ ∗ ✷ze110✷.<br />

Bezeichnung für diese TM: Band := Band +1<br />

Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) <strong>Berechenbarkeit</strong> und Formale Sprachen 91 / 309


Definition 1.29<br />

Kapitel 1: <strong>Berechenbarkeit</strong>stheorie <strong>1.5</strong> <strong>Turing</strong>-<strong>Berechenbarkeit</strong><br />

Eine Funktion f : Σ ∗ → Σ ∗ heißt <strong>Turing</strong>-berechenbar, wenn es eine<br />

<strong>Turing</strong>maschine M gibt, sodass für alle x, y ∈ Σ ∗ gilt:<br />

f(x) = y gdw. z0x ⊢ ∗ M ✷...✷zey✷...✷ (ze ∈ E).<br />

Ist f(x) undefiniert, so ist die Rechnung von M, die mit der<br />

Startkonfiguration z0x beginnt, unendlich, d.h., M hält ausgehend von<br />

z0x nicht an!<br />

Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) <strong>Berechenbarkeit</strong> und Formale Sprachen 92 / 309


Beispiele:<br />

Kapitel 1: <strong>Berechenbarkeit</strong>stheorie <strong>1.5</strong> <strong>Turing</strong>-<strong>Berechenbarkeit</strong><br />

(1) Die Funktion bin_plus1: {0, 1} ∗ → {0, 1} ∗<br />

ist <strong>Turing</strong>-berechenbar.<br />

(2) Die Funktion R : Σ ∗ → Σ ∗<br />

w ↦→ w R<br />

ist <strong>Turing</strong>-berechenbar.<br />

(3) Die Funktion 2 : Σ ∗ → Σ ∗<br />

w ↦→ ww<br />

ist <strong>Turing</strong>-berechenbar.<br />

bin(n) ↦→ bin(n+1)<br />

Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) <strong>Berechenbarkeit</strong> und Formale Sprachen 93 / 309


Definition 1.30<br />

Kapitel 1: <strong>Berechenbarkeit</strong>stheorie <strong>1.5</strong> <strong>Turing</strong>-<strong>Berechenbarkeit</strong><br />

Sei A ⊆ Σ ∗ . Die Menge A heißt entscheidbar, wenn ihre<br />

charakteristische Funktion χA <strong>Turing</strong>-berechenbar ist:<br />

Beispiel:<br />

χA(w) =<br />

1, falls w ∈ A,<br />

0, falls w ∈ A.<br />

Die Menge A = { w ∈ {a, b} ∗ | |w| ist gerade } ist entscheidbar.<br />

Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) <strong>Berechenbarkeit</strong> und Formale Sprachen 94 / 309


Definition 1.31<br />

Kapitel 1: <strong>Berechenbarkeit</strong>stheorie <strong>1.5</strong> <strong>Turing</strong>-<strong>Berechenbarkeit</strong><br />

Sei A ⊆ Σ∗ . Die Menge A heißt semi-entscheidbar, wenn die folgende<br />

Funktion χ ′ A <strong>Turing</strong>-berechenbar ist:<br />

χ ′ A (w) =<br />

1, falls w ∈ A,<br />

undefiniert, falls w ∈ A.<br />

Die <strong>Turing</strong>maschine zur Berechnung von χ ′ A hält also ausgehend von<br />

der Startkonfiguration z0w (w ∈ Σ∗ ) genau dann an, wenn w ∈ A ist.<br />

Lemma 1.32<br />

Jede entscheidbare Menge ist semi-entscheidbar.<br />

Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) <strong>Berechenbarkeit</strong> und Formale Sprachen 95 / 309


Definition 1.33<br />

Kapitel 1: <strong>Berechenbarkeit</strong>stheorie <strong>1.5</strong> <strong>Turing</strong>-<strong>Berechenbarkeit</strong><br />

Eine Funktion f : N k → N heißt <strong>Turing</strong>-berechenbar, wenn es eine<br />

<strong>Turing</strong>maschine M gibt, sodass für alle n1,...,nk, m ∈ N gilt:<br />

f(n1,...,nk) = m gdw. z0bin(n1)#bin(n2)#...#bin(nk)<br />

⊢ ∗ M ✷...✷zebin(m)✷...✷ (ze ∈ E).<br />

Ist f(n1,...,nk) undefiniert, dann hält M ausgehend von der<br />

Startkonfiguration z0bin(n1)#bin(n2)#...#bin(nk) nicht an!<br />

Beispiel:<br />

Die Funktion +1: N → N<br />

n ↦→ n+1<br />

ist <strong>Turing</strong>-berechenbar.<br />

Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) <strong>Berechenbarkeit</strong> und Formale Sprachen 96 / 309


Kapitel 1: <strong>Berechenbarkeit</strong>stheorie <strong>1.5</strong> <strong>Turing</strong>-<strong>Berechenbarkeit</strong><br />

Eine Mehrband-<strong>Turing</strong>maschine mit k ≥ 2 Bändern:<br />

endliche<br />

Kontrolle<br />

... a 1 a 2 a 3 a 4 a5 a 6 a7 a 8 a 9<br />

...<br />

b 1 b 2 b 3 b 4 b5 b 6 b7 b 8 b 9<br />

a 10<br />

b 10<br />

... c 1 c 2 c 3 c 4 c5 c 6 c7 c 8 c 9 c 10<br />

δ : (Z ×Γ k ) → (Z ×Γ k ×{L, R, N} k )<br />

Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) <strong>Berechenbarkeit</strong> und Formale Sprachen 97 / 309<br />

...<br />

...<br />

...


Beispiel:<br />

Kapitel 1: <strong>Berechenbarkeit</strong>stheorie <strong>1.5</strong> <strong>Turing</strong>-<strong>Berechenbarkeit</strong><br />

Eine 2-Band-<strong>Turing</strong>maschine zur Berechnung der Spiegelungsfunktion<br />

M = ({z0, z1, z2, z3, ze},{a, b},{a, b,✷},δ, z0,✷,{ze}) mit:<br />

δ z0 z1 z2 z3<br />

(a, a) – – – –<br />

(a, b) – – – –<br />

(a,✷) (z1, a,✷, R, N) (z1, a,✷, R, N) (z2,✷, a, L, R) –<br />

(b, a) – – – –<br />

(b, b) – – – –<br />

(b,✷) (z1, b,✷, R, N) (z1, b,✷, R, N) (z2,✷, b, L, R) –<br />

(✷, a) – – – (z3,✷, a, N, L)<br />

(✷, b) – – – (z3,✷, b, N, L)<br />

(✷,✷) (ze,✷,✷, N, N) (z2,✷,✷, L, N) (z3,✷,✷, N, L) (ze,✷,✷, N, R)<br />

Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) <strong>Berechenbarkeit</strong> und Formale Sprachen 98 / 309


Eingabe: w = aab<br />

Kapitel 1: <strong>Berechenbarkeit</strong>stheorie <strong>1.5</strong> <strong>Turing</strong>-<strong>Berechenbarkeit</strong><br />

Startkonfiguration: Band 1<br />

...<br />

...<br />

✷ a a<br />

Beschreibung: (z0aab, z0✷)<br />

✷ ✷ ✷ ✷<br />

z0<br />

b<br />

✷<br />

✷<br />

...<br />

...<br />

Band 2<br />

Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) <strong>Berechenbarkeit</strong> und Formale Sprachen 99 / 309


Kapitel 1: <strong>Berechenbarkeit</strong>stheorie <strong>1.5</strong> <strong>Turing</strong>-<strong>Berechenbarkeit</strong><br />

Rechnung:<br />

(z0aab, z0✷) ⊢M (az1ab, z1✷) ⊢M (aaz1b, z1✷)<br />

⊢M (aabz1✷, z1✷) ⊢M (aaz2b✷, z2✷)<br />

⊢M (az2a✷✷, bz2✷) ⊢M (z2a✷✷✷, baz2✷)<br />

⊢M (z2✷✷✷✷✷, baaz2✷) ⊢M (z3✷✷✷✷✷, baz3a✷)<br />

⊢M (z3✷✷✷✷✷, bz3aa✷) ⊢M (z3✷✷✷✷✷, z3baa✷)<br />

⊢M (z3✷✷✷✷✷, z3✷baa✷) ⊢M (ze✷✷✷✷✷,✷zebaa✷)<br />

Haltekonfiguration: Band 1<br />

... ✷ ✷ ✷ ✷ ✷<br />

... ✷ b a a<br />

ze<br />

Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) <strong>Berechenbarkeit</strong> und Formale Sprachen 100 / 309<br />

✷<br />

...<br />

...


Satz 1.34<br />

Kapitel 1: <strong>Berechenbarkeit</strong>stheorie <strong>1.5</strong> <strong>Turing</strong>-<strong>Berechenbarkeit</strong><br />

Zu jeder Mehrband-TM M gibt es eine (Einband-) <strong>Turing</strong>maschine M ′ ,<br />

die dieselbe Funktion berechnet wie M.<br />

Beweis:<br />

Mehrband-<strong>Turing</strong>maschine M mit k Bändern:<br />

... a1 a2 a3 a4 a5 a6 a7 a8 a9 ... Band 1<br />

... b1 b2 b3 b4 b5 b6 b7 b8 b9 ... Band 2<br />

... c1 c2 c3 c4 c5 c6 c7 c8 c9 ... Band 3<br />

Zustand: z<br />

Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) <strong>Berechenbarkeit</strong> und Formale Sprachen 101 / 309


Einband-TM M ′ :<br />

Kapitel 1: <strong>Berechenbarkeit</strong>stheorie <strong>1.5</strong> <strong>Turing</strong>-<strong>Berechenbarkeit</strong><br />

... ...<br />

a1 a2 a3 a4 a5 a6 a7 a8 a9 ... b1 b2 b3 b4 b5 b6 b7 b8 b9 ...<br />

... c1 c2 c3 c4 c5 c6 c7 c8 c9 ...<br />

*<br />

Band mit 2k “Spuren”<br />

Arbeitsalphabet: Γ ′ := Γ∪(Γ∪{∗}) 2k<br />

*<br />

Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) <strong>Berechenbarkeit</strong> und Formale Sprachen 102 / 309<br />

*


Arbeitsweise von M ′ :<br />

Kapitel 1: <strong>Berechenbarkeit</strong>stheorie <strong>1.5</strong> <strong>Turing</strong>-<strong>Berechenbarkeit</strong><br />

Startkonfiguration: z0w (w ∈ Σ ∗ )<br />

1. Phase:<br />

*<br />

✷ ✷ ✷ ✷ ✷ ✷ ✷ ✷<br />

*<br />

✷ ✷ ✷ ✷ ✷ ✷ ✷ ✷<br />

*<br />

2. Phase: M ′ simuliert M schrittweise.<br />

w<br />

3. Phase: Ergebnis von Spur 1 auf das gesamte Band kopieren. ✷<br />

Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) <strong>Berechenbarkeit</strong> und Formale Sprachen 103 / 309


Kapitel 1: <strong>Berechenbarkeit</strong>stheorie <strong>1.5</strong> <strong>Turing</strong>-<strong>Berechenbarkeit</strong><br />

Ist M eine 1-Band-TM, so ist M(i, k) (i ≤ k) die k-Band-TM, die auf<br />

Band i M simuliert, wobei alle anderen Bänder unverändert bleiben.<br />

Beispiele:<br />

(i) Band := Band+1(i, k).<br />

Schreibweise: Band i := Band i + 1<br />

(ii) Band i := Band i − 1.<br />

(iii) Band i := 0.<br />

(iv) Band i := Band j.<br />

Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) <strong>Berechenbarkeit</strong> und Formale Sprachen 104 / 309


Kapitel 1: <strong>Berechenbarkeit</strong>stheorie <strong>1.5</strong> <strong>Turing</strong>-<strong>Berechenbarkeit</strong><br />

Hintereinanderschalten von TMen<br />

Mi = (Zi,Σ,Γi,δi, zi,✷, Ei), i = 1, 2<br />

M : start → M1 → M2 → stop<br />

M = (Z1 ∪ Z2,Σ,Γ1 ∪Γ2,δ, z1,✷, E2)<br />

mit δ := δ1 ∪δ2 ∪{(ze, a, z2, a, N) | ze ∈ E1, a ∈ Γ1}.<br />

Beispiele:<br />

(i) start<br />

↓<br />

Band := Band + 1<br />

↓<br />

Band := Band + 1<br />

↓<br />

Band := Band + 1 → stop<br />

Schreibweise: Band := Band + 3<br />

Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) <strong>Berechenbarkeit</strong> und Formale Sprachen 105 / 309


(ii) start<br />

Kapitel 1: <strong>Berechenbarkeit</strong>stheorie <strong>1.5</strong> <strong>Turing</strong>-<strong>Berechenbarkeit</strong><br />

ze1 <br />

M <br />

<br />

M2<br />

ze 2<br />

<br />

stop<br />

M1<br />

<br />

stop<br />

(iii) Band = 0? :<br />

Z := {z0, z1, ja,nein}, E = {ja,nein},<br />

δ : (z0, a) ↦→ (nein, a, N) für a = 0<br />

(z0, 0) ↦→ (z1, 0, R)<br />

(z1, a) ↦→ (nein, a, L) für a = ✷<br />

(z1,✷) ↦→ (ja,✷, L)<br />

Hieraus: Band i=0?<br />

Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) <strong>Berechenbarkeit</strong> und Formale Sprachen 106 / 309


(iv)<br />

Kapitel 1: <strong>Berechenbarkeit</strong>stheorie <strong>1.5</strong> <strong>Turing</strong>-<strong>Berechenbarkeit</strong><br />

start<br />

Band i = 0?<br />

M<br />

nein<br />

ja<br />

stop<br />

Schreibweise: WHILE Band i = 0 DO M.<br />

Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) <strong>Berechenbarkeit</strong> und Formale Sprachen 107 / 309


Beobachtung:<br />

Kapitel 1: <strong>Berechenbarkeit</strong>stheorie <strong>1.5</strong> <strong>Turing</strong>-<strong>Berechenbarkeit</strong><br />

Die <strong>Turing</strong>maschinen bilden eine einfache Programmiersprache:<br />

– Die Funktionen +c und −c (c ∈ N) sowie<br />

f(x1,...,xn) = xi (1 ≤ i ≤ n) sind TM-berechenbar.<br />

– Diese Sprache enthält einfache Wertzuweisungen.<br />

– Sie enthält einfache Abfragen und while-Schleifen.<br />

– Das Hintereinanderschalten von Programmen ist möglich.<br />

Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) <strong>Berechenbarkeit</strong> und Formale Sprachen 108 / 309


Satz 1.35<br />

Kapitel 1: <strong>Berechenbarkeit</strong>stheorie <strong>1.5</strong> <strong>Turing</strong>-<strong>Berechenbarkeit</strong><br />

<strong>Turing</strong>maschinen können WHILE-Programme simulieren, d.h. jede<br />

WHILE-berechenbare Funktion ist auch <strong>Turing</strong>-berechenbar.<br />

Satz 1.36<br />

Jede <strong>Turing</strong>maschine kann durch ein GOTO-Programm simuliert<br />

werden, d.h. jede <strong>Turing</strong>-berechenbare Funktion ist auch<br />

GOTO-berechenbar.<br />

Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) <strong>Berechenbarkeit</strong> und Formale Sprachen 109 / 309


Beweis:<br />

Kapitel 1: <strong>Berechenbarkeit</strong>stheorie <strong>1.5</strong> <strong>Turing</strong>-<strong>Berechenbarkeit</strong><br />

Sei M = (Z,Σ,Γ,δ, z1,✷, E) eine TM, die die Funktion f : N k → N<br />

berechnet.<br />

Für alle n1,...,nk ∈ N:<br />

f(n1,...,nk) ist definiert:<br />

z1bin(n1)#bin(n2)#...#bin(nk) ⊢ ∗ M ✷...✷zebin(f(n1,...,nk))✷...✷<br />

f(n1,...,nk) ist nicht definiert:<br />

z1bin(n1)#bin(n2)#...#bin(nk) ⊢M ... ⊢M ... ⊢M ...<br />

GOTO-Programm M ′ zur Simulation von M:<br />

M1 : P1; M2 : P2; M3 : P3<br />

P1 : (n1,...,nk) ↦→ Darstellung der Konfiguration<br />

z1bin(n1)#...#bin(nk) in x, y, z.<br />

P2 : schrittweise Simulation von M auf x, y, z.<br />

P3 : Endwerte von x, y, z ↦→ f(n1,...,nk).<br />

Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) <strong>Berechenbarkeit</strong> und Formale Sprachen 110 / 309


Kapitel 1: <strong>Berechenbarkeit</strong>stheorie <strong>1.5</strong> <strong>Turing</strong>-<strong>Berechenbarkeit</strong><br />

Kodierung von TM-Konfigurationen<br />

Z = {z1,...,zk}, Γ = {a1,...,am}, b > |Γ|<br />

Konfiguration: ai 1 ai 2 ...aip zℓaj 1 aj 2 ...ajq<br />

Kodierung: x = (i1i2...ip)b<br />

y = (jq...j2j1)b<br />

z = ℓ<br />

p<br />

mit (i1...ip)b := iµ · bp−µ und (jq...j1)b :=<br />

µ=1<br />

Beispiel Γ = {a1, a2, a3, a4}, b = 5:<br />

Konfiguration: a1a2a1z2a3a4<br />

q<br />

jν · b<br />

ν=1<br />

ν−1<br />

Kodierung: x = (a1a2a1)5 = 1·5 2 + 2·5 1 + 1·5 0 = 36<br />

y = (a4a3)5 = 4·5 1 + 3·5 0 = 23<br />

z = 2<br />

P1 und P3: elementare arithmetische Operationen.<br />

Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) <strong>Berechenbarkeit</strong> und Formale Sprachen 111 / 309


Beispiel:<br />

Kapitel 1: <strong>Berechenbarkeit</strong>stheorie <strong>1.5</strong> <strong>Turing</strong>-<strong>Berechenbarkeit</strong><br />

Eingabe: (10, 6).<br />

Kodierung: 0 ↦→ a1, 1 ↦→ a2, # ↦→ a3, ✷ ↦→ a4 und b = 5.<br />

Eingabekonf.: z1bin(10)#bin(6) = z11010#110<br />

= z1a2a1a2a1a3a2a2a1.<br />

WHILE-Programm P1: z ← 1; x ← 0; y ← 0;<br />

WHILE x2 = 0 DO x3 ← (x2 MOD 2)+1;<br />

x2 ← x2 DIV 2;<br />

y ← y ∗ 5+x3<br />

END;<br />

y ← y ∗ 5+3;<br />

WHILE x1 = 0 DO x3 ← (x1 MOD 2)+1;<br />

x1 ← x1 DIV 2;<br />

y ← y ∗ 5+x3<br />

END;<br />

Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) <strong>Berechenbarkeit</strong> und Formale Sprachen 112 / 309


GOTO-Programm M2 : P2<br />

Kapitel 1: <strong>Berechenbarkeit</strong>stheorie <strong>1.5</strong> <strong>Turing</strong>-<strong>Berechenbarkeit</strong><br />

M2 : a := y MOD b;<br />

IF (z = 1) AND (a = 1) THEN GOTO M1,1;<br />

IF (z = 1) AND (a = 2) THEN GOTO M1,2;<br />

.<br />

IF (z = k) AND (a = m) THEN GOTO Mk,m;<br />

M1,1 : Programmstück zur Simulation von δ(z1, a1)<br />

GOTO M2;<br />

.<br />

Mk,m : Programmstück zur Simulation von δ(zk, am)<br />

GOTO M2;<br />

Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) <strong>Berechenbarkeit</strong> und Formale Sprachen 113 / 309


Kapitel 1: <strong>Berechenbarkeit</strong>stheorie <strong>1.5</strong> <strong>Turing</strong>-<strong>Berechenbarkeit</strong><br />

Simulation eines TM-Schritts: δ(zi, aj) = (zi ′, aj ′, L):<br />

ai ...aip zi ajaj ...ajq<br />

1<br />

<br />

2<br />

<br />

x z y<br />

⊢M ai 1 ...ai p−1<br />

<br />

x<br />

zi ′ aip <br />

z<br />

aj ′aj ...ajq 2<br />

<br />

y<br />

GOTO-Programmstück: z := i ′ ;<br />

y := y DIV b;<br />

y := y ∗ b + j ′ ;<br />

y := y ∗ b +(x MOD b);<br />

x := x DIV b;<br />

Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) <strong>Berechenbarkeit</strong> und Formale Sprachen 114 / 309


Kapitel 1: <strong>Berechenbarkeit</strong>stheorie <strong>1.5</strong> <strong>Turing</strong>-<strong>Berechenbarkeit</strong><br />

Übersicht<br />

GOTO ↔ WHILE ↔ TM ↔ µ-rekursiv<br />

<br />

<br />

LOOP ↔ prim. rekursiv<br />

Die Ackermannfunktion a(.,.) ist WHILE-berechenbar und total, aber<br />

sie ist nicht LOOP-berechenbar.<br />

Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) <strong>Berechenbarkeit</strong> und Formale Sprachen 115 / 309

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!