zusammenfassungen/Writerside/topics/04/Theoretische Informatik/03_GrundlagenEndlicherAutomaten.md
David Schirrmeister 6f68625f4c update
2025-04-22 17:10:06 +02:00

4.8 KiB
Raw Blame History

Grundlagen endlicher Automaten

Definition

Deterministischer endlicher Automat (DEA)

  • 5-Tupel
    • A=(Σ,Q,q_s,Q_a, δ)
      • Σ: endliches Eingabealphabet
      • Q: endliche Menge von Zuständen
      • q_s ∈ Q: Startzustand
      • Q_a ⊆ Q: akzeptierte Zustände
      • δ: Q x Σ → Q: Übergangsfunktion

Graphdarstellung G_A

  • Graphknoten: Q
    • Startzustand: Knoten mit eingehender Kante ohne Quelle
    • akzeptierter Zustand: Knoten mit Doppelkreis
  • gelabelte Kanten: Zustandsübergänge
    • Kante von q nach q' mit Label a ↔ δ(q,a) = q'

Beispiel einfacher endlicher Automat

  • A=(Σ,Q,q_s,Q_a, δ)
    • Σ=\{0,1\}
    • Q=\{q_1,q_2,q_3\}
    • q_s=q_1
    • Q_a=\{q_3\}
    • δ:
      • Zustand δ(.,0) δ(.,1)
        q_1 q_1 q_2
        q_2 q_1 q_3
        q_3 q_3 q_3
  • Graphdarstellung
    • image_740.png

Sprache eines Automaten

Sei A=( Σ,Q,q_s,Q_a, δ) ein DEA. Die fortgesetzte Übergangsfunktion δ^*: Q x Σ^* →Q ist definiert durch

δ^*(q, ε):=q und

δ^*(q,wx):= δ( δ^*(q,w),x) für w ∈ Σ^* und x ∈ Σ

↑ ~induktive Definition

Sei $A= ( Σ,Q, q_s, Q_a, δ) ein DEA.

(a) Wir sagen A akzeptiert w ∈ Σ^*, wenn δ^*(q_s,w) ∈ Q_a

(b) Die von A akzeptierte Sprache ist L(A) := \{w ∈ Σ^* \space| \space A\space akzeptiert \space w\}

Übung:

(a) L_1 = \{a^nb^mc^k \space | \space n,m,k ≥ 1\}

image_749.png

Unvollständige Automaten

Ein unvollständiger deterministischer Automat A=( Σ, Q,Q_s, Q_a, δ) ist wie ein normaler DEA
mit folgenden Änderungen:

(a) Die Übergangsfunktion δ darf partiell sein

(b) Ist während einer Berechnung der nächste Zustand nicht definiert → Eingabe verwerfen

Beispiel unvollständiger Automat:

image_741.png

Nichtdeterministischer endlicher Automat (NEA)

Nichtdeterminismus

  • Erlauben pro Zustand/Zeichen-Paar mehrere Folgezustände
    • die wiederum selbst wieder mehrere Folgezustände haben können
    • Eine Eingabe, mehrere Berechnungspfade
  • Eingabe wird akzeptiert, wenn
    • Berechnungspfad existiert, der in akzeptierendem Zustand endet

Definition NEA

  • 5-Tupel
    • A=(Σ,Q,q_s,Q_a, δ)
      • Σ: endliches Eingabealphabet
      • Q: endliche Menge von Zuständen
      • q_s ∈ Q: Startzustand
      • Q_a ⊆ Q: akzeptierte Zustände
      • δ: Q x Σ → P(Q): Übergangsfunktion
  • jede einzelne Berechnung wie beim DEA
    • starte in q_s
    • lies nächstes Zeichen
    • berechne Folgezustand mit δ
    • wechsle in Folgezustand
      • ist akzeptierend? → :)
      • sonst → verwerfe
      • Goldene Regel: Akzeptiere Eingabe, wenn akzeptierende Berechnung existiert

Sprache eines NEA

Sei N=( Σ,Q,q_s,Q_a, δ) ein NEA. Die fortgesetzte Übergangsfunktion δ^*: Qx Σ^*→P(Q) ist definiert durch:

δ^*(q, ε) := \{q\} und

δ^*(q,wx) := δ(q', x) für w ∈ Σ^* und x ∈ Σ

$q' ∈ δ^*(q,w)$

Beispiel NEA

image_742.png

image_743.png

NEA vs DEA

  • NEA scheinbar viel mächtiger als DEAs
    • sehr viele Berechnungspfade (statt nur einem pro Wort)
  • Alternativer Blick auf das Parsen eines NEAs
    • für jede Stelle der Eingabe
      • in welchen Zuständen könnte der NEA sein?
    • akzeptiere, wenn finaler Metazustand Zustand aus Q_a enthält
      • image_744.png

Potenzautomaten

image_745.png

image_746.png

Konstruktion und Sprache eines Potenzautomaten

Konstruktion: Funktionstabelle für δ

    1. Spalte: bisher entdeckte Metazustände
  • restliche Spalten: Folge-Metazustand für jedes Zeichen x ∈ Σ
  • solange unvollständige Zeile existiert: ausfüllen
    • initial: nur \{s\} sicher erreichbar → eine unvollständige Zeile
    • je neu entdecktem Metazustand: lege neue Zeile an

Der Potenzautomat A_N eines NEA N ist ein deterministischer endlicher Automat mit L(A_N) = L(N)

image_747.png

Beweis: image_748.png

Mächtigkeit & Grenzen endlicher Automaten

  • parsen einfacher Strukturen

    • E-Mail
    • XML-Tags
    • Datumsformate
    • ...
  • können sich Dinge merken

  • NEAs betrachten viele Berechnungswege "gleichzeitig"

    • sind aber letztlich nur Syntactic Sugar
      • nur dafür da, dass es besser lesbar ist
  • können sich nur so viel merken, wie sie Zustände haben

    • geht: das 17. Zeichen von w ist 0
    • geht nicht: das |w|/2. Zeichen von w ist 0
  • können keine komplexen Strukturen erkennen

    • Palindrome
      • LAGERREGAL
    • arithmetische Ausdrücke
      • 42*(x+y)-z
    • Hierarchien
    • Verschachtelungen
    • ...