A.M. Turing (1937): Maschinenmodell zur exakten Beschreibung des Begriffs effektiv berechenbar Stift Mensch a c b b Rechenblatt a b b c Lese-/Schreibkopf endliche Kontrolle Turingmaschine Eine Turingmaschine arbeitet auf Wörtern, d.h. auf Ketten von Buchstaben (oder Zeichen) über einem endlichen Zeichenvorrat (Alphabet). Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 78 / 309
Ein Alphabet Σ ist eine endliche, nicht-leere Menge, deren Elemente Buchstaben, Zeichen oder Symbole genannt werden. Beispiele: Σ 1 := {a, b} Σ 2 := {(,),+,,,/, a} Σ 3 := {0, 1,#} Durch Hintereinanderschreiben von Zeichen erhält man Wörter. n 1 : Σ n = Wörter der Länge n über Σ ε = Wort der Länge 0 (leeres Wort) Σ + := Σ n nicht-leere Wörter über Σ n 1 Σ := Σ + {ε} Wörter über Σ Beispiele: Σ 2 1 Σ 1 = {aa, ab, ba, bb} = {ε, a, b, aa, ab, ba, bb, aaa,} Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 79 / 309
Für w Σ ist w die Länge von w: ε = 0 w = n für alle w Σ n, n 1. Für w Σ und a Σ ist w a die a-länge von w: ε a = 0 wb a = w a für b a wa a = w a + 1 Beachte: u Σ m v Σ n : uv Σ m+n u Σ m : εu = u = uε u, v, w Σ : (uv)w = u(vw) (Σ,,ε) ist Halbgruppe mit neutralem Element ε (d.h. ein Monoid) Jedes w Σ lässt sich eindeutig als Folge von Zeichen aus Σ schreiben. Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 80 / 309
Lemma 1.25 Seien u, v, x, y Σ mit uv = xy. Dann gilt genau einer der drei folgenden Fälle: (1.) u = x und u = x und v = y. (2.) u > x, und es gibt ein z Σ + mit u = xz und y = zv. (3.) u < x, und es gibt ein z Σ + mit x = uz und v = zy. Abkürzende Schreibweise: u 0 = ε, u 1 = u und u n+1 = u n u für alle u Σ, n 1. Mit R : Σ Σ wird die Spiegelungsfunktion (engl.: reversal) bezeichnet: ε R = ε,(ua) R = au R für alle u Σ und a Σ. Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 81 / 309
Eine Teilmenge L von Σ heißt eine Formale Sprache über Σ. Beispiele: (1.) L 1 := { w Σ 1 w ist eine ungerade Zahl} (2.) L 2 := { korrekt geklammerte arithmetische Ausdrücke über Σ 2 } z.b.: (a a) a+a/(a+a) a L 2 (((a))) L 2 ((a+) a( L 2 Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 82 / 309
Turingmaschine (TM) unendliches Band a b c # 0 1 1 0 Lese-/Schreibkopf endliche Kontrolleinheit Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 83 / 309
Definition 1.26 Eine Turingmaschine (TM) ist gegeben durch ein 7-Tupel M = (Z,Σ,Γ,δ, z 0,, E): Z endliche Zustandsmenge Σ Eingabealphabet Γ Σ Arbeitsalphabet z 0 Z Startzustand Γ Σ Blank (Leerzeichen) E Z Endzustände δ : ((Z E) Γ) (Z Γ {L, R, N}) Überführungsfunktion Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 84 / 309
Rechenschritte von M: δ(z 1, a) = (z 1, b, L): 1 0 a b c z 1 1 0 b b c z 1 Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 85 / 309
δ(z 2, a) = (z 2, b, R): 1 0 a b c z 2 1 0 b b c z 2 Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 86 / 309
δ(z 3, a) = (z 3, b, N): 1 0 a b c z 3 1 0 b b c z 3 Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 87 / 309
Definition 1.27 Eine Konfiguration der TM M ist ein Wort k Γ ZΓ +. k deckt den von verschiedenen Teil des Bandes ab. Beispiele: 10z 1 abc, 1z 1 0bbc, 10z 2 abc, 10bz 2 bc, 10z 3 abc, 10z 3 bbc Startkonfiguration für Eingabe x Σ + : z 0 x Startkonfiguration für Eingabe ε : z 0 Haltekonfiguration: uzv mit z E. Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 88 / 309
Definition 1.28 (Berechnungsrelation :) a 1 a m z cb 2 b n falls δ(z, b 1 ) = (z, c, N) (m 0, n 1) a a 1 a m zb 1 b n 1 a m cz b 2 b n falls δ(z, b 1 ) = (z, c, R) (m 0, n 2) a 1 a m 1 z a m cb 2 b n falls δ(z, b 1 ) = (z, c, L) (m 1, n 1) Sonderfälle: a 1 a m zb 1 a 1 a m cz falls δ(z, b 1 ) = (z, c, R). zb 1 b n z cb 2 b n falls δ(z, b 1 ) = (z, c, L). bezeichnet den reflexiv-transitiven Abschluss von, d.h. k k gdw. m 0 k 0,,k m : k = k 0 k 1 k m = k Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 89 / 309
Eine Rechnung von M bei Eingabe x Σ ist eine Folge z 0 x = k 0 k 1 k 2. Eine Rechnung kann endlich oder unendlich sein. Eine erfolgreiche Rechnung von M bei Eingabe x Σ ist eine endliche Rechnung z 0 x = k 0 k 1 k 2 k m 1 k m, sodass k m eine Haltekonfiguration ist. T(M) = { x Σ erfolgreiche Rechnung von M mit Eingabe x } ist die von M akzeptierte Sprache. Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 90 / 309
Beispiel TM für binäres +1 : M = ({z 0, z 1, z 2, z e },{0, 1},{0, 1, },δ, z 0,,{z e }) mit δ(z 0, 0) = (z 0, 0, R), δ(z 0, 1) = (z 0, 1, R), δ(z 0, ) = (z 1,, L) δ(z 1, 0) = (z 2, 1, L), δ(z 1, 1) = (z 1, 0, L), δ(z 1, ) = (z e, 1, N) δ(z 2, 0) = (z 2, 0, L), δ(z 2, 1) = (z 2, 1, L), δ(z 2, ) = (z e,, R) Beispielrechnung: z 0 101 1z 0 01 10z 0 1 101z 0 10z 1 1 1z 1 00 z 2 110 z 2 110 z e 110, also z 0 101 z e 110. Bezeichnung für diese TM: Band := Band +1 Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 91 / 309
Definition 1.29 Eine Funktion f : Σ Σ heißt Turing-berechenbar, wenn es eine Turingmaschine M gibt, sodass für alle x, y Σ gilt: f(x) = y gdw. z 0 x M z ey (z e E). Ist f(x) undefiniert, so ist die Rechnung von M, die mit der Startkonfiguration z 0 x beginnt, unendlich, d.h., M hält ausgehend von z 0 x nicht an! Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 92 / 309
Beispiele: (1) Die Funktion bin_plus1: {0, 1} {0, 1} ist Turing-berechenbar. (2) Die Funktion R : Σ Σ w w R ist Turing-berechenbar. (3) Die Funktion 2 : Σ Σ w ww ist Turing-berechenbar. bin(n) bin(n+1) Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 93 / 309
Definition 1.30 Sei A Σ. Die Menge A heißt entscheidbar, wenn ihre charakteristische Funktion χ A Turing-berechenbar ist: χ A (w) = { 1, falls w A, 0, falls w A. Beispiel: Die Menge A = { w {a, b} w ist gerade } ist entscheidbar. Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 94 / 309
Definition 1.31 Sei A Σ. Die Menge A heißt semi-entscheidbar, wenn die folgende Funktion χ A Turing-berechenbar ist: χ A (w) = { 1, falls w A, undefiniert, falls w A. Die Turingmaschine zur Berechnung von χ A hält also ausgehend von der Startkonfiguration z 0 w (w Σ ) genau dann an, wenn w A ist. Lemma 1.32 Jede entscheidbare Menge ist semi-entscheidbar. Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 95 / 309
Definition 1.33 Eine Funktion f : N k N heißt Turing-berechenbar, wenn es eine Turingmaschine M gibt, sodass für alle n 1,,n k, m N gilt: f(n 1,,n k ) = m gdw. z 0 bin(n 1 )#bin(n 2 )##bin(n k ) M z ebin(m) (z e E). Ist f(n 1,,n k ) undefiniert, dann hält M ausgehend von der Startkonfiguration z 0 bin(n 1 )#bin(n 2 )##bin(n k ) nicht an! Beispiel: Die Funktion +1: N N n n+1 ist Turing-berechenbar. Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 96 / 309
Eine Mehrband-Turingmaschine mit k 2 Bändern: a 1 a 2 a 3 a 4 a 5 a 6 a 7 a 8 a 9 a 10 b 1 b 2 b 3 b 4 b 5 b 6 b 7 b 8 b 9 b 10 c 1 c 2 c 3 c 4 c 5 c 6 c 7 c 8 c 9 c 10 endliche Kontrolle δ : (Z Γ k ) (Z Γ k {L, R, N} k ) Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 97 / 309
Beispiel: Eine 2-Band-Turingmaschine zur Berechnung der Spiegelungsfunktion M = ({z 0, z 1, z 2, z 3, z e },{a, b},{a, b, },δ, z 0,,{z e }) mit: δ z 0 z 1 z 2 z 3 (a, a) (a, b) (a, ) (z 1, a,, R, N) (z 1, a,, R, N) (z 2,, a, L, R) (b, a) (b, b) (b, ) (z 1, b,, R, N) (z 1, b,, R, N) (z 2,, b, L, R) (, a) (z 3,, a, N, L) (, b) (z 3,, b, N, L) (, ) (z e,,, N, N) (z 2,,, L, N) (z 3,,, N, L) (z e,,, N, R) Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 98 / 309
Eingabe: w = aab Startkonfiguration: Band 1 a a b Band 2 z 0 Beschreibung: (z 0 aab, z 0 ) Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 99 / 309
Rechnung: (z 0 aab, z 0 ) M (az 1 ab, z 1 ) M (aaz 1 b, z 1 ) M (aabz 1, z 1 ) M (aaz 2 b, z 2 ) M (az 2 a, bz 2 ) M (z 2 a, baz 2 ) M (z 2, baaz 2 ) M (z 3, baz 3 a ) M (z 3, bz 3 aa ) M (z 3, z 3 baa ) M (z 3, z 3 baa ) M (z e, z e baa ) Haltekonfiguration: Band 1 b a a z e Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 100 / 309
Satz 1.34 Zu jeder Mehrband-TM M gibt es eine (Einband-) Turingmaschine M, die dieselbe Funktion berechnet wie M. Beweis: Mehrband-Turingmaschine M mit k Bändern: a 1 a 2 a 3 a 4 a 5 a 6 a 7 a 8 a 9 Band 1 b 1 b 2 b 3 b 4 b 5 b 6 b 7 b 8 b 9 Band 2 c 1 c 2 c 3 c 4 c 5 c 6 c 7 c 8 c 9 Band 3 Zustand: z Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 101 / 309
Einband-TM M : a 1 a 2 a 3 a 4 a 5 a 6 a 7 a 8 a 9 * b 1 b 2 b 3 b 4 b 5 b 6 b 7 b 8 b 9 * c 1 c 2 c 3 c 4 c 5 c 6 c 7 c 8 c 9 * Band mit 2k Spuren Arbeitsalphabet: Γ := Γ (Γ { }) 2k Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 102 / 309
Arbeitsweise von M : Startkonfiguration: z 0 w (w Σ ) 1. Phase: w * * * 2. Phase: M simuliert M schrittweise. 3. Phase: Ergebnis von Spur 1 auf das gesamte Band kopieren. Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 103 / 309
Ist M eine 1-Band-TM, so ist M(i, k) (i k) die k-band-tm, die auf Band i M simuliert, wobei alle anderen Bänder unverändert bleiben. Beispiele: (i) Band := Band+1(i, k). Schreibweise: Band i := Band i + 1 (ii) Band i := Band i 1. (iii) Band i := 0. (iv) Band i := Band j. Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 104 / 309
Hintereinanderschalten von TMen M i = (Z i,σ,γ i,δ i, z i,, E i ), i = 1, 2 M : start M 1 M 2 stop M = (Z 1 Z 2,Σ,Γ 1 Γ 2,δ, z 1,, E 2 ) mit δ := δ 1 δ 2 {(z e, a, z 2, a, N) z e E 1, a Γ 1 }. Beispiele: (i) start Band := Band + 1 Band := Band + 1 Band := Band + 1 stop Schreibweise: Band := Band + 3 Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 105 / 309
Kapitel 1: Berechenbarkeitstheorie (ii) start M z e 1 M 1 stop M 2 z e2 stop (iii) Band = 0? : Z := {z 0, z 1, ja,nein}, E = {ja,nein}, δ : (z 0, a) (nein, a, N) für a 0 (z 0, 0) (z 1, 0, R) (z 1, a) (nein, a, L) für a (z 1, ) (ja,, L) Hieraus: Band i=0? Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 106 / 309
(iv) start Band i = 0? M nein ja stop Schreibweise: WHILE Band i 0 DO M. Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 107 / 309
Beobachtung: Die Turingmaschinen bilden eine einfache Programmiersprache: Die Funktionen +c und c (c N) sowie f(x 1,,x n ) = x i (1 i n) sind TM-berechenbar. Diese Sprache enthält einfache Wertzuweisungen. Sie enthält einfache Abfragen und while-schleifen. Das Hintereinanderschalten von Programmen ist möglich. Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 108 / 309
Satz 1.35 Turingmaschinen können WHILE-Programme simulieren, d.h. jede WHILE-berechenbare Funktion ist auch Turing-berechenbar. Satz 1.36 Jede Turingmaschine kann durch ein GOTO-Programm simuliert werden, d.h. jede Turing-berechenbare Funktion ist auch GOTO-berechenbar. Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 109 / 309
Beweis: Sei M = (Z,Σ,Γ,δ, z 1,, E) eine TM, die die Funktion f : N k N berechnet. Für alle n 1,,n k N: f(n 1,,n k ) ist definiert: z 1 bin(n 1 )#bin(n 2 )##bin(n k ) M z ebin(f(n 1,,n k )) f(n 1,,n k ) ist nicht definiert: z 1 bin(n 1 )#bin(n 2 )##bin(n k ) M M M GOTO-Programm M zur Simulation von M: M 1 : P 1 ; M 2 : P 2 ; M 3 : P 3 P 1 : (n 1,,n k ) Darstellung der Konfiguration z 1 bin(n 1 )##bin(n k ) in x, y, z. P 2 : schrittweise Simulation von M auf x, y, z. P 3 : Endwerte von x, y, z f(n 1,,n k ). Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 110 / 309
Kodierung von TM-Konfigurationen Z = {z 1,,z k }, Γ = {a 1,,a m }, b > Γ Konfiguration: a i1 a i2 a ip z l a j1 a j2 a jq Kodierung: x = (i 1 i 2 i p ) b y = (j q j 2 j 1 ) b z = l p mit (i 1 i p ) b := i µ b p µ und (j q j 1 ) b := µ=1 q ν=1 j ν b ν 1 Beispiel Γ = {a 1, a 2, a 3, a 4 }, b = 5: Konfiguration: a 1 a 2 a 1 z 2 a 3 a 4 Kodierung: x = (a 1 a 2 a 1 ) 5 = 1 5 2 + 2 5 1 + 1 5 0 = 36 y = (a 4 a 3 ) 5 = 4 5 1 + 3 5 0 = 23 z = 2 P 1 und P 3 : elementare arithmetische Operationen. Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 111 / 309
Beispiel: Eingabe: (10, 6). Kodierung: 0 a 1, 1 a 2, # a 3, a 4 und b = 5. Eingabekonf.: z 1 bin(10)#bin(6) = z 1 1010#110 = z 1 a 2 a 1 a 2 a 1 a 3 a 2 a 2 a 1. WHILE-Programm P 1 : z 1; x 0; y 0; WHILE x 2 0 DO x 3 (x 2 MOD 2)+1; x 2 x 2 DIV 2; y y 5+x 3 END; y y 5+3; WHILE x 1 0 DO x 3 (x 1 MOD 2)+1; x 1 x 1 DIV 2; y y 5+x 3 END; Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 112 / 309
GOTO-Programm M 2 : P 2 M 2 : a := y MOD b; IF (z = 1) AND (a = 1) THEN GOTO M 1,1 ; IF (z = 1) AND (a = 2) THEN GOTO M 1,2 ;. IF (z = k) AND (a = m) THEN GOTO M k,m ; M 1,1 : Programmstück zur Simulation von δ(z 1, a 1 ) GOTO M 2 ;. M k,m : Programmstück zur Simulation von δ(z k, a m ) GOTO M 2 ; Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 113 / 309
Simulation eines TM-Schritts: δ(z i, a j ) = (z i, a j, L): a i1 a ip z i a }{{}}{{} j a j2 a jq }{{} x z y M a i1 a ip 1 }{{} x z i a }{{} ip a j a j2 a jq }{{} z y GOTO-Programmstück: z := i ; y := y DIV b; y := y b + j ; y := y b +(x MOD b); x := x DIV b; Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 114 / 309
Übersicht GOTO WHILE TM µ-rekursiv LOOP prim. rekursiv Die Ackermannfunktion a(.,.) ist WHILE-berechenbar und total, aber sie ist nicht LOOP-berechenbar. Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 115 / 309