Klausur = Lesen UND Rechnen · Relevanz hoch

DFA / DEA — Deterministische endliche Automaten

Wie man einen DFA formal beschreibt, sein Diagramm liest und entscheidet, ob ein Wort akzeptiert wird. Diese Seite enthält jetzt auch durchgerechnete Rechenaufgaben.

TL;DR

Definitionen & Formalismen

Deterministischer endlicher Automat

Ein DFA (auch DEA) ist ein 5-Tupel

$$M = (Z, \Sigma, \delta, z_0, E)$$

Die Zusätze total und deterministisch sind der Kern: für jedes $(z, a) \in Z \times \Sigma$ existiert genau ein $\delta(z, a) \in Z$. Kein Übergang fehlt, keiner ist doppelt.

Erweiterte Übergangsfunktion

Rekursive Fortsetzung $\hat{\delta}: Z \times \Sigma^* \to Z$ auf Wörter:

$$\hat{\delta}(z, \varepsilon) = z \qquad \hat{\delta}(z, w \cdot a) = \delta\bigl(\hat{\delta}(z, w),\, a\bigr)$$

Damit wird der Endzustand nach Verarbeitung eines ganzen Wortes eindeutig definiert.

Konfiguration und Übergangsrelation

Eine Konfiguration ist ein Paar $(z, w) \in Z \times \Sigma^*$: aktueller Zustand plus noch zu lesender Restinput.

Die Übergangsrelation $\vdash$ ist definiert durch $(z, a \cdot w) \vdash (\delta(z, a),\, w)$. Der reflexiv-transitive Abschluss $\vdash^*$ beschreibt eine ganze Rechnung.

Akzeptierte Sprache

$$L(M) = \{\, w \in \Sigma^* \mid \hat{\delta}(z_0, w) \in E \,\}$$

Alternativ per Konfiguration: $L(M) = \{\, w \in \Sigma^* \mid (z_0, w) \vdash^* (z_f, \varepsilon),\; z_f \in E \,\}$. Beide Formulierungen sind äquivalent.

Reguläre Sprache

Eine Sprache $L \subseteq \Sigma^*$ heißt regulär, wenn es einen DFA $M$ gibt mit $L = L(M)$.

Äquivalent: $L$ lässt sich durch einen NFA, einen $\varepsilon$-NFA oder einen regulären Ausdruck beschreiben. Alle vier Modelle beschreiben dieselbe Klasse.

Kernkonzepte und Vorgehen

  1. Alphabet und Zustandsmenge identifizieren. Ohne $\Sigma$ ist keine Aussage über Totalität möglich. Ein häufiger Klausurfehler: einen Übergang für ein Symbol vergessen und dann behaupten, es sei ein DFA.
  2. Startzustand markieren. Im Diagramm durch einen Pfeil aus dem Nichts, in der Tabelle meist durch Pfeil oder Fettdruck. Ohne Startzustand keine Rechnung.
  3. Endzustände markieren. Im Diagramm doppelter Kreis, in der Tabelle durch $*$ oder Extraspalte.
  4. Übergangsfunktion prüfen. Für jedes Paar $(z, a)$ genau einen Zielzustand. Fehlt einer, ist es kein DFA, sondern höchstens ein NFA.
  5. Wortakzeptanz entscheiden. Starte in $z_0$, verfolge das Wort symbolweise, notiere jede Konfiguration. Am Ende prüfen, ob der Zustand in $E$ liegt.
  6. Sprache beschreiben. Die Frage nach $L(M)$ beantwortet man, indem man die Struktur der Endzustände deutet: welche Muster im Eingabewort führen dorthin?

Beispiel — DFA für gerade Anzahl an Einsen

Aufgabe

Konstruiere einen DFA $M$ über $\Sigma = \{0, 1\}$, der genau die Wörter mit gerader Anzahl an Einsen akzeptiert. Zeige anschließend, ob $w_1 = 10110$ und $w_2 = 1011$ in $L(M)$ liegen.

Konstruktion

Wir merken uns die Parität der bisher gelesenen Einsen. Zwei Zustände reichen:

Formal: $M = (\{z_0, z_1\}, \{0,1\}, \delta, z_0, \{z_0\})$ mit

$\delta$$0$$1$
$\to *\, z_0$$z_0$$z_1$
$z_1$$z_1$$z_0$

Zustandsdiagramm

z₀ z₁ 1 1 0 0

Rechnung für $w_1 = 10110$

$$(z_0, 10110) \vdash (z_1, 0110) \vdash (z_1, 110) \vdash (z_0, 10) \vdash (z_1, 0) \vdash (z_1, \varepsilon)$$

Endzustand $z_1 \notin E$, also $w_1 \notin L(M)$. Kontrolle: das Wort enthält drei Einsen, also ungerade viele. Passt.

Rechnung für $w_2 = 1011$

$$(z_0, 1011) \vdash (z_1, 011) \vdash (z_1, 11) \vdash (z_0, 1) \vdash (z_1, \varepsilon)$$

Auch hier $z_1 \notin E$, also $w_2 \notin L(M)$. Drei Einsen, wieder ungerade. Konsistent.

Sprache

$L(M) = \{\, w \in \{0,1\}^* \mid \text{die Anzahl der Einsen in } w \text{ ist gerade} \,\}$. Das leere Wort $\varepsilon$ hat null Einsen und null ist gerade, also $\varepsilon \in L(M)$. Wir erreichen von $z_0$ mit $\varepsilon$ genau $z_0 \in E$.

Rechenaufgaben mit Lösung

Trainiere hier den Klausur-Modus: Aufgabe lesen, selbst probieren, dann Lösung aufklappen und Schritt für Schritt vergleichen.

Aufgabe 1 — Wortakzeptanz via Konfigurationsfolge leicht

Gegeben sei der DFA $M = (\{z_0, z_1, z_2\}, \{a, b\}, \delta, z_0, \{z_2\})$ mit der folgenden Übergangstabelle:

$\delta$$a$$b$
$\to z_0$$z_1$$z_0$
$z_1$$z_1$$z_2$
$* z_2$$z_1$$z_0$

Entscheide, ob die Wörter $w_1 = aab$ und $w_2 = abba$ in $L(M)$ liegen. Notiere die vollständige Konfigurationsfolge $(z, w) \vdash \dots \vdash (z_f, \varepsilon)$ und begründe die Zugehörigkeit.

Lösung anzeigen
Schritt 1: Startkonfiguration für $w_1 = aab$ ist $(z_0, aab)$. Wir lesen symbolweise mit $\delta$.
Schritt 2: Konfigurationsfolge für $w_1$: $$(z_0, aab) \vdash (z_1, ab) \vdash (z_1, b) \vdash (z_2, \varepsilon)$$ Der letzte Zustand ist $z_2 \in E$.
Schritt 3: Startkonfiguration für $w_2 = abba$ ist $(z_0, abba)$.
Schritt 4: Konfigurationsfolge für $w_2$: $$(z_0, abba) \vdash (z_1, bba) \vdash (z_2, ba) \vdash (z_0, a) \vdash (z_1, \varepsilon)$$ Der letzte Zustand ist $z_1 \notin E$.
Ergebnis: $w_1 = aab \in L(M)$, da $\hat{\delta}(z_0, aab) = z_2 \in E$. $w_2 = abba \notin L(M)$, da $\hat{\delta}(z_0, abba) = z_1 \notin E$.
Aufgabe 2 — DFA konstruieren: Wörter, die auf $01$ enden mittel

Konstruiere einen DFA $M$ über $\Sigma = \{0, 1\}$ mit $$L(M) = \{\, w \in \{0,1\}^* \mid w \text{ endet auf } 01 \,\}.$$ Gib das 5-Tupel $M = (Z, \Sigma, \delta, z_0, E)$ sowie die vollständige Übergangstabelle an. Begründe kurz, welche Bedeutung die Zustände tragen.

Lösung anzeigen
Schritt 1: Wir brauchen ein endliches Suffix-Gedächtnis der letzten beiden gelesenen Symbole, denn nur das entscheidet, ob $w$ auf $01$ endet. Drei Zustände genügen:
  • $q_0$ — bisher gelesenes Suffix passt nicht zu einem Präfix von $01$ (Startzustand, letztes Symbol war $1$ oder Wort ist leer)
  • $q_1$ — das letzte gelesene Symbol war $0$ (mittendrin im Muster)
  • $q_2$ — die letzten beiden gelesenen Symbole waren $01$ (Endzustand)
Schritt 2: Übergänge ableiten. Nach $q_0$ und Lesen von $0$ steht das letzte Symbol auf $0$: also $\delta(q_0, 0) = q_1$. Nach $q_0$ und $1$ bleibt es „nicht passend": $\delta(q_0, 1) = q_0$. Nach $q_1$ und $1$ haben wir $01$ am Ende: $\delta(q_1, 1) = q_2$. Nach $q_1$ und $0$ bleibt das letzte Symbol $0$: $\delta(q_1, 0) = q_1$. Nach $q_2$ und $0$ ist das letzte Symbol wieder $0$: $\delta(q_2, 0) = q_1$. Nach $q_2$ und $1$ endet das Wort auf $\ldots 11$: $\delta(q_2, 1) = q_0$.
Schritt 3: Übergangstabelle:
$\delta$$0$$1$
$\to q_0$$q_1$$q_0$
$q_1$$q_1$$q_2$
$* q_2$$q_1$$q_0$
Schritt 4: Totalität prüfen: jede Zelle der Tabelle ist ausgefüllt, keine Zeile fehlt, keine hat mehr als einen Zielzustand. $\delta$ ist total und deterministisch.
Schritt 5: Testwörter zur Kontrolle. $w = 101$: $(q_0, 101) \vdash (q_0, 01) \vdash (q_1, 1) \vdash (q_2, \varepsilon)$. Angenommen: $q_2 \in E$, akzeptiert. $w = 010$: $(q_0, 010) \vdash (q_1, 10) \vdash (q_2, 0) \vdash (q_1, \varepsilon)$. Nicht in $E$, korrekt abgelehnt.
Ergebnis: $M = (\{q_0, q_1, q_2\},\, \{0, 1\},\, \delta,\, q_0,\, \{q_2\})$ mit $\delta$ wie in der Tabelle akzeptiert genau die Sprache aller Wörter über $\{0,1\}$, die auf $01$ enden.
Aufgabe 3 — Minimierung per Partitionsverfeinerung schwer

Gegeben sei der DFA $M = (\{A, B, C, D, E\}, \{0, 1\}, \delta, A, \{D, E\})$ mit folgender Übergangstabelle:

$\delta$$0$$1$
$\to A$$B$$C$
$B$$A$$D$
$C$$E$$A$
$* D$$E$$D$
$* E$$D$$E$

Führe den Minimierungsalgorithmus per Partitionsverfeinerung aus und gib den minimierten DFA an. Kein Zustand ist unerreichbar.

Lösung anzeigen
Schritt 1: Anfangspartition — trenne Endzustände von Nichtendzuständen: $$P_0 = \{\, \{A, B, C\},\, \{D, E\} \,\}$$ Wir schreiben $[A] = 1$, $[B] = 1$, $[C] = 1$, $[D] = 2$, $[E] = 2$.
Schritt 2: Verfeinerung. Für jeden Zustand bilde den Signaturvektor $(\,[\delta(z, 0)],\, [\delta(z, 1)]\,)$ bezüglich der aktuellen Partition:
$z$Klasse$[\delta(z,0)]$$[\delta(z,1)]$Signatur
$A$$1$$1$ (B)$1$ (C)$(1,1)$
$B$$1$$1$ (A)$2$ (D)$(1,2)$
$C$$1$$2$ (E)$1$ (A)$(2,1)$
$D$$2$$2$ (E)$2$ (D)$(2,2)$
$E$$2$$2$ (D)$2$ (E)$(2,2)$
In Klasse $1$ treten drei verschiedene Signaturen auf: $(1,1)$ für $A$, $(1,2)$ für $B$, $(2,1)$ für $C$. Also spaltet Klasse $1$ in drei einzelne Klassen. In Klasse $2$ haben $D$ und $E$ dieselbe Signatur $(2,2)$, sie bleiben zusammen.
Schritt 3: Neue Partition: $$P_1 = \{\, \{A\},\, \{B\},\, \{C\},\, \{D, E\} \,\}$$
Schritt 4: Weitere Runde. Wir prüfen, ob sich $\{D, E\}$ noch trennt. Neue Klassen-IDs: $[A] = 1$, $[B] = 2$, $[C] = 3$, $[D] = [E] = 4$. Signaturen: $D \to (\,[E],\,[D]\,) = (4, 4)$, $E \to (\,[D],\,[E]\,) = (4, 4)$. Identisch, keine weitere Spaltung. $$P_2 = P_1$$ Fixpunkt erreicht.
Schritt 5: Minimierter DFA hat 4 Zustände. Wir benennen die Klasse $\{D, E\}$ zu $F$. Übergangstabelle:
$\delta_{\min}$$0$$1$
$\to A$$B$$C$
$B$$A$$F$
$C$$F$$A$
$* F$$F$$F$
Denn $\delta(D, 0) = E \in F$, $\delta(D, 1) = D \in F$, $\delta(E, 0) = D \in F$, $\delta(E, 1) = E \in F$. In der Quotientenkonstruktion liefern beide dasselbe Ziel $F$.
Ergebnis: Der minimierte DFA ist $$M_{\min} = (\{A, B, C, F\},\, \{0, 1\},\, \delta_{\min},\, A,\, \{F\})$$ mit $\delta_{\min}$ wie oben. Von 5 auf 4 Zustände reduziert; $D$ und $E$ waren äquivalent.
Aufgabe 4 — Produkt-DFA für $L(M_1) \cap L(M_2)$ mittel

Gegeben seien zwei DFAs über $\Sigma = \{0, 1\}$:

$M_1 = (\{p_0, p_1\}, \Sigma, \delta_1, p_0, \{p_0\})$ akzeptiert Wörter mit gerader Anzahl an Einsen:

$\delta_1$$0$$1$
$\to * p_0$$p_0$$p_1$
$p_1$$p_1$$p_0$

$M_2 = (\{q_0, q_1\}, \Sigma, \delta_2, q_0, \{q_1\})$ akzeptiert Wörter, die auf $1$ enden:

$\delta_2$$0$$1$
$\to q_0$$q_0$$q_1$
$* q_1$$q_0$$q_1$

Konstruiere den Produkt-DFA $M = M_1 \times M_2$ für $L(M) = L(M_1) \cap L(M_2)$. Prüfe anschließend, ob $w = 1101$ akzeptiert wird.

Lösung anzeigen
Schritt 1: Zustandsmenge $Z = Z_1 \times Z_2 = \{(p_0, q_0),\, (p_0, q_1),\, (p_1, q_0),\, (p_1, q_1)\}$. Wir kürzen $s_{ij} := (p_i, q_j)$.
Schritt 2: Startzustand $s_{00} = (p_0, q_0)$. Endzustände für den Schnitt: $E = E_1 \times E_2 = \{p_0\} \times \{q_1\} = \{(p_0, q_1)\} = \{s_{01}\}$.
Schritt 3: Übergangsfunktion komponentenweise, $\delta((p, q), a) = (\delta_1(p, a),\, \delta_2(q, a))$:
$\delta$$0$$1$
$\to s_{00}$$(p_0, q_0) = s_{00}$$(p_1, q_1) = s_{11}$
$* s_{01}$$(p_0, q_0) = s_{00}$$(p_1, q_1) = s_{11}$
$s_{10}$$(p_1, q_0) = s_{10}$$(p_0, q_1) = s_{01}$
$s_{11}$$(p_1, q_0) = s_{10}$$(p_0, q_1) = s_{01}$
Schritt 4: Test $w = 1101$ im Produkt-DFA: $$(s_{00}, 1101) \vdash (s_{11}, 101) \vdash (s_{01}, 01) \vdash (s_{00}, 1) \vdash (s_{11}, \varepsilon)$$ Der erreichte Zustand $s_{11} = (p_1, q_1)$ liegt nicht in $E = \{s_{01}\}$, also $w \notin L(M)$.
Schritt 5: Kontrolle über die Einzelsprachen. $w = 1101$ enthält drei Einsen (ungerade), also $w \notin L(M_1)$. Damit kann $w$ nicht im Schnitt liegen, egal ob $M_2$ akzeptiert. Konsistent mit dem Ergebnis.
Ergebnis: Der Produkt-DFA $$M = (\{s_{00}, s_{01}, s_{10}, s_{11}\},\, \{0, 1\},\, \delta,\, s_{00},\, \{s_{01}\})$$ akzeptiert genau die Wörter mit gerader Anzahl an Einsen, die auf $1$ enden — das entspricht einer geraden Zahl vor der letzten $1$, also ist die Gesamtanzahl der Einsen ungerade? Kurzer Sanity-Check: $\varepsilon$ hat 0 Einsen (gerade) und endet nicht auf $1$, wird korrekt abgelehnt. $w = 01$ hat 1 Einse (ungerade), wird korrekt abgelehnt. $w = 11$ hat 2 Einsen (gerade), endet auf $1$: Lauf $(s_{00}, 11) \vdash (s_{11}, 1) \vdash (s_{01}, \varepsilon)$, wird akzeptiert. Passt. $w = 1101 \notin L(M)$.
Aufgabe 5 — Komplement-DFA leicht

Gegeben sei der (totale) DFA $M = (\{r_0, r_1, r_2\}, \{a, b\}, \delta, r_0, \{r_2\})$ mit

$\delta$$a$$b$
$\to r_0$$r_1$$r_0$
$r_1$$r_1$$r_2$
$* r_2$$r_2$$r_2$

$M$ akzeptiert die Sprache aller Wörter, die das Teilwort $ab$ enthalten. Konstruiere einen DFA $\overline{M}$ mit $L(\overline{M}) = \Sigma^* \setminus L(M)$ und prüfe die Wörter $u = aaa$ und $v = aba$.

Lösung anzeigen
Schritt 1: Totalität prüfen. Jede Zeile der Tabelle hat genau einen Eintrag für $a$ und einen für $b$. $\delta$ ist total, das ist Voraussetzung fürs Endzustands-Vertauschen.
Schritt 2: Komplement-DFA nach Konstruktion: gleiche $Z, \Sigma, \delta, z_0$, aber Endzustände vertauscht. $$\overline{M} = (\{r_0, r_1, r_2\},\, \{a, b\},\, \delta,\, r_0,\, Z \setminus \{r_2\}) = (\ldots,\, \{r_0, r_1\})$$ Übergangstabelle bleibt dieselbe, nur Markierung der Endzustände ändert sich:
$\delta$$a$$b$
$\to * r_0$$r_1$$r_0$
$* r_1$$r_1$$r_2$
$r_2$$r_2$$r_2$
Schritt 3: Test $u = aaa$ in $\overline{M}$: $$(r_0, aaa) \vdash (r_1, aa) \vdash (r_1, a) \vdash (r_1, \varepsilon)$$ $r_1 \in \overline{E} = \{r_0, r_1\}$, also $u \in L(\overline{M})$. Kontrolle: $u = aaa$ enthält kein $ab$, ist also nicht in $L(M)$, folglich im Komplement. Passt.
Schritt 4: Test $v = aba$ in $\overline{M}$: $$(r_0, aba) \vdash (r_1, ba) \vdash (r_2, a) \vdash (r_2, \varepsilon)$$ $r_2 \notin \overline{E}$, also $v \notin L(\overline{M})$. Kontrolle: $v$ enthält $ab$ als Präfix, also $v \in L(M)$, folglich nicht im Komplement. Passt.
Ergebnis: $\overline{M} = (\{r_0, r_1, r_2\},\, \{a, b\},\, \delta,\, r_0,\, \{r_0, r_1\})$ akzeptiert $\Sigma^* \setminus L(M) = \{\, w \in \{a,b\}^* \mid w \text{ enthält kein Teilwort } ab \,\}$. Für die Testwörter gilt $u = aaa \in L(\overline{M})$ und $v = aba \notin L(\overline{M})$.
Aufgabe 6 — Totalisierung eines unvollständigen DFA mittel

Gegeben sei eine unvollständige Übergangstabelle über $\Sigma = \{0, 1\}$:

$\delta$$0$$1$
$\to s_0$$s_1$
$s_1$$s_2$
$* s_2$$s_2$$s_2$

Die mit $-$ markierten Übergänge sind nicht definiert. Ergänze die Konstruktion zu einem totalen DFA $M'$ mit $L(M') = L(M)$, wobei $M$ der ursprüngliche unvollständige Automat ist. Prüfe abschließend $w = 001$.

Lösung anzeigen
Schritt 1: Wir führen einen Fangzustand (Trap-State) $s_f$ ein. Er wird niemals verlassen und ist kein Endzustand, sodass alle Wörter, die ihn erreichen, verworfen werden. $$Z' = Z \cup \{s_f\} = \{s_0, s_1, s_2, s_f\}$$
Schritt 2: Fehlende Einträge auf $s_f$ umleiten, für $s_f$ selbst Selbstschleifen ergänzen:
$\delta'$$0$$1$
$\to s_0$$s_1$$s_f$
$s_1$$s_f$$s_2$
$* s_2$$s_2$$s_2$
$s_f$$s_f$$s_f$
Formal: $$M' = (\{s_0, s_1, s_2, s_f\},\, \{0, 1\},\, \delta',\, s_0,\, \{s_2\})$$
Schritt 3: Warum $L(M) = L(M')$: ein Wort wird in $M'$ genau dann akzeptiert, wenn kein Übergang über $s_f$ läuft und in $M$ ein Endzustand erreicht wird. Übergänge über $s_f$ waren in $M$ genau die undefinierten — dort wäre die Rechnung ohnehin abgebrochen und das Wort abgelehnt worden. Also ändert sich die akzeptierte Sprache nicht.
Schritt 4: Test $w = 001$ in $M'$: $$(s_0, 001) \vdash (s_1, 01) \vdash (s_f, 1) \vdash (s_f, \varepsilon)$$ $s_f \notin E$, also $w \notin L(M')$. Vergleich zu $M$: nach $(s_0, 001) \vdash (s_1, 01)$ würde in $M$ auf Eingabe $0$ im Zustand $s_1$ die Rechnung stecken bleiben, Wort abgelehnt. Konsistent.
Ergebnis: $M'$ wie oben ist ein totaler DFA mit derselben Sprache wie $M$. Der Fangzustand $s_f$ übernimmt alle vorher undefinierten Fälle. $w = 001 \notin L(M')$.
Aufgabe 7 — Sprache aus DFA ablesen mittel

Gegeben sei der DFA $M = (\{t_0, t_1, t_2\}, \{a, b\}, \delta, t_0, \{t_0\})$ mit

$\delta$$a$$b$
$\to * t_0$$t_1$$t_2$
$t_1$$t_2$$t_0$
$t_2$$t_0$$t_1$

Bestimme $L(M)$ in geschlossener Form. Prüfe zur Kontrolle die Wörter $\varepsilon$, $ab$, $abb$, $aaa$.

Lösung anzeigen
Schritt 1: Struktur analysieren. Weise jedem Zustand eine Zahl modulo 3 zu: $[t_i] = i$. Übergänge werten wir aus: $\delta(t_0, a) = t_1$: $0 \to 1$, Differenz $+1$. $\delta(t_1, a) = t_2$: $1 \to 2$, $+1$. $\delta(t_2, a) = t_0$: $2 \to 0$, $+1 \bmod 3$. Also: $a$ bewirkt $+1 \bmod 3$. $\delta(t_0, b) = t_2$: $0 \to 2$, $+2$. $\delta(t_1, b) = t_0$: $1 \to 0$, $+2 \bmod 3$. $\delta(t_2, b) = t_1$: $2 \to 1$, $+2 \bmod 3$. Also: $b$ bewirkt $+2 \bmod 3$.
Schritt 2: Nach Lesen von $w$ mit $|w|_a$ Vorkommen von $a$ und $|w|_b$ Vorkommen von $b$ befindet man sich in $$\hat{\delta}(t_0, w) = t_{\,(|w|_a + 2 \cdot |w|_b) \bmod 3}$$
Schritt 3: Endzustand ist $t_0$, akzeptiert wird also $$L(M) = \{\, w \in \{a, b\}^* \mid |w|_a + 2 \cdot |w|_b \equiv 0 \pmod{3} \,\}.$$ Da $-1 \equiv 2 \pmod 3$, ist $|w|_a + 2|w|_b \equiv |w|_a - |w|_b \pmod 3$. Kompaktere Form: $$L(M) = \{\, w \in \{a, b\}^* \mid |w|_a - |w|_b \equiv 0 \pmod{3} \,\}.$$
Schritt 4: Kontrolle. $\varepsilon$: $0 - 0 = 0 \equiv 0$, akzeptiert. Lauf: $(t_0, \varepsilon)$, endet in $t_0 \in E$. Passt. $ab$: $|w|_a - |w|_b = 1 - 1 = 0$, akzeptiert. Lauf: $(t_0, ab) \vdash (t_1, b) \vdash (t_0, \varepsilon)$. Passt. $abb$: $1 - 2 = -1 \equiv 2$, abgelehnt. Lauf: $(t_0, abb) \vdash (t_1, bb) \vdash (t_0, b) \vdash (t_2, \varepsilon)$. $t_2 \notin E$. Passt. $aaa$: $3 - 0 = 3 \equiv 0$, akzeptiert. Lauf: $(t_0, aaa) \vdash (t_1, aa) \vdash (t_2, a) \vdash (t_0, \varepsilon)$. Passt.
Ergebnis: $L(M) = \{\, w \in \{a, b\}^* \mid |w|_a - |w|_b \equiv 0 \pmod{3} \,\}$. Insbesondere $\varepsilon, ab, aaa \in L(M)$ und $abb \notin L(M)$.

Typische Klausurfragen (Lesen!)

Typ A — Wort akzeptieren?

Gegeben ist ein Zustandsdiagramm und ein Wort $w$. Gefragt: Ist $w \in L(M)$? Vorgehen: Konfigurationsfolge komplett notieren, nicht nur im Kopf machen. Falle: Endzustand nicht doppelt geprüft, oder der letzte gelesene Zustand mit dem letzten Symbol verwechselt.

Typ B — Sprache beschreiben

Aus dem Diagramm die Sprache in Wortform ableiten. Vorgehen: welche Zustände sind Endzustände, welche Muster führen dorthin? Häufige Beschreibungsformen: über Parität, über Präfix/Suffix, über Vorkommen bestimmter Teilwörter. Falle: das leere Wort vergessen.

Typ C — Automat als 5-Tupel notieren

Aus dem Diagramm die formale Definition rekonstruieren. Vorgehen: $Z$, $\Sigma$, $z_0$, $E$ ablesen, danach Übergangstabelle Zeile für Zeile. Falle: $\delta$ nicht als Tabelle notieren, sondern nur als Fließtext — dann fehlt oft ein Fall.

Typ D — Ist das ein DFA?

Manchmal wird ein Automat gezeigt, in dem ein Übergang fehlt oder doppelt vorkommt. Vorgehen: für jedes $(z, a)$ genau einen Übergang prüfen. Falle: einen fehlenden Übergang übersehen und behaupten, es sei ein DFA. Es ist dann höchstens ein NFA oder ein unvollständiger DFA.

Typ E — Abschlusseigenschaften argumentieren

Aus $L_1, L_2$ regulär folgt $L_1 \cup L_2$ regulär, $L_1 \cap L_2$ regulär, $\Sigma^* \setminus L_1$ regulär. Argumentation via Produktautomat für Schnitt und Vereinigung, via Vertauschung von $E$ und $Z \setminus E$ für das Komplement.

Fragen zum Selbsttest

1. Was sind die fünf Komponenten eines DFA und welche Bedingung macht ihn deterministisch?

Ein DFA ist $M = (Z, \Sigma, \delta, z_0, E)$ mit endlicher Zustandsmenge $Z$, endlichem Alphabet $\Sigma$, Übergangsfunktion $\delta: Z \times \Sigma \to Z$, Startzustand $z_0 \in Z$ und Endzustandsmenge $E \subseteq Z$. Determinismus bedeutet: $\delta$ ist eine Funktion, also für jedes Paar $(z, a)$ genau ein Bildwert. Totalität wird meist als zusätzliche Bedingung gefordert: $\delta$ ist auf ganz $Z \times \Sigma$ definiert, kein Übergang fehlt.

2. Erkläre den Unterschied zwischen $\delta$ und der erweiterten Übergangsfunktion $\hat{\delta}$.

$\delta$ arbeitet symbolweise: $\delta(z, a)$ gibt den Nachfolgezustand für ein einzelnes Symbol $a$. $\hat{\delta}$ arbeitet auf Wörtern: $\hat{\delta}(z, w)$ gibt den Zustand nach Lesen des gesamten Wortes $w$. Sie ist rekursiv über die Wortlänge definiert mit Basis $\hat{\delta}(z, \varepsilon) = z$. In der Praxis läuft man mit $\hat{\delta}$ das Wort einmal durch — das ist genau die Konfigurationsfolge.

3. Wann liegt ein Wort $w$ in $L(M)$?

Genau dann, wenn $\hat{\delta}(z_0, w) \in E$, also der beim Startzustand beginnende, das Wort abarbeitende Lauf in einem Endzustand endet. Es genügt nicht, unterwegs einen Endzustand zu durchlaufen — er muss am Ende erreicht werden.

4. Warum wird das leere Wort $\varepsilon$ manchmal akzeptiert und manchmal nicht?

$\varepsilon$ wird akzeptiert genau dann, wenn $z_0 \in E$. Denn $\hat{\delta}(z_0, \varepsilon) = z_0$. In vielen Beispielen ist der Startzustand kein Endzustand — dann ist $\varepsilon \notin L(M)$. Wenn er es ist, wie beim DFA für gerade Anzahl an Einsen, gilt $\varepsilon \in L(M)$. In der Klausur immer explizit prüfen.

5. Welche der folgenden Sprachen über $\{a,b\}$ kann ein DFA akzeptieren: $L_1 = \{a^n b^n \mid n \geq 0\}$, $L_2 = \{w \mid w$ enthält Teilwort $ab\}$, $L_3 = \{w \mid |w|$ gerade$\}$?

$L_2$ und $L_3$ sind regulär, also DFA-akzeptierbar. Für $L_2$ reichen drei Zustände (noch kein $a$ gesehen, gerade ein $a$ gesehen, $ab$ schon gesehen — letzterer ist Fangzustand und Endzustand). Für $L_3$ reichen zwei Zustände (Länge gerade/ungerade). $L_1$ ist nicht regulär, da man beliebig viele $a$ zählen müsste, was ein endliches Zustandsgedächtnis nicht leisten kann. Das lässt sich mit dem Pumping-Lemma zeigen.

6. Wie liest man aus einem Zustandsdiagramm die Übergangstabelle ab, und warum ist die Tabelle in der Klausur oft sicherer?

Für jeden Zustand $z$ und jedes Symbol $a$ sucht man die eindeutig ausgehende, mit $a$ beschriftete Kante — der Zielknoten ist $\delta(z, a)$. Die Tabelle ist sicherer, weil sie strukturell erzwingt, dass für jedes Paar $(z, a)$ genau ein Eintrag steht. Im Diagramm übersieht man leicht eine fehlende Kante und behauptet, der Automat sei total.

7. Zeige informell, warum die reguläre Sprachen unter Komplement abgeschlossen sind.

Sei $L = L(M)$ mit DFA $M = (Z, \Sigma, \delta, z_0, E)$. Definiere $M' = (Z, \Sigma, \delta, z_0, Z \setminus E)$ — gleicher Automat, nur die Endzustände sind vertauscht. Für jedes $w$ gilt: entweder $\hat{\delta}(z_0, w) \in E$ und $w \in L$, oder $\hat{\delta}(z_0, w) \in Z \setminus E$ und $w \in L(M')$. Also $L(M') = \Sigma^* \setminus L$. Wichtig: das funktioniert nur, weil $\delta$ total ist. Bei einem unvollständigen DFA würde das Vertauschen der Endzustände nicht das Komplement liefern.

8. Erkläre den Produktautomaten für den Schnitt zweier regulärer Sprachen.

Seien $M_1 = (Z_1, \Sigma, \delta_1, s_1, E_1)$ und $M_2 = (Z_2, \Sigma, \delta_2, s_2, E_2)$. Der Produktautomat ist $M = (Z_1 \times Z_2, \Sigma, \delta, (s_1, s_2), E_1 \times E_2)$ mit $\delta((p, q), a) = (\delta_1(p, a),\, \delta_2(q, a))$. Er simuliert beide Automaten parallel. Ein Wort wird nur akzeptiert, wenn beide Komponenten in Endzuständen enden — genau $L(M_1) \cap L(M_2)$. Für Vereinigung nimmt man stattdessen $E = (E_1 \times Z_2) \cup (Z_1 \times E_2)$.

9. Ein Diagramm zeigt drei Zustände $z_0, z_1, z_2$, aber $\delta(z_2, 1)$ ist nicht eingezeichnet. Ist das ein DFA?

Nein, denn $\delta$ ist nicht total. Streng nach der 5-Tupel-Definition ist es kein DFA. Man kann ihn totalisieren, indem man einen Fangzustand $z_f$ hinzunimmt, $\delta(z_2, 1) = z_f$ setzt und $\delta(z_f, a) = z_f$ für alle $a \in \Sigma$. Der Fangzustand ist kein Endzustand. Danach ist es ein DFA mit derselben akzeptierten Sprache.

10. Argumentiere, wie du aus einer Konfigurationsfolge einen formalen Beweis für $w \in L(M)$ machst.

Man schreibt die Startkonfiguration $(z_0, w)$, wendet die Übergangsrelation $\vdash$ pro Symbol an und erhält eine Kette $(z_0, w) \vdash (z_1, w_1) \vdash \dots \vdash (z_k, \varepsilon)$. Ist $z_k \in E$, folgt per Definition $w \in L(M)$. Der Beweis besteht aus dem korrekten Anwenden jedes Einzelschritts gemäß $\delta$ und dem Endcheck. In der Klausur immer alle Zwischenkonfigurationen hinschreiben — Teilpunkte werden dafür vergeben, selbst wenn die Endaussage falsch ist.

Dos und Donts in der Klausur

Dos

Donts