Aufgabe mit Lösung Null kommt x mal vor - (DEA) Deterministischer endlicher Automat
Konstruiere jeweils einen deterministischen endlichen Automaten (DEA), der die folgenden Sprachen \(L\) akzeptiert:
- Sprache 1Anker zu dieser Formel $$ \begin{align} L ~=~ \{ w \in \{0,1\}^* ~:~ |w|_0 = 2 \} \end{align} $$
- Sprache 2Anker zu dieser Formel $$ \begin{align} L = \{ w \in \{0,1\}^* ~:~ |w|_0\geq 2 \} \end{align} $$
- Sprache 3Anker zu dieser Formel $$ \begin{align} L = \{ w \in \{0,1\}^* ~:~ |w|_0\leq 2 \} \end{align} $$
- Sprache 4Anker zu dieser Formel $$ \begin{align} L = \{ w \in \{0,1\}^* ~:~ |w|_0 ~\text{mod}~ 2 = 0 \} \end{align} $$
- Sprache 5Anker zu dieser Formel $$ \begin{align} L = \{ w \in \{0,1\}^* ~:~ |w|_0 ~\text{mod}~ 3 = 0 \} \end{align} $$
- Sprache 6Anker zu dieser Formel $$ \begin{align} L = \{ w \in \{0,1\}^* ~:~ |w|_0 ~\text{mod}~ 2 = 0 ~\text{UND}~ |w|_1 ~\text{mod}~ 2 = 0 \end{align} $$
Lösungstipps
Zähle zuerst ein paar Beispielwörter \(w\) auf, die von der jeweilgen Sprache \(L\) akzeptiert werden.
Zur Erinnerung: Ein DEA \(A\) ist ein 5-Tupel \(A = (Z, \Sigma, \delta, z_0, E) \). Gib diesen 5-Tupel an. Für die Überführungsfunktion \( \delta \) kann auch ein Graph angefertigt werden.
\(|w|_x\) bedeutet die Anzahl der Vorkomnisse von \(x\) im Wort \(w\).
Lösung für (a)
Die Sprache \(L\) ist eine unendliche Sprache, deren Wörter \(w\) aus den Zahlen \(0\) und \(1\) bestehen und in jedem Wort \(w\) kommt 0 genau zwei Mal vor. Die Sprache besteht beispielsweise aus folgenden Wörtern:1\[ L = \{00, 001, 010, 001,~... \} \]
Die Zustandsmenge ist:2\[ Z = \{ z_0, z_1, z_2, z_3 \} \]mit \(z_0\) als Anfangszustand. Die Überführungsfunktion \(\delta: Z \times \Sigma \rightarrow Z\) sieht folgendermaßen aus:3\[ \delta(z_0, 1) = z_0 \] \[ \delta(z_0, 0) = \delta(z_1, 1) = z_1 \] \[ \delta(z_1, 0) = \delta(z_2, 1) = z_2 \] \[ \delta(z_2, 0) = \delta(z_3, 0) = \delta(z_3, 1) = z_3 \]
Die Menge \(E\) der Endzustände ist:4\[ E = \{ z_2 \} \]
Der angegebene Automat \(A = (Z, \Sigma, \delta, z_0, E) \) akzeptiert die betrachtete Sprache \(L\).
Lösung für (b)
Die Sprache \(L\) ist eine unendliche Sprache, deren Wörter \(w\) aus den Zahlen \(0\) und \(1\) bestehen und in jedem Wort \(w\) kommt 0 genau zwei oder mehr als zwei Mal vor (aber niemals weniger als zwei). Die Sprache besteht beispielsweise aus folgenden Wörtern:5\[ L = \{00, 001, 010, 000,~... \} \]
Die Zustandsmenge ist:6\[ Z = \{ z_0, z_1, z_2 \} \]mit \(z_0\) als Anfangszustand. Die Überführungsfunktion \(\delta: Z \times \Sigma \rightarrow Z\) sieht folgendermaßen aus:7\[ \delta(z_0, 1) = z_0 \] \[ \delta(z_0, 0) = \delta(z_1, 1) = z_1 \] \[ \delta(z_1, 0) = \delta(z_2, 0) = \delta(z_2, 1) = z_2 \]
Die Menge \(E\) der Endzustände ist:8\[ E = \{ z_2 \} \]
Der angegebene Automat \(A = (Z, \Sigma, \delta, z_0, E) \) akzeptiert die betrachtete Sprache \(L\).
Lösung für (c)
Die Sprache \(L\) ist eine unendliche Sprache, deren Wörter \(w\) aus den Zahlen \(0\) und \(1\) bestehen und in jedem Wort \(w\) kommt 0 genau zwei oder weniger als zwei Mal vor (aber niemals mehr als zwei). Die Sprache besteht beispielsweise aus folgenden Wörtern:9\[ L = \{\varepsilon, 0, 00, 001, 010, 110,~... \} \]hierbei ist \(\varepsilon\) das leere Wort mit \(|\varepsilon| = 0 \).
Die Zustandsmenge ist:10\[ Z = \{ z_0, z_1, z_2, z_3 \} \]mit \(z_0\) als Anfangszustand. Die Überführungsfunktion \(\delta: Z \times \Sigma \rightarrow Z\) sieht folgendermaßen aus:11\[ \delta(z_0, 1) = z_0 \] \[ \delta(z_0, 0) = \delta(z_1, 1) = z_1 \] \[ \delta(z_1, 0) = \delta(z_2, 1) = z_2 \] \[ \delta(z_2, 0) = \delta(z_3, 0) = \delta(z_3, 1) = z_3 \]
Die Menge \(E\) der Endzustände ist:12\[ E = \{ z_0, z_1, z_2 \} \]
Der angegebene Automat \(A = (Z, \Sigma, \delta, z_0, E) \) akzeptiert die betrachtete Sprache \(L\).
Lösung für (d)
Die Sprache \(L\) ist eine unendliche Sprache, deren Wörter \(w\) aus den Zahlen \(0\) und \(1\) bestehen und in jedem Wort \(w\) kommt nur eine gerde Anzahl an Nullen vor. Die Sprache besteht beispielsweise aus folgenden Wörtern:13\[ L = \{\varepsilon, 1, 11, 00, 010, 110000,~... \} \]hierbei ist \(\varepsilon\) das leere Wort mit \(|\varepsilon| = 0 \).
Es werden mindestens zwei Zustände gebraucht. Ein Zustand \(U\) für eine ungerade Anzahl an Nullen und ein Zustand \(G\) für eine gerade Anzahl an Nullen. Die Zustandsmenge ist:14\[ Z = \{ G, U \} \]mit \(G\) als Anfangszustand. Die Überführungsfunktion \(\delta: Z \times \Sigma \rightarrow Z\) sieht folgendermaßen aus:15\[ \delta(G, \varepsilon) = \delta(G, 1) = \delta(U, 0) = G \] \[ \delta(U, 1) = U \]
Die Menge \(E\) der Endzustände ist:16\[ E = \{ G \} \]
Der angegebene Automat \(A = (Z, \Sigma, \delta, G, E) \) akzeptiert die betrachtete Sprache \(L\).
Lösung für (e)
Die Sprache \(L\) ist eine unendliche Sprache, deren Wörter \(w\) aus den Zahlen \(0\) und \(1\) bestehen und in jedem Wort \(w\) kommt nur eine Anzahl an Nullen vor, die durch drei teilbar ist. Die Sprache besteht beispielsweise aus folgenden Wörtern:17\[ L = \{\varepsilon, 000, 101010, 000000,~... \} \]hierbei ist \(\varepsilon\) das leere Wort mit \(|\varepsilon| = 0 \).
Es werden mindestens drei Zustände gebraucht. Ein Zustand für Rest 0, Rest 1 und Rest 2. Die Zustandsmenge ist:18\[ Z = \{ z_0 \} \]mit \(z_0\) als Anfangszustand. Die Überführungsfunktion \(\delta: Z \times \Sigma \rightarrow Z\) sieht folgendermaßen aus:19\[ \delta(z_0, \varepsilon) = \delta(z_0, 1) = \delta(z_2, 0) = z_0 \] \[ \delta(z_0, 0) = \delta(z_1, 1) = z_1 \] \[ \delta(z_1, 0) = \delta(z_2, 1) = z_2 \]
Die Menge \(E\) der Endzustände ist:20\[ E = \{ z_0 \} \]
Der angegebene Automat \(A = (Z, \Sigma, \delta, z_0, E) \) akzeptiert die betrachtete Sprache \(L\).
Lösung für (f)
Die Sprache \(L\) ist eine unendliche Sprache, deren Wörter \(w\) aus den Zahlen \(0\) und \(1\) bestehen und in jedem Wort \(w\) kommt nur eine gerade Anzahl an Nullen UND Einsen vor. Die Sprache besteht beispielsweise aus folgenden Wörtern:21\[ L = \{\varepsilon, 00, 11, 001100,~... \} \]hierbei ist \(\varepsilon\) das leere Wort mit \(|\varepsilon| = 0 \).
Die Zustandsmenge ist:22\[ Z = \{ z_{\text{gg}}, z_{\text{gu}}, z_{\text{ug}}, z_{\text{uu}} \} \]mit \(z_{\text{gg}}\) als Anfangszustand. Der erste Buchstabe des Index bestimmt die Anzahl bereits gelesener 0en. Und der Buchstabe bestimmt die Anzahl bereits gelesener 1en. Beispielsweise im Zustand \(z_{\text{gu}}\) wurde eine gerade Anzahl an 0en und eine ungerade Anzahl an 1en gelesen.
Die Überführungsfunktion \(\delta: Z \times \Sigma \rightarrow Z\) sieht folgendermaßen aus:23\[ \delta(z_{\text{gg}}, \varepsilon) = \delta(z_{\text{gu}}, 1) = \delta(z_{\text{ug}}, 0) = z_{\text{gg}} \] \[ \delta(z_{\text{gg}}, 1) = \delta(z_{\text{uu}}, 0) = z_{\text{gu}} \] \[ \delta(z_{\text{gg}}, 0) = \delta(z_{\text{uu}}, 1) = z_{\text{ug}} \] \[ \delta(z_{\text{gu}}, 0) = \delta(z_{\text{ug}}, 1) = z_{\text{uu}} \]
Die Menge \(E\) der Endzustände ist:24\[ E = \{ z_{\text{gg}} \} \]
Der angegebene Automat \(A = (Z, \Sigma, \delta, z_{\text{gg}}, E) \) akzeptiert die betrachtete Sprache \(L\).