\documentclass{bschlangaul-aufgabe}
\bLadePakete{formale-sprachen,automaten,minimierung,syntax,potenzmengen-konstruktion,pumping-lemma}
\begin{document}
\bAufgabenMetadaten{
  Titel = {Aufgabe 1},
  Thematik = {Alphabet „01“ Anzahl Unterschied höchstes 3},
  Referenz = 66115-2015-F.T1-A1,
  RelativerPfad = Examen/66115/2015/03/Thema-1/Aufgabe-1.tex,
  ZitatSchluessel = examen:66115:2015:03,
  BearbeitungsStand = mit Lösung,
  Korrektheit = unbekannt,
  Ueberprueft = {unbekannt},
  Stichwoerter = {Reguläre Sprache, Pumping-Lemma (Reguläre Sprache), Potenzmengenalgorithmus},
  EinzelpruefungsNr = 66115,
  Jahr = 2015,
  Monat = 03,
  ThemaNr = 1,
  AufgabeNr = 1,
}

\let\l=\bLeereZelle
\let\f=\bFussnote
\def\z#1{
  \bZustandsMengenSammlungNr{#1}{
    {
      {0} {0}
      {1} {0,1}
      {2} {0,2}
      {3} {0,1,2}
    }
  }
}
\let\s=\bZustandsnameGross
\let\Z=\bZustandsPaar

% verbessert 30.3.2021

Die\index{Reguläre Sprache} \footcite{examen:66115:2015:03} Sprache $L$
über den Alphabet \bAlphabet{0, 1} enthält alle Wörter, bei denen beim
Lesen von links nach rechts der Unterschied in der Zahl der $0$en und
$1$en stets höchstens $3$ ist. Also ist $w \in L$ genau dann, wenn für
alle $u$, $v$ mit $w = uv$ gilt $||u|_0 - |u|_1| \leq 3$. Erinnerung:
$|w|_a$ bezeichnet die Zahl der $a$’s im Wort $w$.
\footcite[Aufgabe 10]{theo:ab:1}

\begin{enumerate}

%%
% (a)
%%

\item Sei $A = (Q, \Sigma, \delta, q_0 , E)$ ein deterministischer
endlicher Automat für $L$. Es sei $w_1 = 111$, $w_2 = 11$, $w_3 = 1$, $
w_4 = \varepsilon$, $w_5 = 0$, $w_6 = 00$, $w_7 = 000$. Machen Sie sich
klar, dass der Automat jedes dieser Wörter verarbeiten können muss.
Folgern Sie, dass der Automat mindestens sieben Zustände haben muss.
Schreiben Sie Ihr Argumentation schlüssig und vollständig auf.

\begin{bAntwort}
Ein deterministischer endlicher Automat hat keinen zusätzlichen Speicher
zur Verfügung, in dem die Anzahl der bisher vorkommenden Einsen und
Nullen gespeichert werden könnte. Ein deterministischer endlicher
Automat kann die von der Sprache benötigten Anzahl an Einsen und Nullen
nur in Form von Zustanden speichern. Um die Anzahl von $3$ Einsen bzw.
$3$ Nullen zu speichern, sind also 6 Zustände nötig.

Die Wörter $01$ oder $0011$ oder $0101$ etc. haben eine Differenz von
$0$, wenn die Anzahl an Nullen und Einsen abzogen wird. Um auch diese
Wörter darstellen zu können, ist mindestens ein weiterer Zustand nötig.
\end{bAntwort}

%%
% (b)
%%

\item Begründen Sie, dass $L$ regulär ist.

\begin{bAntwort}
\begin{center}
\begin{tikzpicture}[li automat,node distance=2cm]
\node[state,initial,accepting]
(0) {$z_0$};

\node[state,above right of=0,accepting]
(1) {$z_1$};

\node[state,right of=1,accepting]
(2) {$z_2$};

\node[state,right of=2,accepting]
(3) {$z_3$};

\node[state,below right of=0,accepting]
(4) {$z_4$};

\node[state,right of=4,accepting]
(5) {$z_5$};

\node[state,right of=5,accepting]
(6) {$z_6$};

\node[state,below right of=3]
(t) {$z_t$};

\path (0) edge[above,bend left] node{0} (1);
\path (1) edge[above,bend left] node{0} (2);
\path (2) edge[above,bend left] node{0} (3);

\path (1) edge[above,bend left] node{1} (0);
\path (2) edge[above,bend left] node{1} (1);
\path (3) edge[above,bend left] node{1} (2);

\path (0) edge[above,bend left] node{1} (4);
\path (4) edge[above,bend left] node{1} (5);
\path (5) edge[above,bend left] node{1} (6);

\path (4) edge[above,bend left] node{0} (0);
\path (5) edge[above,bend left] node{0} (4);
\path (6) edge[above,bend left] node{0} (5);

\path (3) edge[above] node{0} (t);
\path (6) edge[above] node{1} (t);
\path (t) edge[loop right] node{0,1} (t);

\end{tikzpicture}
\bFlaci{Ait6va31c}
\end{center}
\end{bAntwort}

%%
% (c)
%%

\item Jemand behauptet, diese Sprache sei nicht regulär und gibt
folgenden „Beweis“ dafür an: Wäre $L$ regulär, so sei $n$ eine
entsprechende Pumping-Zahl. Nun ist $w = (01)^n \in L$. Zerlegt man nun
$w = uxv$, wobei $u = 0$, $x = 1$, $v = (01)^{n-1}$ , so ist zum Beispiel
$ux^5 v \notin L$, denn es ist $ux^5 v = 01111101010101$.... Legen Sie
genau dar, an welcher Stelle dieser „Beweis” fehlerhaft ist.
\index{Pumping-Lemma (Reguläre Sprache)}

\begin{bExkurs}[Pumping-Lemma für Reguläre Sprachen]
\bPumpingRegulaer
\end{bExkurs}

\begin{bAntwort}
Das Wort $(01)^n$ wurde falsch zerlegt. Für die Pumping-Zahl $n = 3$
gibt es sehr wohl eine Zerlegung, die beim Aufpumpen regulär ist, also:
$\omega = 010101$ ($u = 01$, $x = 01$ und $v = 01$). $ux^5 v = 01
0101010101 01 \in L$. Es gibt also eine Zerlegung, die beim Aufpumpen
die 3 Pumping-Lemma-Eigenschaften erfüllt. Daher kann man das
Pumping-Lemma so nicht widerlegt werden, indem man ein einziges
Gegenbeispiel gibt.
\end{bAntwort}

%%
% (d)
%%

\item In anderen Fällen können nichtdeterministische endliche Automaten
echt kleiner sein als die besten deterministischen Automaten. Ein
Beispiel ist die Sprache $L_2 = \Sigma^* 1 \Sigma$ aller Wörter, deren
vorletztes Symbol $1$ ist. Geben Sie einen nicht-deterministischen
Automaten mit nur drei Zuständen an, $L_2$ erkennt.

\begin{bAntwort}
\begin{center}
\begin{tikzpicture}[li automat,node distance=3cm]
\node[state,initial]
(0) {$z_0$};

\node[state,right of=0]
(1) {$z_1$};

\node[state,right of=1,accepting]
(2) {$z_2$};

\path (0) edge[above,loop] node{$0$,$1$} (0);
\path (0) edge[above] node{$1$} (1);
\path (1) edge[above] node{$0$,$1$} (2);
\end{tikzpicture}
\bFlaci{Apwzjufbg}
\end{center}
\end{bAntwort}

%%
% (e)
%%

\item Führen Sie auf Ihrem Automaten die Potenzmengenkonstruktion und
anschließend den Minimierungsalgorithmus durch. Wie viele Zustände
muss ein deterministischer Automat für $L_2$ also mindestens haben?
\index{Potenzmengenalgorithmus}

\begin{bAntwort}

%%
%
%%

\bPseudoUeberschrift{Potenzmengenkonstruktion}

\begin{tabular}{l|l|l|l}
Name & Zustandsmenge & Eingabe $0$ & Eingabe $1$ \\\hline\hline
\s0 & \z0 & \z0 & \z1 \\
\s1 & \z1 & \z2 & \z3 \\
\s2 & \z2 & \z0 & \z1 \\
\s3 & \z3 & \z2 & \z3 \\
\end{tabular}

\begin{center}
\begin{tikzpicture}[li automat,node distance=3cm]
\node[state,initial]
(0) {\s0};

\node[state,below of=0]
(1) {\s1};

\node[state,right of=0,accepting]
(2) {\s2};

\node[state,right of=1,accepting]
(3) {\s3};

\path (0) edge[above,loop] node{$0$} (0);
\path (0) edge[left] node{$1$} (1);
\path (1) edge[above,bend left] node{$0$} (2);
\path (1) edge[above] node{$1$} (3);
\path (2) edge[above] node{$0$} (0);
\path (2) edge[above,bend left] node{$1$} (1);
\path (3) edge[right] node{$0$} (2);
\path (3) edge[above,loop below] node{$1$} (3);
\end{tikzpicture}
\bFlaci{Ajfcofpb9}
\end{center}

%%
%
%%

\bPseudoUeberschrift{Minimierungsalgorithmus}

\begin{center}
\begin{tabular}{|c||c|c|c|c|}
\hline
\s0 & \l  & \l  & \l  & \l  \\ \hline
\s1 & \f2 & \l  & \l  & \l  \\ \hline
\s2 & \f1 & \f1 & \l  & \l  \\ \hline
\s3 & \f1 & \f1 & \f2 & \l  \\ \hline\hline
    & \s0 & \s1 & \s2 & \s3 \\ \hline
\end{tabular}
\end{center}

\bFussnoten

\def\bZustandsPaarVariablenName{Z}

\begin{liUebergangsTabelle}{0}{1}
\Z01 & \Z02 \f2 & \Z13 \f2 \\
\Z23 & \Z01 & \Z13 \f2 \\
\end{liUebergangsTabelle}

Wie aus der oben stehenden Tabelle abzulesen ist, gibt es keine
äquivalenten Zustände. Der Automat kann nicht minimiert werden. Er ist
bereits minimal.

\end{bAntwort}
\end{enumerate}
\end{document}
