Institut für Informatik Abt. Intelligente Systeme 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.
Automaten Deterministische endliche 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.
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.
Definitionen Getränkeautomat 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“ 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“ Der Automat befindet sich stets in einem bestimmten inneren Zustand definiert durch seine Zustandsmenge Q={a,b} mit a=„Geldbetrag ausreichend b=„Automat bereit“ Die Übergangsfunktion legt die Arbeitsweise des Automaten fest. Angabe in Tabellenform oder als Übergangsnetzwerk bzw. Graph.
Tabelle des Getränkeautomaten Spalten: Aktueller Zustand. Zeilen: Aktuelle Eingabe. Einträge: Folgezustand/Ausgabe
Ü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.
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“.
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
Ein erkennender Automat Der Automat erkennt die Wörter, die die Buchstabenfolge aeiou enthalten. O - a O - e O - i O - o O - u a e i o u 1 2 4 5 3 Start 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.
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: 0 1 0 1 1 0 1 Zustand: a a b a b c d c Ausgabe: 0 0 0 0 0 1 1 1
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 Ausgabe-band, 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).
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 )