# 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](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\}$ ### 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](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 - #### Beispiel NEA ![image_742.png](image_742.png)