algdat1 - Institut für Informatik

Werbung
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
Herunterladen