Theoretische Grundlagen der Informatik Prof. Dr. Michael Löwe Turing Maschinen Theoretische Grundlagen der Informatik Prof. Dr. Michael Löwe
Inhalt Zusammenfassung: Endliche Automaten Turing-Maschinen Beispiele Erweiterung der Speicherfähigkeit Definition der Turing-Maschinen Definition der Arbeitsweise Beispiele Normierung der Alphabete Turing-Maschinen
Zusammenfassung: Endliche Automaten In vielen praktischen Anwendungen sehr nützlich Zwei Varianten: 1. Einschritt: Reagieren nach jedem Ereignis 2. Mehrschritt: Verarbeiten Ereignisströme bei Aufforderung Endlicher Speicher durch endlich viele Zustände Begrenzte Fähigkeiten zur Berechnung von Funktionen Universelle Funktion ist nicht selber endlicher Automat Die Arbeitsweise von endlichen Automaten lässt sich nicht durch einen endlichen Automaten simulieren Turing-Maschinen
Auf dem Weg zu Turing-Maschinen Gedächtnis Sensorik Aktorik e6 e5 e7 e8 e9 a2 a3 a4 a1 Endlicher Automat e6 e5 e7 e8 e9 a2 a3 a4 a1 Turing-Maschine Freie Bewegung Maschine Gedächtnis Sensorik Aktorik Turing-Maschinen
Turing-Maschine: Definition TM = (A, Z, z0, R, T F D: A Z Z A {L, R, B}) A ist endliches Alphabet, so dass [ , ] A (Ränder) Z ist endliche Zustandsmenge z0 Z ist der Anfangszustand R Z ist die Menge der Ruhezustände T: A Z Z ist die Zustandsüberführungsfunktion F: A Z A ist die Ausgabefunktion D: A Z {L, R, B} „bewegt“ den Lesekopf Turing-Maschinen
„Maschine fällt nicht vom Band“ Nebenbedingungen: F(x, [ ) = [ D(x, [ ) L F(x, y) = [ y = [ F(x, y) = ] D(x, y) R Turing-Maschinen
Theorie oder Beispiele Turing-Maschinen
Konfigurationen Die Konfigurationen einer Turing-Maschine sind durch die Menge K = ZA*AA* beschrieben, dabei hat (z, w, a, v)K hat folgende Bedeutung: z ist der aktuelle Zustand w ist der Bandinhalt links von der aktuellen Position a ist das Zeichen an der aktuellen Position v ist der Bandinhalt rechts von der aktuellen Position Turing-Maschinen
Schritt und Ablauf Die Relation 1 K K , für Schritte ist so definiert: Sei T(z, a) = z‘ und F(z, a) = b, dann ist (für a,b „]“): (z, w, a, v) 1 (z‘, w, b, v), wenn D(z, a) = B (z, wx, a, v) 1 (z‘, w, x, bv), wenn D(z, a) = L (z, w, a, xv) 1 (z‘, wb, x, v), wenn D(z, a) = R Die Abläufe, * K K , erhält man aus 1 durch: (1) k * k für alle k K und (2) k * k“ falls k 1 k‘ und k‘* k“ Turing-Maschinen
Berechnete Funktion Eine Turing-Maschine TM = (A, Z, z0, R, T, F, D) berechnet folgende Funktion FTM: A* A*: (1) FTM(w) = v, wenn (z0, [w, ], ) * (z, [v, ], ) mit z R (2) FTM(w) = undefiniert, sonst Turing-Maschinen