Klausur = Lesen UND Rechnen · Relevanz sehr hoch

NEA / NFA — Nichtdeterministische endliche Automaten

Endliche Automaten mit mehreren erlaubten Nachfolgezuständen pro Eingabesymbol; akzeptieren ein Wort, sobald mindestens ein Berechnungspfad in einen Endzustand führt. Diese Seite enthält jetzt auch durchgerechnete Rechenaufgaben.

TL;DR

  • Ein NEA (nichtdeterministischer endlicher Automat, engl. NFA) unterscheidet sich vom DEA nur in der Übergangsfunktion: $\delta: Z \times \Sigma \to \mathcal{P}(Z)$. Aus einem Zustand können bei einem Symbol mehrere Zustände zugleich erreicht werden.
  • Ein Wort wird akzeptiert, wenn mindestens ein Berechnungspfad im Baum aller möglichen Übergänge in einem Endzustand endet.
  • $\varepsilon$-NEAs erlauben zusätzlich spontane Übergänge ohne Eingabesymbol; sie sind aber nicht mächtiger, nur bequemer.
  • NEAs und DEAs erkennen exakt dieselbe Sprachklasse — die regulären Sprachen. Die Potenzmengenkonstruktion liefert zu jedem NEA einen äquivalenten DEA.
  • NEAs können exponentiell kleiner sein als äquivalente DEAs; das ist der Grund, weshalb man sie überhaupt einführt.
  • Neu: Weiter unten findest du eine Sektion mit vollständig durchgerechneten Rechenaufgaben (Potenzmengenkonstruktion, $\varepsilon$-Elimination, Akzeptanzprüfung, NEA-Konstruktion).

1. Definitionen und Formalismen

Nichtdeterministischer endlicher Automat (NEA / NFA)

Ein NEA ist ein 5-Tupel $$M = (Z, \Sigma, \delta, S, E)$$ mit endlicher Zustandsmenge $Z$, endlichem Alphabet $\Sigma$, Übergangsfunktion $\delta: Z \times \Sigma \to \mathcal{P}(Z)$, Menge der Startzustände $S \subseteq Z$ und Menge der Endzustände $E \subseteq Z$. In vielen Skripten wird $S = \{z_0\}$ genutzt; hier ist das nicht zwingend.

Erweiterte Übergangsfunktion $\delta^*$

Für Worte definieren wir $\delta^*: \mathcal{P}(Z) \times \Sigma^* \to \mathcal{P}(Z)$ rekursiv: $$\delta^*(Q, \varepsilon) = Q \qquad \delta^*(Q, a \cdot w) = \delta^*\!\left(\bigcup_{q \in Q} \delta(q, a),\; w\right)$$ Die Fortführung arbeitet also auf einer Menge aktuell möglicher Zustände.

Akzeptierte Sprache

$$L(M) = \{\, w \in \Sigma^* \mid \delta^*(S, w) \cap E \neq \emptyset \,\}$$ Ein Wort ist genau dann in der Sprache, wenn die Menge der nach dem Wort erreichbaren Zustände wenigstens einen Endzustand enthält.

$\varepsilon$-NEA

Ein $\varepsilon$-NEA erweitert die Übergangsfunktion zu $\delta: Z \times (\Sigma \cup \{\varepsilon\}) \to \mathcal{P}(Z)$. $\varepsilon$-Übergänge werden ausgeführt, ohne ein Eingabesymbol zu lesen. Man definiert den $\varepsilon$-Abschluss $\varepsilon\text{-cl}(q)$ als Menge aller Zustände, die von $q$ aus über null oder mehr $\varepsilon$-Kanten erreichbar sind.

Äquivalenz zu DEAs

Zu jedem NEA $M$ existiert ein DEA $M'$ mit $L(M) = L(M')$. Der Beweis ist konstruktiv über die Potenzmengenkonstruktion. Damit gilt: die von NEAs erkannten Sprachen sind exakt die regulären Sprachen.

2. Kernkonzepte und Vorgehen

Ein Wort schrittweise durchführen

  1. Starte mit der Menge $Q_0 = S$ (bei $\varepsilon$-NEA: $\varepsilon\text{-cl}(S)$). Notiere sie als Wurzel des Baumes.
  2. Für jedes Symbol $a$ des Wortes: bilde die Vereinigung aller $\delta(q, a)$ über $q \in Q_i$. Das ist die neue aktive Menge $Q_{i+1}$.
  3. Bei $\varepsilon$-NEAs schließe nach jedem Schritt den $\varepsilon$-Abschluss an: $Q_{i+1} := \varepsilon\text{-cl}(Q_{i+1})$.
  4. Nach Verarbeitung des kompletten Wortes: prüfe, ob $Q_n \cap E \neq \emptyset$. Falls ja, akzeptiert; falls nein, verwerfen.
  5. Alternativ: zeichne einen Baum, in dem jeder Knoten einen aktuellen Zustand und jede Kante einen möglichen Übergang darstellt. Ein akzeptierender Pfad genügt.

Potenzmengenkonstruktion (NEA $\to$ DEA)

  1. Zustände des DEAs sind Teilmengen von $Z$, also Elemente von $\mathcal{P}(Z)$. Im Worst Case gibt es $2^{|Z|}$ davon.
  2. Startzustand ist $S$ (bzw. $\varepsilon\text{-cl}(S)$).
  3. Übergangsfunktion des DEAs: $\delta'(Q, a) = \bigcup_{q \in Q} \delta(q, a)$. Bei $\varepsilon$-NEAs zusätzlich $\varepsilon$-Abschluss anschließen.
  4. Endzustände sind alle Teilmengen $Q \subseteq Z$ mit $Q \cap E \neq \emptyset$.
  5. In der Praxis konstruiert man nur die vom Startzustand erreichbaren Teilmengen — meist sehr viel weniger als $2^{|Z|}$.

3. Beispiel durchgerechnet

Wir betrachten die Sprache $L = \{\, w \in \{a,b\}^* \mid w \text{ endet auf } ab \,\}$. Ein sehr kompakter NEA hierfür:

z0 z1 z2 a b a,b a,b

Formal: $Z = \{z_0, z_1, z_2\}$, $\Sigma = \{a, b\}$, $S = \{z_0\}$, $E = \{z_2\}$. Übergänge:

$\delta$$a$$b$
$z_0$$\{z_0, z_1\}$$\{z_0\}$
$z_1$$\emptyset$$\{z_2\}$
$z_2$$\emptyset$$\emptyset$

Wir prüfen das Wort $w = abab$ per Mengenverfolgung:

Q0 = {z0}
lies a  →  Q1 = δ(z0,a) = {z0, z1}
lies b  →  Q2 = δ(z0,b) ∪ δ(z1,b) = {z0} ∪ {z2} = {z0, z2}
lies a  →  Q3 = δ(z0,a) ∪ δ(z2,a) = {z0, z1} ∪ ∅ = {z0, z1}
lies b  →  Q4 = δ(z0,b) ∪ δ(z1,b) = {z0} ∪ {z2} = {z0, z2}

Q4 ∩ E = {z0, z2} ∩ {z2} = {z2} ≠ ∅   ⇒   w wird akzeptiert.

Der äquivalente DEA per Potenzmengenkonstruktion hat als erreichbare Zustände genau $\{z_0\}$, $\{z_0, z_1\}$ und $\{z_0, z_2\}$ — also drei Zustände, nicht acht. Endzustände sind alle Teilmengen, die $z_2$ enthalten, hier $\{z_0, z_2\}$.

$\delta'$$a$$b$
$\{z_0\}$$\{z_0, z_1\}$$\{z_0\}$
$\{z_0, z_1\}$$\{z_0, z_1\}$$\{z_0, z_2\}$
$\{z_0, z_2\}$$\{z_0, z_1\}$$\{z_0\}$
Beachte: der Nichtdeterminismus im NEA wird im DEA durch merkende Zustandsmengen ersetzt. Der DEA rät nichts, er trägt alle Möglichkeiten parallel mit.

Rechenaufgaben mit Lösung

Trainiere hier den Klausur-Modus: Aufgabe lesen, selbst probieren, dann Lösung aufklappen und Schritt für Schritt vergleichen. Alle vier Aufgaben bilden zusammen den Kern der klausurrelevanten NEA-Verfahren ab.

Aufgabe 1 — Potenzmengenkonstruktion mittel

Gegeben ist der NEA $M = (Z, \Sigma, \delta, S, E)$ mit $Z = \{z_0, z_1, z_2\}$, $\Sigma = \{a, b\}$, $S = \{z_0\}$, $E = \{z_2\}$ und Übergangstabelle:

$\delta$$a$$b$
$z_0$$\{z_0, z_1\}$$\{z_0\}$
$z_1$$\emptyset$$\{z_2\}$
$z_2$$\{z_2\}$$\{z_2\}$

Konstruieren Sie den äquivalenten DEA $M'$ mittels Potenzmengenkonstruktion. Geben Sie die vollständige Übergangstabelle des DEAs an und markieren Sie die Endzustände.

Lösung anzeigen
Schritt 1: Startzustand des DEAs ist $S' = S = \{z_0\}$. Wir starten die Konstruktion mit dieser Teilmenge und erweitern iterativ.
Schritt 2: Von $\{z_0\}$ aus: $\delta'(\{z_0\}, a) = \delta(z_0, a) = \{z_0, z_1\}$ und $\delta'(\{z_0\}, b) = \delta(z_0, b) = \{z_0\}$. Neue Teilmenge $\{z_0, z_1\}$ hinzugefügt.
Schritt 3: Von $\{z_0, z_1\}$: $\delta'(\{z_0, z_1\}, a) = \delta(z_0, a) \cup \delta(z_1, a) = \{z_0, z_1\} \cup \emptyset = \{z_0, z_1\}$. Und $\delta'(\{z_0, z_1\}, b) = \{z_0\} \cup \{z_2\} = \{z_0, z_2\}$. Neue Teilmenge $\{z_0, z_2\}$.
Schritt 4: Von $\{z_0, z_2\}$: $\delta'(\{z_0, z_2\}, a) = \{z_0, z_1\} \cup \{z_2\} = \{z_0, z_1, z_2\}$. Und $\delta'(\{z_0, z_2\}, b) = \{z_0\} \cup \{z_2\} = \{z_0, z_2\}$. Neue Teilmenge $\{z_0, z_1, z_2\}$.
Schritt 5: Von $\{z_0, z_1, z_2\}$: $\delta'(\{z_0, z_1, z_2\}, a) = \{z_0, z_1\} \cup \emptyset \cup \{z_2\} = \{z_0, z_1, z_2\}$. Und $\delta'(\{z_0, z_1, z_2\}, b) = \{z_0\} \cup \{z_2\} \cup \{z_2\} = \{z_0, z_2\}$. Keine neuen Mengen. Abbruch.
Schritt 6: Endzustände sind alle Teilmengen, die $z_2$ enthalten: $E' = \{\, \{z_0, z_2\},\; \{z_0, z_1, z_2\} \,\}$.
Ergebnis: Der DEA hat 4 erreichbare Zustände (von möglichen $2^3 = 8$). Übergangstabelle mit Endzuständen markiert per $\ast$:
$\delta'$$a$$b$
$\to \{z_0\}$$\{z_0, z_1\}$$\{z_0\}$
$\{z_0, z_1\}$$\{z_0, z_1\}$$\{z_0, z_2\}$
$\ast\,\{z_0, z_2\}$$\{z_0, z_1, z_2\}$$\{z_0, z_2\}$
$\ast\,\{z_0, z_1, z_2\}$$\{z_0, z_1, z_2\}$$\{z_0, z_2\}$
Aufgabe 2 — $\varepsilon$-Elimination mittel

Gegeben ist der $\varepsilon$-NEA $M_\varepsilon$ mit $Z = \{z_0, z_1, z_2, z_3\}$, $\Sigma = \{a, b\}$, $S = \{z_0\}$, $E = \{z_3\}$ und folgenden Übergängen (leere Felder bedeuten $\emptyset$):

$\delta$$a$$b$$\varepsilon$
$z_0$$\{z_0\}$$\emptyset$$\{z_1\}$
$z_1$$\emptyset$$\{z_1\}$$\{z_2\}$
$z_2$$\emptyset$$\emptyset$$\{z_3\}$
$z_3$$\emptyset$$\emptyset$$\emptyset$

(a) Berechnen Sie den $\varepsilon$-Abschluss jedes Zustands. (b) Konstruieren Sie einen äquivalenten NEA $M$ ohne $\varepsilon$-Übergänge.

Lösung anzeigen
Schritt 1: $\varepsilon$-Abschlüsse berechnen. Jeder Zustand liegt in seinem eigenen Abschluss; dann folgen wir $\varepsilon$-Kanten transitiv: $$\varepsilon\text{-cl}(z_0) = \{z_0, z_1, z_2, z_3\}$$ $$\varepsilon\text{-cl}(z_1) = \{z_1, z_2, z_3\}$$ $$\varepsilon\text{-cl}(z_2) = \{z_2, z_3\}$$ $$\varepsilon\text{-cl}(z_3) = \{z_3\}$$
Schritt 2: Neue Übergangsfunktion definieren. Für jeden Zustand $q$ und jedes Symbol $a \in \Sigma$: $$\delta_{\text{neu}}(q, a) = \bigcup_{p \in \varepsilon\text{-cl}(q)} \varepsilon\text{-cl}(\delta(p, a))$$
Schritt 3: $\delta_{\text{neu}}(z_0, a)$: Für $p \in \{z_0, z_1, z_2, z_3\}$ ist nur $\delta(z_0, a) = \{z_0\}$ nicht leer. Also $\varepsilon\text{-cl}(\{z_0\}) = \{z_0, z_1, z_2, z_3\}$.
Schritt 4: $\delta_{\text{neu}}(z_0, b)$: Nur $\delta(z_1, b) = \{z_1\}$ nicht leer. Also $\varepsilon\text{-cl}(\{z_1\}) = \{z_1, z_2, z_3\}$.
Schritt 5: $\delta_{\text{neu}}(z_1, a) = \emptyset$ (kein $p \in \{z_1, z_2, z_3\}$ hat $a$-Übergang). $\delta_{\text{neu}}(z_1, b) = \varepsilon\text{-cl}(\{z_1\}) = \{z_1, z_2, z_3\}$.
Schritt 6: $\delta_{\text{neu}}(z_2, a) = \emptyset$, $\delta_{\text{neu}}(z_2, b) = \emptyset$. Ebenso $\delta_{\text{neu}}(z_3, a) = \delta_{\text{neu}}(z_3, b) = \emptyset$.
Schritt 7: Neue Endzustandsmenge. Ein Zustand $q$ ist Endzustand des NEAs ohne $\varepsilon$ genau dann, wenn $\varepsilon\text{-cl}(q) \cap E \neq \emptyset$. Für $E = \{z_3\}$: $z_0, z_1, z_2, z_3$ enthalten alle $z_3$ in ihrem Abschluss. Also $E_{\text{neu}} = \{z_0, z_1, z_2, z_3\}$.
Ergebnis: Äquivalenter NEA ohne $\varepsilon$: $M = (\{z_0,z_1,z_2,z_3\}, \{a,b\}, \delta_{\text{neu}}, \{z_0\}, \{z_0,z_1,z_2,z_3\})$ mit Tabelle:
$\delta_{\text{neu}}$$a$$b$
$\ast\, \to z_0$$\{z_0, z_1, z_2, z_3\}$$\{z_1, z_2, z_3\}$
$\ast\, z_1$$\emptyset$$\{z_1, z_2, z_3\}$
$\ast\, z_2$$\emptyset$$\emptyset$
$\ast\, z_3$$\emptyset$$\emptyset$
Die akzeptierte Sprache ist $L(M) = a^* \cdot b^*$ (das leere Wort wird ebenfalls akzeptiert, da $z_0 \in E_{\text{neu}}$).
Aufgabe 3 — Akzeptanzprüfung im Berechnungsbaum leicht

Gegeben ist der NEA $M$ mit $Z = \{z_0, z_1, z_2\}$, $\Sigma = \{a, b\}$, $S = \{z_0\}$, $E = \{z_2\}$ und Übergängen:

$\delta$$a$$b$
$z_0$$\{z_0, z_1\}$$\{z_0\}$
$z_1$$\emptyset$$\{z_2\}$
$z_2$$\emptyset$$\emptyset$

Prüfen Sie, ob das Wort $w = aab$ akzeptiert wird. Zeichnen Sie alle Berechnungspfade als Baum und geben Sie an, welche Pfade akzeptierend enden.

Lösung anzeigen
Schritt 1: Startmenge $Q_0 = S = \{z_0\}$. Wurzel des Baumes ist $z_0$.
Schritt 2: Erstes Symbol $a$. Aus $z_0$ folgen zwei mögliche Übergänge: $z_0 \to z_0$ und $z_0 \to z_1$. Der Baum verzweigt sich in zwei Äste. Als Mengenverfolgung: $Q_1 = \{z_0, z_1\}$.
Schritt 3: Zweites Symbol $a$. Vom Ast $z_0$: wieder zwei Verzweigungen zu $z_0$ und $z_1$. Vom Ast $z_1$: $\delta(z_1, a) = \emptyset$, dieser Ast ist eine Sackgasse (verwerft). Als Menge: $Q_2 = \delta(z_0, a) \cup \delta(z_1, a) = \{z_0, z_1\} \cup \emptyset = \{z_0, z_1\}$.
Schritt 4: Drittes Symbol $b$. Vom Ast $z_0$: $\delta(z_0, b) = \{z_0\}$. Vom Ast $z_1$: $\delta(z_1, b) = \{z_2\}$. Als Menge: $Q_3 = \{z_0\} \cup \{z_2\} = \{z_0, z_2\}$.
Schritt 5: Baumdarstellung mit dem einen erfolgreichen Pfad hervorgehoben:
                z0
              /    \
        a:  z0      z1
           /  \       \
     a:  z0   z1   (Sackgasse: δ(z1,a) = ∅)
         |     \
     b:  z0    z2   ← akzeptierender Endzustand
              
Schritt 6: Akzeptanzprüfung: $Q_3 \cap E = \{z_0, z_2\} \cap \{z_2\} = \{z_2\} \neq \emptyset$.
Ergebnis: Das Wort $w = aab$ wird akzeptiert. Der akzeptierende Pfad ist $z_0 \xrightarrow{a} z_0 \xrightarrow{a} z_1 \xrightarrow{b} z_2$. Alle anderen Pfade enden entweder in $z_0$ (kein Endzustand) oder in einer Sackgasse.
Aufgabe 4 — NEA-Konstruktion für Teilwort-Sprache schwer

Konstruieren Sie einen NEA für die Sprache $$L = \{\, w \in \{0, 1\}^* \mid w \text{ enthält das Teilwort } 010 \,\}$$ Geben Sie den NEA vollständig als 5-Tupel $M = (Z, \Sigma, \delta, S, E)$ an und begründen Sie kurz, warum $M$ genau $L$ akzeptiert. Prüfen Sie exemplarisch die Worte $w_1 = 1010$ und $w_2 = 1100$ per Mengenverfolgung.

Lösung anzeigen
Schritt 1: Idee. Ein NEA nutzt Nichtdeterminismus, um zu raten, wo im Wort das Teilwort $010$ beginnt. Wir brauchen vier Zustände: einen Start-/Warte-Zustand, drei zum Erkennen des Musters $0 \to 1 \to 0$, und danach eine Schleife.
Schritt 2: Zustände wählen. $Z = \{z_0, z_1, z_2, z_3\}$ mit folgender Semantik: $z_0$ = warten auf Musterbeginn, $z_1$ = erste $0$ gelesen, $z_2$ = $01$ gelesen, $z_3$ = $010$ gelesen und ab jetzt akzeptierend.
Schritt 3: Übergänge definieren. In $z_0$ erlauben wir beliebige Zeichen als Schleife und raten bei $0$, dass das Muster beginnt (Verzweigung nach $z_1$). Ab $z_3$ ist alles egal.
$\delta$$0$$1$
$\to z_0$$\{z_0, z_1\}$$\{z_0\}$
$z_1$$\emptyset$$\{z_2\}$
$z_2$$\{z_3\}$$\emptyset$
$\ast\, z_3$$\{z_3\}$$\{z_3\}$
Schritt 4: 5-Tupel angeben. $$M = (\{z_0, z_1, z_2, z_3\},\; \{0, 1\},\; \delta,\; \{z_0\},\; \{z_3\})$$ mit $\delta$ wie oben.
Schritt 5: Korrektheitsargument. Ein Pfad landet in $z_3$ genau dann, wenn er irgendwo eine $0$ liest (Übergang $z_0 \to z_1$), gefolgt von $1$ ($z_1 \to z_2$), gefolgt von $0$ ($z_2 \to z_3$). Das entspricht genau dem Teilwort $010$. Vor Musterbeginn kann der Automat beliebig lang in $z_0$ verweilen; nach Musterende hält er in $z_3$. Damit ist $L(M) = L$.
Schritt 6: Prüfung von $w_1 = 1010$ per Mengenverfolgung:
Q0 = {z0}
lies 1  →  Q1 = δ(z0,1) = {z0}
lies 0  →  Q2 = δ(z0,0) = {z0, z1}
lies 1  →  Q3 = δ(z0,1) ∪ δ(z1,1) = {z0} ∪ {z2} = {z0, z2}
lies 0  →  Q4 = δ(z0,0) ∪ δ(z2,0) = {z0, z1} ∪ {z3} = {z0, z1, z3}

Q4 ∩ E = {z0, z1, z3} ∩ {z3} = {z3} ≠ ∅   ⇒   w1 akzeptiert.
Schritt 7: Prüfung von $w_2 = 1100$:
Q0 = {z0}
lies 1  →  Q1 = {z0}
lies 1  →  Q2 = {z0}
lies 0  →  Q3 = {z0, z1}
lies 0  →  Q4 = δ(z0,0) ∪ δ(z1,0) = {z0, z1} ∪ ∅ = {z0, z1}

Q4 ∩ E = {z0, z1} ∩ {z3} = ∅   ⇒   w2 wird verworfen.
Ergebnis: Der NEA $M = (\{z_0, z_1, z_2, z_3\}, \{0, 1\}, \delta, \{z_0\}, \{z_3\})$ akzeptiert exakt die Sprache aller Wörter über $\{0,1\}$, die das Teilwort $010$ enthalten. $w_1 = 1010$ enthält es (Position 2-4), $w_2 = 1100$ enthält es nicht — die Automatenprüfung bestätigt beides.

4. Typische Klausurfragen (Lesen!)

Aufgabentyp A — Wort schrittweise durchführen

Ein NEA wird als Zustandsdiagramm oder Übergangstabelle gegeben, ein Wort ist zu prüfen. Verlangt ist ein Berechnungsbaum oder eine Mengenverfolgung. Falle: nicht nur einen Pfad zeichnen und dann behaupten, es sei nicht akzeptiert — Nichtdeterminismus verlangt, dass alle Möglichkeiten mitgeführt werden.

Aufgabentyp B — Sprache eines NEAs bestimmen

Gegeben ist ein NEA, gefragt ist $L(M)$ in beschreibender oder regulärer Form. Man liest die Struktur des Automaten und identifiziert das Muster, das zum Endzustand führen muss. Falle: $\varepsilon$-Kanten übersehen oder mehrere Startzustände ignorieren.

Aufgabentyp C — Potenzmengenkonstruktion durchführen

Gegeben ist ein NEA, gefragt ist der äquivalente DEA. Nur die vom Startzustand tatsächlich erreichbaren Teilmengen aufzeichnen. Falle: alle $2^{|Z|}$ Teilmengen enumerieren — das ist meist unnötig und oft falsch, weil viele Teilmengen unerreichbar sind.

Aufgabentyp D — Argumentieren, warum NEAs nicht mächtiger sind

Gefragt: Zeige, dass zu jedem NEA ein sprachäquivalenter DEA existiert. Antwort: Skizze der Potenzmengenkonstruktion mit dem Argument, dass $\delta'(Q, a) = \bigcup_{q \in Q} \delta(q, a)$ deterministisch ist und $L(M) = L(M')$ per Induktion über die Wortlänge folgt.

5. Fragen zum Selbsttest

Wodurch unterscheidet sich ein NEA formal von einem DEA?

In der Signatur der Übergangsfunktion. Ein DEA hat $\delta: Z \times \Sigma \to Z$, ein NEA hat $\delta: Z \times \Sigma \to \mathcal{P}(Z)$. Zusätzlich darf ein NEA mehrere Startzustände besitzen, ein DEA genau einen. Ein DEA ist damit ein Spezialfall eines NEA, bei dem $|\delta(q, a)| \leq 1$ für alle $q$ und $a$.

Wann akzeptiert ein NEA ein Wort?

Ein NEA akzeptiert das Wort $w$, sobald es mindestens einen Berechnungspfad gibt, der in einem Endzustand endet. Formal: $\delta^*(S, w) \cap E \neq \emptyset$. Es reicht ein einziger erfolgreicher Pfad; die Existenz mehrerer verwerfender Pfade schadet nichts.

Erklären Sie den Unterschied zwischen einem NEA und einem $\varepsilon$-NEA.

Ein $\varepsilon$-NEA erlaubt zusätzlich spontane Übergänge ohne Eingabesymbol. Die Übergangsfunktion hat dann Signatur $\delta: Z \times (\Sigma \cup \{\varepsilon\}) \to \mathcal{P}(Z)$. $\varepsilon$-NEAs erkennen dieselbe Sprachklasse wie NEAs und DEAs; sie sind lediglich notationell bequemer, etwa beim Konstruieren aus regulären Ausdrücken.

Warum ist die Potenzmengenkonstruktion im Worst Case exponentiell?

Weil die Zustände des DEAs Teilmengen der Zustände des NEAs sind. Ein NEA mit $n$ Zuständen kann bis zu $2^n$ DEA-Zustände erzwingen. Es gibt konkrete Sprachfamilien, bei denen dieser exponentielle Anstieg auch tatsächlich unumgänglich ist; in der Praxis sind aber meist nur wenige Teilmengen erreichbar.

Welche der folgenden Automaten akzeptiert das Wort $ab$: ein NEA, in dem $\delta(z_0, a) = \{z_0, z_1\}$ und $\delta(z_1, b) = \{z_2\}$ mit $E = \{z_2\}$?

Ja. Nach Lesen von $a$ ist die aktive Menge $\{z_0, z_1\}$. Nach Lesen von $b$ ist $\delta(z_0, b) \cup \delta(z_1, b) = \emptyset \cup \{z_2\} = \{z_2\}$. Da $z_2 \in E$, wird $ab$ akzeptiert.

Warum reicht es nicht, im Berechnungsbaum nur einen einzigen Pfad zu zeichnen?

Weil das Wort schon akzeptiert wird, sobald irgendein Pfad in einem Endzustand endet. Wer nur einen Pfad zeichnet, kann fälschlich zu dem Schluss kommen, das Wort werde abgelehnt, obwohl ein paralleler Pfad erfolgreich gewesen wäre. Deshalb entweder alle Pfade als Baum aufzeichnen oder die Mengenverfolgung $\delta^*$ verwenden.

Zeigen Sie, dass zu jedem NEA ein sprachäquivalenter DEA existiert.

Konstruktion: setze $Z' = \mathcal{P}(Z)$, $\delta'(Q, a) = \bigcup_{q \in Q} \delta(q, a)$, $S' = S$, $E' = \{\, Q \subseteq Z \mid Q \cap E \neq \emptyset \,\}$. Per Induktion über die Wortlänge zeigt man $\delta'^*(S, w) = \delta^*(S, w)$ für alle $w$. Damit gilt $w \in L(M) \Leftrightarrow \delta^*(S, w) \cap E \neq \emptyset \Leftrightarrow \delta'^*(S, w) \in E' \Leftrightarrow w \in L(M')$. Der so konstruierte DEA $M'$ ist sprachäquivalent zu $M$.

Welche Sprachklasse wird von NEAs erkannt?

Exakt die regulären Sprachen. NEAs, DEAs und $\varepsilon$-NEAs sind bezüglich der von ihnen erkennbaren Sprachen gleich mächtig. Der Unterschied liegt nur in der Zustandszahl und in der Ausdrucksbequemlichkeit beim Konstruieren.

Gibt es Sprachen, für die NEAs deutlich kleiner sind als äquivalente DEAs?

Ja. Ein klassisches Beispiel ist $L_n = \{\, w \in \{a, b\}^* \mid \text{das } n\text{-t letzte Zeichen ist } a \,\}$. Ein NEA benötigt hier $n+1$ Zustände, ein äquivalenter DEA hingegen mindestens $2^n$, weil er sich die letzten $n$ Zeichen merken muss. Dieser Größenunterschied ist der Grund, weshalb NEAs eingeführt werden, obwohl sie nichts Neues erkennen.

Wie unterscheidet man in einer Übergangstabelle einen NEA von einem DEA?

Ein DEA hat in jeder Zelle genau einen Folgezustand und ist für alle Paare aus $Z \times \Sigma$ definiert. Ein NEA erlaubt in einer Zelle Mengen mit null, einem oder mehreren Folgezuständen. Ein leerer Eintrag $\emptyset$ ist für NEAs zulässig; für DEAs bedeutet er einen Fehler oder einen impliziten Fangzustand. Sobald irgendwo mehr als ein Folgezustand steht, handelt es sich um einen NEA.

6. Dos und Donts in der Klausur

Dos

  • Startmenge $S$ mit $\varepsilon$-Abschluss initialisieren, falls $\varepsilon$-Kanten vorhanden sind.
  • Bei Wortverfolgung immer die komplette aktive Menge notieren, nicht nur einen Pfad.
  • Bei der Potenzmengenkonstruktion nur die erreichbaren Teilmengen aufzeichnen.
  • Endzustandsbedingung explizit schreiben: $Q_n \cap E \neq \emptyset$.
  • Bei Argumentationen die Signaturen von $\delta$ und $\delta^*$ sauber verwenden.

Donts

  • Nicht alle $2^{|Z|}$ Teilmengen enumerieren, wenn nur wenige erreichbar sind.
  • Nicht behaupten, ein Wort werde abgelehnt, nur weil ein Pfad im Sackgassenzustand endet.
  • Nicht $\varepsilon$-Übergänge vergessen, wenn der Automat ein $\varepsilon$-NEA ist.
  • Nicht NEA und DEA vermischen: ein DEA darf pro Zelle nur einen Zustand haben.
  • Nicht behaupten, NEAs seien mächtiger als DEAs. Sie sind gleich mächtig, nur kompakter.
← Dashboard Verwandt: DEA, reguläre Sprachen, reguläre Ausdrücke, Pumping-Lemma