Mercurial > 14ss.theoinf
annotate notes/tex/computation.tex @ 27:f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
author | Markus Kaiser <markus.kaiser@in.tum.de> |
---|---|
date | Fri, 06 Jun 2014 17:13:58 +0200 |
parents | efd13093bd47 |
children | b56fe50e0132 |
rev | line source |
---|---|
1 | 1 \defineUnit{tmdefinition}{% |
2 \begin{frame} | |
3 \frametitle{Turingmaschinen} | |
4 \setbeamercovered{dynamic} | |
5 | |
6 \begin{definition}[Turingmaschine] | |
27
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
7 Eine deterministische \structure{Turingmaschine (TM)} ist ein Tupel $M = (Q, \Sigma, \Gamma, \delta, q_0, \square, F)$ aus einer/einem |
1 | 8 \begin{itemize} |
27
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
9 \item endlichen Menge von \structure{Zuständen} $Q$ |
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
10 \item endlichen \structure{Eingabealphabet} $\Sigma$ |
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
11 \item endlichen \structure{Bandalphabet} $\Gamma$ mit $\Sigma \subset \Gamma$ |
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
12 \item \structure{Übergangsfunktion} $\delta : Q \times \Gamma \to Q \times \Gamma \times \left\{ L, R, N \right\}$ |
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
13 \item \structure{Startzustand} $q_0 \in Q$ |
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
14 \item \structure{Leerzeichen} $\square \in \Gamma \setminus \Sigma$ |
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
15 \item Menge von \structure{Endzuständen} $F \subseteq Q$ |
1 | 16 \end{itemize} |
17 \end{definition} | |
18 \end{frame} | |
19 } | |
20 | |
21 \defineUnit{tmvisualisierung}{% | |
22 \begin{frame} | |
23 \frametitle{Turingmaschinen} | |
24 \setbeamercovered{dynamic} | |
25 | |
26 \begin{definition}[Turingmaschine] | |
27
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
27 Eine deterministische \structure{Turingmaschine (TM)} ist ein Tupel $M = (Q, \Sigma, \Gamma, \delta, q_0, \square, F)$ aus einer/einem |
1 | 28 \begin{itemize} |
27
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
29 \item \structure{Übergangsfunktion} $\delta : Q \times \Gamma \to Q \times \Gamma \times \left\{ L, R, N \right\}$ |
1 | 30 \end{itemize} |
31 \end{definition} | |
32 | |
33 \vfill | |
34 | |
35 \begin{center} | |
36 \begin{tikzpicture} | |
37 % Tape | |
38 \begin{scope}[start chain, node distance=0] | |
39 \node[on chain] {\ldots}; | |
40 \node[tape] {$\square$}; | |
41 \node[tape] (l) {$\square$}; | |
42 \node[tape] {$0$}; | |
43 \node[tape] {$1$}; | |
44 \node<1>[tape, active] (a){$0$}; | |
45 \node<2>[tape] (a){$1$}; | |
46 \node<1>[tape] (b){$0$}; | |
47 \node<2>[tape, active] (b){$0$}; | |
48 \node[tape] {$\square$}; | |
49 \node[on chain] {\ldots}; | |
50 \end{scope} | |
51 | |
52 % Head | |
53 \node<1> [head,yshift=-4mm] at (a.south) (head) {$q_0$}; | |
54 \node<2> [head,yshift=-4mm] at (b.south) (head) {$q_1$}; | |
55 | |
56 % Machine | |
57 \node[machine, below=1.5cm of l] (machine) {Programm}; | |
58 \draw[every edge] (machine) .. controls (3.5, -2) .. (head.south); | |
59 | |
60 % Example-Transition | |
61 \node[yshift=5mm] at (current bounding box.north) {$\delta(q_0, 0) = (q_1, 1, R)$}; | |
62 \end{tikzpicture} | |
63 \end{center} | |
64 \end{frame} | |
65 } | |
66 | |
67 \defineUnit{tmkonfiguration}{% | |
68 \begin{frame} | |
69 \frametitle{Turingmaschinen} | |
70 \setbeamercovered{dynamic} | |
71 | |
72 \begin{definition}[Konfiguration] | |
27
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
73 Eine \structure{Konfiguration} ist ein Tripel $(\alpha, q, \beta) \in \Gamma^* \times Q \times \Gamma^*$. \\ |
1 | 74 Dies modelliert eine TM mit: |
75 \begin{itemize} | |
27
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
76 \item \structure{Bandinhalt} $\ldots\square\alpha\beta\square\ldots$ |
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
77 \item \structure{Zustand} $q$ |
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
78 \item Kopf auf dem \structure{ersten Zeichen} von $\beta\square$ |
1 | 79 \end{itemize} |
27
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
80 Die \structure{Startkonfiguration} bei Eingabe $w \in \Sigma^*$ ist $(\epsilon, q_0, w)$. |
1 | 81 \end{definition} |
82 | |
83 \vfill | |
84 | |
85 \only<1> { | |
86 \begin{center} | |
87 \begin{tikzpicture} | |
88 % Tape | |
89 \begin{scope}[start chain, node distance=0] | |
90 \node[on chain] {\ldots}; | |
91 \node[tape] {$\square$}; | |
92 \node[tape] (l) {$\square$}; | |
93 \node[tape] {$0$}; | |
94 \node[tape] {$1$}; | |
95 \node[tape] (a){$1$}; | |
96 \node[tape, active] (b){$0$}; | |
97 \node[tape] {$\square$}; | |
98 \node[on chain] {\ldots}; | |
99 \end{scope} | |
100 | |
101 % Head | |
102 \node [head,yshift=-4mm] at (b.south) (head) {$q_1$}; | |
103 | |
104 % Machine | |
105 \node[below=1.5cm of l] (machine) {}; | |
106 \draw[every edge, dashed] (machine) .. controls (3.5, -2) .. (head.south); | |
107 | |
108 % Example-Transition | |
109 \node[yshift=5mm] at (current bounding box.north) {$(011,q_1,0)$}; | |
110 \end{tikzpicture} | |
111 \end{center} | |
112 } | |
113 | |
114 \only<2> { | |
115 \begin{definition}[Akzeptanz] | |
27
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
116 Eine TM $M$ \structure{akzeptiert} die Sprache |
1 | 117 \[ L(M) = \left\{ w \in \Sigma^* \mid \exists \alert{f \in F}, \alpha, \beta \in \Gamma^* . (\epsilon, q_0, w) \rightarrow_M^* (\alpha, \alert{f}, \beta) \right\} \] |
118 \end{definition} | |
119 } | |
120 \end{frame} | |
121 } | |
122 | |
123 \defineUnit{ndtm}{% | |
124 \begin{frame} | |
125 \frametitle{Nichtdeterministische TM} | |
126 \setbeamercovered{dynamic} | |
127 | |
128 \begin{definition}[Nichtdeterministische Turingmaschine] | |
27
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
129 Eine \structure{nichtdeterministische} Turingmaschine (TM) ist ein Tupel $M = (Q, \Sigma, \Gamma, \delta, q_0, \square, F)$ aus einer/einem |
1 | 130 \begin{itemize} |
131 \item \ldots | |
27
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
132 \item \structure{Übergangsfunktion} $\delta : Q \times \Gamma \to \mathcal{P} \left( Q \times \Gamma \times \left\{ L, R, N \right\} \right)$ |
1 | 133 \item \ldots |
134 \end{itemize} | |
135 \end{definition} | |
136 | |
137 \vfill | |
138 | |
139 \begin{theorem} | |
140 Zu jeder nichtdeterministischen TM $N$ gibt es eine deterministische TM $M$ mit \alert{$L(N) = L(M)$}. | |
141 \end{theorem} | |
142 \end{frame} | |
143 } | |
144 | |
27
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
145 \defineUnit{lba}{% |
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
146 \begin{frame} |
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
147 \frametitle{Linear Beschränkte Automaten} |
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
148 |
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
149 \begin{definition}[Linear Beschränkte Automaten] |
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
150 Eine TM heißt \structure{linear beschränkt (LBA)}, wenn sie den Bereich des Bandes, auf dem das Eingabewort steht, niemals verlässt. |
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
151 \end{definition} |
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
152 |
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
153 \vfill |
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
154 |
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
155 \begin{theorem}[] |
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
156 Die \structure{linear beschränkten NDTMs} akzeptieren genau die Klasse der \alert{kontextsensitiven Sprachen (Typ 1)}. |
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
157 \end{theorem} |
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
158 \end{frame} |
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
159 } |
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
160 |
1 | 161 \defineUnit{chomsky}{% |
162 \begin{frame}[c] | |
163 \frametitle{Chomsky-Hierarchie} | |
164 \setbeamercovered{dynamic} | |
165 | |
166 \begin{center} | |
167 \begin{tikzpicture}[auto] | |
168 \tikzstyle{rect} = [thick]; | |
169 \tikzstyle{caption} = [align=left, anchor=north west]; | |
170 | |
3 | 171 \chomsky{tumlightblue}{}{0}{Alle formalen Sprachen}; |
27
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
172 \chomsky{tumred}{}{1}{Typ 0 - Rekursiv aufzählbar\\Grammatik\\Turingmaschine, WHILE-Programm, $\mu$-rekursive Funktion}; |
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
173 \chomsky{tumblue}{}{2}{Typ 1 - Kontextsensitiv\\Längenmonotone Grammatik\\Linear Beschränkter Automat (LBA)}; |
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
174 \chomsky{tumorange}{}{3}{Typ 2 - Kontextfrei\\Links nur ein Nichtterminal\\Kellerautomat (PDA)}; |
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
175 \chomsky{tumgreen}{}{4}{Typ 3 - Regulär\\Links- / Rechtsreguläre Grammatik\\DFA, NFA, RE}; |
1 | 176 \end{tikzpicture} |
177 \end{center} | |
178 \end{frame} | |
179 } | |
180 | |
181 \defineUnit{berechenbarkeit}{% | |
182 \begin{frame} | |
183 \frametitle{Berechenbarkeit} | |
184 \setbeamercovered{dynamic} | |
185 | |
186 \begin{definition}[Intuitive Berechenbarkeit] | |
6
efd13093bd47
use structures instead of alerts
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
3
diff
changeset
|
187 Eine Funktion $f : \N^k \to \N$ heißt \structure{intuitiv berechenbar}, wenn es einen Algorithmus gibt, der bei Eingabe $(n_1, \ldots, n_k) \in \N^k$ |
1 | 188 \begin{itemize} |
189 \item nach \alert{endlich vielen Schritten} mit Ergebnis $f(n_1, \ldots, n_k)$ hält, falls $f(\ldots)$ definiert ist, | |
190 \item und \alert{nicht terminiert}, falls $f(\ldots)$ nicht definiert ist. | |
191 \end{itemize} | |
192 \end{definition} | |
193 | |
194 \vfill | |
195 | |
196 \begin{block}{Churchsche These (nicht beweisbar)} | |
197 Turing-Maschinen können genau \alert{alle} intuitiv berechenbaren Funktionen berechnen. | |
198 \end{block} | |
199 \end{frame} | |
200 } | |
201 | |
202 \defineUnit{berechenbarkeitbeispiel}{% | |
203 \begin{frame}[c] | |
204 \frametitle{Berechenbarkeit} | |
205 \setbeamercovered{dynamic} | |
206 | |
207 \begin{example}[Berechenbarkeit] | |
208 Sind die folgenden Funktionen intuitiv berechenbar? | |
209 | |
210 \begin{align*} | |
211 f_1(n) &= \begin{cases} | |
212 1 & \text{falls $n$ prim}\\ | |
213 0 & \text{sonst} | |
214 \end{cases} \\ | |
215 f_2(n) &= \begin{cases} | |
216 1 & \text{falls $n$ die ersten $n$ Ziffern von $\pi$ darstellt}\\ | |
217 0 & \text{sonst} | |
218 \end{cases} \\ | |
219 f_3(n) &= \begin{cases} | |
220 1 & \text{falls in $\pi$ $n$ Nullen am Stück vorkommen}\\ | |
221 0 & \text{sonst} | |
222 \end{cases} | |
223 \end{align*} | |
224 \end{example} | |
225 \end{frame} | |
226 } | |
227 | |
228 \defineUnit{pr}{% | |
229 \begin{frame} | |
230 \frametitle{Primitive Rekursion} | |
231 \setbeamercovered{dynamic} | |
232 | |
233 \begin{definition}[Basisfunktionen] | |
234 \alert{Primitiv Rekursiv} sind: | |
235 \begin{itemize} | |
236 \item Die konstante Funktion \alert{0} | |
237 \item Die \alert{Nachfolgerfunktion} $s(n) = n + 1$ | |
238 \item Die \alert{Projektionsfunktion} $\pi_i^k : \N^k \to \N, i \in [k]$ | |
239 \[ \pi_i^k(x_1, \ldots, x_k) = x_i \] | |
240 \end{itemize} | |
241 \end{definition} | |
242 | |
243 \begin{definition}[Komposition] | |
244 Sind $g$ und $h_i$ PR und $\bar{x} = (x_1, \ldots, x_n)$, dann ist auch \alert{$f$} PR: | |
245 \[ f(\bar{x}) = \alert{g(h_1(\bar{x}), \ldots, h_k(\bar{x}))} \] | |
246 \end{definition} | |
247 \end{frame} | |
248 } | |
249 | |
250 \defineUnit{prrekursion}{% | |
251 \begin{frame} | |
252 \frametitle{Primitive Rekursion} | |
253 \setbeamercovered{dynamic} | |
254 \begin{block}{Basisfunktionen und Komposition} | |
255 Schon \alert{PR} sind: | |
256 \begin{itemize} | |
257 \item Konstante: $0$ | |
258 \item Nachfolger: $s(n) = n + 1$ | |
259 \item Projektion: $\pi_i^k : \N^k \to \N$ | |
260 \item Komposition: $f(\bar{x}) = g(h_1(\bar{x}), \ldots, h_k(\bar{x}))$ | |
261 \end{itemize} | |
262 \end{block} | |
263 \begin{definition}[Primitive Rekursion] Das Schema der \alert{primitiven Rekursion} erzeugt aus $g$ und $h$ die Funktion \alert{$f$}: \begin{align*} f(0, \bar{x}) &= g(\bar{x}) \\ f(\alert{m + 1}, \bar{x}) &= h(f(\alert{m}, \bar{x}), \alert{m}, \bar{x}) \end{align*} \end{definition} \end{frame} | |
264 } | |
265 | |
266 \defineUnit{prprogramme}{% | |
267 \begin{frame} | |
268 \frametitle{PR-Programme} | |
269 \setbeamercovered{dynamic} | |
270 | |
271 U.a. diese Programme sind laut Vorlesung oder Übung PR: | |
272 \begin{itemize} | |
273 \item $pred(x) = \max \left\{ 0, x - 1 \right\}$ | |
274 \item \alert{$add(x, y) = x + y$} | |
275 \item \alert{$x \dot{-} y = \max \left\{ 0, x - y \right\}$} | |
276 \item \alert{$mult(x, y) = x \cdot y$} | |
277 \item $div(x, y) = x \div y$ (Ganzzahldivision) | |
278 \item Die restliche einfache Arithmetik\ldots | |
279 \vspace{1.5em} | |
280 \item $tower(n) = 2^{2^{2^{\iddots}}}$ mit $tower(4) = 2^{16}$ | |
281 \item $sqr(x) = x^2$, $sqrt(x) = \sqrt{x}$ | |
282 \item $c(x), p_1(x), p_2(x)$ (Cantorsche Paarungsfunktion) | |
283 \item $ifthen(n, a, b) = \begin{cases} a & n \neq 0 \\ b & n = 0 \end{cases}$ | |
284 \end{itemize} | |
285 \end{frame} | |
286 } | |
287 | |
288 \defineUnit{prerweitert}{% | |
289 \begin{frame} | |
290 \frametitle{Erweitertes PR-Schema} | |
291 \setbeamercovered{dynamic} | |
292 | |
293 \begin{definition}[Erweitertes PR-Schema] | |
294 Das \alert{erweiterte Schema der primitiven Rekursion} erlaubt | |
295 \begin{align*} | |
296 f(0, \bar{x}) &= t_0 \\ | |
297 f(m + 1, \bar{x}) &= t | |
298 \end{align*} | |
299 wobei | |
300 \begin{itemize} | |
301 \item $t_0$ enthält nur PR-Funktionen und die $x_i$ | |
302 \item $t$ enthält nur \alert{$f(m, \bar{x})$}, PR Funktionen, \alert{$m$} und die $x_i$. | |
303 \end{itemize} | |
304 \end{definition} | |
305 | |
306 \begin{theorem} | |
307 Das erweiterte Schema der primitiven Rekursion führt nicht aus \alert{PR} heraus. | |
308 \end{theorem} | |
309 \end{frame} | |
310 } | |
311 | |
312 \defineUnit{tmif}{% | |
313 \begin{frame} | |
314 \frametitle{Programmieren mit TMs} | |
315 \setbeamercovered{dynamic} | |
316 | |
317 Sind $f_1$ und $f_2$ Endzustände von $M$, so bezeichnet | |
318 \begin{center} | |
319 \begin{tikzpicture} | |
320 \node (M) at (0, 0) {$M$}; | |
321 \node[above right=0.2cm and 1cm of M] (M1) {$M_1$}; | |
322 \node[below right=0.2cm and 1cm of M] (M2) {$M_2$}; | |
323 \coordinate[right of=M1] (M1s); | |
324 \coordinate[right of=M2] (M2s); | |
325 | |
326 \draw[every edge] (-1, 0) -- (M); | |
327 \draw[every edge] (M) -- node[above left] {$f_1$} (M1); | |
328 \draw[every edge] (M) -- node[below left] {$f_2$} (M2); | |
329 \draw[every edge] (M1) -- (M1s); | |
330 \draw[every edge] (M2) -- (M2s); | |
331 \end{tikzpicture} | |
332 \end{center} | |
333 eine \alert{Fallunterscheidung}.\\ | |
334 \begin{example}[Band=0?] | |
335 \begin{align*} | |
336 \delta(q_0, 0) &= (q_0, 0, R) \\ | |
337 \delta(q_0, \square) &= (ja, \square, L) \\ | |
338 \delta(q_0, a) &= (nein, a, N) \qquad \text{für } a \neq 0, \square | |
339 \end{align*} | |
340 \end{example} | |
341 \end{frame} | |
342 } | |
343 | |
344 \defineUnit{while}{% | |
345 \begin{frame} | |
346 \frametitle{WHILE-Programme} | |
347 \setbeamercovered{dynamic} | |
348 | |
349 \begin{definition}[WHILE-Programm] | |
350 Syntax von \alert{WHILE-Programmen}.\\ | |
351 Es ist $X \in \left\{ x_0, x_1, \ldots \right\}$ und $C \in \N$. | |
352 \begin{align*} | |
353 P &\rightarrow X := X + C \\ | |
354 &\mid X := X - C \\ | |
355 &\mid P; P \\ | |
356 &\mid \alert{\mathbf{WHILE}\ X \neq 0 \ \mathbf{DO}\ P \ \mathbf{END}} \\ | |
357 &\mid \textcolor{gray}{\mathbf{LOOP}\ X \ \mathbf{DO}\ P \ \mathbf{END}} \\ | |
358 &\mid \textcolor{gray}{\mathbf{IF}\ X = 0 \ \mathbf{DO}\ P \ \mathbf{ELSE}\ Q \ \mathbf{END}} | |
359 \end{align*} | |
360 \end{definition} | |
361 | |
362 \begin{itemize} | |
363 \item Ausgabe steht in $x_0$, Eingaben in $x_1, \ldots, x_n$, Rest ist 0. | |
364 \item Semantik wie erwartet. | |
365 \end{itemize} | |
366 \end{frame} | |
367 } | |
368 | |
369 \defineUnit{goto}{% | |
370 \begin{frame} | |
371 \frametitle{GOTO-Programme} | |
372 \setbeamercovered{dynamic} | |
373 | |
374 \begin{definition}[GOTO-Programm] | |
375 Syntax von \alert{GOTO-Programmen}.\\ | |
376 Es ist $X \in \left\{ x_0, x_1, \ldots \right\}$ und $C \in \N$. \\ | |
377 Alle Anweisungen haben eine Markierung \alert{$M_1 : A_1; M_2 : A_2$}. | |
378 \begin{align*} | |
379 P &\rightarrow X := X + C \\ | |
380 &\mid X := X - C \\ | |
381 &\mid P; P \\ | |
382 &\mid \mathbf{GOTO}\ M_i \\ | |
383 &\mid \mathbf{IF}\ X = 0 \ \mathbf{GOTO}\ M_i \\ | |
384 &\mid \mathbf{HALT} | |
385 \end{align*} | |
386 \end{definition} | |
387 | |
388 \begin{itemize} | |
389 \item Ausgabe steht in $x_0$, Eingaben in $x_1, \ldots, x_n$, Rest ist 0. | |
390 \end{itemize} | |
391 \end{frame} | |
392 } | |
393 | |
394 \defineUnit{loop}{% | |
395 \begin{frame} | |
396 \frametitle{LOOP-Programme} | |
397 \setbeamercovered{dynamic} | |
398 | |
399 \begin{definition}[LOOP-Programm] | |
400 Syntax von \alert{LOOP-Programmen}.\\ | |
401 Es ist $X \in \left\{ x_0, x_1, \ldots \right\}$ und $C \in \N$. | |
402 \begin{align*} | |
403 P &\rightarrow X := X + C \\ | |
404 &\mid X := X - C \\ | |
405 &\mid P; P \\ | |
406 &\mid \mathbf{LOOP}\ X \ \mathbf{DO}\ P \ \mathbf{END} \\ | |
407 &\mid \textcolor{gray}{\mathbf{IF}\ X = 0 \ \mathbf{DO}\ P \ \mathbf{ELSE}\ Q \ \mathbf{END}} | |
408 \end{align*} | |
409 \end{definition} | |
410 | |
411 \begin{itemize} | |
412 \item Ausgabe steht in $x_0$, Eingaben in $x_1, \ldots, x_n$, Rest ist 0. | |
413 \item $\mathbf{LOOP}\ x_i \ \mathbf{DO}\ P \ \mathbf{END}$ führt $P$ genau $n$ mal aus, wobei $n$ der Anfangswert von $x_i$ ist. \alert{Zuweisungen an $x_i$ in $P$ ändern die Anzahl der Durchläufe nicht.} | |
414 \end{itemize} | |
415 \end{frame} | |
416 } | |
417 | |
418 \defineUnit{prmax}{% | |
419 \begin{frame} | |
420 \frametitle{Beschränkte Operationen} | |
421 \setbeamercovered{dynamic} | |
422 \begin{definition} | |
423 Ein Prädikat $P$ ist \alert{PR}, wenn es eine PR Funktion $\hat{P}$ gibt mit | |
424 \[\hat{P}(x) = 1 \Longleftrightarrow P(x)\] | |
425 \end{definition} | |
426 | |
427 \begin{definition}[Beschränkte Operationen] | |
428 Ist $P$ PR, dann auch | |
429 \begin{itemize} | |
430 \item der \alert{beschränkte max-Operator} | |
431 \[\max \left\{ x \alert{\leq n} \mid P(x) \right\}, \quad \max \left\{ \emptyset \right\} = 0\] | |
432 \item der \alert{beschränkte Existenzquantor} | |
433 \[\exists x \alert{\leq n}. P(x)\] | |
434 \end{itemize} | |
435 \end{definition} | |
436 \end{frame} | |
437 } | |
438 | |
439 \defineUnit{murekursion}{% | |
440 \begin{frame} | |
441 \frametitle{$\mu$-Rekursion} | |
442 \setbeamercovered{dynamic} | |
443 | |
444 \begin{definition}[$\mu$-Operator] | |
445 Sei $f: \N^{k+1} \to \N$ eine Funktion.\\Der \alert{$\mu$-Operator} definiert eine neue Funktion $\mu f : \N^k \to \N$: | |
446 \[(\mu f)(\bar{x}) := \begin{cases} \min \left\{ n \in \N \mid \alert{f (n, \bar{x}) = 0}\right\} & \text{falls } n \text{ existent\alert{$^*$}} \\ \perp & \text{sonst}\end{cases}\] | |
447 \end{definition} | |
448 | |
449 \vfill | |
450 | |
451 \begin{itemize} | |
452 \item \alert{$^*$}Für alle \alert{$m \leq n$} muss $f$ definiert sein: $f(m, \bar{x}) \neq \perp$ | |
453 \item PR + $\mu$ = $\mu$-Rekursion | |
454 \item In Pseudocode: | |
455 \begin{align*} | |
456 \mu f(\bar{x}) &= find(0, \bar{x}) \\ | |
457 find(n, \bar{x}) &= \mathbf{if}\ f(n, \bar{x}) = 0 \ \mathbf{then}\ n \ \mathbf{else}\ find(n+1, \bar{x}) | |
458 \end{align*} | |
459 \end{itemize} | |
460 \end{frame} | |
461 } | |
462 | |
463 \defineUnit{modelluebersetzungen}{% | |
464 \begin{frame} | |
465 \frametitle{Übersetzungen} | |
466 \setbeamercovered{dynamic} | |
467 | |
468 \begin{center} | |
469 \begin{tikzpicture}[node distance=2.5cm] | |
470 \node (WH) {WHILE}; | |
471 \node (GO) [above left of = WH] {GOTO}; | |
472 \node (TM) [above right of = WH] {TM}; | |
473 \node (LO) [below of = WH] {LOOP}; | |
474 \node (PR) [left of = LO] {PR}; | |
475 \node (MR) [left of = WH] {$\mu$R}; | |
476 | |
477 \draw [every edge, ->] (LO) -- (WH); | |
478 \draw [every edge, ->] (PR) -- (MR); | |
479 \draw [every edge, tumgreen, <->] (LO) -- (PR); | |
480 \draw [every edge, tumgreen, <->] (WH) -- (MR); | |
481 \draw [every edge, <->] (WH) -- (GO); | |
482 \draw [every edge, ->] (WH) -- (TM); | |
483 \draw [every edge, ->] (TM) -- (GO); | |
484 \end{tikzpicture} | |
485 \end{center} | |
486 | |
487 \vfill | |
488 | |
489 LOOP kann in WHILE \alert{übersetzt} werden, WHILE ist also \alert{mindestens so mächtig} wie LOOP (sogar mächtiger). | |
490 \end{frame} | |
491 } | |
492 | |
493 \defineUnit{entscheidbarkeit}{% | |
494 \begin{frame} | |
495 \frametitle{Entscheidbarkeit} | |
496 \setbeamercovered{dynamic} | |
497 | |
498 \begin{definition}[Entscheidbarkeit] | |
6
efd13093bd47
use structures instead of alerts
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
3
diff
changeset
|
499 Eine Menge $A$ heißt \structure{entscheidbar} gdw ihre \alert{charakteristische Funktion} |
1 | 500 \[ \chi_A(x) := \begin{cases}1 & \text{falls } x \in A \\ 0 & \text{falls } x \not \in A \end{cases} \] |
501 berechenbar ist. | |
502 \end{definition} | |
503 | |
6
efd13093bd47
use structures instead of alerts
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
3
diff
changeset
|
504 \vfill |
efd13093bd47
use structures instead of alerts
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
3
diff
changeset
|
505 |
1 | 506 \begin{definition}[Semi-Entscheidbarkeit] |
6
efd13093bd47
use structures instead of alerts
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
3
diff
changeset
|
507 Eine Menge $A$ heißt \structure{semi-entscheidbar} gdw |
1 | 508 \[ \chi'_A(x) := \begin{cases}1 & \text{falls } x \in A \\ \perp & \text{falls } x \not \in A \end{cases} \] |
509 berechenbar ist. | |
510 \end{definition} | |
511 \end{frame} | |
512 } | |
513 | |
514 \defineUnit{breduktion}{% | |
515 \begin{frame} | |
516 \frametitle{Reduzierbarkeit} | |
517 \setbeamercovered{dynamic} | |
518 | |
519 \begin{definition}[Reduzierbarkeit] | |
520 Eine Menge $A \subseteq \Sigma^*$ ist \alert{reduzierbar} auf eine Menge $B \subseteq \Gamma^*$ gdw es eine totale und berechenbare Funktion $f:\Sigma^* \to \Gamma^*$ gibt mit | |
521 \[\forall w \in \Sigma^*. w \in A \Longleftrightarrow f(w) \in B\] | |
522 Wir schreiben dann \alert{$A \leq B$}. | |
523 \end{definition} | |
524 | |
525 \vfill | |
526 | |
527 \structure{Intuition}: | |
528 \begin{itemize} | |
529 \item $B$ ist \alert{mindestens so schwer} zu lösen wie $A$ | |
530 \item Ist $A$ unlösbar, dann auch $B$. | |
531 \item Ist $B$ lösbar, dann erst recht $A$. | |
532 \end{itemize} | |
533 \end{frame} | |
534 } | |
535 | |
536 \defineUnit{spezielleshalteproblem}{% | |
537 \begin{frame} | |
538 \frametitle{Spezielles Halteproblem} | |
539 \setbeamercovered{dynamic} | |
540 | |
541 \begin{definition}[Spezielles Halteproblem] | |
542 Gegeben ein \structure{Wort} $w \in \left\{ 0, 1 \right\}^*$.\\ | |
543 Hält \alert{$M_w$} bei Eingabe \alert{$w$}? | |
544 \[\alert{K} := \left\{ w \mid M_w[w]\downarrow \right\}\] | |
545 \end{definition} | |
546 | |
547 \begin{theorem}[] | |
548 Das spezielle Halteproblem ist \alert{nicht entscheidbar}. | |
549 \end{theorem} | |
550 | |
551 \vfill | |
552 | |
553 \begin{itemize} | |
554 \item Hält eine Turingmaschine mit sich selbst als Eingabe? | |
555 \item $w$ ist die \structure{Gödelisierung} von $M_w$. | |
556 \item $K$ ist semi-entscheidbar, $\overline{K}$ \alert{nicht}. | |
557 \end{itemize} | |
558 \end{frame} | |
559 } | |
560 | |
561 \defineUnit{halteproblem}{% | |
562 \begin{frame} | |
563 \frametitle{Allgemeines Halteproblem} | |
564 \setbeamercovered{dynamic} | |
565 | |
566 \begin{definition}[Allgemeines Halteproblem] | |
567 Gegeben \structure{Wörter} $w, x \in \left\{ 0, 1 \right\}^*$.\\ | |
568 Hält \alert{$M_w$} bei Eingabe \alert{$x$}? | |
569 \[\alert{H} := \left\{ w\#x \mid M_w[x]\downarrow \right\}\] | |
570 \end{definition} | |
571 | |
572 \begin{theorem}[] | |
573 Das allgemeine Halteproblem ist \alert{nicht entscheidbar}. | |
574 \end{theorem} | |
575 | |
576 \vfill | |
577 | |
578 \begin{itemize} | |
579 \item Es ist $K \leq H$. Warum? | |
580 \end{itemize} | |
581 \end{frame} | |
582 } | |
583 | |
584 \defineUnit{aufzaehlbarkeit}{% | |
585 \begin{frame} | |
586 \frametitle{Rekursive Aufzählbarkeit} | |
587 \setbeamercovered{dynamic} | |
588 | |
589 \begin{definition}[Rekursiv aufzählbar] | |
590 Eine Menge $A$ heißt \alert{rekursiv aufzählbar} wenn $A = \emptyset$ oder es eine \alert{berechenbare} totale Funktion $f : \N \to A$ gibt, so dass | |
591 \[A = \left\{ f(0), f(1), \ldots \right\} = \bigcup_{n \in \N} \left\{ f(n) \right\}\] | |
592 \end{definition} | |
593 | |
594 \vfill | |
595 | |
596 \structure{Äquivalent:} | |
597 \begin{itemize} | |
598 \item $A$ rekursiv aufzählbar | |
599 \item $A$ semi-entscheidbar, also $\chi'_A$ berechenbar | |
600 \item $A=L(M)$ für eine TM $M$ | |
601 \item $A$ ist Bild oder Urbild einer berechenbaren Funktion | |
602 \end{itemize} | |
603 \end{frame} | |
604 } | |
605 | |
606 \defineUnit{rice}{% | |
607 \begin{frame} | |
608 \frametitle{Satz von Rice} | |
609 \setbeamercovered{dynamic} | |
610 | |
611 \begin{theorem}[Rice] | |
612 Sei $F$ eine Menge berechenbarer Funktionen.\\ | |
613 Sei weder $F = \emptyset$ noch $F = \text{alle ber. Funktionen}$ (\alert{$F$ nicht trivial}).\\ | |
614 Dann ist \alert{unentscheidbar}, ob die von einer gegebenen TM $M_w$ berechnete Funktion in $F$ ist, also ob \alert{$\varphi_w \in F$}. | |
615 \end{theorem} | |
616 | |
617 \begin{itemize} | |
618 \item Nicht-triviale \alert{semantische} Eigenschaften von Programmen sind unentscheidbar. | |
619 \item \alert{Termination} ist unentscheidbar. | |
620 \end{itemize} | |
621 | |
622 \vfill | |
623 | |
624 \structure{Rice-Shapiro:} | |
625 \begin{itemize} | |
626 \item Termination ist nicht semi-entscheidbar. | |
627 \item Nicht-Termination ist nicht semi-entscheidbar. | |
628 \end{itemize} | |
629 \end{frame} | |
630 } | |
631 | |
632 \defineUnit{pcp}{% | |
633 \begin{frame} | |
634 \frametitle{PCP} | |
635 \setbeamercovered{dynamic} | |
636 | |
637 \begin{definition}[Postsches Korrespondenzproblem] | |
638 Gegeben \structure{endliche Folge} $(x_1, y_1), \ldots, (x_k, y_k)$ mit $x_i, y_i \in \Sigma^+$.\\ | |
639 Gibt es eine \alert{Folge von Indizes} $i_1, \ldots, i_n \in \left\{ 1, \ldots, k \right\}$ mit \alert{\[x_{i_1}, \ldots, x_{i_n} = y_{i_1}, \ldots, y_{i_n}\]} | |
640 \end{definition} | |
641 | |
642 \vfill | |
643 | |
644 \begin{center} | |
645 \begin{tikzpicture} | |
646 \begin{scope}[start chain, node distance=2em] | |
647 \node[tape, active] {\pcp{$x_i$}{$y_i$}}; | |
648 \node[tape] (a) {\pcp{$001$}{$00$}}; | |
649 \node[tape] (b) {\pcp{$10$}{$11$}}; | |
650 \node[tape] (c) {\pcp{$1$}{$01$}}; | |
651 \end{scope} | |
652 \node[below of=a] {$1$}; | |
653 \node[below of=b] {$2$}; | |
654 \node[below of=c] {$3$}; | |
655 \end{tikzpicture} | |
656 \end{center} | |
657 | |
658 \vfill | |
659 | |
660 \begin{theorem}[] | |
661 Das PCP ist \alert{unentscheidbar}, aber semi-entscheidbar. | |
662 \end{theorem} | |
663 \end{frame} | |
664 } | |
665 | |
666 \defineUnit{pcpbeispiel}{% | |
667 \begin{frame} | |
668 \frametitle{PCP lösen} | |
669 \setbeamercovered{dynamic} | |
670 | |
671 \begin{block}{Idee} | |
672 \alert{Mögliche Lösungen} aufzählen, richtige Lösungen identifizieren | |
673 \end{block} | |
674 | |
675 \begin{center} | |
676 \begin{tikzpicture} | |
677 \begin{scope}[start chain, node distance=2em] | |
678 \node[tape, active] {\pcp{$x_i$}{$y_i$}}; | |
679 \node[tape] (a) {\pcp{$001$}{$00$}}; | |
680 \node[tape] (b) {\pcp{$01$}{$10$}}; | |
681 \node[tape] (c) {\pcp{$1$}{$11$}}; | |
682 \end{scope} | |
683 \node[below of=a] {$1$}; | |
684 \node[below of=b] {$2$}; | |
685 \node[below of=c] {$3$}; | |
686 \end{tikzpicture} | |
687 | |
688 \vspace{2em} | |
689 | |
690 \begin{tikzpicture}[grow=right, level distance = 2cm] | |
691 \tikzstyle{every node} = [] | |
692 \tikzstyle{residual} = [rectangular, thin, fill=tumgreen!10, font=\scriptsize] | |
693 \tikzstyle{edge from parent} = [every edge] | |
694 | |
695 \tikzstyle{level 1} = [sibling distance = 1.7cm] | |
696 \tikzstyle{level 2} = [sibling distance = 1.1cm] | |
697 | |
698 \node[residual] {} | |
699 child { | |
700 node[residual] {\pcp{$1$}{}} | |
701 child { | |
702 node[residual] {\pcp{$1$}{}} | |
703 child { | |
704 node[residual] {\pcp{$1$}{}} | |
705 child { | |
706 node[residual]{$\ldots$} | |
707 edge from parent | |
708 } | |
709 edge from parent | |
710 node[below] {$2$} | |
711 } | |
712 child { | |
713 node[residual, active] {\pcp{}{}} | |
714 edge from parent | |
715 node[above] {$3$} | |
716 } | |
717 edge from parent | |
718 node[below] {$2$} | |
719 } | |
720 child { | |
721 node[residual, active] {\pcp{}{}} | |
722 edge from parent | |
723 node[above] {$3$} | |
724 } | |
725 edge from parent | |
726 node[below] {$1$} | |
727 } | |
728 child { | |
729 node[residual]{\pcp{}{$1$}} | |
730 child { | |
731 node[residual]{\pcp{}{$11$}} | |
732 child { | |
733 node[residual]{$\ldots$} | |
734 edge from parent | |
735 node[above] {$3$} | |
736 } | |
737 edge from parent | |
738 node[above] {$3$} | |
739 } | |
740 edge from parent | |
741 node[above] {$3$} | |
742 }; | |
743 | |
744 \uncover<2>{\node at (10cm, 0) {$L = \left\{ (12^*3)^+ \right\}$};} | |
745 \end{tikzpicture} | |
746 \end{center} | |
747 \end{frame} | |
748 } | |
749 | |
750 \defineUnit{time}{% | |
751 \begin{frame}[t] | |
752 \frametitle{$TIME$} | |
753 \setbeamercovered{dynamic} | |
754 | |
755 \begin{definition}[$TIME$] | |
756 Wir bezeichnen die minimale Anzahl der Schritte, bis eine \structure{DTM} $M$ mit Eingabe $w$ hält als $\alert{time_M(w)} \in \N \cup \left\{ \infty \right\}$.\\ | |
757 \vspace{1em} | |
758 Sei $f : \N \to \N$ total. Dann ist | |
759 \begin{align*} | |
760 \alert{TIME(f(n))} := \{ A \subseteq \Sigma^* \mid \exists &\structure{DTM}\ M. A = L(M) \wedge \\ | |
761 &\forall w \in \Sigma^*. \structure{time_M(w) \leq f(|w|)} \} | |
762 \end{align*} | |
763 die Klasse der \structure{in Zeit $f(n)$} von einer \structure{DTM} entscheidbaren Sprachen. | |
764 \end{definition} | |
765 | |
766 \vfill | |
767 | |
768 \begin{itemize} | |
769 \item $TIME(\Oh(n))$ enthält alle "\structure{linearen Probleme}". | |
770 \item Also alle Probleme, für die ein Linearzeitalgorithmus existiert. | |
771 \end{itemize} | |
772 \end{frame} | |
773 } | |
774 | |
775 \defineUnit{ntime}{% | |
776 \begin{frame}[t] | |
777 \frametitle{$NTIME$} | |
778 \setbeamercovered{dynamic} | |
779 | |
780 \begin{definition}[$NTIME$] | |
781 Wir bezeichnen die minimale Anzahl der Schritte, bis eine \structure{NTM} $M$ mit Eingabe $w$ hält als $\alert{ntime_M(w)} \in \N$. | |
782 \[ \alert{ntime_M(w)} := \begin{cases} \text{minimale Schrittanzahl} & \text{falls } w \in L(M) \\ 0 & \text{falls } w \not \in L(M)\end{cases} \] | |
783 Dann ist | |
784 \begin{align*} | |
785 \alert{NTIME(f(n))} := \{ A \subseteq \Sigma^* \mid \exists &\structure{NTM}\ M. A = L(M) \wedge \\ | |
786 &\forall w \in \Sigma^*. \structure{ntime_M(w) \leq f(|w|)} \} | |
787 \end{align*} | |
788 die Klasse der \structure{in Zeit $f(n)$} von einer \structure{NTM} entscheidbaren Sprachen. | |
789 \end{definition} | |
790 \end{frame} | |
791 } | |
792 | |
793 \defineUnit{pundnp}{% | |
794 \begin{frame} | |
795 \frametitle{P und NP} | |
796 \setbeamercovered{dynamic} | |
797 | |
798 \begin{definition} | |
799 \alert{P} ist die Menge aller von einer \structure{DTM} in polynomieller Zeit entscheidbaren Sprachen. | |
800 \[\alert{P}:= \bigcup_{p\text{ Polynom}} TIME(p(n)) = \bigcup_{k \in \N} TIME(\alert{\Oh(n^k)}) \] | |
801 \end{definition} | |
802 | |
803 \begin{definition} | |
804 \alert{NP} ist die Menge aller von einer \structure{NTM} in polynomieller Zeit entscheidbaren Sprachen. | |
805 \[\alert{NP}:= \bigcup_{p\text{ Polynom}} NTIME(p(n)) = \bigcup_{k \in \N} NTIME(\alert{\Oh(n^k)}) \] | |
806 \end{definition} | |
807 \end{frame} | |
808 } | |
809 | |
810 \defineUnit{verifikator}{% | |
811 \begin{frame} | |
812 \frametitle{Verifikator} | |
813 \setbeamercovered{dynamic} | |
814 | |
815 \begin{definition}[Verifikator] | |
816 Sei $M$ eine \structure{DTM} mit $L(M) \subseteq \left\{ w\# c \mid w \in \Sigma^*, c \in \Delta^* \right\}$. | |
817 \begin{itemize} | |
818 \item Falls $w\#c \in L(M)$, dann heißt $c$ \alert{Zertifikat} für $w$. | |
819 \item $M$ ist ein \alert{polynomiell beschränkter Verifikator} für | |
820 \[\left\{ \structure{w \in \Sigma^*} \mid \exists c \in \Delta^* . w\#c \in L(M) \right\}\] | |
821 falls $time_M(w\#c) \leq p(|w|)$ für ein Polynom $p$. | |
822 \end{itemize} | |
823 \end{definition} | |
824 | |
825 \begin{itemize} | |
826 \item \structure{NTM} rät Lösung (Zertifikat), \structure{DTM} probiert sie aus. | |
827 \item Verifizieren (wahrscheinlich) einfacher als Lösung finden. | |
828 \end{itemize} | |
829 | |
830 \vfill | |
831 | |
832 \begin{theorem} | |
833 \alert{$A \in NP$} gdw es einen pol. beschränkten Verifikator für A gibt. | |
834 \end{theorem} | |
835 \end{frame} | |
836 } | |
837 | |
838 \defineUnit{preduktion}{% | |
839 \begin{frame} | |
840 \frametitle{Polynomielle Reduzierbarkeit} | |
841 \setbeamercovered{dynamic} | |
842 | |
843 \begin{definition}[Polynomielle Reduzierbarkeit] | |
844 Eine Menge $A \subseteq \Sigma^*$ ist \alert{polynomiell reduzierbar} auf eine Menge $B \subseteq \Gamma^*$ gdw es eine totale und \structure{von einer DTM in polynomieller Zeit} berechenbare Funktion $f:\Sigma^* \to \Gamma^*$ gibt mit | |
845 \[\forall w \in \Sigma^*. w \in A \Longleftrightarrow f(w) \in B\] | |
846 Wir schreiben dann \alert{$A \leq_P B$}. | |
847 \end{definition} | |
848 | |
849 \vfill | |
850 | |
851 \begin{itemize} | |
852 \item Die Relation $\leq_P$ ist \structure{transitiv}. | |
853 \item P und NP sind \structure{nach unten abgeschlossen}: | |
854 \[A \leq_P B \in P/NP \Longrightarrow A \in P/NP\] | |
855 \end{itemize} | |
856 \end{frame} | |
857 } | |
858 | |
859 \defineUnit{npvollstaendigkeit}{% | |
860 \begin{frame} | |
861 \frametitle{NP-Vollständigkeit} | |
862 \setbeamercovered{dynamic} | |
863 | |
864 \begin{definition}[NP-Schwere] | |
865 Eine Sprache $L$ heißt \alert{NP-schwer} (NP-hart) wenn sich \structure{alle Sprachen} in NP auf $L$ reduzieren lassen. | |
866 \[\forall A \in NP. A \leq_P L\] | |
867 \end{definition} | |
868 | |
869 \begin{definition}[NP-Vollständigkeit] | |
870 Eine Sprache $L$ heißt \alert{NP-vollständig} wenn $L$ \structure{NP-schwer} ist und \structure{$L \in NP$}. | |
871 \end{definition} | |
872 | |
873 \vfill | |
874 | |
875 \structure{Fragen}: | |
876 \begin{itemize} | |
877 \item Gibt es überhaupt NP-vollständige Sprachen? | |
878 \item Gibt es eine NP-vollständige Sprache in $P$? | |
879 \end{itemize} | |
880 \end{frame} | |
881 } | |
882 | |
883 \defineUnit{sat}{% | |
884 \begin{frame} | |
885 \frametitle{SAT} | |
886 \setbeamercovered{dynamic} | |
887 | |
888 \begin{definition}[Aussagenlogik] | |
889 Syntax der \alert{Aussagenlogik}.\\ | |
890 \begin{description} | |
891 \item[Formeln] $F \rightarrow \neg F \mid (F \wedge F) \mid (F \vee F) \mid X$ | |
892 \item[Variablen] $X \rightarrow x \mid y \mid z \mid \ldots$ | |
893 \end{description} | |
894 \end{definition} | |
895 | |
896 \vfill | |
897 | |
898 \begin{definition}[SAT] | |
899 Gegeben eine \structure{aussagenlogische Formel} $F$.\\ | |
900 Ist $F$ \alert{erfüllbar}, also gibt es eine Belegung der Variablen in $F$, sodass $F$ gilt? | |
901 \end{definition} | |
902 | |
903 \begin{theorem}[Cook 1971] | |
904 $\mathbf{SAT}$ ist \alert{NP-vollständig}. | |
905 \end{theorem} | |
906 \end{frame} | |
907 } | |
908 | |
909 \defineUnit{3col}{% | |
910 \begin{frame} | |
911 \frametitle{3COL} | |
912 \setbeamercovered{dynamic} | |
913 | |
914 \begin{definition}[3COL] | |
915 Gegeben ein \structure{Graph} $G = (V, E)$.\\ | |
916 Gibt es eine \alert{Färbung der Knoten} $V$ mit $3$ Farben, so dass keine zwei benachbarten Knoten die gleiche Farbe haben? | |
917 \end{definition} | |
918 | |
919 \vfill | |
920 | |
921 \begin{center} | |
922 \begin{tikzpicture} | |
923 \tikzstyle{red} = [fill=tumred!50] | |
924 \tikzstyle{green} = [fill=tumgreen!50] | |
925 \tikzstyle{blue} = [fill=tumblue!50] | |
926 \tikzstyle{vertex} = [draw, circle, thin, blue] | |
927 \tikzstyle{edge} = [draw, thick] | |
928 | |
929 \foreach \name/\angle/\dist/\col in { | |
930 ia/18/0.8cm/blue, ib/90/0.8cm/red, ic/162/0.8cm/red, id/234/0.8cm/green, ie/306/0.8cm/green, | |
931 oa/18/1.6cm/red, ob/90/1.6cm/blue, oc/162/1.6cm/green, od/234/1.6cm/red, oe/306/1.6cm/blue} { | |
932 \node<1>[vertex] (\name) at (\angle:\dist) {}; | |
933 \node<2>[vertex, \col] (\name) at (\angle:\dist) {}; | |
934 } | |
935 | |
936 \foreach \a/\b in { | |
937 ia/oa, ib/ob, ic/oc, id/od, ie/oe, | |
938 oa/ob, ob/oc, oc/od, od/oe, oe/oa, | |
939 ia/ic, ic/ie, ie/ib, ib/id, id/ia} { | |
940 \draw[edge] (\a) -- (\b); | |
941 } | |
942 \end{tikzpicture} | |
943 \end{center} | |
944 | |
945 \begin{theorem} | |
946 Es ist \alert{$\mathbf{3COL} \leq_P \mathbf{SAT}$} und $\alert{\mathbf{SAT}} \leq_P \mathbf{3SAT} \alert{\leq_P \mathbf{3COL}}$. | |
947 \end{theorem} | |
948 \end{frame} | |
949 } | |
950 | |
951 \defineUnit{typ0sprachen}{% | |
952 \begin{frame} | |
953 \frametitle{Typ 0 Sprachen} | |
954 \setbeamercovered{dynamic} | |
955 | |
956 \begin{center} | |
957 \begin{tikzpicture}[node distance=2.5cm] | |
958 \node (WH) {WHILE}; | |
959 \node (GO) [above left of = WH] {GOTO}; | |
960 \node (TM) [above right of = WH] {TM}; | |
961 \node (MR) [left of = WH] {$\mu$R}; | |
962 | |
963 \draw [every edge, tumgreen, <->] (WH) -- (MR); | |
964 \draw [every edge, <->] (WH) -- (GO); | |
965 \draw [every edge, ->] (WH) -- (TM); | |
966 \draw [every edge, ->] (TM) -- (GO); | |
967 \end{tikzpicture} | |
968 \end{center} | |
969 | |
970 \vfill | |
971 | |
972 \begin{theorem}[] | |
27
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
973 Sei $A$ formale Sprache, dann ist äquivalent: |
1 | 974 \vspace{1em} |
975 \begin{itemize} | |
27
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
976 \item $A$ ist \structure{Typ 0 Sprache} |
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
977 \item $A$ \structure{rekursiv aufzählbar} |
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
978 \item $A$ \structure{semi-entscheidbar}, also $\chi'_A$ berechenbar |
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
979 \item $A=L(M)$ für eine \structure{TM $M$} |
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
980 \item $A$ ist \structure{Bild oder Urbild} einer berechenbaren Funktion |
1 | 981 \end{itemize} |
982 \end{theorem} | |
983 \end{frame} | |
984 } | |
985 | |
986 \defineUnit{spracheigenschaften}{% | |
987 \begin{frame} | |
988 \frametitle{Spracheigenschaften} | |
989 \setbeamercovered{dynamic} | |
990 | |
991 \begin{itemize} | |
27
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
992 \item Abschlusseigenschaften |
1 | 993 \end{itemize} |
994 \begin{table} | |
995 \begin{tabu}to \textwidth{X[c]|ccccc} | |
996 & Schnitt & Vereinigung & Komplement & Produkt & Stern \\ \tabucline{} | |
997 REG & ja & ja & ja & ja & ja\\ | |
998 CFL & nein & ja & nein & ja & ja\\ | |
27
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
999 CSL & ja & ja & ja & ja & ja\\ |
1 | 1000 TM & \structure{ja} & \structure{ja} & \structure{nein} & \structure{ja} & \structure{ja} |
1001 \end{tabu} | |
1002 \end{table} | |
1003 | |
1004 \vfill | |
1005 | |
1006 \begin{itemize} | |
27
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
1007 \item Entscheidbarkeit |
1 | 1008 \end{itemize} |
1009 \begin{table} | |
1010 \begin{tabu}to \textwidth{X[c]|cccc} | |
1011 & Wortproblem & Leerheit & Äquivalenz & Schnittproblem\\ \tabucline{} | |
1012 DFA & $\Oh(n)$ & ja & ja & ja\\ | |
1013 CFG & $\Oh(n^3)$ & ja & nein & nein\\ | |
27
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
1014 CSL & $\Oh(2^n)$ & nein & nein & nein\\ |
1 | 1015 TM & \structure{nein} & \structure{nein} & \structure{nein} & \structure{nein} |
1016 \end{tabu} | |
1017 \end{table} | |
1018 \end{frame} | |
1019 } | |
1020 | |
1021 \defineUnit{formalesprachen}{% | |
1022 \begin{frame}[c] | |
1023 \frametitle{Formale Sprachen} | |
1024 \setbeamercovered{dynamic} | |
1025 | |
1026 \begin{center} | |
1027 \begin{tikzpicture}[auto] | |
1028 \tikzstyle{rect} = [thick]; | |
1029 \tikzstyle{caption} = [align=left, anchor=north west]; | |
1030 | |
27
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
1031 \definecolor{hannahyellow}{HTML}{FFB81C} |
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
1032 \langclass{brown}{}{0}{Formale Sprache $\subseteq \Sigma^*$}; |
1 | 1033 \langclass{tumblue}{}{1}{Typ 0 - Semi-Entscheidbar}; |
1034 \langclass{tumgreen}{}{2}{Entscheidbar}; | |
1035 \langclass{violet}{}{3}{LOOP, PR}; | |
1036 \langclass{tumred}{}{4}{NP}; | |
27
f7bcd68a0c12
eigth sheet and notes; add hierarchy slides
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
6
diff
changeset
|
1037 \langclass{hannahyellow}{dashed}{5}{P}; |
1 | 1038 \langclass{tumgreen!40!black}{}{6}{Typ 2 - Kontextfrei}; |
1039 \langclass{tumlightblue!80!black}{}{7}{Typ 3 - Regulär}; | |
1040 \langclass{tumblue!20!black}{}{8}{Endlich}; | |
1041 \end{tikzpicture} | |
1042 \end{center} | |
1043 \end{frame} | |
1044 } |