hws/hw03.tex
changeset 892 f4df090a84d0
parent 778 3e5f5d19f514
child 916 10f834eb0a9e
equal deleted inserted replaced
891:00ffcd796ffb 892:f4df090a84d0
     1 \documentclass{article}
     1 \documentclass{article}
     2 \usepackage{../style}
     2 \usepackage{../style}
     3 \usepackage{../graphics}
     3 \usepackage{../graphics}
       
     4 
       
     5 \newcommand{\solution}[1]{%
       
     6   \begin{quote}\sf%
       
     7     #1%
       
     8   \end{quote}}
       
     9 \renewcommand{\solution}[1]{}
       
    10 
       
    11 
     4 
    12 
     5 \begin{document}
    13 \begin{document}
     6 
    14 
     7 \section*{Homework 3}
    15 \section*{Homework 3}
     8 
    16 
    10 
    18 
    11 \begin{enumerate}
    19 \begin{enumerate}
    12 \item The regular expression matchers in Java, Python and Ruby can be
    20 \item The regular expression matchers in Java, Python and Ruby can be
    13   very slow with some (basic) regular expressions. What is the main
    21   very slow with some (basic) regular expressions. What is the main
    14   reason for this inefficient computation?
    22   reason for this inefficient computation?
       
    23 
       
    24   \solution{Many matchers employ DFS type of algorithms to check
       
    25     if a string is matched by the regex or not. Such algorithms
       
    26     require backtracking if have gone down the wrong path which
       
    27     can be very slow. There are also problems with bounded regular
       
    28   expressions and backreferences.}
    15   
    29   
    16 \item What is a regular language? Are there alternative ways
    30 \item What is a regular language? Are there alternative ways
    17       to define this notion? If yes, give an explanation why
    31       to define this notion? If yes, give an explanation why
    18       they define the same notion.
    32       they define the same notion.
    19 
    33 
       
    34       \solution{A regular language is a language for which every string
       
    35         can be recognized by some regular expression. Another definition is
       
    36         that it is a language for which a finite automaton can be
       
    37         constructed. Both define the same set of languages.}   
       
    38 
    20 \item Why is every finite set of strings a regular language?
    39 \item Why is every finite set of strings a regular language?
    21 
    40 
       
    41   \solution{Take a regex composed of all strings (works for finite languages)}
       
    42   
    22 \item Assume you have an alphabet consisting of the letters
    43 \item Assume you have an alphabet consisting of the letters
    23       $a$, $b$ and $c$ only. (1) Find a regular expression
    44       $a$, $b$ and $c$ only. (1) Find a regular expression
    24       that recognises the two strings $ab$ and $ac$. (2) Find
    45       that recognises the two strings $ab$ and $ac$. (2) Find
    25       a regular expression that matches all strings
    46       a regular expression that matches all strings
    26       \emph{except} these two strings. Note, you can only use
    47       \emph{except} these two strings. Note, you can only use
    38 %  \begin{center}
    59 %  \begin{center}
    39 %    $\textit{zeroable(r)} \;\text{if and only if}\; 
    60 %    $\textit{zeroable(r)} \;\text{if and only if}\; 
    40 %    L(r) = \{\}$
    61 %    L(r) = \{\}$
    41 %  \end{center}
    62 %  \end{center}
    42 
    63 
       
    64   \solution{Done in the video but there I forgot to include the empty string.}
       
    65 
    43 \item Given the alphabet $\{a,b\}$. Draw the automaton that has two
    66 \item Given the alphabet $\{a,b\}$. Draw the automaton that has two
    44   states, say $Q_0$ and $Q_1$.  The starting state is $Q_0$ and the
    67   states, say $Q_0$ and $Q_1$.  The starting state is $Q_0$ and the
    45   final state is $Q_1$. The transition function is given by
    68   final state is $Q_1$. The transition function is given by
    46 
    69 
    47   \begin{center}
    70   \begin{center}
    59 
    82 
    60 \item Given a deterministic finite automaton $A(\varSigma, Q, Q_0, F,
    83 \item Given a deterministic finite automaton $A(\varSigma, Q, Q_0, F,
    61       \delta)$, define which language is recognised by this
    84       \delta)$, define which language is recognised by this
    62       automaton. Can you define also the language defined by a
    85       automaton. Can you define also the language defined by a
    63       non-deterministic automaton?
    86       non-deterministic automaton?
       
    87 
       
    88 
       
    89       \solution{
       
    90         A formula for DFAs is
       
    91 
       
    92         \[L(A) \dn \{s \;|\; \hat{\delta}(start_q, s) \in F\}\]
       
    93 
       
    94         For NFAs you need to first define what $\hat{\rho}$ means. If
       
    95         $\rho$ is given as a relation, you can define:
       
    96 
       
    97         \[
       
    98           \hat{\rho}(qs, []) \dn qs \qquad
       
    99           \hat{\rho}(qs, c::s) \dn \bigcup_{q\in qs} \{ q' \; | \; \rho(q, c, q')\}
       
   100         \]
       
   101 
       
   102         This ``collects'' all the states reachable in a breadth-first
       
   103         manner. Once you have all the states reachable by an NFA, you can define
       
   104         the language as
       
   105 
       
   106         \[
       
   107         L(N) \dn \{s \;|\; \hat{\rho}(qs_{start}, s) \cap F \not= \emptyset\}
       
   108         \]  
       
   109 
       
   110         Here you test whether the all states reachable (for $s$) contain at least
       
   111         a single accepting state.
       
   112         
       
   113       }
    64 
   114 
    65 \item Given the following deterministic finite automaton over
   115 \item Given the following deterministic finite automaton over
    66       the alphabet $\{a, b\}$, find an automaton that
   116       the alphabet $\{a, b\}$, find an automaton that
    67       recognises the complement language. (Hint: Recall that
   117       recognises the complement language. (Hint: Recall that
    68       for the algorithm from the lectures, the automaton needs
   118       for the algorithm from the lectures, the automaton needs
    69       to be in completed form, that is have a transition for
   119       to be in completed form, that is have a transition for
    70       every letter from the alphabet.)
   120       every letter from the alphabet.)
       
   121 
       
   122       \solution{
       
   123         Before exchanging accepting and non-accepting states, it is important that
       
   124         the automaton is completed (meamning has a transition for every letter
       
   125         of the alphabet). If not completed, you have to introduce a sink state.
       
   126 
       
   127         For fun you can try out the example with
       
   128         out completion: Then the original automaton can recognise
       
   129         strings of the form $a$, $ab...b$; but the ``uncompleted'' automaton would
       
   130         recognise only the empty string.
       
   131       }
    71 
   132 
    72   \begin{center}
   133   \begin{center}
    73     \begin{tikzpicture}[>=stealth',very thick,auto,
   134     \begin{tikzpicture}[>=stealth',very thick,auto,
    74                         every state/.style={minimum size=0pt,
   135                         every state/.style={minimum size=0pt,
    75                         inner sep=2pt,draw=blue!50,very thick,
   136                         inner sep=2pt,draw=blue!50,very thick,
   145                 (q3) edge [bend left=95, looseness = 2.2] node [left=2mm] {$1$} (q0)
   206                 (q3) edge [bend left=95, looseness = 2.2] node [left=2mm] {$1$} (q0)
   146                 (q4) edge [loop right] node {$0, 1$} ();
   207                 (q4) edge [loop right] node {$0, 1$} ();
   147     \end{tikzpicture}
   208     \end{tikzpicture}
   148   \end{center}
   209   \end{center}
   149 
   210 
       
   211   \solution{Q0 and Q2 can be merged; and Q1 and Q3 as well}
       
   212 
   150 \item Given the following finite deterministic automaton over the alphabet $\{a, b\}$:
   213 \item Given the following finite deterministic automaton over the alphabet $\{a, b\}$:
   151 
   214 
   152   \begin{center}
   215   \begin{center}
   153     \begin{tikzpicture}[scale=2,>=stealth',very thick,auto,
   216     \begin{tikzpicture}[scale=2,>=stealth',very thick,auto,
   154                         every state/.style={minimum size=0pt,
   217                         every state/.style={minimum size=0pt,
   175 \item If a non-deterministic finite automaton (NFA) has
   238 \item If a non-deterministic finite automaton (NFA) has
   176   $n$ states. How many states does a deterministic 
   239   $n$ states. How many states does a deterministic 
   177   automaton (DFA) that can recognise the same language
   240   automaton (DFA) that can recognise the same language
   178   as the NFA maximal need?
   241   as the NFA maximal need?
   179 
   242 
       
   243   \solution{ $2^n$ in the worst-case and for some regexes the worst case
       
   244     cannot be avoided. 
       
   245 
       
   246     Other comments: $r^{\{n\}}$ can only be represented as $n$
       
   247     copies of the automaton for $r$, which can explode the automaton for bounded
       
   248     regular expressions. Similarly, we have no idea how backreferences can be
       
   249     represented as automaton.
       
   250   }
       
   251 
   180 \item Prove that for all regular expressions $r$ we have
   252 \item Prove that for all regular expressions $r$ we have
   181       
   253       
   182 \begin{center} 
   254 \begin{center} 
   183   $\textit{nullable}(r) \quad \text{if and only if} 
   255   $\textit{nullable}(r) \quad \text{if and only if} 
   184   \quad [] \in L(r)$ 
   256   \quad [] \in L(r)$