Endliche Automaten
-Automaten bestimmen unser Leben (begegnen uns im tglichen Leben
berall)
-Fahrkartenautomat, Bankautomat, Getrnkeautomat, Aufzug,
Kaffeeautomat, Waschmaschine
-Erklrung Automat: Gert, was einmal in Gang gesetzt wurde, ohne
weiteren Eingriff von auen seine Arbeit ausfhrt
-automatisches Arbeiten erklrt sich durch Existenz eines Programms, d.h.
einer Vorschrift, die das Verhalten des Automaten steuert
-> Programm und Automat bildet Einheit
-Automat = vorwiegend mathematisches Modell eines Gerts, welches
Informationen verarbeitet
-es gibt grundstzliche Prinzipien, nach denen alle Automaten konstruiert
sind
-Entwicklung eines abstrakten Modells, das aus den realen Automaten
durch Abstraktion gewonnen wird
-bei Untersuchung von Zeichenfolgen sind Automatenmodelle sehr
hilfreich (wird Bsp. in Compilern ausgenutzt, wenn vor der bersetzung
des Quellcodes das Programm mithilfe eines endlichen Automaten auf
syntaktische Korrektheit berprft wird)
Beispiel Bankautomat:
Geldkarte einschieben
Automat berprft Richtigkeit
Ausgabe: falsch - Karte erneut einfgen
korrekt ->Menauswahl (Automat wartet auf Eingabe)
Barauszahlung, Kontostand angeben
->Barauszahlung
Ausgabe: PIN eingeben
Falsch Pin erneut eingeben
Korrekt Geldbetrag whlen
Karte wird ausgeworfen Geldausgabe
erfolgt
Beispiel Fahrkartenautomat
-Ein Automat verkauft Fahrkarten (genau eine Sorte) im Wert von 3
-Er nimmt nur Ein- und Zwei Eurostcke
-Sobald gengen Geld eingeworfen wurde, fllt die Fahrkarte in ein
Entnehmefach
-Zuviel gezahltes Geld wird nicht zurckgegeben
Definieren Sie diesen Automaten als endlichen Automaten
mit Ausgabe EA = (X, Y, Z, , , z0, zE)
Lsung 1:
X = {1, 2}
Oder X = {x1(1), x2(2)}
Y = {y0(Fahrkarte), y1(noch 1 zu zahlen), y2(noch 2 zu zahlen)}
Z = {z0(Anfangszustand: nichts eingeworfen), z1(1 eingeworfen), z2(2
eingeworfen), zE(Endzustand: >=3 eingeworfen)}
Lsung 2:
X = {1, 2}
Y=
Lsung 2
, als Tabelle
Z0 = z1
Z1
Z1
X
1
2
Z1/y2
Z2/y1
1. Zeichen: Folgezustand
2. Zeichen: Ausgabezeichen
Erweiterung 2 Fahrkartenautomat
Z2/y1
Z0/y0
Z0/y0
Z0/y0
Beispiel 3 Getrnkeautomat
Angebot: Limo(L), Kaffee(K) (Einheitspreis)
K/yS
B/yN
R/yN
L/yL
zE=z
0
zB
R/yB
K/yK
L/yS
B/yB
x\z
B
L
R
K
Z0=zE
zB/yN
Z0=/yS
Z0=yN
Z0=yS
zB
zB
Geld eingeben
Geldeingabe
Beginn
Geld ist ausreichend
Abbruchtaste gedrckt
Auswahltaste gedrckt
Getrnkeausgabe
Geldausgabe
Ende
Beispiel 2:
Konstruktion Akzeptor EA = (X, Z, , z0, ZE), mit Strings aus {0, 1}*,
die eine gerade Anzahl von Einsen enthalten
M* bezeichnet die Menge aller Wrter ber M. Die Wrter ber M
sind beliebige endliche Folgen von Zeichen aus M einschlielich des
leeren Worts E
{0, 1}* = {E, 0, 1, 01, 101, 1010, 10101.}
E = Epsilon
Lsung 1:
EA = (X, Z, , z0, ZE)
X = {0, 1}
Z = {z0, z1(ungerade Anzahl von Einsen), z2(gerade Anzahl von
Einsen)}
ZE = {z0, z2}
Lsung 2:
Man erkennt, dass z0 und z2 quivalent sind
EA = (X, Z, , z0, ZE)
X = {0, 1}
Z = {z1(ungerade Anzahl von Einsen), z0=z2(gerade Anzahl von
Einsen)}
ZE = {z0}
x\z
0
1
Z0
Z0
Z1
Z1
Z1
Z0
Beispiel 3:
Es soll ein Akzeptor konstruiert werden fr die Strings aus {0, 1}, die
101 als Teilstring enthalten.
Bsp.:
E wird nicht akzeptiert (leeres Wort)
101 krzester
akzeptierter String
0 wird nicht akzeptiert
00101110 wird akzeptiert
1 wird nicht akzeptiert
11011010110 wird akzeptiert
110 wird nicht akzeptiert
EA = (X, Z, , z0, ZE)
X = {0, 1}
Z = {z0, z1(1 eingegeben), z10(10 eingegeben), z101(101
eingegeben)}
ZE = {z101}
x\z
0
1
Z0
Z0
Z1
Z1
Z101
Z10
Z10
Z0
Z101
Z101
Z101
Z101
Beispiel 4:
Es soll ein Akzeptor konstruiert werden fr die Strings aus {0, 1}, der
NICHT 101 enthlt