annotate notes/tex/grammars.tex @ 24:322b0166cc24

fix errors in GNF and pda
author Markus Kaiser <markus.kaiser@in.tum.de>
date Thu, 22 May 2014 12:41:35 +0200
parents 7afd6762980f
children 44fd483bde00
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
1 \defineUnit{grammatik}{%
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
2 \begin{frame}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
3 \frametitle{Grammatiken}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
4 \setbeamercovered{dynamic}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
5
3
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
6 \begin{definition}[Grammatik]
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
7 Eine \structure{(Phrasenstruktur-)Grammatik} $G = (V, \Sigma, P, S)$ ist ein 4-Tupel:
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
8 \begin{description}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
9 \item[V] endlich viele \alert{Nichtterminale} (Variablen)
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
10 \item[$\Sigma$] ein Alphabet von \alert{Terminalen}
3
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
11 \item[P] endlich viele \alert{Produktionen} $\subseteq \left( V \cup \Sigma \right)^* \times \left( V \cup \Sigma \right)^*$
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
12 \item[S] ein \alert{Startsymbol} (Axiom)
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
13 \end{description}
3
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
14 Ist $(l, r) \in P$, so schreibt man \structure{$l \rightarrow r$}.
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
15 \end{definition}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
16
3
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
17 \vfill
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
18
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
19 \begin{example}[]
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
20 $\Sigma = \left\{ 0, 1 \right\}$. Grammatik für alle Wörter ungerader Länge, bei denen alle Nullen vor der ersten Eins stehen und weniger Nullen als Einsen vorhanden sind.
3
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
21 \visible<2>{
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
22 \begin{align}
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
23 S \rightarrow 0S1 \mid S11 \mid 1
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
24 \end{align}
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
25 }
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
26 \end{example}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
27 \end{frame}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
28 }
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
29
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
30 \defineUnit{ableitung}{%
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
31 \begin{frame}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
32 \frametitle{Ableitungsrelation}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
33 \setbeamercovered{dynamic}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
34
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
35 \begin{definition}[Ableitungsrelation]
3
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
36 Eine Grammatik $G$ induziert eine \structure{Ableitungsrelation} $\rightarrow_G$ auf Wörtern über $V \cup \Sigma$. Seien $x, y$ solche Wörter und
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
37 \begin{align}
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
38 z &= x\alert{\alpha}y\\
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
39 z^\prime &= x\alert{\beta}y\\
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
40 \intertext{Dann ist}
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
41 z &\rightarrow_G z^\prime
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
42 \end{align}
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
43 gdw. es eine Regel $\alert{\alpha \rightarrow \beta}$ in $P$ gibt.
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
44 \end{definition}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
45
3
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
46 \vfill
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
47
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
48 \begin{example}[]
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
49 Mit den Produktionen $S \rightarrow 0S1 \mid S11 \mid 1$:
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
50 \begin{align*}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
51 S &\rightarrow_G 0S1 \rightarrow_G 00S11 \rightarrow_G 00S1111 \rightarrow_G 0011111 \\
3
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
52 \intertext{Es gilt also}
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
53 S &\rightarrow_G^* 0011111
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
54 \end{align*}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
55 \end{example}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
56 \end{frame}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
57 }
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
58
3
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
59 \defineUnit{sprachtypen}{%
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
60 \begin{frame}
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
61 \frametitle{Sprachtypen}
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
62
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
63 Sei $G = (V, \Sigma, P, S)$ eine Grammatik und $\alpha \rightarrow \beta \in P$ beliebig.
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
64 \begin{definition}[Monotonie]
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
65 $G$ heißt \structure{(längen-)monoton}, wenn für $\alpha \neq S$ gilt
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
66 \begin{align}
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
67 \alert{\abs{\alpha} \leq \abs{\beta}}
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
68 \end{align}
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
69 und falls $S \to \epsilon \in P$, dann kommt $S$ nie auf der rechten Seite vor.
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
70 \end{definition}
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
71
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
72 \vfill
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
73
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
74 \begin{definition}[Chomsky-Typen]
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
75 Seien $A \in V$, $\gamma, \delta \in (V \cup \Sigma)^*$ und $\beta^\prime \in (V \cup \Sigma)^+$.\\
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
76 Damit $G$ vom \structure{Typ k} ist, muss für $\alpha$ und $\beta$ gelten
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
77 \begin{center}
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
78 \tabulinesep=4pt
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
79 \begin{tabu} to .8\textwidth{X[1,c,m]|[.5pt]X[2,c,m]X[2,c,m]}
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
80 & $\alpha$ & $\beta$\\\tabucline[.5pt]{-}
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
81 \structure{Typ 0} & beliebig & beliebig\\
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
82 \structure{Typ 1} & $= \alert{\gamma} A \alert{\delta}$ & $= \alert{\gamma} \beta^\prime \alert{\delta}$\\
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
83 \structure{Typ 2} & $\in V$ & beliebig\\
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
84 \structure{Typ 3} & $\in V$ & $\in \Sigma^+ \cup \Sigma^*V$\\
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
85 \end{tabu}
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
86 \end{center}
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
87 Ab Typ 1 muss $G$ auch \alert{monoton} sein.
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
88 \end{definition}
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
89 \end{frame}
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
90 }
624c6e0e4383 first slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 1
diff changeset
91
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
92 \defineUnit{cfl}{%
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
93 \begin{frame}[c]
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
94 \frametitle{Kontextfreie Sprache}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
95 \setbeamercovered{dynamic}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
96
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
97 \begin{definition}[Kontextfreie Sprache]
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
98 Eine kontextfreie Grammatik $G = (V, \Sigma, P, S)$ \alert{erzeugt} die Sprache
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
99 \[
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
100 L(G) := \left\{ w \in \Sigma^* \mid S \rightarrow_G^* w \right\}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
101 \]
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
102 Eine Sprache $L \subseteq \Sigma^*$ heißt \alert{kontextfrei} gdw es eine kontextfreie Grammatik $G$ gibt mit $L = L(G)$.
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
103 \end{definition}
19
d9096d761fab whitespace
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 18
diff changeset
104 \end{frame}
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
105 }
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
106
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
107 \defineUnit{induktivesprachdefinition}{%
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
108 \begin{frame}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
109 \frametitle{Induktive Sprachdefinition}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
110 \setbeamercovered{dynamic}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
111
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
112 \begin{block}{Induktive Sprachdefinition}
18
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
113 Die \alert{induktive Definition} zu einer Grammatik $G$ ergibt sich direkt aus ihren Produktionen. Dabei werden kleinere Worte zu größeren Worten \alert{zusammengesetzt}, die Definition erfolgt \structure{bottom-up}.
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
114 \end{block}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
115
18
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
116 \vfill
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
117
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
118 \begin{example}
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
119 Mit den Produktionen $S \rightarrow 0S1 \mid S11 \mid 1$:
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
120
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
121 \begin{align*}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
122 1 &\in L_G(S) \\
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
123 u \in L_G(S) \quad \Longrightarrow \quad 0\alert{u}1 &\in L_G(S) \\
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
124 u \in L_G(S) \quad \Longrightarrow \quad \alert{u}11 &\in L_G(S)
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
125 \end{align*}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
126
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
127 Also z.B:
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
128
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
129 \[
23
7afd6762980f fix example word
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 22
diff changeset
130 1 \in L_G(S) \Longrightarrow 0\alert{1}1 \in L_G(S) \Longrightarrow \alert{011}11 \in L_G(S)
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
131 \]
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
132 \end{example}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
133 \end{frame}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
134 }
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
135
10
e1b3b7b99d28 second notes and sheet
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 3
diff changeset
136 \defineUnit{eindeutigkeit}{%
e1b3b7b99d28 second notes and sheet
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 3
diff changeset
137 \begin{frame}
e1b3b7b99d28 second notes and sheet
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 3
diff changeset
138 \frametitle{Eindeutigkeit}
e1b3b7b99d28 second notes and sheet
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 3
diff changeset
139
11
de844d67518b fix powersets; wording
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 10
diff changeset
140 \begin{definition}[kontextfreie Linksableitung]
10
e1b3b7b99d28 second notes and sheet
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 3
diff changeset
141 Eine Ableitung
e1b3b7b99d28 second notes and sheet
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 3
diff changeset
142 \begin{align}
11
de844d67518b fix powersets; wording
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 10
diff changeset
143 S \to^* \structure{x}\alert{A}z \to \structure{x}\alert{\beta}z \to^* w
10
e1b3b7b99d28 second notes and sheet
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 3
diff changeset
144 \end{align}
11
de844d67518b fix powersets; wording
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 10
diff changeset
145 heißt (kontextfreie) \structure{Linksableitung}, wenn für jede Anwendung jeder Produktion $\alert{A \to \beta}$ gilt, dass in \structure{$x$} kein Nichtterminal vorkommt.
10
e1b3b7b99d28 second notes and sheet
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 3
diff changeset
146 \end{definition}
e1b3b7b99d28 second notes and sheet
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 3
diff changeset
147
e1b3b7b99d28 second notes and sheet
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 3
diff changeset
148 \vfill
e1b3b7b99d28 second notes and sheet
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 3
diff changeset
149
e1b3b7b99d28 second notes and sheet
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 3
diff changeset
150 \begin{definition}[Eindeutigkeit]
e1b3b7b99d28 second notes and sheet
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 3
diff changeset
151 \begin{itemize}
e1b3b7b99d28 second notes and sheet
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 3
diff changeset
152 \item Eine Grammatik heißt \structure{eindeutig}, wenn es für jedes Wort genau eine Linksableitung gibt.
e1b3b7b99d28 second notes and sheet
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 3
diff changeset
153 \item Eine Sprache heißt \structure{eindeutig}, wenn es für sie eine eindeutige Grammatik gibt.
e1b3b7b99d28 second notes and sheet
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 3
diff changeset
154 \end{itemize}
e1b3b7b99d28 second notes and sheet
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 3
diff changeset
155 \end{definition}
e1b3b7b99d28 second notes and sheet
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 3
diff changeset
156 \end{frame}
e1b3b7b99d28 second notes and sheet
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 3
diff changeset
157 }
e1b3b7b99d28 second notes and sheet
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 3
diff changeset
158
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
159 \defineUnit{cnf}{%
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
160 \begin{frame}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
161 \frametitle{CNF}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
162 \setbeamercovered{dynamic}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
163
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
164 \begin{definition}[Chomsky-Normalform]
16
a08f6e33cfb0 fourth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 11
diff changeset
165 Eine kontextfreie Grammatik ist in \structure{Chomsky-Normalform} (CNF) genau dann wenn alle Produktionen die Form
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
166 \[
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
167 A \rightarrow \alert{a} \quad \text{oder} \quad A \rightarrow \alert{BC}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
168 \]
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
169 haben.
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
170 \end{definition}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
171
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
172 \vfill
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
173
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
174 \begin{theorem}
19
d9096d761fab whitespace
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 18
diff changeset
175 Zu \alert{jeder} CFG $G$ existiert eine CFG $G'$ in Chomsky-Normalform mit
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
176 \[
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
177 L(G') = L(G) \alert{\setminus \left\{ \epsilon \right\}}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
178 \]
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
179 \end{theorem}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
180 \end{frame}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
181 }
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
182
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
183 \defineUnit{cnfkonstruktion}{%
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
184 \begin{frame}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
185 \frametitle{CNF Konstruktion}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
186 \setbeamercovered{dynamic}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
187
16
a08f6e33cfb0 fourth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 11
diff changeset
188 \begin{block}{CNF Konstruktion}
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
189 Sei $G = (V, \Sigma, P, S)$ eine CFG.
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
190 \begin{enumerate}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
191 \item<1,2-> Eliminiere \alert{$\epsilon$-Produktionen}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
192 \item<1,3-> Eliminiere \alert{Kettenproduktionen}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
193 \item<1,4-> \alert{Ersetze Terminale} durch Nichtterminale
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
194 \item<1,5-> \alert{Verkürze Ketten} von Nichtterminalen der Länge $\geq 3$
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
195 \end{enumerate}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
196 \end{block}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
197
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
198 \vspace{1em}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
199
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
200 \only<2> {
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
201 Sind \alert{$B \rightarrow \epsilon$} und \alert{$A \rightarrow \alpha B \beta$} in $P$, dann füge \alert{$A \rightarrow \alpha \beta$} hinzu. Entferne danach alle $\epsilon$-Produktionen.
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
202 \begin{align*}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
203 S &\rightarrow Ab, \quad A \rightarrow aAA \mid \epsilon \\
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
204 \intertext{wird zu:}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
205 S &\rightarrow \alert{Ab \mid b} \\
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
206 A &\rightarrow \alert{aAA \mid aA \mid a}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
207 \end{align*}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
208 }
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
209
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
210 \only<3> {
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
211 Sind \alert{$A \rightarrow B$} und \alert{$B \rightarrow \alpha$} in $P$, dann füge \alert{$A \rightarrow \alpha$} hinzu. Entferne danach alle Kettenproduktionen und unerreichbaren Symbole.
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
212 \begin{align*}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
213 S &\rightarrow A, \quad A \rightarrow a \mid B, \quad B \rightarrow bS \\
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
214 \intertext{wird zu:}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
215 A &\rightarrow \alert{a \mid bS} \\
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
216 S &\rightarrow \alert{a \mid bS}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
217 \end{align*}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
218 }
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
219
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
220 \only<4> {
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
221 Ersetze jedes \alert{$a \in \Sigma$} in einer rechten Seite \alert{länger als $1$} durch ein neues Nichtterminal.
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
222 \begin{align*}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
223 S &\rightarrow aa \mid Bb \mid b, \quad B \rightarrow \ldots \\
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
224 \intertext{wird zu:}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
225 S &\rightarrow \alert{X_aX_a \mid BX_b \mid b} \\
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
226 X_a &\rightarrow \alert{a}, \quad X_b \rightarrow \alert{b}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
227 \end{align*}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
228 }
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
229
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
230 \only<5> {
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
231 Ersetze jede Produktion der Form $A \rightarrow B_1B_2\ldots B_k$ durch neue Nichtterminale mit Produktionen der Länge $2$.
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
232 \begin{align*}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
233 S &\rightarrow X_aX_bBX_a, \quad X_a \rightarrow a, \quad X_b \rightarrow b, \quad B \rightarrow \ldots \\
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
234 \intertext{wird zu:}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
235 S &\rightarrow \alert{X_aT_1} \\
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
236 T_1 &\rightarrow \alert{X_bT_2}, \quad T_2 \rightarrow \alert{BX_a} \\
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
237 \end{align*}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
238 }
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
239 \end{frame}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
240 }
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
241
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
242 \defineUnit{nuetzlichessymbol}{%
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
243 \begin{frame}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
244 \frametitle{Eigenschaften von Symbolen}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
245 \setbeamercovered{dynamic}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
246
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
247 \begin{definition}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
248 Sei $G = (V, \Sigma, P, S)$ eine CFG. \\
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
249 Ein Symbol $X \in V \cup \Sigma$ ist
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
250 \begin{description}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
251 \item[nützlich] es gibt $S \rightarrow_G^* w \in \Sigma^*$ in der X \alert{vorkommt}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
252 \item[erzeugend] es gibt $\alert{X} \rightarrow_G^* w \in \Sigma^*$
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
253 \item[erreichbar] es gibt $S \rightarrow_G^* \alpha \alert{X} \beta$
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
254 \end{description}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
255 \end{definition}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
256
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
257 \vfill
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
258
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
259 \begin{theorem}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
260 Nützliche Symbole \alert{sind} erzeugend und erreichbar. Aber \alert{nicht} notwendigerweise umgekehrt.
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
261 \[
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
262 S \rightarrow AB \mid a, \quad A \rightarrow b
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
263 \]
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
264 \end{theorem}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
265 \end{frame}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
266 }
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
267
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
268 \defineUnit{cfpl}{%
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
269 \begin{frame}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
270 \frametitle{Pumping Lemma für CFLs}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
271 \setbeamercovered{dynamic}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
272
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
273 \begin{theorem}[Pumping Lemma für kontextfreie Sprachen]
16
a08f6e33cfb0 fourth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 11
diff changeset
274 Sei $L \subseteq \Sigma^*$ kontextfrei.\\
a08f6e33cfb0 fourth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 11
diff changeset
275 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
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
276 \begin{itemize}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
277 \item $vx \alert{\neq \epsilon}$
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
278 \item $|vwx| \alert{\leq n}$
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
279 \item $\forall i \alert{\geq 0}. uv^iwx^iy \in L$
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
280 \end{itemize}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
281 \end{theorem}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
282
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
283 \vfill
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
284
17
0f7daeda8363 wording; add explicit productions to cf-pumping lemma
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 16
diff changeset
285 \vspace{1.5em}
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
286 \begin{center}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
287 \begin{columns}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
288 \begin{column}{.4\textwidth}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
289 \begin{tikzpicture}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
290 \coordinate (outer) at (2, 2.4);
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
291 \coordinate (middle) at (2.2, 1.2);
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
292 \coordinate (inner) at (2.2, 0.6);
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
293 % outer
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
294 \draw[fill=tumred!40] (0, 0) -- (1.2, 0) -- (middle) -- (3.2, 0) -- (4, 0) -- (outer) node[above] {$S$} -- (0, 0);
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
295 % middle
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
296 \draw[fill=tumgreen!40] (1.2, 0) -- (1.7, 0) -- (inner) -- (2.7, 0) -- (3.2, 0) -- (middle) -- (1.2, 0);
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
297 % inner
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
298 \draw[fill=tumblue!40] (1.7, 0) -- (inner) -- (2.7, 0) -- (1.7, 0);
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
299
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
300 % path
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
301 \draw[dashed, thick] (outer) -- (middle) -- (inner);
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
302 \draw[fill] (outer) circle (1pt);
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
303 \draw[fill] (middle) circle (1pt);
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
304 \draw[fill] (inner) circle (1pt);
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
305
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
306 % nodes
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
307 \node[below] at (0.6, 0) {$u$};
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
308 \node[below] at (1.45, 0) {$v$};
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
309 \node[below] at (2.2, 0) {$w$};
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
310 \node[below] at (2.95, 0) {$x$};
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
311 \node[below] at (3.6, 0) {$y$};
17
0f7daeda8363 wording; add explicit productions to cf-pumping lemma
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 16
diff changeset
312
0f7daeda8363 wording; add explicit productions to cf-pumping lemma
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 16
diff changeset
313 \node[right] at (middle) {$A$};
0f7daeda8363 wording; add explicit productions to cf-pumping lemma
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 16
diff changeset
314 \node[right] at (inner) {$A$};
0f7daeda8363 wording; add explicit productions to cf-pumping lemma
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 16
diff changeset
315
0f7daeda8363 wording; add explicit productions to cf-pumping lemma
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 16
diff changeset
316 \node at (2, 3.4) {$S \to^* uAy \to^* uvAxy \to^* uvwxy$};
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
317 \end{tikzpicture}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
318 \end{column}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
319 \begin{column}{.4\textwidth}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
320 \begin{tikzpicture}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
321 \coordinate (outer) at (2, 2.4);
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
322 \coordinate (middle) at (2.2, 1.2);
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
323 \coordinate (inner) at (2.2, 0.6);
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
324 % outer
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
325 \draw[fill=tumred!40] (0, 0) -- (1.2, 0) -- (middle) -- (3.2, 0) -- (4, 0) -- (outer) node[above] {$S$} -- (0, 0);
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
326 % inner
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
327 \draw[fill=tumblue!40] (1.7, 0.6) -- (middle) -- (2.7, 0.6) -- (1.7, 0.6);
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
328
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
329 % path
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
330 \draw[dashed, thick] (outer) -- (middle);
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
331 \draw[fill] (outer) circle (1pt);
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
332 \draw[fill] (middle) circle (1pt);
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
333
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
334 % nodes
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
335 \node[below] at (0.6, 0) {$u$};
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
336 \node[below] at (2.2, 0) {$w$};
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
337 \node[below] at (3.6, 0) {$y$};
17
0f7daeda8363 wording; add explicit productions to cf-pumping lemma
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 16
diff changeset
338
0f7daeda8363 wording; add explicit productions to cf-pumping lemma
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 16
diff changeset
339 \node[right] at (middle) {$A$};
0f7daeda8363 wording; add explicit productions to cf-pumping lemma
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 16
diff changeset
340
0f7daeda8363 wording; add explicit productions to cf-pumping lemma
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 16
diff changeset
341 \node at (2, 3.4) {$S \to^* uAy \to^* uwy$};
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
342 \end{tikzpicture}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
343 \end{column}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
344 \end{columns}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
345 \end{center}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
346 \end{frame}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
347 }
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
348
18
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
349 \defineUnit{ogden}{%
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
350 \begin{frame}
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
351 \frametitle{Ogden Lemma für kontextfreie Sprachen}
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
352 \setbeamercovered{dynamic}
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
353
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
354 \begin{theorem}[Ogden Lemma für kontextfreie Sprachen]
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
355 Sei $L \subseteq \Sigma^*$ kontextfrei.\\
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
356 Dann gibt es ein $n > 0$, so dass für \alert{jedes} $z \in L$ mit $|z| \geq n$ gilt:\\
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
357 Für \alert{jede} Markierung $M$ von \alert{mindestens $n$} Buchstaben in $z$ gibt es eine Zerlegung $z = uvwxy$ mit
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
358 \begin{itemize}
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
359 \item $|vx|_M \alert{\geq 1}$
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
360 \item $|vwx|_M \alert{\leq n}$
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
361 \item $\forall i \alert{\geq 0}. uv^iwx^iy \in L$
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
362 \end{itemize}
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
363 \end{theorem}
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
364
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
365 \hfill
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
366
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
367 \begin{example}[Markierung]
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
368 Sei $w = abaabaaa$ ein Wort. Dann ist
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
369 \begin{align}
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
370 w = a\structure{ba}a\structure{b}aaa
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
371 \end{align}
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
372 eine Markierung mit $|w|_M = 3$.
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
373 \end{example}
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
374 \end{frame}
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
375 }
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
376
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
377 \defineUnit{cyk}{%
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
378 \begin{frame}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
379 \frametitle{CYK}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
380 \setbeamercovered{dynamic}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
381
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
382 \begin{definition}[Cocke-Younger-Kasami-Algorithmus]
16
a08f6e33cfb0 fourth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 11
diff changeset
383 Der \structure{CYK-Algorithmus} entscheidet das Wortproblem für kontextfreie Grammatiken in Chomsky-Normalform in $\Oh(n^3)$. \\
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
384 Gegeben eine \alert{Grammatik} $G = (V, \Sigma, P, S)$ in CNF und ein \alert{Wort} $w = a_1 \ldots a_n \in \Sigma^*$.
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
385 Mit \[ V_{ij} := \left\{ A \in V \mid A \rightarrow_G^* \alert{a_i \ldots a_j} \right\}\]
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
386 ist \[ w \in L(G) \Leftrightarrow S \in V_{\alert{1n}} \]
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
387 \end{definition}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
388
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
389 \begin{align*}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
390 V_{ii} &= \left\{ A \in V \mid (A \rightarrow a_i) \in P \right\} \\
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
391 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\}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
392 \end{align*}
19
d9096d761fab whitespace
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 18
diff changeset
393 \end{frame}
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
394 }
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
395
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
396 \defineUnit{cykbeispiel}{%
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
397 \begin{frame}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
398 \frametitle{CYK}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
399 \setbeamercovered{dynamic}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
400
16
a08f6e33cfb0 fourth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 11
diff changeset
401 \begin{block}{CYK-Algorithmus}
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
402 Kombiniere \alert{Teilwörter} zum ganzen Wort, wenn möglich.
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
403 \begin{enumerate}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
404 \item Initialisiere mit den \alert{$V_{ii}$}.
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
405 \item<3-5> Befülle die Tabelle von unten nach oben.
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
406 \end{enumerate}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
407 \end{block}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
408
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
409 \[ S \rightarrow AB \mid BC, \quad A \rightarrow BA \mid a, \quad B \rightarrow CC \mid b, \quad C \rightarrow AB \mid a \]
16
a08f6e33cfb0 fourth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 11
diff changeset
410 \vspace{2em}
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
411 \begin{center}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
412 \extrarowsep=5pt
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
413 \begin{tabu}to .8\textwidth{r|X[c]|X[c]|X[c]|X[c]|}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
414 \tabucline{2-2}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
415 4 & \alt<-4>{}{$S,\ldots$} \\ \tabucline{2-3}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
416 3 & \alt<-3>{}{$\emptyset$} & \alt<-3>{}{$S, A, C$} \\ \tabucline{2-4}
20
02e25244ae1f fix error in cyk
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 19
diff changeset
417 2 & \alt<-2>{}{$A,S$} & \alt<-2>{}{$B$} & \alt<-2>{}{$B$} \\ \tabucline{2-5}
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
418 1 & \alt<-1>{}{$B$} & \alt<1>{}{$A,C$} & \alt<1>{}{$A,C$} & \alt<1>{}{$A,C$} \\ \tabucline{2-5}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
419 \multicolumn{1}{r}{} & \multicolumn{1}{c}{\alert{b}} & \multicolumn{1}{c}{\alert{a}} & \multicolumn{1}{c}{\alert{a}} & \multicolumn{1}{c}{\alert{a}} \\
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
420 \end{tabu}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
421 \end{center}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
422 \end{frame}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
423 }
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
424
18
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
425 \defineUnit{greibach}{%
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
426 \begin{frame}
21
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
427 \frametitle{Greibach-Normalform}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
428
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
429 \begin{definition}[Greibach-Normalform]
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
430 Eine kontextfreie Grammatik ist in \structure{Greibach-Normalform} (GNF) genau dann wenn alle Produktionen außer $S \to \epsilon$ die Form
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
431 \[
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
432 A \rightarrow \alert{a\alpha} \quad \text{mit} \quad a \in \Sigma, \alpha \in V^*
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
433 \]
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
434 haben.
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
435 \end{definition}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
436
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
437 \vfill
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
438
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
439 \begin{theorem}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
440 Zu \alert{jeder} CFG $G$ existiert eine CFG $G'$ in Greibach-Normalform mit
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
441 \[
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
442 L(G') = L(G)
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
443 \]
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
444 \end{theorem}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
445 \end{frame}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
446
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
447 \begin{frame}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
448 \frametitle{Einsetzen von Produktionen}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
449
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
450 \begin{theorem}[Einsetzen von Produktionen]
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
451 Enthält eine CFG die Produktionen
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
452 \begin{align}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
453 A &\to \alpha_1 \structure{B} \alpha_2\\
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
454 \structure{B} &\to \alert{\beta_1} \mid \dots \mid \alert{\beta_k}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
455 \intertext{so ändert sich die erzeugte Sprache nicht, wenn man $B$ in $A$ \structure{einsetzt}.}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
456 A &\to \alpha_1 \alert{\beta_1} \alpha_2 \mid \dots \mid \alpha_1 \alert{\beta_k} \alpha_2
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
457 \end{align}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
458 \end{theorem}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
459
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
460 \vfill
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
461
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
462 \begin{example}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
463 Die Grammatik
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
464 \begin{align}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
465 S &\to a \mid a\structure{B}c \\
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
466 \structure{B} &\to \alert{b} \mid \alert{bS}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
467 \intertext{ist äquivalent zur Grammatik}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
468 S &\to a \mid a\alert{b}c \mid a\alert{bS}c
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
469 \end{align}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
470 \end{example}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
471 \end{frame}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
472
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
473 \begin{frame}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
474 \frametitle{Linksrekursive Produktionen}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
475
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
476 \begin{definition}[Linksrekursive Produktion]
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
477 Man nennt eine Produktion \structure{linksrekursiv}, wenn sie die Form
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
478 \[
22
334369297f54 fix compilation error; fix errors in gnf construction; start suppliing complete notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 21
diff changeset
479 \structure{A} \to \structure{A}\alpha_1 \mid \dots \mid \structure{A}\alpha_k \mid \beta_1 \mid \dots \mid \beta_l \quad \text{mit} \quad \alpha_i, \beta_i \in \left( V \cup \Sigma \right)^+
21
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
480 \]
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
481 hat, wobei die $\beta_i$ nicht mit $A$ beginnen.
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
482 \end{definition}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
483
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
484 \vfill
18
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
485
21
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
486 \begin{theorem}[Ersetzen von linksrekursiven Produktionen]
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
487 Sei $A$ eine linksrekursive Produktion einer CFG.\\
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
488 Dann ändert sich die erzeugte Sprache nicht, wenn wir $A$ \structure{ersetzen} durch
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
489 \begin{align}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
490 \structure{A} &\to \beta_1 \mid \dots \mid \beta_l \mid \beta_1 \alert{B} \mid \dots \mid \beta_l \alert{B}\\
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
491 \alert{B} &\to \alpha_1 \mid \dots \mid \alpha_k \mid \alpha_1 \alert{B} \mid \dots \mid \alpha_k \alert{B}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
492 \end{align}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
493 \alert{$B$} ist niemals linksrekursiv.
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
494 \end{theorem}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
495 \end{frame}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
496 }
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
497
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
498 \defineUnit{greibachkonstruktion}{%
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
499 \begin{frame}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
500 \frametitle{GNF Konstruktion}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
501
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
502 \begin{block}{GNF Konstruktion}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
503 Sei $G = (V, \Sigma, P, S)$ eine CFG.
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
504 \begin{enumerate}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
505 \item<1,2-> \alert{Nummeriere} Nichtterminale
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
506 \item<1,3-> Mache Prduktionen \alert{aufsteigend} und \alert{nicht rekursiv}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
507 \item<1,5-> \alert{Setze} Produktionen absteigend \alert{ein}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
508 \end{enumerate}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
509 \end{block}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
510
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
511 \vspace{1em}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
512
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
513 \only<2> {
22
334369297f54 fix compilation error; fix errors in gnf construction; start suppliing complete notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 21
diff changeset
514 Benenne alle Nichtterminale \structure{beliebig} um in $A_1, \dots, A_{\abs{V}}$.
21
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
515 \begin{align}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
516 S &\rightarrow Ab, \quad A \rightarrow aAS \mid \epsilon \\
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
517 \intertext{wird zu}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
518 A_1 &\to A_2b\\
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
519 A_2 &\to aA_2A_1
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
520 \end{align}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
521 }
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
522
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
523 \only<3,4> {
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
524 Betrachte alle Produktionen $A_l \to \dots$ in \structure{aufsteigender Reihenfolge}.\\
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
525 \begin{itemize}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
526 \item Existieren Produktionen der Form $A_l \to \structure{A_r}\alpha$ mit \alert{$r < l$}, dann setze \structure{$A_r$} in $A_l$ ein.
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
527 \only<3> {
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
528 \begin{align}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
529 A_1 &\to A_2 \mid a \mid b \\
22
334369297f54 fix compilation error; fix errors in gnf construction; start suppliing complete notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 21
diff changeset
530 A_2 &\to \structure{A_1}A_1
21
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
531 \intertext{wird zu}
24
322b0166cc24 fix errors in GNF and pda
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 23
diff changeset
532 A_1 &\to A_2 \mid a \mid b\\
22
334369297f54 fix compilation error; fix errors in gnf construction; start suppliing complete notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 21
diff changeset
533 A_2 &\to \structure{A_2}A_1 \mid \structure{a}A_1 \mid \structure{b}A_1
21
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
534 \end{align}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
535 }
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
536 \item Entferne danach alle \structure{linksrekursiven} $A_l$-Produktionen.
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
537 \only<4> {
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
538 \begin{align}
22
334369297f54 fix compilation error; fix errors in gnf construction; start suppliing complete notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 21
diff changeset
539 A_2 &\to A_2\structure{A_1} \mid \alert{aA_1} \mid \alert{bA_1}
21
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
540 \intertext{wird zu}
22
334369297f54 fix compilation error; fix errors in gnf construction; start suppliing complete notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 21
diff changeset
541 A_2 &\to \alert{aA_1} \mid \alert{bA_1} \mid \alert{aA_1}A_3 \mid \alert{bA_1}A_3\\
334369297f54 fix compilation error; fix errors in gnf construction; start suppliing complete notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 21
diff changeset
542 A_3 &\to \structure{A_1} \mid \structure{A_1}A_3
21
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
543 \end{align}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
544 }
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
545 \end{itemize}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
546 }
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
547
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
548 \only<5> {
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
549 Betrachte alle Produktionen $A_l \to \dots$ in \structure{absteigender Reihenfolge}.\\
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
550 \begin{itemize}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
551 \item Existieren Produktionen der Form $A_l \to \structure{A_r}\alpha$ mit \alert{$r > l$}, dann setze \structure{$A_r$} in $A_l$ ein.
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
552 \begin{align}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
553 A_1 &\to a \mid b \mid \structure{A_2} \\
22
334369297f54 fix compilation error; fix errors in gnf construction; start suppliing complete notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 21
diff changeset
554 A_2 &\to aA_1 \mid bA_1 \mid aA_1A_3 \mid bA_1A_3\\
334369297f54 fix compilation error; fix errors in gnf construction; start suppliing complete notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 21
diff changeset
555 A_3 &\to bA_3 \mid c
21
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
556 \intertext{$A_1$ wird zu}
22
334369297f54 fix compilation error; fix errors in gnf construction; start suppliing complete notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 21
diff changeset
557 A_1 &\to a \mid b \mid \structure{aA_1} \mid \structure{bA_1} \mid \structure{aA_1A_3} \mid \structure{bA_1A_3}
21
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
558 \end{align}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
559 \end{itemize}
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
560
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
561 }
18
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
562 \end{frame}
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
563 }
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
564
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
565 \defineUnit{pda}{%
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
566 \begin{frame}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
567 \frametitle{Kellerautomaten}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
568 \setbeamercovered{dynamic}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
569
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
570 \begin{definition}[Kellerautomat]
18
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
571 Ein \structure{PDA} (Push-Down-Automaton) ist ein Tupel $P = (Q, \Sigma, \Gamma, \delta, q_0, Z_0, F)$ aus einer/einem
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
572 \begin{itemize}
18
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
573 \item endlichen Menge von \structure{Zuständen} $Q$
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
574 \item endlichen \structure{Eingabealphabet} $\Sigma$
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
575 \item endlichen \structure{Kelleralphabet} $\Gamma$
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
576 \item \structure{Übergangsfunktion} $\delta : Q \times \left( \Sigma \cup \{\epsilon\} \right) \times \Gamma \to P(Q \times \Gamma^*)$
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
577 \item \structure{Startzustand} $q_0 \in Q$
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
578 \item \structure{Kellerinitialisierung} $Z_0 \in \Gamma$
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
579 \item Menge von \structure{Endzuständen} $F \subseteq Q$
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
580 \end{itemize}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
581 \end{definition}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
582
18
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
583 \vfill
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
584
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
585 \begin{center}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
586 \begin{tikzpicture}[automaton, node distance=4cm]
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
587 \node[state] (q0) {$q_i$};
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
588 \node[state] (q1) [right of = q0] {$q_j$};
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
589
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
590 \draw[every edge] (q0) edge node {$a, X/\gamma$} (q1);
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
591 \end{tikzpicture}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
592 \end{center}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
593 \end{frame}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
594 }
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
595
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
596 \defineUnit{pdaakzeptanz}{%
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
597 \begin{frame}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
598 \frametitle{Kellerautomaten}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
599 \setbeamercovered{dynamic}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
600
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
601 \begin{definition}[Kellerautomat]
18
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
602 Ein \structure{PDA} (Push-Down-Automaton) ist ein Tupel $P = (Q, \Sigma, \Gamma, \delta, q_0, Z_0, F)$ aus einer/einem
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
603 \begin{itemize}
18
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
604 \item \structure{Übergangsfunktion} $\delta : Q \times \left( \Sigma \cup \{\epsilon\} \right) \times \Gamma \to P(Q \times \Gamma^*)$
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
605 \end{itemize}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
606 \end{definition}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
607
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
608 \vfill
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
609
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
610 \begin{definition}[Akzeptanz]
18
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
611 Ein PDA $P$ akzeptiert $w \in \Sigma^*$ \structure{mit Endzustand} gdw
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
612 \[ \exists \alert{f \in F}, \gamma \in \Gamma^*.(q_0, w, Z_0) \rightarrow_P^* (\alert{f}, \epsilon, \gamma) \]
18
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
613 Ein PDA $P$ akzeptiert $w \in \Sigma^*$ \structure{mit leerem Keller} gdw
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
614 \[ \exists q \in Q.(q_0, w, Z_0) \rightarrow_P^* (q, \epsilon, \alert{\epsilon}) \]
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
615 \end{definition}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
616 \end{frame}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
617 }
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
618
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
619 \defineUnit{pdabeispiel}{%
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
620 \begin{frame}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
621 \frametitle{Kellerautomaten}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
622 \setbeamercovered{dynamic}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
623
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
624 \begin{definition}[Kellerautomat]
18
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
625 Ein \structure{PDA} (Push-Down-Automaton) ist ein Tupel $P = (Q, \Sigma, \Gamma, \delta, q_0, Z_0, F)$ aus einer/einem
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
626 \begin{itemize}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
627
18
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
628 \item \structure{Übergangsfunktion} $\delta : Q \times \left( \Sigma \cup \{\epsilon\} \right) \times \Gamma \to P(Q \times \Gamma^*)$
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
629 \end{itemize}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
630 \end{definition}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
631
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
632 \vfill
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
633
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
634 \begin{example}[]
18
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
635 PDA akzeptierend \alert{mit leerem Keller} zu $L = \left\{ a^nb^n \mid n \in \N_0 \right\}$.
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
636
18
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
637 \bigskip
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
638 \centering
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
639 \begin{tikzpicture}[automaton]
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
640
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
641 \node[state, initial] (q0) {$q_0$};
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
642 \node[state] (q1) [right of = q0] {$q_1$};
18
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
643 \node[state] (q2) [right of = q1] {$q_2$};
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
644
21
6a3cdddedcf7 fifth sheet and notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 20
diff changeset
645 \draw[->] (q0) edge [loop above] node {$\epsilon, Z_0/\epsilon$} (q0);
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
646
18
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
647 \draw[->] (q0) edge node {$a, Z_0/AZ_0$} (q1);
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
648 \draw[->] (q1) edge node {$\epsilon, A/A$} (q2);
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
649
18
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
650 \draw[->] (q1) edge [loop above] node {$a, */A*$} (q1);
1359f5a6aa60 first half of fifth notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 17
diff changeset
651
24
322b0166cc24 fix errors in GNF and pda
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 23
diff changeset
652 \draw[->] (q2) edge [loop above] node {$b, A/\epsilon$} (q2);
322b0166cc24 fix errors in GNF and pda
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 23
diff changeset
653 \draw[->] (q2) edge [loop below] node {$\epsilon, Z_0/\epsilon$} (q2);
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
654 \end{tikzpicture}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
655 \end{example}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
656 \end{frame}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
657 }
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
658
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
659 \defineUnit{kontextfreiesprachen}{%
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
660 \begin{frame}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
661 \frametitle{Kontextfreie Sprachen}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
662 \setbeamercovered{dynamic}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
663
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
664 \begin{center}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
665 \begin{tikzpicture}[node distance=3cm]
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
666 \node (CFG) {CFG};
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
667 \node (CNF) [right of = CFG] {CNF};
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
668 \node (PDAe) [right of = CNF] {PDA$_\epsilon$};
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
669 \node (PDAf) [right of = PDAe] {PDA$_F$};
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
670
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
671 \draw [every edge, <->] (CFG) -- (CNF);
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
672 \draw [every edge, <->] (CNF) -- (PDAe);
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
673 \draw [every edge, <->] (PDAe) -- (PDAf);
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
674 \end{tikzpicture}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
675 \end{center}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
676
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
677 \vfill
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
678
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
679 \begin{itemize}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
680 \item \alert{Abschlusseigenschaften}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
681 \end{itemize}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
682 \begin{table}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
683 \begin{tabu}to \textwidth{X[c]|ccccc}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
684 & Schnitt & Vereinigung & Komplement & Produkt & Stern \\ \tabucline{}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
685 REG & ja & ja & ja & ja & ja\\
19
d9096d761fab whitespace
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 18
diff changeset
686 CFL & nein & ja & nein & ja & ja
1
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
687 \end{tabu}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
688 \end{table}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
689
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
690 \begin{itemize}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
691 \item \alert{Entscheidbarkeit}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
692 \end{itemize}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
693 \begin{table}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
694 \begin{tabu}to \textwidth{X[c]|cccc}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
695 & Wortproblem & Leerheit & Äquivalenz & Schnittproblem\\ \tabucline{}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
696 DFA & $\Oh(n)$ & ja & ja & ja \\
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
697 CFG & $\Oh(n^3)$ & ja & nein & nein
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
698 \end{tabu}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
699 \end{table}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
700 \end{frame}
a9275b863a0d add old slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
701 }