# HG changeset patch # User Markus Kaiser # Date 1373572670 -7200 # Node ID c14b92bfa07f2beb8ae7fa4afa7e17b3a1b8cd57 # Parent 35e8bb96da7bfe820a69a42cdd06136e4b9eb2bf add missing slides; correct some errors diff -r 35e8bb96da7b -r c14b92bfa07f notes/tex/automatons.tex --- 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} +} diff -r 35e8bb96da7b -r c14b92bfa07f notes/tex/computation.tex --- a/notes/tex/computation.tex Thu Jul 11 21:25:21 2013 +0200 +++ b/notes/tex/computation.tex Thu Jul 11 21:57:50 2013 +0200 @@ -120,6 +120,28 @@ \end{frame} } +\defineUnit{ndtm}{% +\begin{frame} + \frametitle{Nichtdeterministische TM} + \setbeamercovered{dynamic} + + \begin{definition}[Nichtdeterministische Turingmaschine] + Eine \alert{nichtdeterministische} Turingmaschine (TM) ist ein Tupel $M = (Q, \Sigma, \Gamma, \delta, q_0, \square, F)$ aus einer/einem + \begin{itemize} + \item \ldots + \item \alert{Übergangsfunktion} $\delta : Q \times \Gamma \to \mathcal{P} \left( Q \times \Gamma \times \left\{ L, R, N \right\} \right)$ + \item \ldots + \end{itemize} + \end{definition} + + \vfill + + \begin{theorem} + Zu jeder nichtdeterministischen TM $N$ gibt es eine deterministische TM $M$ mit \alert{$L(N) = L(M)$}. + \end{theorem} +\end{frame} +} + \defineUnit{chomsky}{% \begin{frame}[c] \frametitle{Chomsky-Hierarchie} @@ -471,6 +493,28 @@ \end{frame} } +\defineUnit{breduktion}{% +\begin{frame} + \frametitle{Reduzierbarkeit} + \setbeamercovered{dynamic} + + \begin{definition}[Reduzierbarkeit] + Eine Menge $A \subseteq \Sigma^*$ ist \alert{reduzierbar} auf eine Menge $B \subseteq \Gamma^*$ gdw es eine totale und berechenbare Funktion $f:\Sigma^* \to \Gamma^*$ gibt mit + \[\forall w \in \Sigma^*. w \in A \Longleftrightarrow f(w) \in B\] + Wir schreiben dann \alert{$A \leq B$}. + \end{definition} + + \vfill + + \structure{Intuition}: + \begin{itemize} + \item $B$ ist \alert{mindestens so schwer} zu lösen wie $A$ + \item Ist $A$ unlösbar, dann auch $B$. + \item Ist $B$ unlösbar, dann erst recht $A$. + \end{itemize} +\end{frame} +} + \defineUnit{spezielleshalteproblem}{% \begin{frame} \frametitle{Spezielles Halteproblem} diff -r 35e8bb96da7b -r c14b92bfa07f notes/tex/grammars.tex --- a/notes/tex/grammars.tex Thu Jul 11 21:25:21 2013 +0200 +++ b/notes/tex/grammars.tex Thu Jul 11 21:57:50 2013 +0200 @@ -64,6 +64,33 @@ \end{frame} } +\defineUnit{induktivesprachdefinition}{% +\begin{frame} + \frametitle{Induktive Sprachdefinition} + \setbeamercovered{dynamic} + + \begin{block}{Induktive Sprachdefinition} + Die \alert{induktive Definition} ($\Longrightarrow$) erzeugt Wörter \alert{bottom-up}, setzt also kleine Wörter zu größeren zusammen. + \end{block} + + \begin{example}[Vorbereitung 3] + Mit den Produktionen $S \rightarrow 0S1 \mid S11 \mid 1$: + + \begin{align*} + 1 &\in L_G(S) \\ + u \in L_G(S) \quad \Longrightarrow \quad 0\alert{u}1 &\in L_G(S) \\ + u \in L_G(S) \quad \Longrightarrow \quad \alert{u}11 &\in L_G(S) + \end{align*} + + Also z.B: + + \[ + 1 \in L_G(S) \Longrightarrow 0\alert{1}0 \in L_G(S) \Longrightarrow \alert{010}11 \in L_G(S) + \] + \end{example} +\end{frame} +} + \defineUnit{cnf}{% \begin{frame} \frametitle{CNF} @@ -173,6 +200,76 @@ \end{frame} } +\defineUnit{cfpl}{% +\begin{frame} + \frametitle{Pumping Lemma für CFLs} + \setbeamercovered{dynamic} + + \begin{theorem}[Pumping Lemma für kontextfreie Sprachen] + Sei $L \subseteq \Sigma^*$ kontextfrei. Dann gibt es ein $n > 0$, so dass sich \alert{jedes} $z \in L$ mit $|z| \geq n$ so in \alert{$z = uvwxy$} zerlegen lässt, dass + \begin{itemize} + \item $vx \alert{\neq \epsilon}$ + \item $|vwx| \alert{\leq n}$ + \item $\forall i \alert{\geq 0}. uv^iwx^iy \in L$ + \end{itemize} + \end{theorem} + + \vfill + + \begin{center} + \begin{columns} + \begin{column}{.4\textwidth} + \begin{tikzpicture} + \coordinate (outer) at (2, 2.4); + \coordinate (middle) at (2.2, 1.2); + \coordinate (inner) at (2.2, 0.6); + % outer + \draw[fill=tumred!40] (0, 0) -- (1.2, 0) -- (middle) -- (3.2, 0) -- (4, 0) -- (outer) node[above] {$S$} -- (0, 0); + % middle + \draw[fill=tumgreen!40] (1.2, 0) -- (1.7, 0) -- (inner) -- (2.7, 0) -- (3.2, 0) -- (middle) -- (1.2, 0); + % inner + \draw[fill=tumblue!40] (1.7, 0) -- (inner) -- (2.7, 0) -- (1.7, 0); + + % path + \draw[dashed, thick] (outer) -- (middle) -- (inner); + \draw[fill] (outer) circle (1pt); + \draw[fill] (middle) circle (1pt); + \draw[fill] (inner) circle (1pt); + + % nodes + \node[below] at (0.6, 0) {$u$}; + \node[below] at (1.45, 0) {$v$}; + \node[below] at (2.2, 0) {$w$}; + \node[below] at (2.95, 0) {$x$}; + \node[below] at (3.6, 0) {$y$}; + \end{tikzpicture} + \end{column} + \begin{column}{.4\textwidth} + \begin{tikzpicture} + \coordinate (outer) at (2, 2.4); + \coordinate (middle) at (2.2, 1.2); + \coordinate (inner) at (2.2, 0.6); + % outer + \draw[fill=tumred!40] (0, 0) -- (1.2, 0) -- (middle) -- (3.2, 0) -- (4, 0) -- (outer) node[above] {$S$} -- (0, 0); + % inner + \draw[fill=tumblue!40] (1.7, 0.6) -- (middle) -- (2.7, 0.6) -- (1.7, 0.6); + + % path + \draw[dashed, thick] (outer) -- (middle); + \draw[fill] (outer) circle (1pt); + \draw[fill] (middle) circle (1pt); + + % nodes + \node[below] at (0.6, 0) {$u$}; + \node[below] at (2.2, 0) {$w$}; + \node[below] at (3.6, 0) {$y$}; + \end{tikzpicture} + \end{column} + \end{columns} + \end{center} +\end{frame} +} + \defineUnit{cyk}{% \begin{frame} \frametitle{CYK} @@ -308,3 +405,48 @@ \end{example} \end{frame} } + +\defineUnit{kontextfreiesprachen}{% +\begin{frame} + \frametitle{Kontextfreie Sprachen} + \setbeamercovered{dynamic} + + \begin{center} + \begin{tikzpicture}[node distance=3cm] + \node (CFG) {CFG}; + \node (CNF) [right of = CFG] {CNF}; + \node (PDAe) [right of = CNF] {PDA$_\epsilon$}; + \node (PDAf) [right of = PDAe] {PDA$_F$}; + + \draw [every edge, <->] (CFG) -- (CNF); + \draw [every edge, <->] (CNF) -- (PDAe); + \draw [every edge, <->] (PDAe) -- (PDAf); + \end{tikzpicture} + \end{center} + + \pause + \vfill + + \begin{itemize} + \item \alert{Abschlusseigenschaften} + \end{itemize} + \begin{table} + \begin{tabu}to \textwidth{X[c]|ccccc} + & Schnitt & Vereinigung & Komplement & Produkt & Stern \\ \tabucline{} + REG & ja & ja & ja & ja & ja\\ + CFL & nein & ja & nein & ja & ja + \end{tabu} + \end{table} + + \begin{itemize} + \item \alert{Entscheidbarkeit} + \end{itemize} + \begin{table} + \begin{tabu}to \textwidth{X[c]|cccc} + & Wortproblem & Leerheit & Äquivalenz & Schnittproblem\\ \tabucline{} + DFA & $\Oh(n)$ & ja & ja & ja \\ + CFG & $\Oh(n^3)$ & ja & nein & nein + \end{tabu} + \end{table} +\end{frame} +}