annotate notes/tex/ue07_notes.tex @ 30:4e28756e3dba

allow epsilon-edges in PDAs
author Markus Kaiser <markus.kaiser@in.tum.de>
date Mon, 10 Jun 2013 23:54:54 +0200
parents 19b94914c0db
children 90ffda7e20c7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
28
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
1 \documentclass[compress, german, t]{beamer}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
2
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
3 \usepackage[ngerman,english]{babel}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
4 \uselanguage{German}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
5 \languagepath{German}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
6
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
7 \usepackage[T1]{fontenc}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
8 \usepackage[utf8]{inputenc}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
9
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
10 \usepackage{helvet}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
11 \usepackage{url}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
12 \usepackage{listings}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
13 \usepackage{xcolor}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
14 \usepackage{tikz}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
15 \usepackage{pgfplots}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
16 \usetikzlibrary{automata}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
17 \usetikzlibrary{calc}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
18 \usetikzlibrary{shapes.geometric}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
19 \usetikzlibrary{positioning}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
20 \usepackage{tabu}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
21
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
22 \usepackage{beamerthemeLEA2}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
23
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
24 \newcommand{\N} {\mathbb{N}} % natürliche Zahlen
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
25 \newcommand{\Z} {\mathbb{Z}} % ganze Zahlen
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
26 \newcommand{\R} {\mathbb{R}} % reelle Zahlen
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
27 \newcommand{\Prob} {\mathrm{P}} % Wahrscheinlichkeit
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
28 \newcommand{\Oh} {\mathcal{O}} % O-Notation (Landau-Symbole)
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
29 \newcommand{\mycite}[1]{\textcolor{tumgreen}{[#1]}}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
30
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
31 \tikzstyle{every edge} = [draw,very thick,->,>=latex]
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
32 \tikzstyle{every state} = [circle,thick,draw,fill=tumblue!10]
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
33 \tikzstyle{automaton} = [shorten >=1pt, node distance = 3cm, auto, bend angle=20, initial text=]
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
34 \tikzstyle{small} = [every node/.style={scale=0.5}, baseline=(current bounding box.north), font=\LARGE]
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
35
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
36 \title{Übung 7: CYK und Kellerautomaten}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
37 \subtitle{Theoretische Informatik Sommersemester 2013}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
38 \author{\href{mailto:markus.kaiser@in.tum.de}{Markus Kaiser}}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
39
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
40 \begin{document}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
41
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
42 \begin{frame}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
43 \titlepage
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
44 \end{frame}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
45
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
46 \begin{frame}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
47 \frametitle{CYK}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
48 \setbeamercovered{dynamic}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
49
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
50 \begin{definition}[Cocke-Younger-Kasami-Algorithmus]
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
51 Der \alert{CYK-Algorithmus} entscheidet das Wortproblem für kontextfreie Grammatiken in Chomsky-Normalform in $\Oh(n^3)$. \\
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
52 Gegeben eine \alert{Grammatik} $G = (V, \Sigma, P, S)$ in CNF und ein \alert{Wort} $w = a_1 \ldots a_n \in \Sigma^*$.
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
53 Mit \[ V_{ij} := \left\{ A \in V \mid A \rightarrow_G^* \alert{a_i \ldots a_j} \right\}\]
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
54 ist \[ w \in L(G) \Leftrightarrow S \in V_{\alert{1n}} \]
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
55 \end{definition}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
56
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
57 \begin{align*}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
58 V_{ii} &= \left\{ A \in V \mid (A \rightarrow a_i) \in P \right\} \\
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
59 V_{ij} &= \left\{ A \in V \mid \exists k, B \in V_{ik}, C \in V_{k+1,j} \;.\; (A \rightarrow BC) \in P \right\}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
60 \end{align*}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
61
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
62 \end{frame}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
63
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
64 \begin{frame}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
65 \frametitle{CYK}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
66 \setbeamercovered{dynamic}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
67
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
68 \begin{block}{Idee}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
69 Kombiniere \alert{Teilwörter} zum ganzen Wort, wenn möglich.
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
70 \begin{enumerate}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
71 \item Initialisiere mit den \alert{$V_{ii}$}.
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
72 \item<3-5> Befülle die Tabelle von unten nach oben.
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
73 \end{enumerate}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
74 \end{block}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
75
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
76 \[ S \rightarrow AB \mid BC, \quad A \rightarrow BA \mid a, \quad B \rightarrow CC \mid b, \quad C \rightarrow AB \mid a \]
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
77 \begin{center}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
78 \extrarowsep=5pt
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
79 \begin{tabu}to .8\textwidth{r|X[c]|X[c]|X[c]|X[c]|}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
80 \tabucline{2-2}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
81 4 & \alt<-4>{}{$S,\ldots$} \\ \tabucline{2-3}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
82 3 & \alt<-3>{}{$\emptyset$} & \alt<-3>{}{$S, A, C$} \\ \tabucline{2-4}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
83 2 & \alt<-2>{}{$A$} & \alt<-2>{}{$B$} & \alt<-2>{}{$B$} \\ \tabucline{2-5}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
84 1 & \alt<-1>{}{$B$} & \alt<1>{}{$A,C$} & \alt<1>{}{$A,C$} & \alt<1>{}{$A,C$} \\ \tabucline{2-5}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
85 \multicolumn{1}{r}{} & \multicolumn{1}{c}{\alert{b}} & \multicolumn{1}{c}{\alert{a}} & \multicolumn{1}{c}{\alert{a}} & \multicolumn{1}{c}{\alert{a}} \\
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
86 \end{tabu}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
87 \end{center}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
88 \end{frame}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
89
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
90 \begin{frame}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
91 \frametitle{Kellerautomaten}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
92 \setbeamercovered{dynamic}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
93
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
94 \begin{definition}[Kellerautomat]
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
95 Ein \alert{PDA} (Push-Down-Automaton) ist ein Tupel $P = (Q, \Sigma, \Gamma, \delta, q_0, Z_0, F)$ aus einer/einem
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
96 \begin{itemize}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
97 \item endlichen Menge von \alert{Zuständen} $Q$
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
98 \item endlichen \alert{Eingabealphabet} $\Sigma$
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
99 \item endlichen \alert{Kelleralphabet} $\Gamma$
30
4e28756e3dba allow epsilon-edges in PDAs
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 29
diff changeset
100 \item \alert{Übergangsfunktion} $\delta : Q \times \left( \Sigma \cup \{\epsilon\} \right) \times \Gamma \mapsto P(Q \times \Gamma^*)$
28
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
101 \item \alert{Startzustand} $q_0 \in Q$
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
102 \item \alert{Kellerinitialisierung} $Z_0 \in \Gamma$
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
103 \item Menge von \alert{Endzuständen} $F \subseteq Q$
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
104 \end{itemize}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
105 \end{definition}
29
19b94914c0db add small example to pda definition
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 28
diff changeset
106
19b94914c0db add small example to pda definition
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 28
diff changeset
107 \begin{center}
19b94914c0db add small example to pda definition
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 28
diff changeset
108 \begin{tikzpicture}[automaton, node distance=4cm]
19b94914c0db add small example to pda definition
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 28
diff changeset
109 \node[state] (q0) {$q_i$};
19b94914c0db add small example to pda definition
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 28
diff changeset
110 \node[state] (q1) [right of = q0] {$q_j$};
19b94914c0db add small example to pda definition
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 28
diff changeset
111
19b94914c0db add small example to pda definition
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 28
diff changeset
112 \draw[every edge] (q0) edge node {$a, X/\gamma$} (q1);
19b94914c0db add small example to pda definition
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 28
diff changeset
113 \end{tikzpicture}
19b94914c0db add small example to pda definition
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 28
diff changeset
114 \end{center}
28
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
115 \end{frame}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
116
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
117 \begin{frame}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
118 \frametitle{Kellerautomaten}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
119 \setbeamercovered{dynamic}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
120
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
121 \begin{definition}[Kellerautomat]
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
122 Ein \alert{PDA} (Push-Down-Automaton) ist ein Tupel $P = (Q, \Sigma, \Gamma, \delta, q_0, Z_0, F)$ aus einer/einem
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
123 \begin{itemize}
30
4e28756e3dba allow epsilon-edges in PDAs
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 29
diff changeset
124 \item \alert{Übergangsfunktion} $\delta : Q \times \left( \Sigma \cup \{\epsilon\} \right) \times \Gamma \mapsto P(Q \times \Gamma^*)$
28
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
125 \end{itemize}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
126 \end{definition}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
127
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
128 \vfill
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
129
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
130 \begin{definition}[Akzeptanz]
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
131 Ein PDA $P$ akzeptiert $w \in \Sigma^*$ \alert{mit Endzustand} gdw
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
132 \[ \exists \alert{f \in F}, \gamma \in \Gamma^*.(q_0, w, Z_0) \rightarrow_P^* (\alert{f}, \epsilon, \gamma) \]
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
133 Ein PDA $P$ akzeptiert $w \in \Sigma^*$ \alert{mit leerem Keller} gdw
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
134 \[ \exists q \in Q.(q_0, w, Z_0) \rightarrow_P^* (q, \epsilon, \alert{\epsilon}) \]
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
135 \end{definition}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
136 \end{frame}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
137
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
138 \begin{frame}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
139 \frametitle{Kellerautomaten}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
140 \setbeamercovered{dynamic}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
141
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
142 \begin{definition}[Kellerautomat]
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
143 Ein \alert{PDA} (Push-Down-Automaton) ist ein Tupel $P = (Q, \Sigma, \Gamma, \delta, q_0, Z_0, F)$ aus einer/einem
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
144 \begin{itemize}
30
4e28756e3dba allow epsilon-edges in PDAs
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 29
diff changeset
145
4e28756e3dba allow epsilon-edges in PDAs
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 29
diff changeset
146 \item \alert{Übergangsfunktion} $\delta : Q \times \left( \Sigma \cup \{\epsilon\} \right) \times \Gamma \mapsto P(Q \times \Gamma^*)$
28
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
147 \end{itemize}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
148 \end{definition}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
149
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
150 \vfill
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
151
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
152 \begin{example}[]
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
153 PDA akzeptierend \alert{mit leerem Keller} zu $L = \left\{ a^nb^n \mid n \in \N \right\}$.
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
154
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
155 \centering
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
156 \begin{tikzpicture}[automaton]
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
157
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
158 \node[state, initial] (q0) {$q_0$};
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
159 \node[state] (q1) [right of = q0] {$q_1$};
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
160
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
161 \draw[->] (q0) edge [bend left] node {$\epsilon, A/A$} (q1);
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
162 \draw[->] (q0) edge [bend right] node [below] {$\epsilon, Z_0/Z_0$} (q1);
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
163
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
164 \draw[->] (q0) edge [loop above] node {$a, Z_0/AZ_0$} (q0);
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
165 \draw[->] (q0) edge [loop below] node {$a, A/AA$} (q0);
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
166
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
167 \draw[->] (q1) edge [loop above] node {$b, A/\epsilon$} (q1);
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
168 \draw[->] (q1) edge [loop below] node {$\epsilon, Z_0/\epsilon$} (q1);
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
169 \end{tikzpicture}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
170 \end{example}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
171 \end{frame}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
172
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
173 \begin{frame}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
174 \frametitle{Kontextfreie Sprachen}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
175 \setbeamercovered{dynamic}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
176
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
177 \begin{center}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
178 \begin{tikzpicture}[node distance=3cm]
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
179 \node (CFG) {CFG};
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
180 \node (CNF) [right of = CFG] {CNF};
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
181 \node (PDAe) [right of = CNF] {PDA$_\epsilon$};
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
182 \node (PDAf) [right of = PDAe] {PDA$_F$};
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
183
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
184 \draw [every edge, <->] (CFG) -- (CNF);
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
185 \draw [every edge, <->] (CNF) -- (PDAe);
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
186 \draw [every edge, <->] (PDAe) -- (PDAf);
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
187 \end{tikzpicture}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
188 \end{center}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
189
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
190 \pause
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
191 \vfill
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
192
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
193 \begin{itemize}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
194 \item \alert{Abschlusseigenschaften}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
195 \end{itemize}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
196 \begin{table}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
197 \begin{tabu}to \textwidth{X[c]|ccccc}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
198 & Schnitt & Vereinigung & Komplement & Produkt & Stern \\ \tabucline{}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
199 REG & ja & ja & ja & ja & ja\\
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
200 CFL & nein & ja & nein & ja & ja
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
201 \end{tabu}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
202 \end{table}
29
19b94914c0db add small example to pda definition
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 28
diff changeset
203
28
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
204 \begin{itemize}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
205 \item \alert{Entscheidbarkeit}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
206 \end{itemize}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
207 \begin{table}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
208 \begin{tabu}to \textwidth{X[c]|cccc}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
209 & Wortproblem & Leerheit & Äquivalenz & Schnittproblem\\ \tabucline{}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
210 DFA & $\Oh(n)$ & ja & ja & ja \\
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
211 CFG & $\Oh(n^3)$ & ja & nein & nein
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
212 \end{tabu}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
213 \end{table}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
214 \end{frame}
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
215
fe6b8e2da038 ue07 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
216 \end{document}