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 Turingmaschine

3 DerministischeTuringmaschine
Eine (deterministische) Turingmaschine (TM) T = (, S, Γ, δ, s0,#, F) besteht aus einer endlichen Menge  von Eingabesymbolen, einer endlichen Menge S von Zuständen, einer endlichen Menge Γ von Bandsymbolen mit   Γ der partiellen Zustandsübergangsfunktion δ: S x Γ → S x Γ x {l,r,n}, dem Startzustand s0  S, dem Blanksymbol #  Γ \  der Endzustandsmenge F  S

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

5 Annahme: TM M startet auf ar-1 im Anfangszustand: …# ar-1 … a1a0#...
Gehe an das rechte Ende der Bitfolge: δ (s0, 0) = (s0, 0, r), δ (s0, 1) = (s0, 1, r), δ (s0, #) = (s1, #, l) Ersetze jede 1 durch 0, solange, bis keine 1 mehr gelesen wird: δ (s1, 1) = (s1, 0, l), δ (s1, 0) = (s2, 1, l), δ (s1, #) = (s3, 1, n), Gehe im Zustand s2 ans linke Ende der Eingabe: δ (s2, 1) = (s2, 1, l), δ (s2, 0) = (s2, 0, l), δ (s2, #) = (s3, #, r), s3 ist Endzustand und dafür kann δ (s3, ) beliebig definiert werden. …#1br-1 … b1b0 #... …# ar-1 … a1a0#... …#ar-1 … ai+11bi-1 … b0 #... s0 s3 s0 s3

6 Beispiel einer Rechnung
δ (s0, 0) = (s0, 0, r), δ (s0, 1) = (s0, 1, r), δ (s0, #) = (s1, #, l), δ (s1, 1) = (s1, 0, l), δ (s1, 0) = (s2, 1, l), δ (s1, #) = (s3, 1, n), δ (s2, 1) = (s2, 1, l), δ (s2, 0) = (s2, 0, l), δ (s2, #) = (s3, #, r), δ (s3, ) = … s01001 ├

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 Definition der Übergangsrelation ├
Seien a1, .., am, b1, …, bn  Γ, m≥1, n≥1, αΓ* und s  S \ F. 1. δ (s, b1) = (s´, c, n): α s b1 … bn ├ α s´cb2 … bn falls n = 1: α s b1 ├ α s´c 2. δ (s, b1) = (s´, c, l): a1 .. am-1am s b1 … bn ├ a1 .. am-1s´amcb2 … bn falls m = 1: am s b1 … bn ├ s´amcb2 … bn 3. δ (s, b1) = (s´, c, r) und n ≥ 2: α s b1 … bn ├ α cs´b2 … bn 4. δ (s, b1) = (s´, c, l): s b1 … bn ├ s´#cb2 … bn 5. δ (s, b1) = (s´, c, r): a1a2 …am s b1├ a1a2…amcs´# 6. Für jede Konfiguration k gilt: α s ├ k gdw. α s # ├ k ├ * bezeichnet die reflexive und transitive Hülle von ├.

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 q0w ├ α1q1β1 ├ α2q2β2 ├ α3q3β3 ├ …. von Konfigurationen. Drei mögliche Fälle: Berechnung ist unendlich. Berechnung ist endlich und verwerfend, d.h. sie endet mit einer Konfiguration αnqnβn, wobei qn  F und δ (qn, b) =  für das erste Zeichen von β. Berechnung ist endlich und akzeptierend, d.h. sie endet mit einer Konfiguration αnqnβn, wobei qn  F und δ (qn, 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 Akzeptieren von Sprachen
Sei T = (, S, Γ, δ, s0,#, F) eine TM. Die von T mit Endzustand akzeptierte Sprache über  ist: L (T) = { w  * ; s0w├* α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 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 Weiteres Beispiel einer TM
Programm zur Prüfung einer Bitfolge daraufhin, ob sie nur aus 1en besteht: … ##d1 … dn##... → … #a#d1 … dn##... , mit a=1, falls d1 =… =dn = 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 (* d1=…=dn=1 *) {repeat l until AF = #; l; print(1); r} else (* wenigstens ein di=0 *) {repeat l until AF = #} s0 q

13 r; if AF = # then {Ziffernfolge leer} else (* Aktionen für nichtleere Ziffernfolge *) {while AF = 1 do r; if AF = # then (* d1=…=dn=1 *) {repeat l until AF = #; l; print(1); r} else (* wenigstens ein di=0 *) {repeat l until AF = #} } δ (s0, #) = (s1, #, r), δ (s1, #) = (s6, #, n), und halt δ (s1, 1) = (s2, 1, r), δ (s2, 1) = (s2, 1, r), δ (s2, #) = (s3, #, l), δ (s3, 1) = (s3, 1, l), δ (s3, #) = (s4, #, l), δ (s4, #) = (s6, 1, r), und halt δ (s1, 0) = (s6, 0, l), und halt δ (s2, 0) = (s5, 0, l), δ (s5, 1) = (s5, 1, l), δ (s5, #) = (s6, #, n), und halt

14 Programmtafel (alter Zustand, alter Inhalt AF, neuer Inhalt AF, Bewegung, neuer Zustand) s0 # # r s1 s1 # # n s6 und halt s r s2 s r s2 s2 # # l s3 s l s3 s3 # # l s4 s4 # r s6 und halt s l s6 und halt s l s5 s l s5 s5 # # n s6 und halt δ (s0, #) = (s1, #, r), δ (s1, #) = (s6, #, n), und halt δ (s1, 1) = (s2, 1, r), δ (s2, 1) = (s2, 1, r), δ (s2, #) = (s3, #, l), δ (s3, 1) = (s3, 1, l), δ (s3, #) = (s4, #, l), δ (s4, #) = (s6, 1, r), und halt δ (s1, 0) = (s6, 0, l), und halt δ (s2, 0) = (s5, 0, l), δ (s5, 1) = (s5, 1, l), δ (s5, #) = (s6, #, n), und halt

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 Programm V zum Verschieben einer Bitfolge
… ##d1 … dn##... → … ###d1 … dn#... , 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 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 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 x1, …, xk gilt: (1) M hält, angesetzt auf x1, …, xk genau dann, wenn M´ hält angesetzt auf: …##D2(x1)#D2(x2)# …#D2(xk)##.., mit: D2(x) = Dualdarstellung von x (2) Wenn M, angesetzt auf x1,…, xk nach endlich vielen Schritten auf y1,…, yk hält, dann hält M´ angesetzt auf …##D2(x1)#D2(x2)# …#D2(xk)##.. nach endlich vielen Schritten auf …##D2(y1)#D2(y2)# …#D2(yk)##.. 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