diff -r ae039d6ae3f2 -r a1544b804d1e hws/hw03.tex --- a/hws/hw03.tex Mon Oct 06 20:55:16 2014 +0100 +++ b/hws/hw03.tex Fri Oct 10 16:59:22 2014 +0100 @@ -7,77 +7,146 @@ \section*{Homework 3} \begin{enumerate} -\item What is a regular language? +\item What is a regular language? Are there alternative ways to define this + notion? If yes, give an explanation why they define the same notion. + +\item Why is every finite set of strings a regular language? -\item Assume you have an alphabet consisting of the letters - $a$, $b$ and $c$ only. (1) Find a regular expression - that recognises the two strings $ab$ and $ac$. (2) Find - a regular expression that matches all strings - \emph{except} these two strings. Note, you can only use - regular expressions of the form +\item Assume you have an alphabet consisting of the letters $a$, $b$ + and $c$ only. (1) Find a regular expression that recognises the two + strings $ab$ and $ac$. (2) Find a regular expression that matches + all strings \emph{except} these two strings. Note, you can only use + regular expressions of the form - \begin{center} $r ::= - \varnothing \;|\; \epsilon \;|\; c \;|\; r_1 + r_2 \;|\; - r_1 \cdot r_2 \;|\; r^*$ - \end{center} + \begin{center} $r ::= + \varnothing \;|\; \epsilon \;|\; c \;|\; r_1 + r_2 \;|\; + r_1 \cdot r_2 \;|\; r^*$ + \end{center} + +\item Define the function \textit{zeroable} which takes a regular + expression as argument and returns a boolean. The function should + satisfy the following property: + + \begin{center} + $\textit{zeroable(r)} \;\text{if and only if}\; L(r) = \varnothing$ + \end{center} + +\item Given the alphabet $\{a,b\}$. Draw the automaton that has two + states, say $q_0$ and $q_1$. The starting state is $q_0$ and the + final state is $q_1$. The transition function is given by -\item Define the function \textit{zeroable} which takes a - regular expression as argument and returns a boolean. - The function should satisfy the following property: + \begin{center} + \begin{tabular}{l} + $(q_0, a) \rightarrow q_0$\\ + $(q_0, b) \rightarrow q_1$\\ + $(q_1, b) \rightarrow q_1$ + \end{tabular} + \end{center} -\begin{center} -$\textit{zeroable(r)} \;\text{if and only if}\; L(r) = \varnothing$ -\end{center} + What is the language recognised by this automaton? + +\item Give a non-deterministic finite automaton that can recognise the + language $L(a\cdot (a + b)^* \cdot c)$. + +\item Given a deterministic finite automata $A(Q, q_0, F, \delta)$, + define which language is recognised by this automaton. Can you + define also the language defined by a non-deterministic automaton? -\item Given the alphabet $\{a,b\}$. Draw the automaton that has two states, say $q_0$ and $q_1$. -The starting state is $q_0$ and the final state is $q_1$. The transition -function is given by +\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{tabular}{l} -$(q_0, a) \rightarrow q_0$\\ -$(q_0, b) \rightarrow q_1$\\ -$(q_1, b) \rightarrow q_1$ -\end{tabular} -\end{center} + \begin{center} + \begin{tikzpicture}[scale=2, 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 over the + alphabet $\{0, 1\}$, find the corresponding minimal automaton. In + case states can be merged, state clearly which states can be merged. -What is the languages recognised by this automaton? - -\item Give a non-deterministic finite automaton that can recognise -the language $L(a\cdot (a + b)^* \cdot c)$. + \begin{center} + \begin{tikzpicture}[scale=2, line width=0.7mm] + \node[state, initial] (q0) at ( 0,1) {$q_0$}; + \node[state] (q1) at ( 1,1) {$q_1$}; + \node[state, accepting] (q4) at ( 2,1) {$q_4$}; + \node[state] (q2) at (0.5,0) {$q_2$}; + \node[state] (q3) at (1.5,0) {$q_3$}; + \path[->] (q0) edge node[above] {$0$} (q1) + (q0) edge node[right] {$1$} (q2) + (q1) edge node[above] {$0$} (q4) + (q1) edge node[right] {$1$} (q2) + (q2) edge node[above] {$0$} (q3) + (q2) edge [loop below] node {$1$} () + (q3) edge node[left] {$0$} (q4) + (q3) edge [bend left=95, looseness = 2.2] node [left=2mm] {$1$} (q0) + (q4) edge [loop right] node {$0, 1$} (); + \end{tikzpicture} + \end{center} - -\item Given the following deterministic finite automaton over the alphabet $\{0, 1\}$, -find the corresponding minimal automaton. In case states can be merged, -state clearly which states can -be merged. +%\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. -\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] (q4) at ( 2,1) {$q_4$}; - \node[state] (q2) at (0.5,0) {$q_2$}; - \node[state] (q3) at (1.5,0) {$q_3$}; - \path[->] (q0) edge node[above] {$0$} (q1) - (q0) edge node[right] {$1$} (q2) - (q1) edge node[above] {$0$} (q4) - (q1) edge node[right] {$1$} (q2) - (q2) edge node[above] {$0$} (q3) - (q2) edge [loop below] node {$1$} () - (q3) edge node[left] {$0$} (q4) - (q3) edge [bend left=95, looseness = 2.2] node [left=2mm] {$1$} (q0) - (q4) edge [loop right] node {$0, 1$} () - ; -\end{tikzpicture} -\end{center} +\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\}$: -\item Define the language $L(M)$ accepted by a deterministic finite automaton $M$. + \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: