annotate notes/tex/ue06_notes.tex @ 25:6a76770d5cfb

ue06 notes
author Markus Kaiser <markus.kaiser@in.tum.de>
date Tue, 04 Jun 2013 00:23:37 +0200
parents
children 914314a7117d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
25
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
1 \documentclass[compress, german, t]{beamer}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
2
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
3 \usepackage[ngerman,english]{babel}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
4 \uselanguage{German}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
5 \languagepath{German}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
6
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
7 \usepackage[T1]{fontenc}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
8 \usepackage[utf8]{inputenc}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
9
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
10 \usepackage{helvet}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
11 \usepackage{url}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
12 \usepackage{listings}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
13 \usepackage{xcolor}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
14 \usepackage{tikz}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
15 \usepackage{pgfplots}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
16 \usetikzlibrary{automata}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
17 \usetikzlibrary{calc}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
18 \usetikzlibrary{shapes.geometric}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
19 \usetikzlibrary{positioning}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
20 \usepackage{tabu}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
21
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
22 \usepackage{beamerthemeLEA2}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
23
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
24 \newcommand{\N} {\mathbb{N}} % natürliche Zahlen
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
25 \newcommand{\Z} {\mathbb{Z}} % ganze Zahlen
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
26 \newcommand{\R} {\mathbb{R}} % reelle Zahlen
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
27 \newcommand{\Prob} {\mathrm{P}} % Wahrscheinlichkeit
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
28 \newcommand{\Oh} {\mathcal{O}} % O-Notation (Landau-Symbole)
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
29 \newcommand{\mycite}[1]{\textcolor{tumgreen}{[#1]}}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
30
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
31 \tikzstyle{every edge} = [draw,very thick,->,>=latex]
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
32 \tikzstyle{every state} = [circle,thick,draw,fill=tumblue!10]
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
33 \tikzstyle{automaton} = [shorten >=1pt, node distance = 3cm, auto, bend angle=20, initial text=]
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
34 \tikzstyle{small} = [every node/.style={scale=0.5}, baseline=(current bounding box.north), font=\LARGE]
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
35
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
36 \title{Übung 5: CNF und CFL-Pumping Lemma}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
37 \subtitle{Theoretische Informatik Sommersemester 2013}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
38 \author{\href{mailto:markus.kaiser@in.tum.de}{Markus Kaiser}}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
39
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
40 \begin{document}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
41
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
42 \begin{frame}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
43 \titlepage
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
44 \end{frame}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
45
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
46 \begin{frame}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
47 \frametitle{CNF}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
48 \setbeamercovered{dynamic}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
49
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
50 \begin{definition}[Chomsky-Normalform]
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
51 Eine kontextfreie Grammatik ist in \alert{Chomsky-Normalform} (CNF) genau dann wenn alle Produktionen die Form
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
52 \[
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
53 A \rightarrow \alert{a} \quad \text{oder} \quad A \rightarrow \alert{BC}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
54 \]
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
55 haben.
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
56 \end{definition}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
57
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
58 \vfill
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
59
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
60 \begin{theorem}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
61 Zu \alert{jeder} CFG $G$ existiert eine CFG $G'$ in Chomsky-Normalform mit
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
62 \[
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
63 L(G') = L(G) \alert{\setminus \left\{ \epsilon \right\}}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
64 \]
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
65 \end{theorem}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
66 \end{frame}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
67
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
68 \begin{frame}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
69 \frametitle{CNF Konstruktion}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
70 \setbeamercovered{dynamic}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
71
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
72 \begin{block}{Idee}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
73 Sei $G = (V, \Sigma, P, S)$ eine CFG.
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
74 \begin{enumerate}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
75 \item<1,2-> Eliminiere \alert{$\epsilon$-Produktionen}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
76 \item<1,3-> Eliminiere \alert{Kettenproduktionen}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
77 \item<1,4-> \alert{Ersetze Terminale} durch Nichtterminale
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
78 \item<1,5-> \alert{Verkürze Ketten} von Nichtterminalen der Länge $\geq 3$
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
79 \end{enumerate}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
80 \end{block}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
81
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
82 \vspace{1em}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
83
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
84 \only<2> {
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
85 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.
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
86 \begin{align*}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
87 S &\rightarrow Ab, \quad A \rightarrow aAA \mid \epsilon \\
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
88 \intertext{neu:}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
89 S &\rightarrow \alert{b} \\
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
90 A &\rightarrow \alert{aA \mid a}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
91 \end{align*}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
92 }
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
93
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
94 \only<3> {
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
95 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.
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
96 \begin{align*}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
97 S &\rightarrow A, \quad A \rightarrow a \mid B, \quad B \rightarrow bS \\
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
98 \intertext{neu:}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
99 A &\rightarrow \alert{a \mid bS} \\
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
100 S &\rightarrow \alert{a \mid bS}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
101 \end{align*}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
102 }
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
103
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
104 \only<4> {
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
105 Ersetze jedes \alert{$a \in \Sigma$} in einer rechten Seite \alert{länger als $1$} durch ein neues Nichtterminal.
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
106 \begin{align*}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
107 S &\rightarrow aa \mid Bb \mid b, \quad B \rightarrow \ldots \\
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
108 \intertext{neu:}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
109 S &\rightarrow \alert{X_aX_a \mid BX_b \mid b} \\
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
110 X_a &\rightarrow \alert{a}, \quad X_b \rightarrow \alert{b}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
111 \end{align*}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
112 }
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
113
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
114 \only<5> {
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
115 Ersetze jede Produktion der Form $A \rightarrow B_1B_2\ldots B_k$ durch neue Nichtterminale mit Produktionen der Länge $2$.
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
116 \begin{align*}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
117 S &\rightarrow X_aX_bBX_a, \quad X_a \rightarrow a, \quad X_b \rightarrow b, \quad B \rightarrow \ldots \\
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
118 \intertext{neu:}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
119 S &\rightarrow \alert{X_aT_1} \\
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
120 T_1 &\rightarrow \alert{X_bT_2}, \quad T_2 \rightarrow \alert{BX_a} \\
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
121 \end{align*}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
122 }
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
123 \end{frame}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
124
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
125 \begin{frame}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
126 \frametitle{Eigenschaften von Symbolen}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
127 \setbeamercovered{dynamic}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
128
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
129 \begin{definition}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
130 Sei $G = (V, \Sigma, P, S)$ eine CFG. \\
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
131 Ein Symbol $X \in V \cup \Sigma$ ist
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
132 \begin{description}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
133 \item[nützlich] es gibt $S \rightarrow_G^* w \in \Sigma^*$ in der X \alert{vorkommt}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
134 \item[erzeugend] es gibt $\alert{X} \rightarrow_G^* w \in \Sigma^*$
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
135 \item[erreichbar] es gibt $S \rightarrow_G^* \alpha \alert{X} \beta$
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
136 \end{description}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
137 \end{definition}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
138
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
139 \vfill
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
140
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
141 \begin{theorem}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
142 Nützliche Symbole \alert{sind} erzeugend und erreichbar. Aber \alert{nicht} notwendigerweise umgekehrt.
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
143 \[
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
144 S \rightarrow AB \mid a, \quad A \rightarrow b
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
145 \]
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
146 \end{theorem}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
147 \end{frame}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
148
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
149 \begin{frame}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
150 \frametitle{Pumping Lemma für CFLs}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
151 \setbeamercovered{dynamic}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
152
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
153 \begin{theorem}[Pumping Lemma für kontextfreie Sprachen]
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
154 Sei $L \subseteq \Sigma^*$ kontextfrei. Dann gibt es ein $n > 0$, so dass sich \alert{jedes} $z \in L$ mit $|z| \geq n$ so in \alert{$z = uvwxy$} zerlegen lässt, dass
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
155 \begin{itemize}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
156 \item $vx \alert{\neq \epsilon}$
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
157 \item $|vwx| \alert{\leq n}$
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
158 \item $\forall i \alert{\geq 0}. uv^iwx^iy \in L$
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
159 \end{itemize}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
160 \end{theorem}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
161
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
162 \vfill
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
163
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
164 \begin{center}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
165 \begin{columns}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
166 \begin{column}{.4\textwidth}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
167 \begin{tikzpicture}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
168 \coordinate (outer) at (2, 2.4);
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
169 \coordinate (middle) at (2.2, 1.2);
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
170 \coordinate (inner) at (2.2, 0.6);
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
171 % outer
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
172 \draw[fill=tumred!40] (0, 0) -- (1.2, 0) -- (middle) -- (3.2, 0) -- (4, 0) -- (outer) node[above] {$S$} -- (0, 0);
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
173 % middle
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
174 \draw[fill=tumgreen!40] (1.2, 0) -- (1.7, 0) -- (inner) -- (2.7, 0) -- (3.2, 0) -- (middle) -- (1.2, 0);
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
175 % inner
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
176 \draw[fill=tumblue!40] (1.7, 0) -- (inner) -- (2.7, 0) -- (1.7, 0);
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
177
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
178 % path
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
179 \draw[dashed, thick] (outer) -- (middle) -- (inner);
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
180 \draw[fill] (outer) circle (1pt);
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
181 \draw[fill] (middle) circle (1pt);
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
182 \draw[fill] (inner) circle (1pt);
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
183
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
184 % nodes
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
185 \node[below] at (0.6, 0) {$u$};
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
186 \node[below] at (1.45, 0) {$v$};
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
187 \node[below] at (2.2, 0) {$w$};
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
188 \node[below] at (2.95, 0) {$x$};
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
189 \node[below] at (3.6, 0) {$y$};
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
190 \end{tikzpicture}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
191 \end{column}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
192 \begin{column}{.4\textwidth}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
193 \begin{tikzpicture}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
194 \coordinate (outer) at (2, 2.4);
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
195 \coordinate (middle) at (2.2, 1.2);
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
196 \coordinate (inner) at (2.2, 0.6);
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
197 % outer
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
198 \draw[fill=tumred!40] (0, 0) -- (1.2, 0) -- (middle) -- (3.2, 0) -- (4, 0) -- (outer) node[above] {$S$} -- (0, 0);
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
199 % inner
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
200 \draw[fill=tumblue!40] (1.7, 0.6) -- (middle) -- (2.7, 0.6) -- (1.7, 0.6);
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
201
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
202 % path
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
203 \draw[dashed, thick] (outer) -- (middle);
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
204 \draw[fill] (outer) circle (1pt);
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
205 \draw[fill] (middle) circle (1pt);
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
206
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
207 % nodes
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
208 \node[below] at (0.6, 0) {$u$};
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
209 \node[below] at (2.2, 0) {$w$};
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
210 \node[below] at (3.6, 0) {$y$};
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
211 \end{tikzpicture}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
212 \end{column}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
213 \end{columns}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
214 \end{center}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
215 \end{frame}
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
216
6a76770d5cfb ue06 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
217 \end{document}