| author | Christian Urban <christian.urban@kcl.ac.uk> | 
| Sun, 19 Oct 2025 09:44:04 +0200 | |
| changeset 1011 | 31e011ce66e3 | 
| parent 967 | ce5de01b9632 | 
| permissions | -rw-r--r-- | 
| 22 | 1 | \documentclass{article}
 | 
| 267 
a1544b804d1e
updated homeworks
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
258diff
changeset | 2 | \usepackage{../style}
 | 
| 889 | 3 | \usepackage{../graphicss}
 | 
| 4 | ||
| 22 | 5 | \begin{document}
 | 
| 6 | ||
| 7 | \section*{Homework 2}
 | |
| 8 | ||
| 916 | 9 | %\HEADER | 
| 347 
22b5294daa2a
updated hws
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
294diff
changeset | 10 | |
| 22 | 11 | \begin{enumerate}
 | 
| 499 | 12 | \item What is the difference between \emph{basic} regular expressions  
 | 
| 885 | 13 |   and \emph{extended} regular expressions?
 | 
| 14 | ||
| 15 |   \solution{Basic regular expressions are $\ZERO$, $\ONE$, $c$, $r_1 + r_2$,
 | |
| 16 | $r_1 \cdot r_2$, $r^*$. The extended ones are the bounded | |
| 967 | 17 | repetitions, not, etc. | 
| 18 | ||
| 19 | ||
| 20 | Maybe explain here how the extended regular expressions | |
| 21 | are defined in terms of the basic ones. | |
| 22 | } | |
| 499 | 23 | |
| 401 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 24 | \item What is the language recognised by the regular | 
| 885 | 25 | expressions $(\ZERO^*)^*$. | 
| 26 | ||
| 27 |   \solution{$L(\ZERO^*{}^*) = \{[]\}$,
 | |
| 28 | remember * always includes the empty string} | |
| 258 
1e4da6d2490c
updated programs
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
132diff
changeset | 29 | |
| 401 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 30 | \item Review the first handout about sets of strings and read | 
| 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 31 | the second handout. Assuming the alphabet is the set | 
| 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 32 |       $\{a, b\}$, decide which of the following equations are
 | 
| 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 33 | true in general for arbitrary languages $A$, $B$ and | 
| 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 34 | $C$: | 
| 115 
86c1c049eb3e
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
104diff
changeset | 35 | |
| 401 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 36 |       \begin{eqnarray}
 | 
| 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 37 | (A \cup B) @ C & =^? & A @ C \cup B @ C\nonumber\\ | 
| 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 38 | A^* \cup B^* & =^? & (A \cup B)^*\nonumber\\ | 
| 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 39 | A^* @ A^* & =^? & A^*\nonumber\\ | 
| 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 40 | (A \cap B)@ C & =^? & (A@C) \cap (B@C)\nonumber | 
| 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 41 |       \end{eqnarray}
 | 
| 104 
ffde837b1db1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
102diff
changeset | 42 | |
| 401 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 43 | \noindent In case an equation is true, give an | 
| 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 44 | explanation; otherwise give a counter-example. | 
| 104 
ffde837b1db1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
102diff
changeset | 45 | |
| 885 | 46 |       \solution{1 + 3 are equal; 2 + 4 are not. Interesting is 4 where
 | 
| 928 | 47 |         $A = \{[a]\}$, $B = \{[]\}$ and $C = \{[a], []\}$ is an
 | 
| 48 | counter-example.\medskip | |
| 889 | 49 | |
| 928 | 50 | For equations like 3 it is always a good idea to prove the | 
| 889 | 51 | two inclusions | 
| 52 | ||
| 53 | \[ | |
| 54 | A^* \subseteq A^* @ A^* \qquad | |
| 55 | A^* @ A^* \subseteq A^* | |
| 56 | \] | |
| 57 | ||
| 58 | This means for every string $s$ we have to show | |
| 59 | ||
| 60 | \[ | |
| 61 |           s \in A^*    \;\textit{implies}\;  s \in A^* @ A^* \qquad
 | |
| 62 |           s \in A^* @ A^* \;\textit{implies}\;  s \in A^*
 | |
| 63 | \] | |
| 64 | ||
| 65 | The first one is easy because $[] \in A^*$ and therefore | |
| 66 | $s @ [] \in A^* @ A^*$. | |
| 67 | ||
| 68 | The second one says that $s$ must be of the form $s = s_1 @ s_2$ with | |
| 69 | $s_1 \in A^*$ and $s_2 \in A^*$. We have to show that | |
| 70 | $s_1 @ s_2 \in A^*$. | |
| 71 | ||
| 72 | If $s_1 \in A^*$ then there exists an $n$ such that $s_1 \in A^n$, and | |
| 73 | if $s_2 \in A^*$ then there exists an $m$ such that $s_2 \in A^m$.\bigskip | |
| 74 | ||
| 75 | ||
| 928 | 76 | Aside: We are going to show the following power law | 
| 889 | 77 | |
| 78 | \[ | |
| 79 |         A^n \,@\, A^m = A^{n+m}  
 | |
| 80 | \] | |
| 81 | ||
| 82 | We prove that by induction on $n$. | |
| 83 | ||
| 84 |         Case $n = 0$: $A^0 \,@\, A^m = A^{0+m}$ holds because $A^0 = \{[]\}$
 | |
| 85 |         and $\{[]\} \,@\, A^m = A ^ m$ and $0 + m = m$.\medskip
 | |
| 86 | ||
| 87 | Case $n + 1$: The induction hypothesis is | |
| 88 | ||
| 89 |         \[ A^n \,@\, A^m = A^{n+m}
 | |
| 90 | \] | |
| 91 | ||
| 92 | We need to prove | |
| 93 | ||
| 94 | \[ | |
| 95 |         A^{n+1} \,@\, A^m = A^{(n+1)+m}  
 | |
| 96 | \] | |
| 97 | ||
| 98 | The left-hand side is $(A \,@\, A^n) \,@\, A^m$ by the definition of | |
| 99 | the power operation. We can rearrange that | |
| 100 |         to $A \,@\, (A^n \,@\, A^m)$.   \footnote{Because for all languages $A$, $B$, $C$ we have $(A @ B) @ C = A @ (B @ C)$.}
 | |
| 101 | ||
| 102 |         By the induction hypothesis we know that $A^n \,@\, A^m = A^{n+m}$.
 | |
| 103 | ||
| 104 |         So we have $A \,@\, (A^{n+m})$. But this is $A^{(n+m)+1}$ again if we
 | |
| 105 | apply the definition of the power operator. If we | |
| 106 |         rearrange that we get $A^{(n+1)+m}$ and are done with
 | |
| 107 | what we need to prove for the power law.\bigskip | |
| 108 | ||
| 109 | Picking up where we left, we know that $s_1 \in A^n$ and $s_2 \in A^m$. This now implies that $s_1 @ s_2\in A^n @ A^m$. By the power law this means | |
| 110 |         $s_1 @ s_2\in A^{n+m}$. But this also means $s_1 @ s_2\in A^*$.
 | |
| 111 | } | |
| 885 | 112 | |
| 401 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 113 | \item Given the regular expressions $r_1 = \ONE$ and $r_2 = | 
| 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 114 | \ZERO$ and $r_3 = a$. How many strings can the regular | 
| 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 115 | expressions $r_1^*$, $r_2^*$ and $r_3^*$ each match? | 
| 104 
ffde837b1db1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
102diff
changeset | 116 | |
| 885 | 117 |       \solution{$r_1$ and $r_2$ can match the empty string only, $r_3$ can
 | 
| 118 | match $[]$, $a$, $aa$, ....} | |
| 119 | ||
| 401 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 120 | \item Give regular expressions for (a) decimal numbers and for | 
| 617 | 121 | (b) binary numbers. Hint: Observe that the empty string | 
| 401 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 122 | is not a number. Also observe that leading 0s are | 
| 617 | 123 | normally not written---for example the JSON format for numbers | 
| 891 | 124 | explicitly forbids this. So 007 is not a number according to JSON. | 
| 22 | 125 | |
| 941 | 126 |       \solution{Just numbers without leading 0s: $0 + (1..9)\cdot(0..9)^*$;
 | 
| 885 | 127 | can be extended to decimal; similar for binary numbers | 
| 128 | } | |
| 129 | ||
| 258 
1e4da6d2490c
updated programs
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
132diff
changeset | 130 | \item Decide whether the following two regular expressions are | 
| 401 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 131 | equivalent $(\ONE + a)^* \equiv^? a^*$ and $(a \cdot | 
| 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 132 | b)^* \cdot a \equiv^? a \cdot (b \cdot a)^*$. | 
| 22 | 133 | |
| 885 | 134 |       \solution{Both are equivalent, but why the second? Essentially you have to show that each string in one set is in the other. For 2 this means you can do an induction proof that $(ab)^na$ is the same string as $a(ba)^n$, where the former is in the first set and the latter in the second.}
 | 
| 135 | ||
| 22 | 136 | |
| 881 | 137 | \item Give an argument for why the following holds: | 
| 885 | 138 |   if $r$ is nullable then $r^{\{n\}} \equiv r^{\{..n\}}$.
 | 
| 139 | ||
| 928 | 140 |   \solution{ This requires an inductive proof. There are a number of
 | 
| 141 |     ways to prove this. It is clear that if $s \in L (r^{\{n\}})$ then
 | |
| 142 |     also $s \in L (r^{\{..n\}})$.
 | |
| 143 | ||
| 144 | So one way to prove this is to show | |
| 145 |     that if $s \in L (r^{\{..n\}})$ then also $s \in L (r^{\{n\}})$
 | |
| 146 | (under the assumption that $r$ is nullable, otherwise it would not | |
| 147 |     be true).  The assumption $s \in L (r^{\{..n\}})$ means
 | |
| 148 |     that $s \in L(r^{\{i\}})$ with $i \leq n$ holds
 | |
| 149 |     and we have to show that $s \in L(r^{\{n\}})$ holds. 
 | |
| 150 | ||
| 151 | One can do this by induction for languages as follows: | |
| 152 | ||
| 153 | \[ | |
| 154 |       \textit{if}\; [] \in A \;\textit{and}\; s \in A^n
 | |
| 155 |       \;\textit{then}\; s \in A^{n+m}
 | |
| 156 | \] | |
| 157 | ||
| 158 | The proof is by induction on $m$. The base case $m=0$ is trivial. | |
| 159 | For the $m + 1$ case we have the induction hypothesis: | |
| 160 | ||
| 161 | \[ | |
| 162 |       \textit{if}\; [] \in A \;\textit{and}\; s \in A^n
 | |
| 163 |       \;\textit{then}\; s \in A^{n+m}  
 | |
| 164 | \] | |
| 165 | ||
| 166 | and we have to show | |
| 167 | ||
| 168 | \[ | |
| 169 |     s \in A^{n+m+1}   
 | |
| 170 | \] | |
| 171 | ||
| 172 | under the assumption $[] \in A$ and $s \in A^n$. From the | |
| 173 |     assumptions and the IH we can infer that $s\in A^{n + m}$.
 | |
| 174 | Then using the assumption $[] \in A$ we can infer that also | |
| 175 | ||
| 176 | \[ | |
| 177 |       s\in A \,@\, A^{n + m}
 | |
| 178 | \] | |
| 179 | ||
| 180 |     which is equivalent to what we need to show $s \in A^{n+m+1}$.
 | |
| 181 | ||
| 182 |     Now we know $s \in L(r^{\{i\}})$ with $i \leq n$. Since $i + m = n$
 | |
| 183 |     for some $m$ we can conclude that $s \in L(r^{\{n\}})$. Done.
 | |
| 184 | ||
| 185 | } | |
| 186 | ||
| 187 | \item Given the regular expression $r = (a \cdot b + b)^*$. | |
| 188 | Compute what the derivative of $r$ is with respect to | |
| 189 | $a$, $b$ and $c$. Is $r$ nullable? | |
| 258 
1e4da6d2490c
updated programs
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
132diff
changeset | 190 | |
| 355 
a259eec25156
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
347diff
changeset | 191 | \item Define what is meant by the derivative of a regular | 
| 
a259eec25156
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
347diff
changeset | 192 | expressions with respect to a character. (Hint: The | 
| 
a259eec25156
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
347diff
changeset | 193 | derivative is defined recursively.) | 
| 267 
a1544b804d1e
updated homeworks
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
258diff
changeset | 194 | |
| 928 | 195 |       \solution{The recursive function for $der$.}
 | 
| 885 | 196 | |
| 768 | 197 | \item Assume the set $Der$ is defined as | 
| 267 
a1544b804d1e
updated homeworks
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
258diff
changeset | 198 | |
| 
a1544b804d1e
updated homeworks
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
258diff
changeset | 199 |   \begin{center}
 | 
| 
a1544b804d1e
updated homeworks
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
258diff
changeset | 200 |     $Der\,c\,A \dn \{ s \;|\;  c\!::\!s \in A\}$
 | 
| 
a1544b804d1e
updated homeworks
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
258diff
changeset | 201 |   \end{center}
 | 
| 
a1544b804d1e
updated homeworks
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
258diff
changeset | 202 | |
| 401 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 203 | What is the relation between $Der$ and the notion of | 
| 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 204 | derivative of regular expressions? | 
| 267 
a1544b804d1e
updated homeworks
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
258diff
changeset | 205 | |
| 885 | 206 |       \solution{Main property is $L(der\,c\,r) = Der\,c\,(L(r))$.}
 | 
| 207 | ||
| 267 
a1544b804d1e
updated homeworks
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
258diff
changeset | 208 | \item Give a regular expression over the alphabet $\{a,b\}$
 | 
| 401 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 209 | recognising all strings that do not contain any | 
| 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 210 | substring $bb$ and end in $a$. | 
| 267 
a1544b804d1e
updated homeworks
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
258diff
changeset | 211 | |
| 931 | 212 |       \solution{$((ba)^* \cdot (a)^*)^*\,\cdot\,a + ba$ \quad Not sure whether this can be simplified.}
 | 
| 885 | 213 | |
| 401 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 214 | \item Do $(a + b)^* \cdot b^+$ and $(a^* \cdot b^+) + | 
| 885 | 215 | (b^*\cdot b^+)$ define the same language? | 
| 216 | ||
| 889 | 217 |   \solution{No, the first one can match for example abababababbbbb
 | 
| 218 | while the second can only match for example aaaaaabbbbb or bbbbbbb} | |
| 294 
c29853b672fb
updated hws
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
292diff
changeset | 219 | |
| 
c29853b672fb
updated hws
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
292diff
changeset | 220 | \item Define the function $zeroable$ by recursion over regular | 
| 401 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 221 | expressions. This function should satisfy the property | 
| 294 
c29853b672fb
updated hws
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
292diff
changeset | 222 | |
| 
c29853b672fb
updated hws
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
292diff
changeset | 223 | \[ | 
| 401 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 224 |   zeroable(r) \;\;\text{if and only if}\;\;L(r) = \{\}\qquad(*)
 | 
| 294 
c29853b672fb
updated hws
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
292diff
changeset | 225 | \] | 
| 
c29853b672fb
updated hws
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
292diff
changeset | 226 | |
| 401 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 227 | The function $nullable$ for the not-regular expressions | 
| 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 228 | can be defined by | 
| 294 
c29853b672fb
updated hws
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
292diff
changeset | 229 | |
| 
c29853b672fb
updated hws
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
292diff
changeset | 230 | \[ | 
| 
c29853b672fb
updated hws
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
292diff
changeset | 231 | nullable(\sim r) \dn \neg(nullable(r)) | 
| 
c29853b672fb
updated hws
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
292diff
changeset | 232 | \] | 
| 
c29853b672fb
updated hws
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
292diff
changeset | 233 | |
| 401 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 234 | Unfortunately, a similar definition for $zeroable$ does | 
| 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 235 | not satisfy the property in $(*)$: | 
| 294 
c29853b672fb
updated hws
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
292diff
changeset | 236 | |
| 
c29853b672fb
updated hws
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
292diff
changeset | 237 | \[ | 
| 
c29853b672fb
updated hws
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
292diff
changeset | 238 | zeroable(\sim r) \dn \neg(zeroable(r)) | 
| 
c29853b672fb
updated hws
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
292diff
changeset | 239 | \] | 
| 
c29853b672fb
updated hws
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
292diff
changeset | 240 | |
| 889 | 241 | Find a counter example? | 
| 242 | ||
| 243 | ||
| 244 |   \solution{
 | |
| 245 | Here the idea is that nullable for NOT can be defined as | |
| 246 | ||
| 247 | \[nullable(\sim r) \dn \neg(nullable(r))\] | |
| 248 | ||
| 249 | This will satisfy the property | |
| 250 |     $nullable(r) \;\;\text{if and only if}\;\;[] \in L(r)$. (Remember how
 | |
| 251 | $L(\sim r)$ is defined).\bigskip | |
| 252 | ||
| 253 | But you cannot define | |
| 254 | ||
| 255 | \[zeroable(\sim r) \dn \neg(zeroable(r))\] | |
| 256 | ||
| 257 | because if $r$ for example is $\ONE$ then $\sim \ONE$ can match | |
| 258 | some strings (all non-empty strings). So $zeroable$ should be false. But if we follow | |
| 259 | the above definition we would obtain $\neg(zeroable(\ONE))$. According | |
| 260 | to the definition of $zeroable$ for $\ONE$ this would be false, | |
| 261 | but if we now negate false, we get actually true. So the above | |
| 262 | definition would not satisfy the property | |
| 263 | ||
| 264 | \[ | |
| 265 |       zeroable(r) \;\;\text{if and only if}\;\;L(r) = \{\}
 | |
| 266 | \] | |
| 267 | } | |
| 294 
c29853b672fb
updated hws
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
292diff
changeset | 268 | |
| 401 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 269 | \item Give a regular expressions that can recognise all | 
| 
5d85dc9779b1
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
355diff
changeset | 270 |       strings from the language $\{a^n\;|\;\exists k.\; n = 3 k
 | 
| 885 | 271 | + 1 \}$. | 
| 272 | ||
| 273 |       \solution{$a(aaa)^*$}
 | |
| 404 
245d302791c7
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
401diff
changeset | 274 | |
| 
245d302791c7
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
401diff
changeset | 275 | \item Give a regular expression that can recognise an odd | 
| 889 | 276 | number of $a$s or an even number of $b$s. | 
| 277 | ||
| 278 |   \solution{
 | |
| 279 | If the a's and b's are meant to be separate, then this is easy | |
| 280 | ||
| 281 | \[a(aa)^* + (bb)^*\] | |
| 282 | ||
| 283 | If the letters are mixed, then this is difficult | |
| 284 | ||
| 285 | \[(aa|bb|(ab|ba)\cdot (aa|bb)^* \cdot (ba|ab))^* \cdot (b|(ab|ba)(bb|aa)^* \cdot a) | |
| 286 | \] | |
| 287 | ||
| 288 | (copied from somewhere ;o) | |
| 289 | ||
| 928 | 290 | The idea behind this monstrous regex is essentially the DFA | 
| 889 | 291 | |
| 292 | \begin{center}    
 | |
| 293 | \begin{tikzpicture}[scale=1,>=stealth',very thick,
 | |
| 294 |                     every state/.style={minimum size=0pt,
 | |
| 295 | draw=blue!50,very thick,fill=blue!20}] | |
| 296 |   \node[state,initial]   (q0) at (0,2) {$q_0$};
 | |
| 297 |   \node[state,accepting] (q1) at (2,2) {$q_1$};
 | |
| 298 |   \node[state]           (q2) at (0,0) {$q_2$};
 | |
| 299 |   \node[state]           (q3) at (2,0) {$q_3$};
 | |
| 300 | ||
| 301 |  \path[->]  (q0) edge[bend left] node[above] {$a$} (q1)
 | |
| 302 |             (q1) edge[bend left] node[above] {$a$} (q0)
 | |
| 303 |             (q2) edge[bend left] node[above] {$a$} (q3)
 | |
| 304 |             (q3) edge[bend left] node[above] {$a$} (q2)
 | |
| 305 |             (q0) edge[bend left] node[right] {$b$} (q2)
 | |
| 306 |             (q2) edge[bend left] node[left]  {$b$} (q0)
 | |
| 307 |             (q1) edge[bend left] node[right] {$b$} (q3)
 | |
| 308 |             (q3) edge[bend left] node[left]  {$b$} (q1);
 | |
| 309 | \end{tikzpicture}
 | |
| 310 | \end{center}
 | |
| 928 | 311 | |
| 312 | Maybe a good idea to reconsider this example in Lecture 3 | |
| 313 | where the Brzozowski algorithm for DFA $\rightarrow$ Regex | |
| 314 | can be used. | |
| 889 | 315 | } | 
| 444 
3056a4c071b0
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
404diff
changeset | 316 | |
| 
3056a4c071b0
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
404diff
changeset | 317 | \item \POSTSCRIPT | 
| 404 
245d302791c7
updated
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: 
401diff
changeset | 318 | \end{enumerate}
 | 
| 22 | 319 | |
| 320 | \end{document}
 | |
| 321 | ||
| 322 | %%% Local Variables: | |
| 323 | %%% mode: latex | |
| 324 | %%% TeX-master: t | |
| 325 | %%% End: |