Vorlesung Algorithmen und Datenstrukturen (Magister) Kapitel 1 Automaten Prof. Dr. Ralf Der Institut für Informatik Abt. Intelligente Systeme Vorlesung basierend u.a. auf: A.V. Aho, J. D. Ullmann, Informatik, Thomson Publ. (1996); Rembold/Levi, Einführung in die Informatik, Hanser (1999); Ottmann/Wiedmayer, Algorithmen und Datenstrukturen, Spektrum Akademischer Verlag, Heidelberg (1996) Foliensammlung Prof. Rahm, Prof. Brewka und Prof. Heyer. R. Der 1 Algorithmen und Datenstrukturen Automaten Im Alltag: Automat ist ein Gerät, das aus einer bestimmten Eingabe eine definierte Ausgabe erzeugt. Beispiele: Fahrkarten-Automat, Kaffee-Automat. In der Informatik: Neben Grammatiken und Syntaxdiagrammen definieren Automaten formale Sprachen und deren Verarbeitung. Deterministische endliche Automaten Beispiel: Einfacher Getränkeautomat. Funktion: •Einwurf eines Geldstückes vom Betrag x. •Auswahl eines Getränkes k bzw. l durch Drücken der Tasten K bzw. L. •Rückgabe des Geldes bei Drücken von R. •Signalton falls Auswahltaste ohne vorherigen Geldeinwurf gedrückt. R. Der 2 Algorithmen und Datenstrukturen Definition eines Automaten Ein Automat ist ein Sechstupel A= (I, O, Q, , q0, F). Dabei sind: I bzw. O das Ein- bzw. Ausgabealphabet, Q eine endliche Menge von Zuständen, in denen sich der Automat befinden kann, die Zustandsübergangsfunktion, : Q x I Q x O q0 Q ist der Anfangszustand und F Q die (evtl. leere) Menge der Endzustände. Ein Automat heißt endlich, wenn die Mengen I,O,Q endlich sind und es nur einen Anfangszustand gibt. R. Der 3 Algorithmen und Datenstrukturen Definitionen Getränkeautomat Ausgabealphabet O={k,l,x,s} mit • k= „Ausgabe Getränk K“ • l=„ Ausgabe Getränk L“ • x=„Ausgabe Geldbetrag x“ • s=„Signalton ertönt“ • - = „Keine Ausgabe“ Eingabealphabet I={X,K,L,R} mit • X= „Geldbetrag einwerfen“ • K=„Taste K drücken“ • L=„Taste L Drücken“ • R=„Rückgabeknopf drücken“ Der Automat befindet sich stets in einem bestimmten inneren Zustand definiert durch seine Die Übergangsfunktion legt die Arbeitsweise des Automaten fest. Angabe in Tabellenform oder als Übergangsnetzwerk bzw. Graph. Zustandsmenge Q={a,b} mit • a=„Geldbetrag ausreichend • b=„Automat bereit“ R. Der 4 Algorithmen und Datenstrukturen Tabelle des Getränkeautomaten Spalten: Aktueller Zustand. Zeilen: Aktuelle Eingabe. Einträge: Folgezustand/Ausgabe X K L R R. Der a a/x b/k b/l b/x 5 b a/b/s b/s b/- Algorithmen und Datenstrukturen Übergangsnetzwerke Darstellung von Automaten durch Graphen (Übergangsnetzwerke): 1. Zustände werden als Kreise dargestellt; 2. Übergänge zwischen den Zuständen durch Pfeile (Kanten, Bögen) dargestellt. Vom Zustand q wird ein Pfeil zum Zustand v mit der Markierung x/y gezeichnet, wenn v unter der Eingabe x Folgezustand von q ist und beim Übergang die Ausgabe y erfolgt, d.h. wenn (v, y) (q, x) ist; 3. Der Startzustand wird durch einen Pfeil (aus dem „Nichts“ kommend) und die Endzustände durch doppelte Kreise markiert. R. Der 6 Algorithmen und Datenstrukturen Graph des Getränkeautomaten Beschriftung der Kanten: Eingabe/Ausgabe. Beispiel: L/s heißt „Taste L gedrückt und Signal ertönt“ oder R/- heißt „Taste R gedrückt und keine Ausgabe“. R. Der 7 Algorithmen und Datenstrukturen Erkennende und übersetzende Automaten Automaten können zum Erkennen und Umsetzen von Mustern dienen. Beispiel: Erkennen von Worten, die eine bestimmte Buchstabenkombination enthalten. Begriffe: Erkennen: Gewisse Endzustände dienen als akzeptierende Zustände. Muster gilt als erkannt, falls der zugehörige Endzustand erreicht ist. Konfiguration: Tripel (w, q, v) mit w I*, q Q und v O* Folgerelation: (xw, q, v) (w, q‘, vy) mit x I und y O wenn (q‘, y) (q, x) Übersetzung: T(A)={(w, v)| (w, q0, ) * (, q‘, v) } mit q F R. Der 8 Algorithmen und Datenstrukturen Ein erkennender Automat Der Automat erkennt die Wörter, die die Buchstabenfolge aeiou enthalten. O-a O-e a 0 O-i e 1 O-o i O-u o 2 3 Start u 4 5 O ist die Menge aller Buchstaben. Das Wort ist erkannt, wenn der akzeptierende Zustand 5 erreicht wurde. Abbruch der Bearbeitung, falls aus einem bel. Zustand kein Übergang möglich. Beispiel Einlesen eines Satzzeichens. R. Der 9 Algorithmen und Datenstrukturen Erkennende und übersetzende Automaten Der Automat eliminiert singuläre Nullen und Einsen. Ausgabe ist 0 in Zustd. a,b und 1 in Zuständen c,d. Ausgabetext um eine Position verschoben, die erste Null erscheint als redundanter Präfix. Simulation für die Eingabesequenz 101101: Eingabe: Zustand: Ausgabe: R. Der 0 a 0 1 a 0 0 b 0 1 a 0 10 1 b 0 0 c 1 1 d 1 c 1 Algorithmen und Datenstrukturen Formale Realisierung eines endlichen Automaten e5 e2 e3 e1 e4 e2 Steuereinheit o1 o2 o3 Der Schreibkopf schreibt Zeichen für Zeichen ein Wort O auf das Ausgabeband, das bei jedem Zeichen um eine Position nach links weiterbewegt wird; das Eingabeband wird um eine Position nach links verschoben; die Steuereinheit bewirkt eine Zustandsänderung (abhängig vom Eingabezeichen und dem alten Zustand). R. Der 11 Algorithmen und Datenstrukturen Verallgemeinerungen von endlichen Automaten (1) 2 Bänder, in beide Richtungen bewegliches Hilfsband (Kellerautomat) (2) in beide Richtungen bewegliches Band, Lesen und Schreiben, für jedes Eingabewort x der Länge n steht k*n Band zur Verfügung (linear beschränkter Automat) (3) in beide Richtungen bewegliches Band, Lesen und Schreiben (Turing Maschine ) R. Der 12 Algorithmen und Datenstrukturen