slides/slides03.tex
changeset 573 711bbc480998
parent 572 4a1739f256fd
child 574 bd4f144326c7
equal deleted inserted replaced
572:4a1739f256fd 573:711bbc480998
   288 
   288 
   289 \end{frame}
   289 \end{frame}
   290 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   290 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   291 
   291 
   292 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   292 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   293 \begin{frame}[c]
   293 \begin{frame}[t]
   294 \frametitle{Automata}
   294 \frametitle{Automata}
   295 
   295 
   296 A \alert{\bf deterministic finite automaton}, DFA, consists of:
   296 A \alert{\bf deterministic finite automaton}, DFA, consists of:
   297 
   297 
   298 \begin{itemize}
   298 \begin{itemize}
   299 \item an alphabet \bl{$\varSigma$}  
   299 \item an alphabet \bl{$\varSigma$}  
   300 \item a set of states \bl{$Q$}
   300 \item a set of states \bl{$\mbox{Q}$}
   301 \item one of these states is the start state \bl{$\mbox{Q}_0$}
   301 \item one of these states is the start state \bl{$\mbox{Q}_0$}
   302 \item some states are accepting states \bl{$F$}, and
   302 \item some states are accepting states \bl{$F$}, and
   303 \item there is transition function \bl{$\delta$}\bigskip 
   303 \item there is transition function \bl{$\delta$}\bigskip 
   304 
   304 
   305 \small
   305 \small
   318 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   318 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   319 \begin{frame}[c]
   319 \begin{frame}[c]
   320 
   320 
   321 \begin{center}
   321 \begin{center}
   322 \begin{tikzpicture}[>=stealth',very thick,auto,
   322 \begin{tikzpicture}[>=stealth',very thick,auto,
   323                              every state/.style={minimum size=0pt,inner sep=2pt,draw=blue!50,very thick,fill=blue!20},]
   323   every state/.style={minimum size=0pt,inner sep=2pt,
       
   324     draw=blue!50,very thick,fill=blue!20},]
   324 \node[state,initial]  (Q_0)  {$\mbox{Q}_0$};
   325 \node[state,initial]  (Q_0)  {$\mbox{Q}_0$};
   325 \node[state] (Q_1) [right=of Q_0] {$\mbox{Q}_1$};
   326 \node[state] (Q_1) [right=of Q_0] {$\mbox{Q}_1$};
   326 \node[state] (Q_2) [below right=of Q_0] {$\mbox{Q}_2$};
   327 \node[state] (Q_2) [below right=of Q_0] {$\mbox{Q}_2$};
   327 \node[state] (Q_3) [right=of Q_2] {$\mbox{Q}_3$};
   328 \node[state] (Q_3) [right=of Q_2] {$\mbox{Q}_3$};
   328 \node[state, accepting] (Q_4) [right=of Q_1] {$\mbox{Q}_4$};
   329 \node[state, accepting] (Q_4) [right=of Q_1] {$\mbox{Q}_4$};
   336 \path[->] (Q_2) edge [loop left] node  {\alert{$b$}} ();
   337 \path[->] (Q_2) edge [loop left] node  {\alert{$b$}} ();
   337 \path[->] (Q_3) edge [bend left=95, looseness=1.3] node [below]  {\alert{$b$}} (Q_0);
   338 \path[->] (Q_3) edge [bend left=95, looseness=1.3] node [below]  {\alert{$b$}} (Q_0);
   338 \end{tikzpicture}
   339 \end{tikzpicture}
   339 \end{center}
   340 \end{center}
   340 
   341 
   341 
   342 \mbox{}\\[-14mm]
       
   343 \only<1>{
   342 \begin{itemize}
   344 \begin{itemize}
   343 \item the start state can be an accepting state
   345 \item the start state can be an accepting state
   344 \item it is possible that there is no accepting state
   346 \item it is possible that there is no accepting state
   345 \item all states might be accepting (but this does not necessarily mean all strings are accepted)
   347 \item all states might be accepting (but this does not necessarily mean all strings are accepted)
   346 \end{itemize}
   348 \end{itemize}}
   347 
   349 \only<2>{
   348 \end{frame}
       
   349 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
   350 
       
   351 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   352 \begin{frame}[c]
       
   353 
       
   354 \begin{center}
       
   355 \begin{tikzpicture}[>=stealth',very thick,auto,
       
   356                              every state/.style={minimum size=0pt,inner sep=2pt,draw=blue!50,very thick,fill=blue!20},]
       
   357 \node[state,initial]  (Q_0)  {$\mbox{Q}_0$};
       
   358 \node[state] (Q_1) [right=of Q_0] {$\mbox{Q}_1$};
       
   359 \node[state] (Q_2) [below right=of Q_0] {$\mbox{Q}_2$};
       
   360 \node[state] (Q_3) [right=of Q_2] {$\mbox{Q}_3$};
       
   361 \node[state, accepting] (Q_4) [right=of Q_1] {$\mbox{Q}_4$};
       
   362 \path[->] (Q_0) edge node [above]  {\alert{$a$}} (Q_1);
       
   363 \path[->] (Q_1) edge node [above]  {\alert{$a$}} (Q_4);
       
   364 \path[->] (Q_4) edge [loop right] node  {\alert{$a, b$}} ();
       
   365 \path[->] (Q_3) edge node [right]  {\alert{$a$}} (Q_4);
       
   366 \path[->] (Q_2) edge node [above]  {\alert{$a$}} (Q_3);
       
   367 \path[->] (Q_1) edge node [right]  {\alert{$b$}} (Q_2);
       
   368 \path[->] (Q_0) edge node [above]  {\alert{$b$}} (Q_2);
       
   369 \path[->] (Q_2) edge [loop left] node  {\alert{$b$}} ();
       
   370 \path[->] (Q_3) edge [bend left=95, looseness=1.3] node [below]  {\alert{$b$}} (Q_0);
       
   371 \end{tikzpicture}
       
   372 \end{center}
       
   373 
       
   374 for this automaton \bl{$\delta$} is the function\\
   350 for this automaton \bl{$\delta$} is the function\\
   375 
   351 
   376 \begin{center}
   352 \begin{center}
   377 \begin{tabular}{lll}
   353 \begin{tabular}{lll}
   378   \bl{$(\mbox{Q}_0, a) \rightarrow \mbox{Q}_1$} & \bl{$(\mbox{Q}_1, a) \rightarrow \mbox{Q}_4$}
   354   \bl{$(\mbox{Q}_0, a) \rightarrow \mbox{Q}_1$} & \bl{$(\mbox{Q}_1, a) \rightarrow \mbox{Q}_4$}
   379   & \bl{$(\mbox{Q}_4, a) \rightarrow \mbox{Q}_4$}\\
   355   & \bl{$(\mbox{Q}_4, a) \rightarrow \mbox{Q}_4$}\\
   380   \bl{$(\mbox{Q}_0, b) \rightarrow \mbox{Q}_2$} & \bl{$(\mbox{Q}_1, b) \rightarrow \mbox{Q}_2$} &
   356   \bl{$(\mbox{Q}_0, b) \rightarrow \mbox{Q}_2$} & \bl{$(\mbox{Q}_1, b) \rightarrow \mbox{Q}_2$} &
   381   \bl{$(\mbox{Q}_4, b) \rightarrow \mbox{Q}_4$}\\
   357   \bl{$(\mbox{Q}_4, b) \rightarrow \mbox{Q}_4$}\\
   382 \end{tabular}\ldots
   358 \end{tabular}\ldots
   383 \end{center}
   359 \end{center}  
   384 
   360 }  
   385 \end{frame}
   361 
   386 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   362 \end{frame}
       
   363 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
   364 
   387 
   365 
   388 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   366 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   389 \begin{frame}[t]
   367 \begin{frame}[t]
   390 \frametitle{Accepting a String}
   368 \frametitle{Accepting a String}
   391 
   369 
  1067 
  1045 
  1068 
  1046 
  1069 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1047 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1070 \begin{frame}[c]
  1048 \begin{frame}[c]
  1071 \frametitle{Alternatives}
  1049 \frametitle{Alternatives}
  1072 \mbox{}\\[-17mm]\mbox{}
  1050 \mbox{}\\[-14mm]\mbox{}
  1073 
  1051 
  1074 \begin{center}
  1052 \begin{center}
  1075 \begin{tikzpicture}[>=stealth',very thick,auto,
  1053 \begin{tikzpicture}[>=stealth',very thick,auto,
  1076                     every state/.style={minimum size=0pt,
  1054                     every state/.style={minimum size=0pt,
  1077                     inner sep=2pt,draw=blue!50,very thick,fill=blue!20}]
  1055                     inner sep=2pt,draw=blue!50,very thick,fill=blue!20}]
  1106 \end{center}
  1084 \end{center}
  1107 \mbox{}\\[-18mm]
  1085 \mbox{}\\[-18mm]
  1108 
  1086 
  1109 \small
  1087 \small
  1110 \begin{itemize}
  1088 \begin{itemize}
  1111 \item<2-> exchange initial / accepting states\\[-2mm]
  1089 \item<1-> exchange initial / accepting states\\[-2mm]
  1112 \item<3-> reverse all edges\\[-2mm]
  1090 \item<2-> reverse all edges\\[-2mm]
  1113 \item<4-> subset construction $\Rightarrow$ DFA\\[-2mm]
  1091 \item<3-> subset construction $\Rightarrow$ DFA\\[-2mm]
  1114 \item<5-> remove dead states\\[-2mm]
  1092 \item<4-> remove dead states\\[-2mm]
  1115 \item<6-> repeat once more 
  1093 \item<5-> repeat once more 
  1116           \onslide<6->{$\Rightarrow$ minimal DFA}
  1094           \onslide<6->{$\Rightarrow$ minimal DFA}
  1117 \end{itemize}
  1095 \end{itemize}
  1118 
  1096 
  1119 \end{frame}
  1097 \end{frame}
  1120 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
  1098 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%