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:

  1. Deterministischer Endlicher Automat (DEA)

    • FĂŒr jedes Zeichen gibt es genau einen definierten Folgezustand.
    • Keine Mehrdeutigkeiten in den ÜbergĂ€ngen.
  2. 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:

  1. Zustandsdiagramm (Graphische Darstellung)

    • ZustĂ€nde als Kreise
    • ÜbergĂ€nge als gerichtete Pfeile
    • EndzustĂ€nde mit einem Doppelkreis gekennzeichnet
  2. Zustandstabelle (Tabellarische Darstellung)

    • Zeigt fĂŒr jeden Zustand und jedes Eingabesymbol den Folgezustand.

Beispiel fĂŒr eine Zustandstabelle:

ZustandEingabe 0Eingabe 1
q0q1q2
q1q1q3
q2q1q2
q3q3q3

Potenzmengenkonstruktion (NEA → DEA)

Jeder nichtdeterministische Automat (NEA) kann in einen deterministischen Automaten (DEA) umgewandelt werden:

  1. Jede Menge von ZustÀnden wird zu einem neuen Zustand des DEA.
  2. Ein Zustand des DEA reprÀsentiert eine Menge von NEA-ZustÀnden.
  3. Alle möglichen ÜbergĂ€nge werden systematisch ermittelt.
  4. 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:

  1. Alphabet:

  2. ZustÀnde:

  3. Startzustand:

  4. Endzustand:

  5. Ü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. 🚀