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

Slides:



Advertisements
Ähnliche Präsentationen
8. Termin Teil B: Wiederholung Begriffe Baum
Advertisements

Vorlesung Compilertechnik Sommersemester 2008
Theoretische Grundlagen der Informatik Prof. Dr. Michael Löwe
Das LCA – Problem in Suffixbäumen
Wiederholung Was ist Informatik?
7. Automaten Ein Automat ist ein Sechstupel A= (I, O, Q, , q0, F).
Suche in Texten (Stringsuche )
Institut für Informatik Abt. Intelligente Systeme
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
8. Formale Sprachen und Grammatiken
3. Berechenbarkeit Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar? Intuitiv: Wenn es einen Algorithmus gibt, der sie berechnet! Was heißt,
Einführung in Berechenbarkeit und Formale Sprachen
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Notationen A = ist eine endliche, nichtleere menge,
Grammatiken, Definitionen
Einige entscheidbare bzw. rekursiv aufzählbare Sprachen
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Reduktionen Def: L · L (L ist reduzierbar auf.
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Universelle Turingmaschinen Eine universelle Turingmaschine.
Verifizieren versus Berechnen
Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.
Christian Schindelhauer
Parser für CH3-Sprachen
Algorithmentheorie 04 –Hashing
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (02 – Endliche Automaten) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (05 – Reguläre Ausdrücke) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (06 – Reduktion endlicher Automaten) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (12 – Kellerautomaten, PDA) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (04 – Automaten mit ε-Transitionen) Prof. Dr. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 2 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (03 – Nichtdeterminierte endliche Automaten) Prof. Dr. Th. Ottmann.
High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen.
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Semantik von UML Sequenzdiagrammen
Endliche Automaten Informatik JgSt. 13, Abitur 2009
Christian Schindelhauer Wintersemester 2006/07 8. Vorlesung
Formale Sprachen Grammatiken und die Chomsky-Hierarchie
Grundlagen der Informatik - Prof. Slany 1 Grundlagen der Informatik Prof. Wolfgang SLANY.
Akzeptor & Sprache.
Formale Sprachen Reguläre Sprachen Rudolf FREUND, Marian KOGLER.
Automaten, formale Sprachen und Berechenbarkeit II SoSe 2004 Prof. W. Brauer Teil 1: Wiederholung (Vor allem Folien von Priv.-Doz. Dr. Kindler vom WS 2001/02.
Städtisches Gymnasium Beverungen Friedel Berlage
Noam CHOMSKY, Sheila GREIBACH
Automaten, formale Sprachen und Berechenbarkeit II SoSe 2004 Prof. W. Brauer Teil 3: Potenzreihen und kontextfreie Sprachen (Vgl. Buch von A. Salomaa)
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Arne Vater Wintersemester 2006/07 28.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Informatik III Christian Schindelhauer Wintersemester 2006/07
Arne Vater Wintersemester 2006/ Vorlesung
Christian Schindelhauer Wintersemester 2006/07 3. Vorlesung
Informatik III Christian Schindelhauer Wintersemester 2006/07
Informatik III Christian Schindelhauer Wintersemester 2006/07
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Arne Vater Wintersemester 2006/ Vorlesung
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Christian Schindelhauer Wintersemester 2006/07 2. Vorlesung
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Arne Vater Wintersemester 2006/ Vorlesung
Turing-Maschine als Akzeptor.
Wintersemester 2005 / Vorlesung
Inhalt Einordnung und Funktion der lexikalische Analyse Grundlagen
Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar?
 Präsentation transkript:

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

Turingmaschine

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

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

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

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 ├

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, β)

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 ├.

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.

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!

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)

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

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

Programmtafel (alter Zustand, alter Inhalt AF, neuer Inhalt AF, Bewegung, neuer Zustand) s0 # # r s1 s1 # # n s6 und halt s1 1 1 r s2 s2 1 1 r s2 s2 # # l s3 s3 1 1 l s3 s3 # # l s4 s4 # 1 r s6 und halt s1 0 0 l s6 und halt s2 0 0 l s5 s5 1 1 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

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:

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

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;

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.