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
- Ein DFA ist ein 5-Tupel $M = (Z, \Sigma, \delta, z_0, E)$ mit einer totalen, deterministischen Übergangsfunktion $\delta: Z \times \Sigma \to Z$.
- Total bedeutet: für jedes Paar aus Zustand und Eingabesymbol ist genau ein Folgezustand definiert.
- Akzeptanz ist einfach: starte bei $z_0$, lies das Wort Symbol für Symbol, prüfe am Ende, ob der erreichte Zustand in $E$ liegt.
- Die von einem DFA akzeptierten Sprachen sind genau die regulären Sprachen. Diese Klasse ist unter Vereinigung, Schnitt und Komplement abgeschlossen.
- In der Klausur wird gelesen und gerechnet: Diagramm interpretieren, Konfigurationsfolge notieren, Produkt-DFA konstruieren, Minimierung durchführen, Zugehörigkeit $w \in L(M)$ begründen.
Definitionen & Formalismen
Deterministischer endlicher Automat
Ein DFA (auch DEA) ist ein 5-Tupel
$$M = (Z, \Sigma, \delta, z_0, E)$$- $Z$ — endliche Menge der Zustände
- $\Sigma$ — endliches Eingabealphabet, $Z \cap \Sigma = \emptyset$
- $\delta: Z \times \Sigma \to Z$ — Übergangsfunktion, total und deterministisch
- $z_0 \in Z$ — Startzustand
- $E \subseteq Z$ — Menge der Endzustände (auch Finalzustände)
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
- 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.
- Startzustand markieren. Im Diagramm durch einen Pfeil aus dem Nichts, in der Tabelle meist durch Pfeil oder Fettdruck. Ohne Startzustand keine Rechnung.
- Endzustände markieren. Im Diagramm doppelter Kreis, in der Tabelle durch $*$ oder Extraspalte.
- Übergangsfunktion prüfen. Für jedes Paar $(z, a)$ genau einen Zielzustand. Fehlt einer, ist es kein DFA, sondern höchstens ein NFA.
- Wortakzeptanz entscheiden. Starte in $z_0$, verfolge das Wort symbolweise, notiere jede Konfiguration. Am Ende prüfen, ob der Zustand in $E$ liegt.
- 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:
- $z_0$ — gerade viele Einsen bisher (Startzustand, Endzustand)
- $z_1$ — ungerade viele Einsen bisher
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
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.
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
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
- $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)
| $\delta$ | $0$ | $1$ |
|---|---|---|
| $\to q_0$ | $q_1$ | $q_0$ |
| $q_1$ | $q_1$ | $q_2$ |
| $* q_2$ | $q_1$ | $q_0$ |
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
| $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)$ |
| $\delta_{\min}$ | $0$ | $1$ |
|---|---|---|
| $\to A$ | $B$ | $C$ |
| $B$ | $A$ | $F$ |
| $C$ | $F$ | $A$ |
| $* F$ | $F$ | $F$ |
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
| $\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}$ |
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
| $\delta$ | $a$ | $b$ |
|---|---|---|
| $\to * r_0$ | $r_1$ | $r_0$ |
| $* r_1$ | $r_1$ | $r_2$ |
| $r_2$ | $r_2$ | $r_2$ |
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
| $\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$ |
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
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
- Beim Ablesen eines DFA immer erst $Z$, $\Sigma$, $z_0$, $E$ notieren und danach die Übergangstabelle als Raster ausfüllen.
- Konfigurationsfolgen immer komplett hinschreiben, auch bei kurzen Wörtern — hier gibt es sichere Teilpunkte.
- Bei der Frage nach $L(M)$: das leere Wort explizit prüfen und die Sprache in einem einzigen präzisen Mengenausdruck angeben.
- Totalität von $\delta$ aktiv prüfen, bevor man den Automaten als DFA klassifiziert.
- Beim Komplement immer erst totalisieren, dann Endzustände tauschen.
Donts
- Nicht behaupten, ein Automat sei ein DFA, wenn ein Übergang fehlt — das ist kein DFA, sondern höchstens ein NFA.
- Nicht den Zustand nach dem vorletzten Symbol mit dem Endzustand verwechseln. Endzustand ist der nach dem letzten Symbol.
- Nicht das leere Wort vergessen, wenn nach $L(M)$ gefragt wird.
- Nicht Sprachen wie $\{a^n b^n\}$ für regulär halten — hier scheitert ein DFA am endlichen Gedächtnis.
- Nicht auf ausformulierte Beweise verzichten, wenn Aufschriften wie zeigen Sie oder begründen Sie in der Aufgabe stehen.