comparison notes/tex/ue01_notes.tex @ 44:15351d87ce76

transition notes
author Markus Kaiser <markus.kaiser@in.tum.de>
date Thu, 11 Jul 2013 22:06:26 +0200
parents 27fedbbdab6d
children
comparison
equal deleted inserted replaced
43:c14b92bfa07f 44:15351d87ce76
1 \input{preamble.tex} 1 \input{preamble.tex}
2 \input{frames.tex}
2 3
3 \title{Übung 1: Sprachen und Automaten} 4 \title{Übung 1: Sprachen und Automaten}
4 \subtitle{Theoretische Informatik Sommersemester 2013} 5 \subtitle{Theoretische Informatik Sommersemester 2013}
5 \author{\href{mailto:markus.kaiser@in.tum.de}{Markus Kaiser}} 6 \author{\href{mailto:markus.kaiser@in.tum.de}{Markus Kaiser}}
6 7
7 \begin{document} 8 \begin{document}
8 9 \showUnit{titel}
9 \begin{frame} 10 \showUnit{organisatorisches}
10 \titlepage 11 \showUnit{wasisttheo}
11 \end{frame} 12 \showUnit{alphabet}
12 13 \showUnit{dfa}
13 \begin{frame} 14 \showUnit{nfa}
14 \frametitle{Organisatorisches} 15 \showUnit{enfa}
15 16 \showUnit{automatenkonversionen}
16 \begin{itemize} 17 \showUnit{name}
17 \item Mail: \href{mailto:tutor@zfix.org}{tutor@zfix.org}
18 \item Web: \href{tutor.zfix.org}{tutor.zfix.org}
19 \vfill
20 \item Wann?
21 \begin{itemize}
22 \item Dienstag 10:15-11:45 00.08.038
23 \item Dienstag 12:05-13:35 00.08.038
24 \end{itemize}
25 \item Übungsablauf, Aufgabentypen
26 \item Hausaufgaben
27 \begin{itemize}
28 \item Abgabe am Montag 14h, \alert{allein}
29 \item Rückgabe in der \alert{richtigen} Übung
30 \item Notenbonus für 40\% der Punkte, 40\% in der zweiten Hälfte
31 \end{itemize}
32 \item Klausur
33 \begin{itemize}
34 \item Endterm: Mi 31.07. 11.30-14h
35 \item Wiederholung: Do 26.09. 11-13.30h
36 \end{itemize}
37 \end{itemize}
38 \end{frame}
39
40 \begin{frame}
41 \frametitle{Was ist Theoinf?}
42
43 Aus der VL
44 \vspace{1em}
45
46 \begin{itemize}
47 \item Automatentheorie
48 \begin{itemize}
49 \item Rechner mit endlichem oder kellerartigem Speicher
50 \end{itemize}
51 \vspace{0.5em}
52 \item Grammatiken
53 \begin{itemize}
54 \item Syntax von Programmiersprachen
55 \end{itemize}
56 \vspace{0.5em}
57 \item Berechenbarkeitstheorie
58 \begin{itemize}
59 \item Untersuchung der Grenzen, was Rechner prinzipiell können
60 \end{itemize}
61 \vspace{0.5em}
62 \item Komplexitätstheorie
63 \begin{itemize}
64 \item Untersuchung der Grenzen, was Rechner mit begrenzten Ressourcen können
65 \end{itemize}
66 \end{itemize}
67 \end{frame}
68
69 \begin{frame}
70 \frametitle{Grundlegendes}
71
72 \begin{definition}
73 \begin{itemize}
74 \item Ein \alert{Alphabet} $\Sigma$ ist eine endliche Menge.
75 \item Ein \alert{Wort} über $\Sigma$ ist eine endliche Folge von Zeichen.
76 \item Eine Teilmenge $L \subseteq \Sigma^*$ ist eine \alert{formale Sprache}
77 \end{itemize}
78 \end{definition}
79
80 \vfill
81
82 \begin{definition}[Operationen auf Sprachen]
83 \begin{itemize}
84 \item $\alert{AB} = \left\{ uv \mid u \in A \wedge v \in B \right\}$
85 \item $\alert{A^n} = \left\{w_1 \ldots w_n \mid w_1 \ldots w_n \in A \right\}$,\qquad $A^0 = \{\epsilon\}$
86 \item $\alert{A^*} = \bigcup_{n \in \N_0} A^n$
87 \end{itemize}
88 \end{definition}
89 \end{frame}
90
91 \begin{frame}
92 \frametitle{DFA}
93
94 \begin{definition}[Deterministischer endlicher Automat]
95 Ein \alert{DFA} ist ein Tupel $M = (Q, \Sigma, \delta, q_0, F)$ aus einer/einem
96 \begin{itemize}
97 \item endlichen Menge von \alert{Zuständen} $Q$
98 \item endlichen \alert{Eingabealphabet} $\Sigma$
99 \item totalen \alert{Übergangsfunktion} $\delta : Q \times \Sigma \to Q$
100 \item \alert{Startzustand} $q_0 \in Q$
101 \item Menge von \alert{Endzuständen} $F \subseteq Q$
102 \end{itemize}
103 \end{definition}
104
105 \vfill
106 \pause
107
108 \begin{center}
109 \begin{tikzpicture}[shorten >=1pt, node distance = 3cm, auto, bend angle=20, initial text=]
110 \node[state, initial] (q0) {$q_0$};
111 \node[state, accepting] (q1) [right of = q0] {$q_1$};
112 \node[state] (q2) [right of = q1] {$q_2$};
113
114 \draw[->] (q0) edge [loop above] node {0} (q0);
115 \draw[->] (q2) edge [loop above] node {1} (q2);
116 \draw[->] (q0) edge [bend left] node {1} (q1);
117 \draw[->] (q1) edge [bend left] node {1} (q0);
118 \draw[->] (q1) edge [bend left] node {0} (q2);
119 \draw[->] (q2) edge [bend left] node {0} (q1);
120 \end{tikzpicture}
121 \end{center}
122 \end{frame}
123
124 \begin{frame}
125 \frametitle{NFA}
126 \begin{definition}[Nicht-Deterministischer endlicher Automat]
127 Ein \alert{NFA} ist ein Tupel $N = (Q, \Sigma, \delta, q_0, F)$ mit
128 \begin{itemize}
129 \item $Q, \Sigma, q_0, F$ wie ein DFA
130 \item \alert{Übergangsfunktion} $\delta : Q \times \Sigma \to P(Q)$
131 \end{itemize}
132 \end{definition}
133
134 \vfill
135 \pause
136
137 \begin{center}
138 \begin{tikzpicture}[shorten >=1pt, node distance = 3cm, auto, bend angle=20, initial text=]
139 \node[state, initial] (q0) {$q_0$};
140 \node[state, accepting] (q1) [right of = q0] {$q_1$};
141
142 \draw[->] (q0) edge [loop above] node {0,1} (q0);
143 \draw[->] (q0) edge node {1} (q1);
144 \end{tikzpicture}
145 \end{center}
146 \end{frame}
147
148 \begin{frame}
149 \frametitle{$\epsilon$-NFA}
150 \begin{definition}[NFA mit $\epsilon$-Übergängen]
151 Ein \alert{$\epsilon$-NFA} ist ein Tupel $N = (Q, \Sigma, \delta, q_0, F)$ mit
152 \begin{itemize}
153 \item $Q, \Sigma, q_0, F$ wie ein DFA
154 \item \alert{Übergangsfunktion} $\delta : Q \times \left( \Sigma \cup \{\epsilon\} \right) \to P(Q)$
155 \end{itemize}
156 \end{definition}
157
158 \vfill
159 \pause
160
161 \begin{center}
162 \begin{tikzpicture}[shorten >=1pt, node distance = 3cm, auto, bend angle=30, initial text=]
163 \node[state] (q1) {$q_1$};
164 \node[state, initial] (q0) [left of = q1] {$q_0$};
165 \node[state, accepting] (q2) [right of = q1] {$q_2$};
166
167 \draw[->] (q0) edge [red] node {$\epsilon$} (q1);
168 \draw[->] (q1) edge [loop above] node {0,1} (q1);
169 \draw[->] (q1) edge node {1} (q2);
170 \draw[->] (q0) edge [bend right, red] node {$\epsilon$} (q2);
171 \end{tikzpicture}
172 \end{center}
173 \end{frame}
174
175 \begin{frame}
176 \frametitle{Automaten}
177 \begin{block}{Übergangsfunktionen}
178 Die Automaten $A = (Q, \Sigma, \delta, q_0, F)$ unterscheiden sich nur durch ihre Übergangsfunktionen.
179
180 \begin{description}
181 \item[DFA] $\delta : Q \times \Sigma \to Q$
182 \item[NFA] $\delta : Q \times \Sigma \to \alert{P(Q)}$
183 \item[$\epsilon$-NFA] $\delta : Q \times \alert{\left( \Sigma \cup \{\epsilon\} \right)} \to \alert{P(Q)}$
184 \end{description}
185 \end{block}
186
187 \vfill
188
189 \begin{theorem}
190 \alert{DFA}, \alert{NFA} und \alert{$\epsilon$-NFA} sind gleich mächtig und lassen sich ineinander umwandeln.
191 \end{theorem}
192 \end{frame}
193
194 \begin{frame}
195 \frametitle{Tutoraufgabe 3}
196
197 \begin{center}
198 \begin{tikzpicture}[shorten >=1pt, node distance = 3cm, auto, bend angle=20, initial text=]
199 \node[state, initial] (q0) {$q_0$};
200 \node[state, accepting] (q1) [above right of = q0] {$q_1$};
201 \node[state] (q2) [right of = q1] {$q_2$};
202 \node[state] (q3) [below right of = q0] {$q_3$};
203 \node[state] (q4) [right of = q3] {$q_4$};
204
205 \draw[->] (q0) edge node {0} (q1);
206 \draw[->] (q0) edge node {1} (q3);
207
208 \draw[->] (q1) edge [loop above] node {0} (q1);
209 \draw[->] (q2) edge [loop right] node {1} (q2);
210 \draw[->] (q4) edge [loop right] node {0} (q4);
211
212 \draw[->] (q1) edge [bend left] node {1} (q2);
213 \draw[->] (q2) edge [bend left] node {0} (q1);
214 \draw[->] (q3) edge [bend left] node {0,1} (q4);
215 \draw[->] (q4) edge [bend left] node {1} (q3);
216 \end{tikzpicture}
217 \end{center}
218 \end{frame}
219
220 \end{document} 18 \end{document}