Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Vorlesung Informatik 3 Einführung in die Theoretische Informatik (17 –Turingmaschinen) Prof. Dr. Th. Ottmann.

Ähnliche Präsentationen


Präsentation zum Thema: "Vorlesung Informatik 3 Einführung in die Theoretische Informatik (17 –Turingmaschinen) Prof. Dr. Th. Ottmann."—  Präsentation transkript:

1 Vorlesung Informatik 3 Einführung in die Theoretische Informatik (17 –Turingmaschinen) Prof. Dr. Th. Ottmann

2 2 Turingmaschine

3 3 DerministischeTuringmaschine Eine (deterministische) Turingmaschine (TM) T = (, S, Γ, δ, s 0,#, F) besteht aus 1.einer endlichen Menge von Eingabesymbolen, 2.einer endlichen Menge S von Zuständen, 3.einer endlichen Menge Γ von Bandsymbolen mit Γ 4.der partiellen Zustandsübergangsfunktion δ: S x Γ S x Γ x {l,r,n}, 5.dem Startzustand s 0 S, 6.dem Blanksymbol # Γ \ 7.der Endzustandsmenge F S

4 4 Beispiel: TM zur Berechnung der Addition +1 Algorithmus zur Umwandlung der Dualdarstellung von n in die von n+1: (* Sei w = a r-1 … a 1 a 0 die Binärdarstellung von n *) i = 0; while i r and a i = 1 do { b i = 0; i = i + 1} (* jetzt ist das gelesene Zeichen entweder # oder eine 0 *) if i = r then (* gelesenes Zeichen ist # *) gib Bitfolge 1b r-1 … b 1 b 0 aus else (* gelesenes Zeichen ist eine 0 *) gib die Bitfolge b r-1 … b i+1 1a i-1 … a 0 aus Annahme: TM startet auf a r-1 im Anfangszustand: …# a r-1 … a 1 a 0 #... s0s0

5 5 Annahme: TM M startet auf a r-1 im Anfangszustand: …# a r-1 … a 1 a 0 #... Gehe an das rechte Ende der Bitfolge: δ (s 0, 0) = (s 0, 0, r), δ (s 0, 1) = (s 0, 1, r), δ (s 0, #) = (s 1, #, l) Ersetze jede 1 durch 0, solange, bis keine 1 mehr gelesen wird: δ (s 1, 1) = (s 1, 0, l), δ (s 1, 0) = (s 2, 1, l), δ (s 1, #) = (s 3, 1, n), Gehe im Zustand s 2 ans linke Ende der Eingabe: δ (s 2, 1) = (s 2, 1, l), δ (s 2, 0) = (s 2, 0, l), δ (s 2, #) = (s 3, #, r), s 3 ist Endzustand und dafür kann δ (s 3, ) beliebig definiert werden. …#1b r-1 … b 1 b 0 #... …# a r-1 … a 1 a 0 #... …#a r-1 … a i+1 1b i-1 … b 0 #... s0s0 s3s3 s3s3 s0s0

6 6 Beispiel einer Rechnung δ (s 0, 0) = (s 0, 0, r), δ (s 0, 1) = (s 0, 1, r), δ (s 0, #) = (s 1, #, l), δ (s 1, 1) = (s 1, 0, l), δ (s 1, 0) = (s 2, 1, l), δ (s 1, #) = (s 3, 1, n), δ (s 2, 1) = (s 2, 1, l), δ (s 2, 0) = (s 2, 0, l), δ (s 2, #) = (s 3, #, r), δ (s 3, ) = … s

7 7 Konfigurationsübergänge einer TM Eine Konfiguration k = (α, s, β) Γ* x S x Γ* enthält den aktuellen Zustand s, die Bandbeschriftung α links vom Arbeitsfeld die Bandbeschriftung β rechts vom Arbeitsfeld, wobei das erste Zeichen von β das Arbeitsfeld ist Konfigurationsübergänge sind gegeben durch die Relation, die in Abhängigkeit vom Zustand s, dem Zeichen auf dem Arbeitsfeld und der Übergangsfunktion δ definiert wird: Konvention: Wir schreiben α s β statt (α, s, β)

8 8 Definition der Übergangsrelation Seien a 1,.., a m, b 1, …, b n Γ, m1, n1, α Γ* und s S \ F. 1. δ (s, b 1 ) = (s´, c, n): α s b 1 … b n α s´cb 2 … b n falls n = 1: α s b 1 α s´c 2. δ (s, b 1 ) = (s´, c, l): a 1.. a m-1 a m s b 1 … b n a 1.. a m-1 s´a m cb 2 … b n falls m = 1: a m s b 1 … b n s´a m cb 2 … b n 3. δ (s, b 1 ) = (s´, c, r) und n 2: α s b 1 … b n α cs´b 2 … b n 4. δ (s, b 1 ) = (s´, c, l): s b 1 … b n s´#cb 2 … b n 5. δ (s, b 1 ) = (s´, c, r): a 1 a 2 …a m s b 1 a 1 a 2 …a m cs´# 6. Für jede Konfiguration k gilt: α s k gdw. α s # k * bezeichnet die reflexive und transitive Hülle von.

9 9 Berechnungen von TM Sei w * ein Wort über dem Eingabealphabet der TM T. Die Berechnung von T für das Wort w ist eine maximale Folge q 0 w α 1 q 1 β 1 α 2 q 2 β 2 α 3 q 3 β 3 …. von Konfigurationen. Drei mögliche Fälle: 1.Berechnung ist unendlich. 2.Berechnung ist endlich und verwerfend, d.h. sie endet mit einer Konfiguration α n q n β n, wobei q n F und δ (q n, b) = für das erste Zeichen von β. 3.Berechnung ist endlich und akzeptierend, d.h. sie endet mit einer Konfiguration α n q n β n, wobei q n F und δ (q n, b) = für das erste Zeichen von β. Fangzustand q S: Für alle a Γ ist δ (q, a) = (q, a, n). Nichtakzeptierende Fangzustände können durch Zustände q F und δ (q, a) = für alle a Γ ersetzt werden. Umgekehrt können verwerfende endliche Berechnungen durch unendliche ersetzt werden.

10 10 Akzeptieren von Sprachen Sei T = (, S, Γ, δ, s 0,#, F) eine TM. Die von T mit Endzustand akzeptierte Sprache über ist: L (T) = { w * ; s 0 w* αsβ, mit s F, α,β Γ*} Die Familie der von Turingmaschinen akzeptierbaren Sprachen heißt auch Chomsky Klasse vom Typ 0. Es genügt, für TM akzeptierende endliche Berechnungen zuzulassen, die in einem Zustand q F enden, so dass für alle a Γ gilt δ (q, a) =, und verwerfende unendliche Berechnungen. Achtung: I.a. ist L(T) aufzählbar aber nicht entscheidbar!

11 11 Komplexe TM Programme TM zur Berechnung von Funktionen mit Argumenten und Werten im Bereich der natürlichen Zahlen rechnen mit Zahldarstellungen (üblicherweise in Binärdarstellung) und nicht, wir RM mit Zahlen (als abstrakten Objekten). Mitteilung von TM-Programmen: Imperative TM Programme werden mit üblichen Mittel imperativer Sprachen aus Elementarprogrammen aufgebaut: Elementarprogramme r (l): verschiebe AF um 1 Position nach rechts (links) print (a): drucke Zeichen a auf das AF, für a Γ. Hintereinanderausführung, Selektion (abhängig vom AF-Inhalt), Iteration (mit repeat-, while-Schleifen, deren Bedingung vom Inhalt des AF abhängt)

12 12 Weiteres Beispiel einer TM Programm zur Prüfung einer Bitfolge daraufhin, ob sie nur aus 1en besteht: … ##d 1 … d n ##... … #a#d 1 … d n ##..., mit a=1, falls d 1 =… =d n = 1, und a = #, sonst. (* Prüfe zunächst, ob Ziffernfolge leer *) r; if AF = # then {Ziffernfolge leer} else (* Aktionen für nichtleere Ziffernfolge *) while AF = 1 do r; if AF = # then (* d 1 =…=d n =1 *) {repeat l until AF = #; l; print(1); r} else (* wenigstens ein d i =0 *) {repeat l until AF = #} s0s0 q

13 13 r; if AF = # then {Ziffernfolge leer} else (* Aktionen für nichtleere Ziffernfolge *) {while AF = 1 do r; if AF = # then (* d 1 =…=d n =1 *) {repeat l until AF = #; l; print(1); r} else (* wenigstens ein d i =0 *) {repeat l until AF = #} } δ (s 0, #) = (s 1, #, r), δ (s 1, #) = (s 6, #, n), und halt δ (s 1, 1) = (s 2, 1, r), δ (s 2, 1) = (s 2, 1, r), δ (s 2, #) = (s 3, #, l), δ (s 3, 1) = (s 3, 1, l), δ (s 3, #) = (s 4, #, l), δ (s 4, #) = (s 6, 1, r), und halt δ (s 1, 0) = (s 6, 0, l), und halt δ (s 2, 0) = (s 5, 0, l), δ (s 5, 1) = (s 5, 1, l), δ (s 5, #) = (s 6, #, n), und halt

14 14 δ (s 0, #) = (s 1, #, r), δ (s 1, #) = (s 6, #, n), und halt δ (s 1, 1) = (s 2, 1, r), δ (s 2, 1) = (s 2, 1, r), δ (s 2, #) = (s 3, #, l), δ (s 3, 1) = (s 3, 1, l), δ (s 3, #) = (s 4, #, l), δ (s 4, #) = (s 6, 1, r), und halt δ (s 1, 0) = (s 6, 0, l), und halt δ (s 2, 0) = (s 5, 0, l), δ (s 5, 1) = (s 5, 1, l), δ (s 5, #) = (s 6, #, n), und halt s 0 # # r s 1 s 1 # # n s 6 und halt s r s 2 s r s 2 s 2 # # l s 3 s l s 3 s 3 # # l s 4 s 4 # 1 r s 6 und halt s l s 6 und halt s l s 5 s l s 5 s 5 # # n s 6 und halt Programmtafel (alter Zustand, alter Inhalt AF, neuer Inhalt AF, Bewegung, neuer Zustand)

15 15 Reduktion imperativer TM auf gewöhnliche TM Zu jedem imperativen TM-Programm M kann man eine TM M´ mit nur einem Endzustand angeben, so dass sich M und M´ auf allen Eingabebändern gleich verhalten. Nachweis durch Induktion über den Aufbau imperativer TM Programme:

16 16 Programm V zum Verschieben einer Bitfolge … ##d 1 … d n ##... … ###d 1 … d n #..., Bitfolge um 1 Position auf Band nach rechts verschoben. repeat r until AF = #; l; while AF # do { if AF = 0 then (* verschiebe eine 0 nach rechts *) {print (#); r; print (0); l; l} else (* verschiebe eine 1 nach rechts *) {print (#); r; print (1); l; l} } r

17 17 Programm S zur Berechnung der Nachfolgerfunktion Zur Darstellung einer Dualzahl (ohne führende Nullen) soll die Darstellung der nächst größeren berechnet werden. Beispiel: ##110111## ##111000## repeat r until AF = #; l; while AF = 1 do (* 1en in 0en umwandeln *) {print (0); l}; print (1); l; while AF # do l;

18 18 Simulation von RM durch TM Ein RM-while Programm M einer RM mit k Registern wird durch ein TM Programm M´ simuliert, wenn für beliebige natürliche Zahlen x 1, …, x k gilt: (1) M hält, angesetzt auf x 1, …, x k genau dann, wenn M´ hält angesetzt auf: …##D 2 (x 1 )#D 2 (x 2 )# …#D 2 (x k )##.., mit: D 2 (x) = Dualdarstellung von x (2) Wenn M, angesetzt auf x 1,…, x k nach endlich vielen Schritten auf y 1,…, y k hält, dann hält M´ angesetzt auf …##D 2 (x 1 )#D 2 (x 2 )# …#D 2 (x k )##.. nach endlich vielen Schritten auf …##D 2 (y 1 )#D 2 (y 2 )# …#D 2 (y k )##.. Satz: Zu jedem RM-while-Programm M kann man ein (imperatives) TM- Programm M´ angeben, so dass M´ das RM-Programm M simuliert.


Herunterladen ppt "Vorlesung Informatik 3 Einführung in die Theoretische Informatik (17 –Turingmaschinen) Prof. Dr. Th. Ottmann."

Ähnliche Präsentationen


Google-Anzeigen