annotate notes/tex/ue09_notes.tex @ 34:d89b21ed9eb4

ue09 notes
author Markus Kaiser <markus.kaiser@in.tum.de>
date Tue, 25 Jun 2013 00:11:39 +0200
parents
children 844698060e1c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
34
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
1 \input{preamble.tex}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
2
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
3 \title{Übung 9: Berechnungsmodelle}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
4 \subtitle{Theoretische Informatik Sommersemester 2013}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
5 \author{\href{mailto:markus.kaiser@in.tum.de}{Markus Kaiser}}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
6
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
7 \begin{document}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
8
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
9 \begin{frame}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
10 \titlepage
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
11 \end{frame}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
12
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
13 \begin{frame}[c]
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
14 \frametitle{Chomsky-Hierarchie}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
15 \setbeamercovered{dynamic}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
16
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
17 \begin{center}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
18 \begin{tikzpicture}[auto]
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
19 \tikzstyle{rect} = [thick];
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
20 \tikzstyle{caption} = [align=left, anchor=north west];
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
21
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
22 \draw[rect, tumblue, fill=tumblue!10] (5.5, 0) rectangle (-5.5, 7) node[caption] {Alle Algorithmen};
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
23 \draw[rect, dashed, tumred, fill=tumred!10] (4.5, 0.3) rectangle (-4.5, 6) node[caption] {Typ 0 - Rekursiv aufzählbar\\Turingmaschinen, $\lambda$-Kalkül};
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
24 \draw[rect, tumivory, fill=tumivory!10] (3.5, 0.6) rectangle (-3.5, 4.8) node[caption] {Typ 1 - Kontextsensitiv\\CSG};
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
25 \draw[rect, tumorange, fill=tumorange!10] (2.5, 0.9) rectangle (-2.5, 3.6) node[caption] {Typ 2 - Kontextfrei\\PDA, CFG};
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
26 \draw[rect, tumgreen, fill=tumgreen!10] (1.5, 1.2) rectangle (-1.5, 2.4) node[caption] {Typ 3 - Regulär\\DFA, RE};
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
27 \end{tikzpicture}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
28 \end{center}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
29 \end{frame}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
30
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
31 \begin{frame}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
32 \frametitle{Berechenbarkeit}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
33 \setbeamercovered{dynamic}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
34
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
35 \begin{definition}[Intuitive Berechenbarkeit]
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
36 Eine Funktion $f : \N^k \mapsto \N$ heißt \alert{intuitiv berechenbar}, wenn es einen Algorithmus gibt, der bei Eingabe $(n_1, \ldots, n_k) \in \N^k$
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
37 \begin{itemize}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
38 \item nach \alert{endlich vielen Schritten} mit Ergebnis $f(n_1, \ldots, n_k)$ hält, falls $f(\ldots)$ definiert ist,
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
39 \item und \alert{nicht terminiert}, falls $f(\ldots)$ nicht definiert ist.
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
40 \end{itemize}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
41 \end{definition}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
42
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
43 \vfill
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
44
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
45 \begin{block}{Churchsche These (nicht beweisbar)}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
46 Turing-Maschinen können genau \alert{alle} intuitiv berechenbaren Funktionen berechnen.
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
47 \end{block}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
48 \end{frame}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
49
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
50 \begin{frame}[c]
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
51 \frametitle{Berechenbarkeit}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
52 \setbeamercovered{dynamic}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
53
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
54 \begin{example}[Berechenbarkeit]
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
55 Sind die folgenden Funktionen intuitiv berechenbar?
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
56
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
57 \begin{align*}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
58 f_1(n) &= \begin{cases}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
59 1 & \text{falls $n$ prim}\\
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
60 0 & \text{sonst}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
61 \end{cases} \\
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
62 f_2(n) &= \begin{cases}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
63 1 & \text{falls $n$ die ersten $n$ Ziffern von $\pi$ darstellt}\\
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
64 0 & \text{sonst}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
65 \end{cases} \\
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
66 f_3(n) &= \begin{cases}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
67 1 & \text{falls in $\pi$ $n$ Nullen am Stück vorkommen}\\
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
68 0 & \text{sonst}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
69 \end{cases}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
70 \end{align*}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
71 \end{example}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
72 \end{frame}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
73
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
74 \begin{frame}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
75 \frametitle{Programmieren mit TMs}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
76 \setbeamercovered{dynamic}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
77
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
78 Sind $f_1$ und $f_2$ Endzustände von $M$, so bezeichnet
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
79 \begin{center}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
80 \begin{tikzpicture}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
81 \node (M) at (0, 0) {$M$};
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
82 \node[above right=0.2cm and 1cm of M] (M1) {$M_1$};
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
83 \node[below right=0.2cm and 1cm of M] (M2) {$M_2$};
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
84 \coordinate[right of=M1] (M1s);
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
85 \coordinate[right of=M2] (M2s);
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
86
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
87 \draw[every edge] (-1, 0) -- (M);
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
88 \draw[every edge] (M) -- node[above left] {$f_1$} (M1);
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
89 \draw[every edge] (M) -- node[below left] {$f_2$} (M2);
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
90 \draw[every edge] (M1) -- (M1s);
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
91 \draw[every edge] (M2) -- (M2s);
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
92 \end{tikzpicture}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
93 \end{center}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
94 eine \alert{Fallunterscheidung}.\\
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
95 \begin{example}[Band=0?]
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
96 \begin{align*}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
97 \delta(q_0, 0) &= (q_0, 0, R) \\
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
98 \delta(q_0, \square) &= (ja, \square, L) \\
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
99 \delta(q_0, a) &= (nein, a, N) \qquad \text{für} a \neq 0, \square
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
100 \end{align*}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
101 \end{example}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
102 \end{frame}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
103
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
104 \begin{frame}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
105 \frametitle{LOOP-Programme}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
106 \setbeamercovered{dynamic}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
107
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
108 \begin{definition}[LOOP-Programm]
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
109 Syntax von \alert{LOOP-Programmen}.\\
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
110 Es ist $X \in \left\{ x_0, x_1, \ldots \right\}$ und $C \in \N$.
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
111 \begin{align*}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
112 P &\rightarrow X := X + C \\
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
113 &\mid X := X - C \\
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
114 &\mid P; P \\
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
115 &\mid \mathbf{LOOP}\ X \ \mathbf{DO}\ P \ \mathbf{END} \\
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
116 &\mid \textcolor{gray}{\mathbf{IF}\ X = 0 \ \mathbf{DO}\ P \ \mathbf{ELSE}\ Q \ \mathbf{END}}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
117 \end{align*}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
118 \end{definition}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
119
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
120 \begin{itemize}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
121 \item Ausgabe steht in $x_0$, Eingaben in $x_1, \ldots, x_n$, Rest ist 0.
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
122 \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.}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
123 \end{itemize}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
124 \end{frame}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
125
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
126 \begin{frame}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
127 \frametitle{Primitive Rekursion}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
128 \setbeamercovered{dynamic}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
129
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
130 \begin{definition}[Basisfunktionen]
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
131 \alert{Primitiv Rekursiv} sind:
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
132 \begin{itemize}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
133 \item Die konstante Funktion \alert{0}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
134 \item Die \alert{Nachfolgerfunktion} $s(n) = n + 1$
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
135 \item Die \alert{Projektionsfunktion} $\pi_i^k : \N^k \mapsto \N, i \in [k]$
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
136 \[ \pi_i^k(x_1, \ldots, x_k) = x_i \]
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
137 \end{itemize}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
138 \end{definition}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
139
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
140 \begin{definition}[Komposition]
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
141 Sind $g$ und $h_i$ PR und $\bar{x} = (x_1, \ldots, x_n)$, dann ist auch \alert{$f$} PR:
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
142 \[ f(\bar{x}) = \alert{g(h_1(\bar{x}), \ldots, h_k(\bar{x}))} \]
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
143 \end{definition}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
144 \end{frame}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
145
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
146 \begin{frame}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
147 \frametitle{Primitive Rekursion}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
148 \setbeamercovered{dynamic}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
149 \begin{block}{Basisfunktionen und Komposition}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
150 Schon \alert{PR} sind:
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
151 \begin{itemize}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
152 \item Konstante: $0$
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
153 \item Nachfolger: $s(n) = n + 1$
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
154 \item Projektion: $\pi_i^k : \N^k \mapsto \N$
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
155 \item Komposition: $f(\bar{x}) = g(h_1(\bar{x}), \ldots, h_k(\bar{x}))$
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
156 \end{itemize}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
157 \end{block}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
158
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
159 \begin{definition}[Primitive Rekursion]
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
160 Das Schema der \alert{primitiven Rekursion} erzeugt aus $g$ und $h$ die Funktion \alert{$f$}:
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
161 \begin{align*}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
162 f(0, \bar{x}) &= g(\bar{x}) \\
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
163 f(\alert{m + 1}, \bar{x}) &= h(f(\alert{m}, \bar{x}), \alert{m}, \bar{x})
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
164 \end{align*}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
165 \end{definition}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
166 \end{frame}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
167
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
168 \begin{frame}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
169 \frametitle{PR-Programme}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
170 \setbeamercovered{dynamic}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
171
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
172 U.a. diese Programme sind laut Vorlesung oder Übung PR:
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
173 \begin{itemize}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
174 \item \alert{$add(x, y) = x + y$}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
175 \item \alert{$mult(x, y) = x \cdot y$}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
176 \item $pred(x + 1) = \max \left\{ 0, x \right\}$
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
177 \item \alert{$x \dot{-} y = \max \left\{ 0, x - y \right\}$}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
178 \item $div(x, y) = x \div y$ (Ganzzahldivision)
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
179 \item $mod(x, y) = x \mod y$
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
180 \vspace{1.5em}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
181 \item $tower(n) = 2^{2^{2^{\iddots}}}$ mit $tower(4) = 2^{16}$
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
182 \item $sqr(x) = x^2$
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
183 \item $twopow(n) = 2^n$
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
184 \item $ifthen(n, a, b) = \begin{cases} a & n = 0 \\ b & n \neq 0 \end{cases}$
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
185 \end{itemize}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
186 \end{frame}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
187
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
188 \begin{frame}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
189 \frametitle{Erweitertes PR-Schema}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
190 \setbeamercovered{dynamic}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
191
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
192 \begin{definition}[Erweitertes PR-Schema]
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
193 Das \alert{erweiterte Schema der primitiven Rekursion} erlaubt
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
194 \begin{align*}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
195 f(0, \bar{x}) &= t_0 \\
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
196 f(m + 1, \bar{x}) &= t
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
197 \end{align*}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
198 wobei
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
199 \begin{itemize}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
200 \item $t_0$ enthält nur PR-Funktionen und die $x_i$
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
201 \item $t$ enthält nur \alert{$f(m, \bar{x})$}, PR Funktionen, \alert{$m$} und die $x_i$.
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
202 \end{itemize}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
203 \end{definition}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
204
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
205 \begin{theorem}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
206 Das erweiterte Schema der primitiven Rekursion führt nicht aus \alert{PR} heraus.
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
207 \end{theorem}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
208 \end{frame}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
209
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
210 \begin{frame}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
211 \frametitle{WHILE-Programme}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
212 \setbeamercovered{dynamic}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
213
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
214 \begin{definition}[WHILE-Programm]
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
215 Syntax von \alert{WHILE-Programmen}.\\
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
216 Es ist $X \in \left\{ x_0, x_1, \ldots \right\}$ und $C \in \N$.
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
217 \begin{align*}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
218 P &\rightarrow X := X + C \\
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
219 &\mid X := X - C \\
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
220 &\mid P; P \\
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
221 &\mid \alert{\mathbf{WHILE}\ X \neq 0 \ \mathbf{DO}\ P \ \mathbf{END}} \\
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
222 &\mid \textcolor{gray}{\mathbf{LOOP}\ X \ \mathbf{DO}\ P \ \mathbf{END}} \\
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
223 &\mid \textcolor{gray}{\mathbf{IF}\ X = 0 \ \mathbf{DO}\ P \ \mathbf{ELSE}\ Q \ \mathbf{END}}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
224 \end{align*}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
225 \end{definition}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
226
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
227 \begin{itemize}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
228 \item Ausgabe steht in $x_0$, Eingaben in $x_1, \ldots, x_n$, Rest ist 0.
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
229 \item Semantik wie erwartet.
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
230 \end{itemize}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
231 \end{frame}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
232
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
233 \begin{frame}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
234 \frametitle{GOTO-Programme}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
235 \setbeamercovered{dynamic}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
236
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
237 \begin{definition}[GOTO-Programm]
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
238 Syntax von \alert{GOTO-Programmen}.\\
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
239 Es ist $X \in \left\{ x_0, x_1, \ldots \right\}$ und $C \in \N$. \\
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
240 Alle Anweisungen haben eine Markierung \alert{$M_1 : A_1; M_2 : A_2$}.
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
241 \begin{align*}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
242 P &\rightarrow X := X + C \\
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
243 &\mid X := X - C \\
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
244 &\mid P; P \\
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
245 &\mid \mathbf{GOTO}\ M_i \\
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
246 &\mid \mathbf{IF}\ X = 0 \ \mathbf{GOTO}\ M_i \\
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
247 &\mid \mathbf{HALT}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
248 \end{align*}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
249 \end{definition}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
250
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
251 \begin{itemize}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
252 \item Ausgabe steht in $x_0$, Eingaben in $x_1, \ldots, x_n$, Rest ist 0.
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
253 \end{itemize}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
254 \end{frame}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
255
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
256 \begin{frame}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
257 \frametitle{Übersetzungen}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
258 \setbeamercovered{dynamic}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
259
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
260 \begin{center}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
261 \begin{tikzpicture}[node distance=2.5cm]
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
262 \node (WH) {WHILE};
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
263 \node (GO) [above left of = WH] {GOTO};
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
264 \node (TM) [above right of = WH] {TM};
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
265 \node (LO) [below of = WH] {LOOP};
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
266 \node (PR) [left of = LO] {PR};
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
267
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
268 \draw [every edge, ->] (LO) -- (WH);
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
269 \draw [every edge, tumgreen, <->] (LO) -- (PR);
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
270 \draw [every edge, <->] (WH) -- (GO);
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
271 \draw [every edge, ->] (WH) -- (TM);
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
272 \draw [every edge, ->] (TM) -- (GO);
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
273 \end{tikzpicture}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
274 \end{center}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
275
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
276 \vfill
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
277
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
278 LOOP kann in WHILE \alert{übersetzt} werden, WHILE ist also \alert{mindestens so mächtig} wie LOOP (sogar mächtiger).
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
279 \end{frame}
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
280
d89b21ed9eb4 ue09 notes
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
281 \end{document}