slides/slides04.tex
author Christian Urban <christian dot urban at kcl dot ac dot uk>
Sat, 11 Oct 2014 13:50:36 +0100
changeset 270 4dbeaf43031d
parent 265 332fbe9c91ab
child 272 1446bc47a294
permissions -rw-r--r--
updated
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
33
92b3e287d87e slides 4
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     1
\documentclass[dvipsnames,14pt,t]{beamer}
270
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
     2
\usepackage{../slides}
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
     3
\usepackage{../graphics}
215
828303e8e4af updated slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 145
diff changeset
     4
\usepackage{../langs}
828303e8e4af updated slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 145
diff changeset
     5
\usepackage{../data}
33
92b3e287d87e slides 4
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     6
270
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
     7
\hfuzz=220pt 
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
     8
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
     9
\pgfplotsset{compat=1.11}
145
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    10
270
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
    11
\newcommand{\bl}[1]{\textcolor{blue}{#1}}  
33
92b3e287d87e slides 4
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    12
270
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
    13
\renewcommand{\slidecaption}{AFL 04, King's College London}
33
92b3e287d87e slides 4
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    14
92b3e287d87e slides 4
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    15
\begin{document}
92b3e287d87e slides 4
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    16
92b3e287d87e slides 4
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    17
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
270
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
    18
\begin{frame}[t]
33
92b3e287d87e slides 4
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    19
\frametitle{%
92b3e287d87e slides 4
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    20
  \begin{tabular}{@ {}c@ {}}
92b3e287d87e slides 4
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    21
  \\[-3mm]
92b3e287d87e slides 4
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    22
  \LARGE Automata and \\[-2mm] 
92b3e287d87e slides 4
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    23
  \LARGE Formal Languages (4)\\[3mm] 
92b3e287d87e slides 4
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    24
  \end{tabular}}
92b3e287d87e slides 4
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    25
92b3e287d87e slides 4
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    26
  \normalsize
92b3e287d87e slides 4
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    27
  \begin{center}
92b3e287d87e slides 4
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    28
  \begin{tabular}{ll}
92b3e287d87e slides 4
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    29
  Email:  & christian.urban at kcl.ac.uk\\
142
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 139
diff changeset
    30
  Office: & S1.27 (1st floor Strand Building)\\
33
92b3e287d87e slides 4
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    31
  Slides: & KEATS (also home work is there)\\
92b3e287d87e slides 4
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    32
  \end{tabular}
92b3e287d87e slides 4
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    33
  \end{center}
270
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
    34
\end{frame}
33
92b3e287d87e slides 4
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    35
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
92b3e287d87e slides 4
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    36
139
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
    37
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
    38
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
    39
\mode<presentation>{
144
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 142
diff changeset
    40
\begin{frame}[c]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 142
diff changeset
    41
\frametitle{Regexps and Automata}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 142
diff changeset
    42
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 142
diff changeset
    43
\begin{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 142
diff changeset
    44
\begin{tikzpicture}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 142
diff changeset
    45
\node (rexp)  {\bl{\bf Regexps}};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 142
diff changeset
    46
\node (nfa) [right=of rexp] {\bl{\bf NFAs}};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 142
diff changeset
    47
\node (dfa) [right=of nfa] {\bl{\bf DFAs}};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 142
diff changeset
    48
\onslide<3->{\node (mdfa) [right=of dfa] {\bl{\bf \begin{tabular}{c}minimal\\ DFAs\end{tabular}}};}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 142
diff changeset
    49
\path[->, red, line width=2mm] (rexp) edge node [above=4mm, black] {\begin{tabular}{c@{\hspace{9mm}}}Thompson's\\[-1mm] construction\end{tabular}} (nfa);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 142
diff changeset
    50
\path[->, red, line width=2mm] (nfa) edge node [above=4mm, black] {\begin{tabular}{c}subset\\[-1mm] construction\end{tabular}}(dfa);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 142
diff changeset
    51
\onslide<3->{\path[->, red, line width=2mm] (dfa) edge node [below=9mm, black] {minimisation} (mdfa);}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 142
diff changeset
    52
\onslide<2->{\path[->, red, line width=2mm] (dfa) edge [bend left=45] (rexp);}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 142
diff changeset
    53
\end{tikzpicture}\\
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 142
diff changeset
    54
\end{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 142
diff changeset
    55
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 142
diff changeset
    56
\end{frame}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 142
diff changeset
    57
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 142
diff changeset
    58
145
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    59
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    60
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    61
\begin{frame}[t]
270
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
    62
\frametitle{\bl{$(a?\{n\}) \cdot a\{n\}$}}
145
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    63
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    64
\mbox{}\\[-13mm]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    65
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    66
\begin{tikzpicture}[y=.2cm, x=.09cm]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    67
 	%axis
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    68
	\draw (0,0) -- coordinate (x axis mid) (100,0);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    69
    	\draw (0,0) -- coordinate (y axis mid) (0,30);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    70
    	%ticks
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    71
    	\foreach \x in {0,10,...,100}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    72
     		\draw (\x,1pt) -- (\x,-3pt)
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    73
			node[anchor=north] {\x};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    74
    	\foreach \y in {0,5,...,30}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    75
     		\draw (1pt,\y) -- (-3pt,\y) 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    76
     			node[anchor=east] {\y}; 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    77
	%labels      
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    78
	\node[below=0.6cm] at (x axis mid) {\bl{a}s};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    79
	\node[rotate=90, left=1.2cm] at (y axis mid) {secs};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    80
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    81
	%plots
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    82
	\draw[color=blue] plot[mark=*, mark options={fill=white}] 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    83
		file {re-python.data};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    84
	\draw[color=red] plot[mark=triangle*, mark options={fill=white} ] 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    85
		file {nfa.data};	  
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    86
	\draw[color=brown] plot[mark=pentagon*, mark options={fill=white} ] 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    87
		file {re-ruby.data};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    88
		
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    89
    
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    90
	%legend
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    91
	\begin{scope}[shift={(4,20)}] 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    92
	\draw[color=blue] (0,0) -- 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    93
		plot[mark=*, mark options={fill=white}] (0.25,0) -- (0.5,0) 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    94
		node[right]{\small Python};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    95
	\draw[yshift=-\baselineskip, color=brown] (0,0) -- 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    96
		plot[mark=pentagon*, mark options={fill=white}] (0.25,0) -- (0.5,0)
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    97
		node[right]{\small Ruby};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    98
	\draw[yshift=\baselineskip, color=red] (0,0) -- 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
    99
		plot[mark=triangle*, mark options={fill=white}] (0.25,0) -- (0.5,0)
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   100
		node[right]{\small NFA 1};		
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   101
	\end{scope}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   102
\end{tikzpicture}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   103
270
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   104
\end{frame}
145
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   105
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   106
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   107
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   108
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   109
\mode<presentation>{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   110
\begin{frame}[t]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   111
\frametitle{\begin{tabular}{c}\bl{$(a?\{n\}) \cdot a\{n\}$}\end{tabular}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   112
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   113
\mbox{}\\[-13mm]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   114
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   115
\begin{tikzpicture}[y=.2cm, x=.3cm]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   116
 	%axis
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   117
	\draw (0,0) -- coordinate (x axis mid) (30,0);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   118
    	\draw (0,0) -- coordinate (y axis mid) (0,30);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   119
    	%ticks
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   120
    	\foreach \x in {0,5,...,30}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   121
     		\draw (\x,1pt) -- (\x,-3pt)
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   122
			node[anchor=north] {\x};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   123
    	\foreach \y in {0,5,...,30}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   124
     		\draw (1pt,\y) -- (-3pt,\y) 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   125
     			node[anchor=east] {\y}; 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   126
	%labels      
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   127
	\node[below=0.6cm] at (x axis mid) {\bl{a}s};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   128
	\node[rotate=90, left=1.2cm] at (y axis mid) {secs};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   129
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   130
	%plots
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   131
	\draw[color=blue] plot[mark=*, mark options={fill=white}] 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   132
		file {re-python.data};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   133
	\draw[color=red] plot[mark=triangle*, mark options={fill=white} ] 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   134
		file {nfasearch.data};	  
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   135
	\draw[color=brown] plot[mark=pentagon*, mark options={fill=white} ] 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   136
		file {re-ruby.data};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   137
    
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   138
	%legend
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   139
	\begin{scope}[shift={(4,20)}] 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   140
	\draw[color=blue] (0,0) -- 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   141
		plot[mark=*, mark options={fill=white}] (0.25,0) -- (0.5,0) 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   142
		node[right]{\small Python};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   143
	\draw[yshift=-\baselineskip, color=brown] (0,0) -- 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   144
		plot[mark=pentagon*, mark options={fill=white}] (0.25,0) -- (0.5,0)
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   145
		node[right]{\small Ruby};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   146
	\draw[yshift=\baselineskip, color=red] (0,0) -- 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   147
		plot[mark=triangle*, mark options={fill=white}] (0.25,0) -- (0.5,0)
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   148
		node[right]{\small NFA 2};		
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   149
	\end{scope}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   150
\end{tikzpicture}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   151
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   152
\end{frame}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   153
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   154
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   155
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   156
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   157
\mode<presentation>{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   158
\begin{frame}<2>[c]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   159
\frametitle{DFA to Rexp}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   160
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   161
\begin{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   162
\begin{tikzpicture}[scale=2, line width=0.5mm]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   163
  \only<1>{\node[state, initial]        (q0) at ( 0,1) {$q_0$};}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   164
  \only<2->{\node[state, initial,accepting]        (q0) at ( 0,1) {$q_0$};}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   165
  \only<1>{\node[state]                    (q1) at ( 1,1) {$q_1$};}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   166
  \only<2->{\node[state,accepting]                    (q1) at ( 1,1) {$q_1$};}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   167
  \only<1>{\node[state, accepting] (q2) at ( 2,1) {$q_2$};}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   168
  \only<2->{\node[state] (q2) at ( 2,1) {$q_2$};}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   169
  \path[->] (q0) edge[bend left] node[above] {$a$} (q1)
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   170
                  (q1) edge[bend left] node[above] {$b$} (q0)
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   171
                  (q2) edge[bend left=50] node[below] {$b$} (q0)
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   172
                  (q1) edge node[above] {$a$} (q2)
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   173
                  (q2) edge [loop right] node {$a$} ()
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   174
                  (q0) edge [loop below] node {$b$} ()
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   175
            ;
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   176
\end{tikzpicture}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   177
\end{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   178
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   179
\onslide<3>{How to get from a DFA to a regular expression?}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   180
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   181
\end{frame}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   182
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   183
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   184
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   185
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   186
\mode<presentation>{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   187
\begin{frame}[c]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   188
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   189
\begin{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   190
\begin{tikzpicture}[scale=2, line width=0.5mm]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   191
  \only<1->{\node[state, initial]        (q0) at ( 0,1) {$q_0$};}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   192
  \only<1->{\node[state]                    (q1) at ( 1,1) {$q_1$};}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   193
  \only<1->{\node[state] (q2) at ( 2,1) {$q_2$};}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   194
  \path[->] (q0) edge[bend left] node[above] {$a$} (q1)
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   195
                  (q1) edge[bend left] node[above] {$b$} (q0)
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   196
                  (q2) edge[bend left=50] node[below] {$b$} (q0)
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   197
                  (q1) edge node[above] {$a$} (q2)
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   198
                  (q2) edge [loop right] node {$a$} ()
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   199
                  (q0) edge [loop below] node {$b$} ()
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   200
            ;
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   201
\end{tikzpicture}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   202
\end{center}\pause\bigskip
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   203
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   204
\onslide<2->{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   205
\begin{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   206
\begin{tabular}{r@ {\hspace{2mm}}c@ {\hspace{2mm}}l}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   207
\bl{$q_0$} & \bl{$=$} & \bl{$2\, q_0 + 3 \,q_1 +  4\, q_2$}\\
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   208
\bl{$q_1$} & \bl{$=$} & \bl{$2 \,q_0 + 3\, q_1 + 1\, q_2$}\\
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   209
\bl{$q_2$} & \bl{$=$} & \bl{$1\, q_0 + 5\, q_1 + 2\, q_2$}\\
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   210
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   211
\end{tabular}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   212
\end{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   213
}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   214
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   215
\end{frame}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   216
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   217
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   218
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   219
\mode<presentation>{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   220
\begin{frame}[c]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   221
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   222
\begin{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   223
\begin{tikzpicture}[scale=2, line width=0.5mm]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   224
  \only<1->{\node[state, initial]        (q0) at ( 0,1) {$q_0$};}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   225
  \only<1->{\node[state]                    (q1) at ( 1,1) {$q_1$};}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   226
  \only<1->{\node[state] (q2) at ( 2,1) {$q_2$};}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   227
  \path[->] (q0) edge[bend left] node[above] {$a$} (q1)
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   228
                  (q1) edge[bend left] node[above] {$b$} (q0)
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   229
                  (q2) edge[bend left=50] node[below] {$b$} (q0)
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   230
                  (q1) edge node[above] {$a$} (q2)
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   231
                  (q2) edge [loop right] node {$a$} ()
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   232
                  (q0) edge [loop below] node {$b$} ()
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   233
            ;
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   234
\end{tikzpicture}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   235
\end{center}\bigskip
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   236
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   237
\onslide<2->{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   238
\begin{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   239
\begin{tabular}{r@ {\hspace{2mm}}c@ {\hspace{2mm}}l}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   240
\bl{$q_0$} & \bl{$=$} & \bl{$\epsilon + q_0\,b + q_1\,b +  q_2\,b$}\\
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   241
\bl{$q_1$} & \bl{$=$} & \bl{$q_0\,a$}\\
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   242
\bl{$q_2$} & \bl{$=$} & \bl{$q_1\,a + q_2\,a$}\\
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   243
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   244
\end{tabular}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   245
\end{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   246
}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   247
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   248
\onslide<3->{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   249
Arden's Lemma:
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   250
\begin{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   251
If \bl{$q = q\,r + s$}\; then\; \bl{$q = s\, r^*$}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   252
\end{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   253
}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   254
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   255
\end{frame}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   256
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   257
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   258
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   259
\mode<presentation>{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   260
\begin{frame}[c]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   261
\frametitle{DFA Minimisation}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   262
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   263
\begin{enumerate}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   264
\item Take all pairs \bl{$(q, p)$} with \bl{$q \not= p$}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   265
\item Mark all pairs that accepting and non-accepting states
270
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   266
\item For  all unmarked pairs \bl{$(q, p)$} and all characters \bl{$c$} test whether
145
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   267
\begin{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   268
\bl{$(\delta(q, c), \delta(p,c))$}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   269
\end{center} 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   270
are marked. If yes, then also mark \bl{$(q, p)$}.
270
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   271
\item Repeat last step until no change.
145
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   272
\item All unmarked pairs can be merged.
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   273
\end{enumerate}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   274
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   275
\end{frame}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   276
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
144
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 142
diff changeset
   277
265
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   278
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
270
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   279
\begin{frame}[c]
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   280
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   281
\begin{center}
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   282
\begin{tikzpicture}[>=stealth',very thick,auto,
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   283
                             every state/.style={minimum size=0pt,inner sep=2pt,draw=blue!50,very thick,fill=blue!20},]
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   284
\node[state,initial]  (q_0)  {$q_0$};
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   285
\node[state] (q_1) [right=of q_0] {$q_1$};
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   286
\node[state] (q_2) [below right=of q_0] {$q_2$};
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   287
\node[state] (q_3) [right=of q_2] {$q_3$};
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   288
\node[state, accepting] (q_4) [right=of q_1] {$q_4$};
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   289
\path[->] (q_0) edge node [above]  {\alert{$a$}} (q_1);
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   290
\path[->] (q_1) edge node [above]  {\alert{$a$}} (q_4);
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   291
\path[->] (q_4) edge [loop right] node  {\alert{$a, b$}} ();
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   292
\path[->] (q_3) edge node [right]  {\alert{$a$}} (q_4);
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   293
\path[->] (q_2) edge node [above]  {\alert{$a$}} (q_3);
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   294
\path[->] (q_1) edge node [right]  {\alert{$b$}} (q_2);
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   295
\path[->] (q_0) edge node [above]  {\alert{$b$}} (q_2);
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   296
\path[->] (q_2) edge [loop left] node  {\alert{$b$}} ();
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   297
\path[->] (q_3) edge [bend left=95, looseness=1.3] node [below]  {\alert{$b$}} (q_0);
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   298
\end{tikzpicture}
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   299
\end{center}
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   300
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   301
\mbox{}\\[-20mm]\mbox{}
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   302
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   303
\begin{center}
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   304
\begin{tikzpicture}[scale=0.8,line width=0.8mm]
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   305
\draw (0,0) -- (4,0);
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   306
\draw (0,1) -- (4,1);
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   307
\draw (0,2) -- (3,2);
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   308
\draw (0,3) -- (2,3);
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   309
\draw (0,4) -- (1,4);
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   310
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   311
\draw (0,0) -- (0, 4);
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   312
\draw (1,0) -- (1, 4);
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   313
\draw (2,0) -- (2, 3);
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   314
\draw (3,0) -- (3, 2);
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   315
\draw (4,0) -- (4, 1);
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   316
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   317
\draw (0.5,-0.5) node {$q_0$}; 
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   318
\draw (1.5,-0.5) node {$q_1$}; 
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   319
\draw (2.5,-0.5) node {$q_2$}; 
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   320
\draw (3.5,-0.5) node {$q_3$};
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   321
 
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   322
\draw (-0.5, 3.5) node {$q_1$}; 
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   323
\draw (-0.5, 2.5) node {$q_2$}; 
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   324
\draw (-0.5, 1.5) node {$q_3$}; 
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   325
\draw (-0.5, 0.5) node {$q_4$}; 
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   326
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   327
\draw (0.5,0.5) node {\large$\star$}; 
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   328
\draw (1.5,0.5) node {\large$\star$}; 
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   329
\draw (2.5,0.5) node {\large$\star$}; 
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   330
\draw (3.5,0.5) node {\large$\star$};
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   331
\end{tikzpicture}
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   332
\end{center}
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   333
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   334
\end{frame}
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   335
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   336
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   337
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   338
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   339
\begin{frame}[c]
265
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   340
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   341
\begin{center}
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   342
\begin{tikzpicture}[>=stealth',very thick,auto,
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   343
                             every state/.style={minimum size=0pt,inner sep=2pt,draw=blue!50,very thick,fill=blue!20},]
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   344
\node[state,initial]  (q_0)  {$q_0$};
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   345
\node[state] (q_1) [right=of q_0] {$q_1$};
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   346
\node[state] (q_2) [below right=of q_0] {$q_2$};
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   347
\node[state] (q_3) [right=of q_2] {$q_3$};
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   348
\node[state, accepting] (q_4) [right=of q_1] {$q_4$};
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   349
\path[->] (q_0) edge node [above]  {\alert{$a$}} (q_1);
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   350
\path[->] (q_1) edge node [above]  {\alert{$a$}} (q_4);
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   351
\path[->] (q_4) edge [loop right] node  {\alert{$a, b$}} ();
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   352
\path[->] (q_3) edge node [right]  {\alert{$a$}} (q_4);
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   353
\path[->] (q_2) edge node [above]  {\alert{$a$}} (q_3);
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   354
\path[->] (q_1) edge node [right]  {\alert{$b$}} (q_2);
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   355
\path[->] (q_0) edge node [above]  {\alert{$b$}} (q_2);
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   356
\path[->] (q_2) edge [loop left] node  {\alert{$b$}} ();
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   357
\path[->] (q_3) edge [bend left=95, looseness=1.3] node [below]  {\alert{$b$}} (q_0);
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   358
\end{tikzpicture}
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   359
\end{center}
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   360
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   361
\mbox{}\\[-20mm]\mbox{}
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   362
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   363
\begin{center}
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   364
\begin{tikzpicture}[>=stealth',very thick,auto,
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   365
                             every state/.style={minimum size=0pt,inner sep=2pt,draw=blue!50,very thick,fill=blue!20},]
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   366
\node[state,initial]  (q_02)  {$q_{0, 2}$};
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   367
\node[state] (q_13) [right=of q_02] {$q_{1, 3}$};
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   368
\node[state, accepting] (q_4) [right=of q_13] {$q_{4\phantom{,0}}$};
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   369
\path[->] (q_02) edge [bend left] node [above]  {\alert{$a$}} (q_13);
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   370
\path[->] (q_13) edge [bend left] node [below]  {\alert{$b$}} (q_02);
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   371
\path[->] (q_02) edge [loop below] node  {\alert{$b$}} ();
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   372
\path[->] (q_13) edge node [above]  {\alert{$a$}} (q_4);
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   373
\path[->] (q_4) edge [loop above] node  {\alert{$a, b$}} ();
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   374
\end{tikzpicture}\\
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   375
minimal automaton
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   376
\end{center}
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   377
270
4dbeaf43031d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 265
diff changeset
   378
\end{frame}
265
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   379
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
332fbe9c91ab added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 215
diff changeset
   380
144
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 142
diff changeset
   381
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 142
diff changeset
   382
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 142
diff changeset
   383
\mode<presentation>{
139
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   384
\begin{frame}<1-2>[c]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   385
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   386
\begin{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   387
\begin{tikzpicture}[>=stealth',very thick,auto,
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   388
                             every state/.style={minimum size=0pt,inner sep=2pt,draw=blue!50,very thick,fill=blue!20},]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   389
\node[state,initial]  (q_0)  {$q_0$};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   390
\node[state] (q_1) [right=of q_0] {$q_1$};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   391
\node[state] (q_2) [below right=of q_0] {$q_2$};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   392
\node[state] (q_3) [right=of q_2] {$q_3$};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   393
\node[state, accepting] (q_4) [right=of q_1] {$q_4$};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   394
\path[->] (q_0) edge node [above]  {\alert{$a$}} (q_1);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   395
\path[->] (q_1) edge node [above]  {\alert{$a$}} (q_4);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   396
\path[->] (q_4) edge [loop right] node  {\alert{$a, b$}} ();
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   397
\path[->] (q_3) edge node [right]  {\alert{$a$}} (q_4);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   398
\path[->] (q_2) edge node [above]  {\alert{$a$}} (q_3);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   399
\path[->] (q_1) edge node [right]  {\alert{$b$}} (q_2);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   400
\path[->] (q_0) edge node [above]  {\alert{$b$}} (q_2);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   401
\path[->] (q_2) edge [loop left] node  {\alert{$b$}} ();
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   402
\path[->] (q_3) edge [bend left=95, looseness=1.3] node [below]  {\alert{$b$}} (q_0);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   403
\end{tikzpicture}
145
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   404
\end{center}\pause
139
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   405
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   406
\mbox{}\\[-20mm]\mbox{}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   407
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   408
\begin{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   409
\begin{tikzpicture}[>=stealth',very thick,auto,
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   410
                             every state/.style={minimum size=0pt,inner sep=2pt,draw=blue!50,very thick,fill=blue!20},]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   411
\node[state,initial]  (q_02)  {$q_{0, 2}$};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   412
\node[state] (q_13) [right=of q_02] {$q_{1, 3}$};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   413
\node[state, accepting] (q_4) [right=of q_13] {$q_{4\phantom{,0}}$};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   414
\path[->] (q_02) edge [bend left] node [above]  {\alert{$a$}} (q_13);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   415
\path[->] (q_13) edge [bend left] node [below]  {\alert{$b$}} (q_02);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   416
\path[->] (q_02) edge [loop below] node  {\alert{$b$}} ();
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   417
\path[->] (q_13) edge node [above]  {\alert{$a$}} (q_4);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   418
\path[->] (q_4) edge [loop above] node  {\alert{$a, b$}} ();
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   419
\end{tikzpicture}\\
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   420
minimal automaton
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   421
\end{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   422
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   423
\end{frame}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   424
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 93
diff changeset
   425
35
Christian Urban <urbanc@in.tum.de>
parents: 34
diff changeset
   426
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Christian Urban <urbanc@in.tum.de>
parents: 34
diff changeset
   427
\mode<presentation>{
Christian Urban <urbanc@in.tum.de>
parents: 34
diff changeset
   428
\begin{frame}[c]
33
92b3e287d87e slides 4
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   429
38
Christian Urban <urbanc@in.tum.de>
parents: 37
diff changeset
   430
\begin{itemize}
145
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   431
\item Assuming you have the alphabet \bl{$\{a, b, c\}$}\bigskip
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 144
diff changeset
   432
\item Give a regular expression that can recognise all strings that have at least one \bl{$b$}.
38
Christian Urban <urbanc@in.tum.de>
parents: 37
diff changeset
   433
\end{itemize}
Christian Urban <urbanc@in.tum.de>
parents: 37
diff changeset
   434
33
92b3e287d87e slides 4
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   435
\end{frame}}
92b3e287d87e slides 4
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   436
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
92b3e287d87e slides 4
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   437
92b3e287d87e slides 4
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   438
92b3e287d87e slides 4
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   439
\end{document}
92b3e287d87e slides 4
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   440
92b3e287d87e slides 4
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   441
%%% Local Variables:  
92b3e287d87e slides 4
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   442
%%% mode: latex
92b3e287d87e slides 4
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   443
%%% TeX-master: t
92b3e287d87e slides 4
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   444
%%% End: 
92b3e287d87e slides 4
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   445