120 likes | 276 Views
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);
E N D
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 • 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 • 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 • 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
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. Übergangsnetzwerke
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 0 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 )