\begin{frame}{Word Matching Example}
Regular expression \alert{$r=a(aa^*b+bb^*a)b$} gives rise to the NFA:
\begin{center}
\begin{tikzpicture}[default,node distance=18mm,->]
\node (q0) [state] {$q_0$}; \draw ($(q0) + (-10mm,0mm)$) -- (q0);
\node (q1) [state,right of=q0] {$q_1$};
\node (q2) [state,right of=q1] {$q_2$};
\begin{scope}[node distance=16mm]
\node (q3) [state,right of=q2,yshift=9mm] {$q_3$};
\node (q4) [state,right of=q2,yshift=-9mm] {$q_4$};
\node (q5) [state,right of=q3,yshift=-9mm] {$q_5$};
\end{scope}
\node (q6) [fstate,right of=q5] {$q_6$};
\draw (q0) to[tloop] node [label,above] {$a$} (q0);
\draw (q0) to[bloop] node [label,below] {$b$} (q0);
\draw (q0) to node [label,above] {$\lambda$} (q1);
\draw (q1) to node [label,above] {$a$} (q2);
\draw (q2) to node [label,above left] {$a$} (q3);
\draw (q2) to node [label,below left] {$b$} (q4);
\draw (q3) to[tloop] node [label,above] {$a$} (q3);
\draw (q4) to[tloop] node [label,above] {$b$} (q4);
\draw (q3) to node [label,above right] {$b$} (q5);
\draw (q4) to node [label,below right] {$a$} (q5);
\draw (q5) to node [label,above] {$b$} (q6);
\end{tikzpicture}
\end{center}
\pause\medskip
We match $r$ with \alert{$u=aaababbb$}.
\pause
\begin{center}
\begin{tikzpicture}[default,node distance=18mm,->,s/.style={inner sep=0mm}]
\node (q0) [state,s] {$01$}; \draw ($(q0) + (-10mm,0mm)$) -- (q0);
\mpause[1]{
\node (q1) [state,s,anchor=west] at ($(q0.east) + (5mm,0mm)$) {$012$};
\draw (q0) to node [label,above] {$a$} (q1);
}
\mpause{
\node (q2) [state,s,anchor=west] at ($(q1.east) + (5mm,0mm)$) {$0123$};
\draw (q1) to node [label,above] {$a$} (q2);
}
\mpause{
\draw (q2) to[tloop] node [label,above] {$a$} (q2);
}
\mpause{
\node (q3) [state,s,anchor=west] at ($(q2.east) + (5mm,0mm)$) {$0145$};
\draw (q2) to node [label,above] {$b$} (q3);
}
\mpause{
\node (q4) [state,s,anchor=west] at ($(q3.east) + (5mm,0mm)$) {$0125$};
\draw (q3) to node [label,above] {$a$} (q4);
}
\mpause{
\node (q5) [fstate,s,anchor=west] at ($(q4.east) + (5mm,0mm)$) {$0146$};
\draw (q4) to node [label,above] {$b$} (q5);
}
\end{tikzpicture}
\end{center}
\pause\pause\pause\pause\pause\pause\pause
\[
\begin{array}{cccccccccccccccc}
& a && a && \malert{8}{1}{a} && \malert{8}{1}{b} && \malert{8}{1}{a} && \malert{8}{1}{b} && b && b \\
\mpause[1]{q_0} && \mpause[7]{q_0} && \mpause[6]{q_0}\mpause[5]{q_1} && \mpause[4]{q_2} && \mpause[3]{q_4} && \mpause[2]{q_5} && \mpause[1]{q_6} && \hphantom{q_6}
\end{array}
\]
\vspace{10cm}
\end{frame}