Mercurial > 13ss.theoinf
diff notes/tex/automatons.tex @ 43:c14b92bfa07f
add missing slides; correct some errors
author | Markus Kaiser <markus.kaiser@in.tum.de> |
---|---|
date | Thu, 11 Jul 2013 21:57:50 +0200 |
parents | 35e8bb96da7b |
children | 8e79d33bdece |
line wrap: on
line diff
--- a/notes/tex/automatons.tex Thu Jul 11 21:25:21 2013 +0200 +++ b/notes/tex/automatons.tex Thu Jul 11 21:57:50 2013 +0200 @@ -170,7 +170,7 @@ \end{frame} } -\defineUnit{rezunfa}{% +\defineUnit{rezuenfa}{% \begin{frame} \frametitle{RE $\rightarrow$ $\epsilon$-NFA} \setbeamercovered{dynamic} @@ -365,17 +365,18 @@ \defineUnit{produktautomat}{% \begin{frame} - \frametitle{produktautomat} + \frametitle{Produktautomat} \setbeamercovered{dynamic} + \begin{theorem} - sind $m_1 = (q_1, \sigma, \delta_1, s_1, f_1)$ und $m_2 = (q_2, \sigma, \delta_2, s_2, f_2)$ dfas, dann ist der \alert{produkt-automat} + Sind $M_1 = (Q_1, \Sigma, \delta_1, s_1, F_1)$ und $M_2 = (Q_2, \Sigma, \delta_2, s_2, F_2)$ DFAs, dann ist der \alert{Produkt-Automat} \begin{align*} - m &:= (\alert{q_1 \times q_2}, \sigma, \delta, (s_1, s_2), f_1 \times f_2) \\ + M &:= (\alert{Q_1 \times Q_2}, \Sigma, \delta, (s_1, s_2), F_1 \times F_2) \\ \delta\left( (q_1, q_2), a \right) &:= \left( \alert{\delta_1}(q_1, a), \alert{\delta_2}(q_2, a) \right) \end{align*} - ein dfa, der $l(m_1) \cap l(m_2)$ akzeptiert. + ein DFA, der $L(M_1) \cap L(M_2)$ akzeptiert. \end{theorem} \end{frame} } @@ -526,7 +527,7 @@ \end{frame} } -\defineUnit{aequivalenteZustaende}{% +\defineUnit{aequivalentezustaende}{% \begin{frame} \frametitle{Äquivalenzen} \setbeamercovered{dynamic} @@ -552,7 +553,7 @@ \end{frame} } -\defineUnit{unterscheidbareZustaende}{% +\defineUnit{unterscheidbarezustaende}{% \begin{frame} \frametitle{Unterscheidbare Zustände} \setbeamercovered{dynamic} @@ -593,3 +594,90 @@ \end{tikzpicture} \end{frame} } + +\defineUnit{quotientenautomat}{% +\begin{frame}[t] + \frametitle{DFA minimieren} + \setbeamercovered{dynamic} + + \begin{block}{Idee} + Erzeuge den \alert{Quotientenautomaten}. + \begin{enumerate} + \item Entferne alle von $q_0$ \alert{nicht erreichbaren} Zustände + \item<1, 3-> Berechne die \alert{unterscheidbaren} Zustände + \item<1, 6-> \alert{Kollabiere} die äquivalenten Zustände + \end{enumerate} + \end{block} + + \vfill + + \begin{columns}[c]<2-> + \begin{column}{.5\textwidth}<3-> + \begin{center} + \begin{tabu}to .8\textwidth{|X[c]|X[c]|X[c]|X} + \multicolumn{2}{l}{0} \\ \tabucline{1-1} + \alt<-4>{}{\textcolor{tumgreen}{$1/a$}} & \multicolumn{2}{l}{1} \\ \tabucline{1-2} + \alt<-4>{}{\textcolor{tumgreen}{$1/a$}} & & \multicolumn{2}{l}{2} \\ \tabucline{1-3} + \alt<-3>{}{\textcolor{tumred}{$\times$}} & \alt<-3>{}{\textcolor{tumred}{$\times$}}& \alt<-3>{} {\textcolor{tumred}{$\times$}}& 3 \\ \tabucline{1-3} + \end{tabu} + \end{center} + \end{column} + \begin{column}{.5\textwidth} + \begin{tikzpicture}[automaton, node distance=2.5cm] + \useasboundingbox (-0.5, -0.5) rectangle (2, -2); + + \node[state, initial] (q0) {$q_0$}; + \node<-5>[state] (q1) [right of = q0] {$q_1$}; + \node<-5>[state] (q2) [below of = q0] {$q_2$}; + \node<6>[state, fill=tumred!40] (q12) [right of = q0] {$q_{12}$}; + \node[state, accepting] (q3) [right of = q2] {$q_3$}; + + \draw<-5>[->] (q0) edge node {$a$} (q1); + \draw<-5>[->] (q0) edge node {$b$} (q2); + \draw<-5>[->] (q1) edge node {$a,b$} (q3); + \draw<-5>[->] (q2) edge node {$a,b$} (q3); + \draw[->] (q3) edge [loop right] node [above] {$a,b$} (q3); + + \draw<6>[->] (q12) edge node {$a,b$} (q3); + \draw<6>[->] (q0) edge node {$a,b$} (q12); + \end{tikzpicture} + \end{column} + \end{columns} +\end{frame} +} + +\defineUnit{regulaeresprachen}{% +\begin{frame} + \frametitle{Reguläre Sprachen} + \setbeamercovered{dynamic} + + \begin{center} + \begin{tikzpicture}[node distance=2cm] + \node (nfa) {NFA}; + \node (dfa) [left of=nfa] {DFA}; + \node (enfa) [right of=nfa] {$\epsilon$-NFA}; + \node (re) [below of=nfa] {RE}; + + \draw [every edge] (nfa) -- (dfa); + \draw [every edge] (enfa) -- (nfa); + \draw [every edge] (dfa) -- (re); + \draw [every edge] (nfa) -- (re); + \draw [every edge] (re) -- (enfa); + \end{tikzpicture} + \end{center} + + \vfill + \pause + + \begin{theorem} + Für eine Darstellung $D$ einer regulären Sprache ist \alert{entscheidbar}: + \vspace{1em} + \begin{description} + \item[Wortproblem] Gegeben $w$, gilt $w \in L(D)$? + \item[Leerheitsproblem] Ist $L(D) = \emptyset$? + \item[Endlichkeitsproblem] Ist $|L(D)| < \infty$? + \item[Äquivalenzproblem] Gilt $L(D_1) = L(D_2)$? + \end{description} + \end{theorem} +\end{frame} +}