Turing-Maschine Definition Definition: Eine Turing-Maschine ist ein Quintupel M = (X, Z, z 0, Q, δ), wobei - X und Z Alphabete sind, - z 0 Z und Q Z gelten, - δ eine Funktion von (Z \ Q) (X { }) in Z (X { }) {R, L, N} ist, und / X gilt. Theoretische Informatik, Berechenbarkeit und Algorithmen 29
Turing-Maschine Konfiguration Definition: Eine Konfiguration K der Turing-Maschine M = (X, Z, z 0, Q, δ) ist ein Tripel K = (w 1, z, w 2 ), wobei w 1 und w 2 Wörter über X { } sind und z Z gilt. Eine Anfangskonfiguration liegt vor, falls w 1 = λ und z = z 0 gelten. Eine Endkonfiguration ist durch z Q gegeben. Theoretische Informatik, Berechenbarkeit und Algorithmen 30
Turing-Maschine Konfigurationsüberführung Definition: M 1 = (w 1, z, w 2 ) und K 2 = (v 1, z, v 2 ) seien Konfigurationen von M. Wir sagen, dass K 1 durch M in K 2 überführt wird (und schreiben dafür K 1 = K 2 ), wenn eine der folgenden Bedingungen erfüllt ist: v 1 = w 1, w 2 = xu, v 2 = x u, δ(z, x) = (z, x, N) oder w 1 = v, v 1 = vx, w 2 = xu, v 2 = u, δ(z, x) = (z, x, R) oder w 1 = vy, v 1 = v, w 2 = xu, v 2 = yx u, δ(z, x) = (z, x, L) für gewisse x, x, y X { } und u, v (X { }). Theoretische Informatik, Berechenbarkeit und Algorithmen 31
Turing-Maschine induzierte Funktion Definition: Sei M = (X, Z, z 0, Q, δ) eine Turing-Maschine. Die durch M induzierte Funktion f M aus X in X ist wie folgt definiert: f M (w) = v gilt genau dann, wenn es für die Anfangskonfiguration K = (λ, z 0, w) eine Endkonfiguration K = (v 1, q, v 2 ), natürliche Zahlen r, s und t und Konfigurationen K 0, K 1,..., K t derart gibt, daß r v s = v 1 v 2 und gelten. K = K 0 = K 1 = K 2 =... = K t = K Theoretische Informatik, Berechenbarkeit und Algorithmen 32
Turing-Maschine Beispiel 1 M 1 = ({a, b}, {z 0, q, z a, z b }, z 0, {q}, δ) δ z 0 z a z b (q,, N) (q, a, N) (q, b, N) a (z a,, R) (z a, a, R) (z b, a, R) b (z b,, R) (z a, b, R) (z b, b, R) f M1 (x 1 x 2... x n ) = x 2 x 3... x n x 1 Theoretische Informatik, Berechenbarkeit und Algorithmen 33
Turing-Maschine Beispiel 2 M 2 = ({a, b}, {z 0, z 1, q}, z 0, {q}, δ), δ z 0 z 1 (z 0,, N) (q,, N) a (z 1, a, R) (z 0, a, R) b (z 1, b, R) (z 0, b, R) f M2 (x 1 x 2... x n ) = { x1 x 2... x n n ungerade nicht def iniert sonst. Theoretische Informatik, Berechenbarkeit und Algorithmen 34
Turing-Maschine Beispiel 3 M 3 = ({a, b, c, d}, {z 0, z 1, z 2, z 3, q, z a, z b }, z 0, {q}, δ) δ z 0 z 1 z 2 z 3 z a z b (z 0,, N) (z 1,, N) (z 3,, L) a (z 0, a, N) (z 1, a, N) (z 2, a, R) (z a,, L) (z a, a, L) (z a, b, L) b (z 0, b, N) (z 1, b, N) (z 2, b, R) (z b,, L) (z b, a, L) (z b, b, L) c (z 1, c, R) (z 1, c, N) (z 2, c, N) d (z 0, d, N) (z 2, d, R) (z 2, d, N) (z 3, d, N) (q, a, N) (q, b, N) f M3 (w) = { cx1 x 2... x n für w = cdx 1 x 2... x n, x i {a, b}, 1 i n, n 1 undef iniert sonst Theoretische Informatik, Berechenbarkeit und Algorithmen 35
Turing-Maschine Beispiel 4 (Nachfolgerfunktion) M + = ({0, 1, 2,..., 9}, {z 0, +, q}, z 0, {q}, δ) δ z 0 + (+,, L) (q, 1, N) 0 (z 0, 0, R) (q, 1, N) 1 (z 0, 1, R) (q, 2, N) 2 (z 0, 2, R) (q, 3, N) 3 (z 0, 3, R) (q, 4, N) 4 (z 0, 4, R) (q, 5, N) 5 (z 0, 5, R) (q, 6, N) 6 (z 0, 6, R) (q, 7, N) 7 (z 0, 7, R) (q, 8, N) 8 (z 0, 8, R) (q, 9, N) 9 (z 0, 9, R) (+, 0, L) Theoretische Informatik, Berechenbarkeit und Algorithmen 36
Turing-Maschine Normalform und Lemma Lemma: Zu jeder Turing-Maschine M = (X, Z, z 0, Q, δ) gibt es eine Turing-Maschine M = (X {, #}, Z, z 0, {q }, δ ) mit { fm (w) für w X f M (w) = nicht def iniert sonst derart, dass jede Endkonfiguration von M die Form (λ, q, v) hat (d.h. die Maschine M hat genau einen Stopzustand, stoppt nur auf Wörtern über X und stoppt stets über dem ersten Buchstaben des Ergebnisses v). Lemma: Sind f 1 : X X und f 2 : X X zwei Turing-berechenbare Funktionen, so ist auch deren Komposition f : X X mit f(w) = f 2 (f 1 (w)) eine Turing-berechenbare Funktion. Theoretische Informatik, Berechenbarkeit und Algorithmen 37
k-band-turing-maschine Definition Definition: Eine k-band-turing-maschine ist ein 6-Tupel M = (k, X, Z, z 0, Q, δ), wobei k 1 eine natürliche Zahl ist, X, Z, z 0 und Q wie bei einer Turing- Maschine definiert sind, δ eine Funktion (Z \ Q) (X { }) k+1 Z (X { }) k+1 {R, L, N} k+1 {R, N} ist und / X gilt. Theoretische Informatik, Berechenbarkeit und Algorithmen 38
k-band-turing-maschine Konfiguration Definition: Sei M eine k-band-turing-maschine. Eine Konfiguration von M ist ein 2k + 5-Tupel (z, w e, w e, w 1, w 1, w 2, w 2,..., w k, w k, w a, w a), wobei z Z, w e, w e, w a, w a (X { }) und w i, w i (X { }) für 1 i k gelten. Eine Konfiguration heißt Anfangskonfiguration, falls z = z 0, w e = w a = w 1 = w 2 = = w k = λ und w a = w 1 = w 2 = = w k = gelten. Eine Konfiguration heißt Endkonfiguration, falls z in Q liegt. Theoretische Informatik, Berechenbarkeit und Algorithmen 39
k-band-turing-maschine induzierte Funktion Definition: Sei M eine k-band-turing-maschine. Die durch M induzierte Funktion f M aus X in X ist wie folgt definiert: f M (w) = v gilt genau dann, wenn es für die Anfangskonfiguration K = (z 0, λ, w, λ,, λ,,..., λ, ) eine Endkonfiguration K = (q, w e, w e, w 1, w 1w 2, w 2,..., w k, w k, w a, w a), und Konfigurationen K 0, K 1,..., K t derart gibt, dass gelten. K = K 0 = K 1 = K 2 =... = K t = K und v = w a w a Theoretische Informatik, Berechenbarkeit und Algorithmen 40
k-band-turing-maschine Beispiel M = (2, {a, b}, Z = {z 0, z 1, z 2, q}, z 0, Q = {q}, δ) (a1) δ(z 0, x,, ) = (z 0, x, x,, R, R, R, N) für x X, (a2) δ(z 0,,, ) = (z 1,,,, N, L, L, N), (a3) δ(z 1,, x, y) = (z 1, x, y,, N, L, N, N) für x, y X, (a4) δ(z 1,,, y) = (z 2,, y,, N, R, N, N) für y X, (a5) δ(z 2,, x, x) = (z 2, x, x,, N, R, L, N) für x X, (a6) δ(z 2,, x, y) = (q, x, y, b, N, N, N, N) für x, y X, x y, (a7) δ(z 2,,, ) = (q,,, a, N, N, N, N), (a8) δ(z, x, y, v) = (z, y, v,, N, N, N, N) sonst f M (w) = { a w ist Palindrom b sonst Theoretische Informatik, Berechenbarkeit und Algorithmen 41
Turing-Berechenbarkeiten Definition: Eine Funktion f heißt Turing-berechenbar, wenn es eine Turing-Maschine M mit f = f M gibt. Definition: Eine Funktion f heißt k-turing-berechenbar, wenn es eine k-band-turing- Maschine M mit f = f M gibt. Satz: Zu jeder k-band-turing-maschine M gibt es eine Turing-Maschine M derart, dass f M = f M gilt. Theoretische Informatik, Berechenbarkeit und Algorithmen 42
Registermaschinen versus k-band-turing-maschinen dec(n) Dezimaldarstellung von n Satz: Sei M eine Registermaschine M mit f M : N n N. Dann gibt es eine 3-Band- Turing-Maschine M, deren Eingabealphabet außer den Ziffern 0,1,2,... 9 noch das Trennsymbol # und das Fehlersymbol F enthält und deren induzierte Funktion f M (w) = { dec(fm (m 1, m 2,..., m n )) w = dec(m 1 )#dec(m 2 )... #dec(m n ) F sonst gilt (auf einer Eingabe, die einem Zahlentupel entspricht, verhält sich M wie M und gibt bei allen anderen Eingaben eine Fehlermeldung). Theoretische Informatik, Berechenbarkeit und Algorithmen 43
Turing-Maschinen versus partiell-rekursive Funktionen I M = (X, Z, z 0, Q, δ) Turing-Maschine X Z = und X Z = {a 1, a 2,..., a p } ψ : (X Z) N vermöge ψ(a i1 a i2... a in ) = n j=0 i j(p + 1) n j, a ij (X Z) ψ eineindeutige Abbildung von (X Z) + auf Menge aller natürlichen Zahlen, in deren (p + 1)-adischer Darstellung keine 0 vorkommt Satz: Seien M eine Turing-Maschine und ψ die zugehörige Kodierung. Dann ist die Funktion f : N N mit f(ψ(w)) = ψ(f M (w)) partiell-rekursiv. Theoretische Informatik, Berechenbarkeit und Algorithmen 44
Turing-Maschinen versus partiell-rekursive Funktionen II w = b 1 b 2... b n, b i X Z für 1 i n, w (X Z) Lg(ψ(w)) = w = min{m : (p + 1) m > ψ(w)}, P rod(ψ(w), ψ(w )) = ψ(ww ) = ψ(w)(p + 1) Lg(ψ(w )) + ψ(w ), Anfang(ψ(w), i) = ψ(b 1 b 2... b i ) = ψ(w) div (p + 1) n 1, Ende(ψ(w), i) = ψ(b i b i+1... b n ) = ψ(w) mod (p + 1) n i+1, Elem(ψ(w), i) = ψ(b i ) = Ende(Anfang(ψ(w), i), 1) g(x) erste Position in x (X Z), an der Element aus Z min{i Elem(x, i) Z} r(x) = Anfang(x, g(x) 2), s(x) = P rod(elem(x, g(x) 1), Elem(x, g(x)), Elem(x, g(x) + 1)), t(x) = Ende(x, g(x) + 2) Theoretische Informatik, Berechenbarkeit und Algorithmen 45
Turing-Maschinen versus partiell-rekursive Funktionen III K = u azbv mit a, b X, u, v X, z Z r(ψ(k)) = ψ(u ) s(ψ(k)) = ψ(azb), t(ψ(k)) = ψ(v ), (ψ(k 1 )) = { ψ(k2 ) K 1 = azb, a, b X, z Z, K 1 = K 2 nicht def iniert sonst K = u azbv = u K 1 v = u K 2 v = K ψ(k ) = P rod(ψ(u ), (ψ(azb)), ψ(v )), = P rod(r(k), (s(k)), t(k)) Theoretische Informatik, Berechenbarkeit und Algorithmen 46
Turing-Maschinen versus partiell-rekursive Funktionen IV 1. Aus w ergibt sich die Anfangskonfiguration K 0 = z 0 w. 2. Funktion mit (ψ(k)) = ψ(k ) für K = K D(x, 0) = x, D wird definiert durch D(x, n + 1) = (D(x, n)) D(ψ(K), n) = ψ(k ), wenn K mittels n-facher direkter Überführung aus K entsteht { h sei Funktion mit h(x) = 0 x = ψ(k) für eine Endkonfiguration K 1 sonst h (x, y) = h(d(x, y)), (µy)[h ] liefert Anzahl der Überführungen bis Endkonfiguration erreicht ist D(ψ(K 0 ), (µy)[h ]) liefert ψ(k) der Endkonfiguration K 3. Aus ψ(k) ermitteln wir das Wort auf dem Band. Theoretische Informatik, Berechenbarkeit und Algorithmen 47
Zusammenfassung Satz: Für eine Funktion f sind die folgenden Aussagen gleichwertig: f ist durch ein LOOP/WHILE-Programm berechenbar. f ist partiell-rekursiv. f ist durch eine Registermaschine berechnenbar. f ist bis auf Konvertierung der Zahlendarstellung durch eine Turing-Maschine berechenbar. f ist bis auf Konvertierung der Zahlendarstellung durch eine k-band-turing-maschine berechenbar. Folgerung: Es gibt Funktionen, die nicht Turing-berechenbar sind. Theoretische Informatik, Berechenbarkeit und Algorithmen 48
Beschreibung von Entscheidbarkeitsproblemen Entscheidungsproblem P beschreibbar als Aussageform, d.h. Ausdruck A P (x 1, x 2,..., x n ) mit einer oder mehreren Variablen x i, der bei Ersetzen der Variablen x i durch Elemente a i aus dem Grundbereich X i in eine Aussage A P (a 1, a 2,..., a n ) überführt wird, die den Wahrheitswert wahr oder falsch annimmt durch ein Gegeben:, d.h. Belegung a 1, a 2,..., a n der Variablen, und durch die Frage: nach der Gültigkeit von A P (a 1, a 2,..., a n ). Menge M P = {(a 1, a 2,..., a n ) : A P (a 1, a 2,..., a n )} Funktion ϕ P (x 1, x 2,..., x n )) = { 1 (x1, x 2,..., x n ) M P 0 sonst Theoretische Informatik, Berechenbarkeit und Algorithmen 49
Beschreibung des Halteproblems für Turing-Maschinen A P (x, y) x stoppt bei Abarbeitung von y (wobei x ist mit einer Turing-Maschine und y mit einem Wort zu belegen sind) Gegeben: Turing-Maschine M, Wort w Frage: Gilt M stoppt bei Abarbeitung von w? Gegeben: Turing-Maschine M, Wort w Frage: Stoppt M bei Abarbeitung von w? Gegeben: Frage: Turing-Maschine M, Wort w Ist f M (w) definiert? M P = {(M, w) M stoppt auf w} { ϕ P (M, w) = 1 M stoppt auf w 0 sonst Theoretische Informatik, Berechenbarkeit und Algorithmen 50
Algorithmische Entscheidbarkeit Definition: Wir sagen, dass ein Problem P algorithmisch entscheidbar (oder kurz nur entscheidbar) ist, wenn die zum Problem gehörende charakteristische Funktion ϕ P Turing-berechenbar ist. Anderenfalls heißt P (algorithmisch) unentscheidbar. Definition: Wir sagen, dass eine Menge M (algorithmisch) entscheidbar (oder rekursiv) ist, wenn die zugehörige charakteristische Funktion ϕ M Turing-berechenbar ist. Anderenfalls heißt M (algorithmisch) unentscheidbar. Problem P genau dann entscheidbar, wenn zugehörige Menge M P entscheidbar Theoretische Informatik, Berechenbarkeit und Algorithmen 51
Berechnungsprobleme Berechnungsproblem für eine Funktion f : X Y wird nach dem Wert f(x) gefragt M f = {(x, y) : f(x) = y} Gegeben: Frage: x X und y Y Nimmt f an der Stelle x den Wert y an? ϕ f (x, y) = { 1 f(x) = y 0 sonst Bemerkung: f ist berechenbar genau dann, wenn ϕ f berechenbar genau dann, wenn M f entscheidbar ist Theoretische Informatik, Berechenbarkeit und Algorithmen 52
Unentscheidbare Probleme I Satz: Das Halteproblem für Turing-Maschinen ist unentscheidbar. Satz: Das Problem Gegeben: Frage: LOOP/WHILE-Programm Π, n N Ist Φ Π,1 (n) definiert? ist unentscheidbar. Theoretische Informatik, Berechenbarkeit und Algorithmen 53
Beweis der Unentscheidbarkeit des Halteproblems I M = (X, Z, z 0, Q, δ) Turing-Maschine x 0 =, X = {x 1, x 2,..., x n }, Z = {z 0, z 1,..., z m }, Q = {z k+1, z k+2,..., z m }, δ ij = (z i, x j, z ij, x ij, r ij ) für δ(z i, x j ) = (z ij, x ij, r ij ), 0 i k, 0 j n Beschreibung von M durch x 1, x 2,..., x n, z 0, z 1,..., z k, δ 00, δ 01,..., δ 0n, δ 10, δ 11,..., δ 1n,..., δ kn Kodierung: x j 01 j+1 0 für 0 j n, z i 01 i+1 0 2 für 0 i k, R 010 3, L 01 2 0 3, N 01 3 0 3, ( 010 4, ) 01 2 0 4,, 010 5 Theoretische Informatik, Berechenbarkeit und Algorithmen 54
Beweis der Unentscheidbarkeit des Halteproblems II Turing-Maschine M 2 a, b, z 0, z 1, ( z 0,, z 0,, N ), ( z 0, a, z 1, a, R ), ( z 0, b, z 1, b, R ), ( z 1,, q,, N ), ( z 1, a, z 0, a, R ), ( z 1, b, z 0, b, R ) Kodierung: 010, a 01 2 0, b 01 3 0, z 0 010 2, z 1 01 2 0 2, q 01 3 0 2, R 010 3, L 01 2 0 3, N 01 3 0 3, ( 010 4, ) 01 2 0 4,, 010 5 01 2 0 010 5 01 3 0 010 5 010 2 010 5 01 2 0 2 010 5 010 4 010 2 010 5 010 010 5 010 2 010 5 010 010 5 01 3 0 3 01 2 0 4 010 5 010 4 010 2 010 5 01 2 0 010 5 01 2 0 2 010 5 01 2 0 010 5 010 3 01 2 0 4 010 5 010 4 010 2 010 5 01 3 0 010 5 01 2 0 2 010 5 01 3 0 010 5 010 3 01 2 0 4 010 5 010 4 01 2 0 2 010 5 010 010 5 01 3 0 2 010 5 010 010 5 01 3 0 3 01 2 0 4 010 5 010 4 01 2 0 2 010 5 01 2 0 010 5 010 2 010 5 01 2 0 010 5 010 3 01 2 0 4 010 5 010 4 01 2 0 2 010 5 01 3 0 010 5 010 2 010 5 01 3 0 010 5 010 3 01 2 0 4 Theoretische Informatik, Berechenbarkeit und Algorithmen 55
Beweis der Unentscheidbarkeit des Halteproblems III S Menge aller Turing-Maschinen M = (X, Z, z 0, Q, δ) mit X = {0, 1}, Z = {z 0, z 1,..., z m }, Q = {z m } für ein m 1. w M Wort, das M S mittels Kodierung beschreibt Hilfssatz 1. Das Problem Gegeben: w {0, 1} Frage: Ist w Kodierung einer Turing-Maschine aus S? ist entscheidbar. f : {0, 1} { {0, 1} mit 0 w = wm für ein M S, f f(w) = M (w M ) ist nicht definiert nicht def iniert sonst Hilfssatz 2. f ist nicht Turing-berechenbar. Theoretische Informatik, Berechenbarkeit und Algorithmen 56
Unentscheidbare Probleme II Definition: i) Zwei Turing-Maschinen M 1 und M 2 heißen äquivalent, wenn f M1 = f M2 gilt. ii) Zwei LOOP/WHILE-Programme Π 1 und Π 2 heißen äquivalent, wenn Φ Π1,1 = Φ Π2,1 gilt. Satz: Das Äquivalenzproblem für Turing-Maschinen bzw. LOOP/WHILE-Programme ist unentscheidbar. Theoretische Informatik, Berechenbarkeit und Algorithmen 57
Unentscheidbare Probleme III Satz: Das 10. Hilbertsche Problem Gegeben: eine natürliche Zahl n 1, ein Polynom p(x 1, x 2,..., x n ) = c i1 i 2...i n x i 1 1 x i 2 2... x i n n in n Variablen mit ganzzahligen Koeffizienten Frage: Gibt es eine Lösung von p(x 1, x 2,..., x n ) = 0 in Z n? ist unentscheidbar. Theoretische Informatik, Berechenbarkeit und Algorithmen 58
Unentscheidbare Probleme IV Satz: Das Postsche Korrespondenzproblem Gegeben: Alphabet X mit mind. zwei Buchstaben, n 1, Menge {(u 1, v 1 ), (u 2, v 2 ),..., (u n, v n )} mit u i, v i X + für 1 i n Frage: ist unentscheidbar. Gibt es eine Folge i 1 i 2... i m mit 1 i j n für 1 j m derart, dass u i1 u i2... u im = v i1 v i2... v im gilt? Theoretische Informatik, Berechenbarkeit und Algorithmen 59