Die Automaten sind meist ähnlich aufgebaut: Der Automat hat einen inneren Zustand und bekommt eine Eingabe, die (meistens) Zeichen für Zeichen gelesen wird. Eine Zustandsübergangstabelle definiert, abhängig vom aktuellen Zustand und dem gerade gelesenen Zeichen, den nächsten Zustand.
Automaten werden unter anderem in deterministische und nichtdeterministische unterschieden. Dabei ist bei nichtdeterministischen Automaten nicht eindeutig vorherbestimmt, welcher Zustand auf welchen anderen folgt.
Bekannte Typen von Automaten sind (jeweils mit Abkürzungen in deterministischer und nichtdeterministischer Variante):
- Turingmaschinen (DTM/NTM): akzeptieren die Typ-0-Sprachen (Rekursiv aufzählbare Sprache) und damit auch Typ-1-Sprachen. Durch die Turingmaschine wird außerdem der Begriff der Berechenbarkeit definiert. Siehe Churchsche These.
- linear beschränkte Automaten (DLBA/LBA): akzeptieren die Typ-1-Sprachen (kontextsensitive Sprachen)
- Kellerautomaten (DPDA/PDA): akzeptieren die Typ-2-Sprachen (Kontextfreie Sprachen)
- Endliche Automaten (DFA/NFA): akzeptieren die Typ-3-Sprachen (Reguläre Sprachen)
- Zweikellerautomat: ohne Einschränkung der Turingmaschine gleichwertig. Syntaktische Beschränkungen dieses Modells führen zur Charakterisierung der Typ-1- und Typ-2-Sprachen.
- Registermaschinen: sind genau so mächtig wie Turingmaschinen, bieten aber in einigen Fällen ein besseres Maß für die Zeitkomplexität.
| Chomsky-Hierarchie | Sprachklasse | nicht deterministischer Automat | deterministischer Automat | ||
|---|---|---|---|---|---|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
Die Mengeninklusion LBA ⊇ DLBA ist nur eine Vermutung, da bisher noch nicht bewiesen wurde, ob die DLBAs die gleiche Sprachklasse akzeptieren wie die LBAs. Die Gleichheit NTM = DTM steht im engen Zusammenhang mit dem P-NP-Problem (P≟NP).
Daneben gibt es weitere Automatentypen, die sich nicht am sequentiellen Einlesen einer Eingabe orientieren. Einige der bekannteren Automaten sind:
Von praktischer Relevanz für die Programmierung sind vor allem Endliche Automaten und Kellerautomaten: sie bieten eine einfache Struktur, mit der sich viele komplexe Probleme übersichtlich lösen lassen. Im Compilerbau werden sie beispielsweise zur Implementierung von Parserenn eingesetzt, die Umsetzungen von Netzwerkprotokoll benutzen häufig einen endlichen Automaten, um ihren aktuellen Zustand zu modellieren. Auch die Navigationsmöglichkeiten in einem Wizard lassen sich sehr gut als endlicher Automat ausdrücken, und das Workflow-Management benutzt diese Konzepte zur Modellierung von Arbeitsabläufen.
Auch bei der Realisierung sequenzieller Hardware wird das Modell des Endlichen Automaten genutzt, dort meist als Finite State Machine (FSM) bezeichnet.
Siehe auch


