Theorie: Allgemeine Theorie |
Grundlegender Aufbau eines Automaten |
Automaten trifft man in den unterschiedlichsten Funktionen im täglichen Leben an - vom Getränkeautomaten bis zum Computer. Dabei unterscheiden sich diese Automaten nur hinsichtlich der Komplexität ihres spezifischen Abarbeitungsvorgangs. Unabhängig von dessen Komplexität gibt es einen grundlegenden Aufbau, der in allen Varianten eines Automaten besteht (nach [Stu95], S.27) :
1. Eingabe
Ein Automat wird von aussen bedient, d.h. er muss mit Eingabedaten (Input) versorgt werden. Bei einem Getränkeautomaten wäre dies beispielsweise die Bedienung einer Wahltaste für ein Getränk oder der Einwurf eines Münzbetrages. Die Eingabe löst gewisse Aktionen aus, d.h. der Automat verlässt seinen ursprünglichen Zustand.
2. Interne Zustände
Ein Automat befindet sich grundsätzlich zu jedem Zeitpunkt in einem bestimmten Zustand (State). Unter der Einwirkung der Eingabe kann er eine Reihe von Zuständen durchlaufen. Dabei wird die Eingabe (=Information) verarbeitet , evtl. auch gespeichert. Ein Getränkeautomat hat beispielsweise die Zustände "kein Geld eingeworfen", "1 Franken eingeworfen" und "Zuviel Geld eingeworfen".
3. Ausgabe (nicht zwingend)
Üblicherweise produziert ein Automat während der Verarbeitung Informationen, d.h. er gibt Ausgabedaten aus. Eine Ausgabe ist jedoch nicht zwingend.
Ein Automat ohne Ausgabe
verarbeitet die Eingabe und erreicht einen Endzustand (Final state). Er
akzeptiert somit die Eingabe bloss. Diese Form der Automaten wird "Akzeptor"
genannt.
Ein Automat mit Ausgabe
liefert zusätzlich Informationen, die während der Verarbeitung
generiert wurden. Diese Form der Automaten werden als "Transducer"
bezeichnet.
-> Im JFLAP können nur Akzeptoren konstruiert werden.
Ein Beispiel für einen
einfachen Automaten mit Ausgabe ist eine Mausfalle, mit den Zuständen
"gespannt" (G+) und "nicht gespannt" (G-):
(nach [Stu95],
S.28)
Beide Zustände sind prinzipiell als Startzustand möglich, wobei man üblicherweise animmt, dass eine Mausfalle gespannt ist. Nur wenn eine Maus kommt und die Falle gespannt ist, wird vom Zustand G+ in den Zustand G- gewechselt. Ansonsten bleibt der Zustand unverändert, d.h. es kommt keine Maus. Das Resultat dieser "Verarbeitung" ist die Information, dass die Maus tot ist. Ist die Falle zu Beginn nicht gespannt, wird als Resultat "Maus nicht tot" ausgegeben.
Bei diesem Beispiel hat es somit folgende Zustände, Ein- und Ausgaben:
Zustände: gespannt,
nicht gespannt
Eingabe: Maus kommt, Maus
kommt nicht
Ausgabe: Maus tot, Maus
nicht tot
Dieses Beispiel zeigt auch
die Vielfältigkeit von Automaten. Grundsätzlich beschreibt ein
Automat einen Algorithmus, d.h. eine vorgegebene Anzahl abzuarbeitender
Schritte in einer festgelegten zeitlichen Abfolge. Die Verwendung von Automaten
in der Sprachverarbeitung bildet daher nur einen Teil der "Welt der Automaten".
Spezifische Info zu Automaten und Sprache findest Du hier.