Mercurial > 14ss.theoinf
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} |