diff -r e85600529ca5 -r 4794759139ea hw/hw05.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hw/hw05.tex Sat Jun 15 09:23:18 2013 -0400 @@ -0,0 +1,116 @@ +\documentclass{article} +\usepackage{charter} +\usepackage{hyperref} +\usepackage{amssymb} +\usepackage{amsmath} +\usepackage{tikz} +\usetikzlibrary{automata} + +\newcommand{\dn}{\stackrel{\mbox{\scriptsize def}}{=}}% for definitions + +\begin{document} + +\section*{Homework 5} + +\begin{enumerate} +\item Define the following regular expressions + +\begin{center} +\begin{tabular}{ll} +$r^+$ & (one or more matches)\\ +$r^?$ & (zero or one match)\\ +$r^{\{n\}}$ & (exactly $n$ matches)\\ +$r^{\{m, n\}}$ & (at least $m$ and maximal $n$ matches, with the\\ +& \phantom{(}assumption $m \le n$)\\ +\end{tabular} +\end{center} + +in terms of the usual regular expressions + +\begin{center} +$r ::= \varnothing \;|\; \epsilon \;|\; c \;|\; r_1 + r_2 \;|\; r_1 \cdot r_2 \;|\; r^*$ +\end{center} + +\item Given a deterministic finite automata $A(Q, q_0, F, \delta)$, +define which language is recognised by this automaton. + +\item Given the following deterministic finite automata over the alphabet +$\{a, b\}$, find an automaton that recognises the complement language. +(Hint: Recall that for the algorithm from the lectures, the automaton needs to be +in completed form, that is have a transition for every letter from the alphabet.) + +\begin{center} +\begin{tikzpicture}[scale=3, line width=0.7mm] + \node[state, initial] (q0) at ( 0,1) {$q_0$}; + \node[state, accepting] (q1) at ( 1,1) {$q_1$}; + \path[->] (q0) edge node[above] {$a$} (q1) + (q1) edge [loop right] node {$b$} () + ; +\end{tikzpicture} +\end{center} + +\item Given the following deterministic finite automaton + +\begin{center} +\begin{tikzpicture}[scale=3, line width=0.7mm] + \node[state, initial] (q0) at ( 0,1) {$q_0$}; + \node[state,accepting] (q1) at ( 1,1) {$q_1$}; + \node[state, accepting] (q2) at ( 2,1) {$q_2$}; + \path[->] (q0) edge node[above] {$b$} (q1) + (q1) edge [loop above] node[above] {$a$} () + (q2) edge [loop above] node[above] {$a, b$} () + (q1) edge node[above] {$b$} (q2) + (q0) edge[bend right] node[below] {$a$} (q2) + ; +\end{tikzpicture} +\end{center} +find the corresponding minimal automaton. State clearly which nodes +can be merged. + +\item Given the following non-deterministic finite automaton over the alphabet $\{a, b\}$, +find a deterministic finite automaton that recognises the same language: + +\begin{center} +\begin{tikzpicture}[scale=3, line width=0.7mm] + \node[state, initial] (q0) at ( 0,1) {$q_0$}; + \node[state] (q1) at ( 1,1) {$q_1$}; + \node[state, accepting] (q2) at ( 2,1) {$q_2$}; + \path[->] (q0) edge node[above] {$a$} (q1) + (q0) edge [loop above] node[above] {$b$} () + (q0) edge [loop below] node[below] {$a$} () + (q1) edge node[above] {$a$} (q2) + ; +\end{tikzpicture} +\end{center} + +\item +Given the following finite deterministic automaton over the alphabet $\{a, b\}$: + +\begin{center} +\begin{tikzpicture}[scale=2, line width=0.5mm] + \node[state, initial, accepting] (q0) at ( 0,1) {$q_0$}; + \node[state, accepting] (q1) at ( 1,1) {$q_1$}; + \node[state] (q2) at ( 2,1) {$q_2$}; + \path[->] (q0) edge[bend left] node[above] {$a$} (q1) + (q1) edge[bend left] node[above] {$b$} (q0) + (q2) edge[bend left=50] node[below] {$b$} (q0) + (q1) edge node[above] {$a$} (q2) + (q2) edge [loop right] node {$a$} () + (q0) edge [loop below] node {$b$} () + ; +\end{tikzpicture} +\end{center} + +Give a regular expression that can recognise the same language as +this automaton. (Hint: If you use Brzozwski's method, you can assume +Arden's lemma which states that an equation of the form $q = q\cdot r + s$ +has the unique solution $q = s \cdot r^*$.)\ +\end{enumerate} + + +\end{document} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: t +%%% End: