Definition
Ein endlicher Automat ist ein mathematisches Modell fĂŒr Berechnungen mit einer endlichen Anzahl von ZustĂ€nden. Er verarbeitet eine Eingabezeichenkette und wechselt zwischen ZustĂ€nden gemÀà einer definierten Ăbergangsfunktion.
Arten von Endlichen Automaten
Es gibt zwei Haupttypen von endlichen Automaten:
-
Deterministischer Endlicher Automat (DEA)
- FĂŒr jedes Zeichen gibt es genau einen definierten Folgezustand.
- Keine Mehrdeutigkeiten in den ĂbergĂ€ngen.
-
Nichtdeterministischer Endlicher Automat (NEA)
- Ein Zustand kann mehrere mögliche FolgezustÀnde haben.
- Kann auch Δ-ĂbergĂ€nge (ĂbergĂ€nge ohne Eingabe) enthalten.
Jeder NEA kann in einen DEA umgewandelt werden (mittels Potenzmengenkonstruktion).
Formale Definition eines DEA
Ein deterministischer endlicher Automat (DEA) ist ein 5-Tupel:
[
M = (S, ÎŁ, ÎŽ, s_0, F)
]
- S: Endliche Menge von ZustÀnden
- ÎŁ: Eingabealphabet
- ÎŽ: Ăbergangsfunktion
- s0: Startzustand
- F: Menge der EndzustÀnde
Ein Wort wird akzeptiert, wenn nach dem vollstÀndigen Einlesen der Zeichenkette der Automat sich in einem Endzustand befindet.
Formale Definition eines NEA
Ein nichtdeterministischer endlicher Automat (NEA) ist Ă€hnlich definiert, jedoch erlaubt die Ăbergangsfunktion mehrere mögliche FolgezustĂ€nde:
[
M = (S, ÎŁ, ÎŽ, s_0, F)
]
- Die Ăbergangsfunktion ist jetzt:
[
ÎŽ: S Ă ÎŁ â P(S)
]
(d.h. sie kann eine Menge von ZustĂ€nden zurĂŒckgeben) - Δ-ĂbergĂ€nge sind erlaubt: Ein Zustand kann ohne Eingabezeichen in einen anderen wechseln.
Darstellungsmöglichkeiten
Endliche Automaten können auf verschiedene Weise dargestellt werden:
-
Zustandsdiagramm (Graphische Darstellung)
- ZustÀnde als Kreise
- ĂbergĂ€nge als gerichtete Pfeile
- EndzustÀnde mit einem Doppelkreis gekennzeichnet
-
Zustandstabelle (Tabellarische Darstellung)
- Zeigt fĂŒr jeden Zustand und jedes Eingabesymbol den Folgezustand.
Beispiel fĂŒr eine Zustandstabelle:
Zustand | Eingabe 0 | Eingabe 1 |
---|---|---|
q0 | q1 | q2 |
q1 | q1 | q3 |
q2 | q1 | q2 |
q3 | q3 | q3 |
Potenzmengenkonstruktion (NEA â DEA)
Jeder nichtdeterministische Automat (NEA) kann in einen deterministischen Automaten (DEA) umgewandelt werden:
- Jede Menge von ZustÀnden wird zu einem neuen Zustand des DEA.
- Ein Zustand des DEA reprÀsentiert eine Menge von NEA-ZustÀnden.
- Alle möglichen ĂbergĂ€nge werden systematisch ermittelt.
- EndzustÀnde des DEA enthalten mindestens einen Endzustand des NEA.
Dieser Prozess kann zu exponentiell mehr ZustĂ€nden im DEA fĂŒhren.
RegulÀre Sprachen und Endliche Automaten
- Jede regulÀre Sprache kann durch einen endlichen Automaten erkannt werden.
- RegulĂ€re Sprachen können auch mit regulĂ€ren Grammatiken oder regulĂ€ren AusdrĂŒcken beschrieben werden.
ZusammenhÀnge:
- RegulĂ€re Sprachen â Endliche Automaten â RegulĂ€re AusdrĂŒcke â RegulĂ€re Grammatiken
Eigenschaften von Endlichen Automaten
Endliche Automaten haben einige wichtige Eigenschaften:
âïž Speicherlos: Sie speichern nur den aktuellen Zustand.
âïž Effizient: Die Laufzeit ist linear zur EingabelĂ€nge.
âïž Deterministische Automaten sind effizienter als nichtdeterministische.
đ« Begrenzte Ausdruckskraft:
- Endliche Automaten können keine kontextfreien Sprachen erkennen.
- Beispielsweise kann ein endlicher Automat keine Sprache der Form (a^n b^n) akzeptieren, weil er sich nicht merken kann, wie oft âaâ vorkam.
Beispiel: Akzeptanz einer Sprache
Betrachten wir eine Sprache L, die nur Wörter mit gerader Anzahl von a
akzeptiert:
-
Alphabet:
-
ZustÀnde:
-
Startzustand:
-
Endzustand:
-
ĂbergĂ€nge:
Zustandsdiagramm:
(q0) --a--> (q1)
(q1) --a--> (q0)
(q0) --b--> (q0)
(q1) --b--> (q1)
Dieser Automat akzeptiert alle Wörter mit einer geraden Anzahl an a
.
Zusammenfassung
- Endliche Automaten sind Modelle zur Verarbeitung von Zeichenketten mit einer endlichen Anzahl von ZustÀnden.
- DEA sind deterministisch, NEA erlauben mehrere mögliche FolgezustÀnde.
- Jeder NEA kann in einen DEA umgewandelt werden.
- Endliche Automaten sind genau so mĂ€chtig wie regulĂ€re Grammatiken und regulĂ€re AusdrĂŒcke.
- Sie können keine kontextfreien Sprachen akzeptieren, sind aber effizient und einfach zu implementieren.
Endliche Automaten bilden die Grundlage fĂŒr viele Anwendungen in der Informatik, darunter Compilerbau, Mustererkennung und formale Sprachen. đ