comparison notes/tex/automatons.tex @ 13:834da46b1edb

third sheet and notes
author Markus Kaiser <markus.kaiser@in.tum.de>
date Sat, 03 May 2014 22:49:43 +0200
parents 11723d02ee58
children d5b561a49683
comparison
equal deleted inserted replaced
12:11723d02ee58 13:834da46b1edb
124 \begin{frame} 124 \begin{frame}
125 \frametitle{Reguläre Ausdrücke} 125 \frametitle{Reguläre Ausdrücke}
126 \setbeamercovered{dynamic} 126 \setbeamercovered{dynamic}
127 127
128 \begin{definition}[Regulärer Ausdruck] 128 \begin{definition}[Regulärer Ausdruck]
129 \alert{Reguläre Ausdrücke} sind induktiv definiert 129 \structure{Reguläre Ausdrücke} sind induktiv definiert
130 \begin{itemize} 130 \begin{itemize}
131 \item \alert{$\emptyset$} ist ein regulärer Ausdruck 131 \item \structure{$\emptyset$} ist ein regulärer Ausdruck
132 \item \alert{$\epsilon$} ist ein regulärer Ausdruck 132 \item \structure{$\epsilon$} ist ein regulärer Ausdruck
133 \item Für alle $a \in \Sigma$ ist \alert{$a$} ein regulärer Ausdruck 133 \item Für alle $a \in \Sigma$ ist \structure{$a$} ein regulärer Ausdruck
134 \item Sind $\alpha$ und $\beta$ reguläre Ausdrücke, dann auch 134 \item Sind $\alpha$ und $\beta$ reguläre Ausdrücke, dann auch
135 \begin{description} 135 \begin{description}[Konkatenation]
136 \item[Konkatenation] \alert{$\alpha\beta$} 136 \item[Konkatenation] \structure{$\alpha\beta$}
137 \item[Veroderung] \alert{$\alpha \mid \beta$} 137 \item[Veroderung] \structure{$\alpha \mid \beta$}
138 \item[Wiederholung] \alert{$\alpha^*$} 138 \item[Wiederholung] \structure{$\alpha^*$}
139 \end{description} 139 \end{description}
140 \end{itemize} 140 \end{itemize}
141 Analoge Sprachdefinition, z.b. $L(\alpha\beta) = L(\alpha)L(\beta)$ 141 Analoge Sprachdefinition, z.b. $L(\alpha\beta) = L(\alpha)L(\beta)$
142 \end{definition} 142 \end{definition}
143 143
144 \begin{example} 144 \begin{example}
145 $\alpha = (0|1)^*00$ \hfill $L(\alpha) = \left\{x \mid x \text{ Binärzahl}, x \mod 4 = 0 \right\}$ 145 \begin{itemize}
146 \item $\alpha = (0|1)^*00$
147 \item Worte bestehen aus einer beliebigen Folge von Einsen und Nullen gefolgt von zwei Nullen.
148 \item $L(\alpha) \supseteq \left\{x \mid x \text{ Binärzahl}, x \mod 4 = 0 \right\}$
149 \end{itemize}
146 \end{example} 150 \end{example}
147 \end{frame} 151 \end{frame}
148 } 152 }
149 153
150 \defineUnit{automatenkonversionen}{% 154 \defineUnit{automatenkonversionen}{%
214 \draw[->] (k) edge node {$\epsilon$} (l); 218 \draw[->] (k) edge node {$\epsilon$} (l);
215 \end{tikzpicture} 219 \end{tikzpicture}
216 }\\ 220 }\\
217 \end{tabu} 221 \end{tabu}
218 \end{frame} 222 \end{frame}
219 } 223
220
221 \defineUnit{rezuenfazwei}{%
222 \begin{frame} 224 \begin{frame}
223 \frametitle{RE $\rightarrow$ $\epsilon$-NFA} 225 \frametitle{RE $\rightarrow$ $\epsilon$-NFA}
224 \setbeamercovered{dynamic} 226 \setbeamercovered{dynamic}
225 227
226 \begin{tabu} to \linewidth {X} 228 \begin{tabu} to \linewidth {X}
234 \node[tumgreen] () at (3.25, -1.7) {$N_\beta$}; 236 \node[tumgreen] () at (3.25, -1.7) {$N_\beta$};
235 237
236 \node[state, initial] (i) at (0, 0) {}; 238 \node[state, initial] (i) at (0, 0) {};
237 239
238 \node[state] (j) at (2.5, 1) {}; 240 \node[state] (j) at (2.5, 1) {};
239 \node[state, accepting] (k) at (4, 1) {}; 241 \node[state] (k) at (4, 1) {};
240 \node[state] (l) at (2.5, -1) {}; 242 \node[state] (l) at (2.5, -1) {};
241 \node[state, accepting] (m) at (4, -1) {}; 243 \node[state] (m) at (4, -1) {};
244
245 \node[state, accepting] (n) at (6.5, 0) {};
242 246
243 \draw[->] (i) edge node {$\epsilon$} (j); 247 \draw[->] (i) edge node {$\epsilon$} (j);
244 \draw[->] (i) edge node {$\epsilon$} (l); 248 \draw[->] (i) edge node {$\epsilon$} (l);
249 \draw[->] (k) edge node {$\epsilon$} (n);
250 \draw[->] (m) edge node {$\epsilon$} (n);
245 \end{tikzpicture} \\ 251 \end{tikzpicture} \\
246 \vfill 252 \vfill
247 253
248 \alert{$\gamma = \alpha^*$} \\ 254 \alert{$\gamma = \alpha^*$} \\
249 \centering 255 \centering
250 \begin{tikzpicture}[automaton, small, bend angle=70] 256 \begin{tikzpicture}[automaton, small, bend angle=70]
251 \draw[tumgreen, fill=tumgreen!20] (2, 1) rectangle (4.5, -1); 257 \draw[tumgreen, fill=tumgreen!20] (2, 1) rectangle (4.5, -1);
252 \node[tumgreen] () at (3.25, -1.2) {$N_\alpha$}; 258 \node[tumgreen] () at (3.25, -1.2) {$N_\alpha$};
253 259
254 \node[state, initial, accepting] (i) at (0, 0) {}; 260 \node[state, initial] (i) at (0, 0) {};
255 261
256 \node[state] (j) at (2.5, 0) {}; 262 \node[state] (j) at (2.5, 0) {};
257 \node[state, accepting] (k) at (4, 0.5) {}; 263 \node[state] (k) at (4, 0.5) {};
258 \node[state, accepting] (m) at (4, -0.5) {}; 264 \node[state] (m) at (4, -0.5) {};
265
266 \node[state, accepting] (n) at (6.5, 0) {};
259 267
260 \draw[->] (i) edge node {$\epsilon$} (j); 268 \draw[->] (i) edge node {$\epsilon$} (j);
269 \draw[->] (i) edge[bend right=90] node {$\epsilon$} (n);
270
261 \draw[->] (k) edge [bend right] node {$\epsilon$} (j); 271 \draw[->] (k) edge [bend right] node {$\epsilon$} (j);
262 \draw[->] (m) edge [bend left] node[above] {$\epsilon$} (j); 272 \draw[->] (m) edge [bend left] node[above] {$\epsilon$} (j);
273 \draw[->] (k) edge node {$\epsilon$} (n);
274 \draw[->] (m) edge node {$\epsilon$} (n);
263 \end{tikzpicture} 275 \end{tikzpicture}
264 \end{tabu} 276 \end{tabu}
265 \end{frame} 277 \end{frame}
266 } 278 }
267 279
536 \begin{frame} 548 \begin{frame}
537 \frametitle{Äquivalenzen} 549 \frametitle{Äquivalenzen}
538 \setbeamercovered{dynamic} 550 \setbeamercovered{dynamic}
539 551
540 \begin{definition}[Äquivalente Worte] 552 \begin{definition}[Äquivalente Worte]
541 Jede Sprache $L \subseteq \Sigma^*$ induziert eine Äquivalenzrelation $\alert{\equiv_L \subseteq \Sigma^* \times \Sigma^*}$: 553 Jede Sprache $L \subseteq \Sigma^*$ induziert eine \structure{Äquivalenzrelation $\equiv_L \subseteq \Sigma^* \times \Sigma^*$}
542 \[ 554 \[ u \structure{\equiv_L} v \Longleftrightarrow \left( \forall w \in \Sigma^*. \alert{uw} \in L \Leftrightarrow \alert{vw} \in L\right) \]
543 u \alert{\equiv_L} v \Longleftrightarrow \left( \forall w \in \Sigma^*. \alert{uw} \in L \Leftrightarrow \alert{vw} \in L\right)
544 \]
545 \end{definition} 555 \end{definition}
546 556
547 \vfill 557 \vfill
548 558
549 \pause 559 \pause
550 560
551 \begin{definition}[Äquivalente Zustände] 561 \begin{definition}[Äquivalente Zustände]
552 Zwei Zustände im DFA $A$ sind \alert{äquivalent} wenn sie die selbe Sprache akzeptieren. 562 Zwei Zustände im DFA $A$ sind \structure{äquivalent} wenn sie die selbe Sprache akzeptieren.
553 563 \[ p \structure{\equiv_A} q \Longleftrightarrow \left( \forall w \in \Sigma^*. \alert{\hat{\delta}(p, w)} \in F \Leftrightarrow \alert{\hat{\delta}(q, w)} \in F \right) \]
554 \[
555 p \alert{\equiv_A} q \Longleftrightarrow \left( \forall w \in \Sigma^*. \alert{\hat{\delta}(p, w)} \in F \Leftrightarrow \alert{\hat{\delta}(q, w)} \in F \right)
556 \]
557 \end{definition} 564 \end{definition}
558 \end{frame} 565 \end{frame}
559 } 566 }
560 567
561 \defineUnit{unterscheidbarezustaende}{% 568 \defineUnit{unterscheidbarezustaende}{%
562 \begin{frame} 569 \begin{frame}
563 \frametitle{Unterscheidbare Zustände} 570 \frametitle{Unterscheidbare Zustände}
564 \setbeamercovered{dynamic} 571 \setbeamercovered{dynamic}
565 572
566 \begin{definition}[Unterscheidbarkeit] 573 \begin{definition}[Unterscheidbarkeit]
567 Zwei Zustände sind \alert{unterscheidbar}, wenn sie unterschiedliche Sprachen akzeptieren. 574 Zwei Zustände sind \structure{unterscheidbar}, wenn sie unterschiedliche Sprachen akzeptieren.
568 \[ 575 \[ p \structure{\not\equiv_A} q \Longleftrightarrow \left( \exists w \in \Sigma^*. \hat{\delta}(p, w) \alert{\in} F \wedge \hat{\delta}(q, w) \alert{\not\in} F \right) \]
569 p \alert{\not\equiv_A} q \Longleftrightarrow \left( \exists w \in \Sigma^*. \hat{\delta}(p, w) \alert{\in} F \wedge \hat{\delta}(q, w) \alert{\not\in} F \right)
570 \]
571 \end{definition} 576 \end{definition}
572 577
573 \begin{theorem} 578 \begin{theorem}
574 Sind $\delta(p, a)$ und $\delta(q, a)$ unterscheidbar, dann auch $p$ und $q$. 579 Sind $\delta(p, a)$ und $\delta(q, a)$ unterscheidbar, dann auch $p$ und $q$.
575 \end{theorem} 580 \end{theorem}
603 \defineUnit{quotientenautomat}{% 608 \defineUnit{quotientenautomat}{%
604 \begin{frame}[t] 609 \begin{frame}[t]
605 \frametitle{DFA minimieren} 610 \frametitle{DFA minimieren}
606 \setbeamercovered{dynamic} 611 \setbeamercovered{dynamic}
607 612
608 \begin{block}{Idee} 613 \begin{block}{Quotientenautomat}
609 Erzeuge den \alert{Quotientenautomaten}.
610 \begin{enumerate} 614 \begin{enumerate}
611 \item Entferne alle von $q_0$ \alert{nicht erreichbaren} Zustände 615 \item Entferne alle von $q_0$ \alert{nicht erreichbaren} Zustände
612 \item<1, 3-> Berechne die \alert{unterscheidbaren} Zustände 616 \item<1, 3-> Berechne die \alert{unterscheidbaren} Zustände
613 \item<1, 6-> \alert{Kollabiere} die äquivalenten Zustände 617 \item<1, 6-> \alert{Kollabiere} die äquivalenten Zustände
614 \end{enumerate} 618 \end{enumerate}