Anda di halaman 1dari 10

Sprachen und Automaten

-Teilgebiete der Informatik: Angewandte Inf.; Praktische Inf.; Technische


Inf.; Theoretische Inf.
Theoretische Inf.:
-Przisierung des Algorithmusbegriffs mittels mathematischer
Beschreibungen
-> Algorithmentheorie
-erste Grenze fr das Problemlsen mit Hilfe von Computern
-> Berechenbarkeitstheorie
-Computer werden zu abstrakten Automaten verallgemeinert
-> Automatentheorie
-Untersuchung der Effizienz des Algorithmus, mit dem ein Problem
gelst wird; weitere Leistungsgrenze von Computern
-> Komplexittstheorie
-Entwicklung von Programmiersprachen findet ihre Grundlage
ebenfalls in der theoretischen Informatik
-> Theorie der formalen Sprache
Technische Inf.:
-Hardwarekomponenten
-Schaltnetze, Schaltwerke, Prozessoren
-Mikroprogrammierung
-Rechenorganisation und -architektur
Praktische Inf.:
-Algorithmen, Datenstruktur, Programmiermethoden
-Programmiersprachen und bersetzer
-Betriebssysteme
-Softwaretechnik
Angewandte Inf.:
-Grafik
-Datenbanken
-KI
-Simulation und Modellierung
-Textverarbeitung

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

Arbeitsweise des Automaten


-arbeitet sequentiell, d.h. in diskreten Schritten(Takt fr Takt), durchluft
eine endliche Folge von Zustnden
-1 Takt = eine Eingabe wird bearbeitet, eine Ausgabe erzeugt, es folgt ein
Zustandswechsel (z0->z1) oder er bleibt im alten Zustand (z0->z0)
-Eingabe der Geldkarte (z0) -> Funktionsauswahl (z1)
Endlicher Automat mit Ausgabe
(Endlicher deterministischer Automat mit Ausgabe = Transduktor)
-endlich -> endlich viele Zustnde, diese stellen gewissermaen
Gedchtnis dar
-EA = (X, Y, Z, , , z0, zE) -> 7-Tupel
mit den nichtleeren Mengen
X {Eingabealphabet} = Menge von Eingabezeichen
Y { Ausgabealphabet} = Menge von Ausgabezeichen
Z {Zustandsmenge mit Anfangs- und Endzustand} ein
Anfangszustand, Endzustnde sind mehrere mglich

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

-Automat verkauft Karte fr 3


-Er nimmt nur 1 2 Stcke und 5 Scheine an
-Sobald gengend Geld eingeworfen wurde, fllt die Karte in ein
Entnahmefach
-Zuviel gezahltes Geld wird zurckgegeben
Definieren Sie diesen Automaten mit Ausgabe EA = (X, Y, Z, , , z0, zE)
EA = (X, Y, Z, , )
X = {1, 2, 5}

Beispiel 3 Getrnkeautomat
Angebot: Limo(L), Kaffee(K) (Einheitspreis)

Bei Problemen Rckgabetaste (R) drcken -> Ausgabe Betrag (B)


1. Eingabe Betrag (Sollte ein weiterer Betrag eingegeben werden, wird
der weitere Betrag wieder ausgegeben)
2. Auswahl L oder K -> Ausgabe L oder K
3. Falls erst die Auswahl getroffen wurde, ertnt Signal (S)
Definieren Sie diesen Automaten als endlichen Automaten mit Ausgabe EA
=(X, Y, Z, , )
X = {B(Betrag), L(Limo), K(Kaffee), R(Rckgabe)}
Y = {yL(Limoausgabe), yK(Kaffeeausgabe), yB(Betragausgabe), yS(Signal),
yN(Nichts)}
Z = {zE=z0(Automat bereit), zB(Betrag wurde eingegeben)}

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

UML: Unified Modeling Language


(standardisierte Modellierungssprache)

Endlicher Automat Darstellung als UML-Diagramm


Beispiel: Getrnkeautomat
Bedingung: Einheitspreis fr alle
Getrnke
Zustands-bergangsdiagramm

Geld eingeben

Geldeingabe
Beginn
Geld ist ausreichend
Abbruchtaste gedrckt
Auswahltaste gedrckt
Getrnkeausgabe

Geldausgabe

Ende

Endlicher deterministischer Automat ohne Ausgabe


(=Akzeptor)

-hufig benutzt, um Zeichenfolgen auf Korrektheit zu untersuchen


Die vom Automat akzeptierte Sprache ist die Menge aller Strings, die
einen Endzustand erreichen
5-Tupel EA = (X, Z, , z0, ZE)
Wobei
X= Eingabealphabet
Z= Zustandsmenge
=f(Z,X) = Z Zustandsbergangsfunktion
z0 {Element von} Z der Anfangszustand von EA
ZE {Teilmenge von} Z die Menge der Endzustnde
Beispiel 1: Schlossautomat (einmalige Benutzung)
-Zulssiger Code: 2950
-wenn Ziffer falsch eingegeben wird, geht Automat in Zustand
arretiert; egal welche Ziffer danach eingegeben wird, er kann den
Zustand nicht verlassen
-Normalerweise msste Schloss initialisiert werden, um erneut zu
bedienen; wird jetzt jedoch nicht bercksichtigt
Definieren Sie diesen Automaten als endlichen Automaten EA = (X,
Z, , z0, ZE)
EA = (X, Z, ,z0,ZE)
X = {0, 1, 2, 3, 4, 5, 6 ,7 ,8, 9}
Z = {z0(geschlossen), z2(2 eingegeben), z29(29 eingegeben),
295(295 eingegeben), zE1(2950 eingegeben), zE2(nicht 2950 arretiert)}
ZE={zE1, zE2}
Tabelle sehr umfangreich

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

Anda mungkin juga menyukai