0% found this document useful (0 votes)
263 views

Automata DFA Exercises

This document outlines homework assignments for a computer science course. It includes instructions for two problems: 1) Write regular expressions to describe several formal languages over the alphabet {0,1}. 2) Prove or disprove identities involving regular expressions and provide examples of languages that are and aren't regular. The document provides detailed solutions and explanations for each part of the two homework problems.
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
263 views

Automata DFA Exercises

This document outlines homework assignments for a computer science course. It includes instructions for two problems: 1) Write regular expressions to describe several formal languages over the alphabet {0,1}. 2) Prove or disprove identities involving regular expressions and provide examples of languages that are and aren't regular. The document provides detailed solutions and explanations for each part of the two homework problems.
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

CpSc 421

Homework 2

Due: Sept. 26

1. (20 points +10 points extra credit) Write regular expressions that generate each of the languages below. For each language, the alphabet, , is {0, 1}. (a) A1 = {s | s contains the substring 1011}. Solution: 1011 (b) A2 = {s | |s| = 5m + 7n with m, n N }. Solution: (5 ) (7 ) , where 5 = and likewise for 7 . (c) A3 = {s | s contains an even number of 0s}. Solution: 1 (01 0) 1 (d) A4 = {s | s contains an odd number of 1s}. Solution: 0 10 (10 1) 0 (e) (10 points extra credit): A5 = {s | s contains an even number of 0s and an odd number of 1s}. Solution: Heres a DFA that recognizes the language (q0 is th initial state, q$ is the accepting state). q0 -e-> q00 q00 -0-> q01, q00 -1-> q10 q01 -0-> q00, q01 -1-> q11 q10 -0-> q11, q10 -1-> q00 q11 -0-> q10, q10 -1-> q01 q10 -e-> q$ This DFA is a GNFA and we use the procedure from the Sept. 19 lecture notes: delete q11: q0 -e-> q00 q00 -0-> q01, q01 -0-> q00, q10 -00-> q10, q10 -e-> q$

q00 -1-> q10 q01 -11-> q01, q01 -10-> q10 q10 -01-> q01, q10 -1-> q00

delete q01: q0 -e-> q00 q00 -0(11)*0-> q00, q00 -(0(11)*10 U 1)-> q10, q10 -(1 U 01(11)*0)-> q00, q10 -(00 U 01(11)*10)-> q10, q10 -e-> q$ delete q00: q0 -(0(11)*0)*(1 U 01(11)*0) -> q10, q10 -(00 U 01(11)*10 U (1 U 01(11)*0) (0(11)*0)* (1 U 0(11)*10)-> q10, -> q10, q10 -e-> q$ Let r0 = 0(11)*0

r1 = (1 U 01(11)*0) Then, q0 q10 q10 weve got -(r0*r1)-> q10, -(r0 U r1(r0*)r1)-> q10, -e-> q$

Now, we eliminate q10 to get q0 -((r0*r1)(r0 U r1(r0*)r1)*)-> q$ Thus, our solution is: (r0*r1) (r0 U r1(r0*)r1)* with r0 = 0(11)*0 and r1 = (1 U 01(11)*0) as defined above. Ill work on prettier typesetting later. 2. (30 points) In the problems below, let R1 , R2 , . . . be arbitrary regular expressions over an arbitrary nite alphabet. For each proposed identity, either prove it, or give a counter-example. Two are valid identities for which a correct proof is worth 10 points; two are not valid identities for which a counter-example is worth 5 points. (a) R1 = R1 . Solution: False. Let R1 = 0. Then R1 but / R1 , and therefore R1 = R1 .
(b) R1 R1 = R1 R1 . Solution: } = {xy |x R1 , y R1 True. Using the denitions of concatenation and Kleen-star, R1 R1 and R1 = {x1 x2 . . . xk |k 0, xi R1 i} therefore, R1 R1

= = = = =

{xx1 . . . xk |x R1 , k 0, xi R1 i} {x1 x2 . . . xk+1 |k 0, xi R1 i} {x1 . . . xk x|x R1 , k 0, xi R1 i} {yx|x R1 , y R1 } R1 R1

(c) R1 (R2 R3 ) = (R1 R2 ) (R1 R3 ). Solution: True. R1 (R2 R3 ) = {xy |x R1 , y (R2 R3 )} = {xy |x R1 , y R2 y R3 }. (R1 R2 ) (R1 R3 ) = {x|x (R1 R2 ) x (R1 R3 )} = {xy |(x R1 y R2 ) (x R1 y R3 )} = {xy |x R1 , y R2 y R3 }. (d) R1 (R2 R3 ) = (R1 R2 ) (R1 R3 ). Solution: False. Let R1 = R2 = R3 = 0. Then R1 (R2 R3 ) = {0, 00} = {00} = (R1 R2 ) (R1 R3 ). 3. (20 points) For any language, A, let AR = {s | sR A} where sR is the reverse of s as dened in homework 0: R (x c)R Prove that if A is regular, then so is AR . = = c xR

Solution: Construct an NFA for AR . Because A is regular, we can represent it with an DFA. If we reverse the arcs between states and swap the start and accepting states, we get an NFA that recognizes AR . In the stuff that follows, Ill formalize this description, take care of a few technical details, and then prove that it works as advertised. A is an regular language. Let M = (Q, , , q0 , F ) be an DFA such that L(M ) = A. Choose qx such that qx Q (i.e. qx is a new state), and let N = (Q {qx }, , R , qx , {q0 }), where R (q, c) = R (qx , ) = R (qx , c) = {p| (p, c) = q }, reverse the arcs, q = qx F, start with an move to a nal state of M , force that initial move

Ill now prove that L(N ) = AR . Because N is an NFA, L(N ) is regular. Thus, this will show that AR is regular. The key to the proof is that after reading some string, wR , the set of possible states of N are exactly those states from which M could read w and reach an accepting state. The proof is by induction on w. Induction Hypothesis: p ( R ({qx }, wR ) Q) (p, w) F . Base case, w = : p R ({qx }, wR ) Q p R ({qx }, R ) Q, p R ({qx }, ) Q, p ({qx } F ) Q, (p F ) (p, ) = F, w= = R For any set, B , R (B, ) = B (F Q) (qx Q) For any state, q , (q, ) = q

I showed all of the steps for completeness. It would be sufcient to write: p R ({qx }, ) Q pF (p, ) F Induction step, w = c x: Noting that (c x)R = xR c, we need to prove p R ({qx }, xR c) r R ({qx }, xR ). p R (r, c), r R ({qx }, xR ). (p, c) = r, (p, c) R ({qx }, xR ) ( (p, c), x) F, (p, c x) F, def. R for strings def. R for symbols induction hypothesis def. for strings

Intuitively, what this argument says is that if N can reach some state, p, by reading xR c; then it did it by rst reaching some state, r, by reading xR , and then got to state p by reading c. We then take advantage that R is the reversal of . Thus, M will go from p to r by reading c. Finally, we use the induction hypothesis with r and x to conclude that M will go from r to some state in F by reading x. I will accept an intuitive argument like this one, or the mathematical version that I stated rst. 4. (40 points): For each language below, determine whether or not the language is regular. If it is regular, draw a DFA that accepts it and write a short explanation of how your DFA works. If it is not regular, provide a proof. For each language, the alphabet, , is {0, 1}. The notation #0(s) refers to the number of #0s in s, and #1(s) refers to the number of #1s.

Figure 1: The 4 states represent the parity of the number of 0s and the parity of the number of 1s seen so far: (even, even); (odd, even); (even, odd); (odd, odd).

(a) B1 = {s | s contains an even number of 0s and an odd number of 1s}. Solution: (see DFA in Figure 1) B1 is regular: (b) B2 = {s | #1(s) = k #0(s) for some k N}. Solution: B2 is not regular: Let p be a proposed pumping lemma constant, and let w = 0p 1p B2 . For any xyz = w with |xy | p, xy 2 z = 0p+|y| 1p has more 0s than 1s, and therefore is not in B2 . It follows by the pumping lemma that B2 is not regular. (c) B3 = {s | (|#0(s) #1(s)| mod 3) = 0 }. Solution: (see DFA in Figure 2) B3 is regular:

Figure 2: The 3 states track the value of the number of 0s seen thus far minus the number of 1s seen so far mod 3. (d) B4 = {s | (|#0(s) #1(s)| mod 3) = 1 }. Solution: B4 is not regular: Let p be a proposed pumping lemma constant, and let w = 0p 1p+1 B4 . For any xyz = w with |xy | p, we consider three cases:

k1 3k, 3k + 1, k 0 |y | = 3k + 2, k 0 If |y | = 3k , then xy 2 z = w has #0(w) = p + 3k and #1(w) = p + 1, so |#0(w) #1(w)| (mod 3) = |p + 3k (p + 1)| (mod 3) = 2 and w / B4 . If |y | = 3k + 1, then xy 2 z = w has #0(w) = p + 3k + 1 and #1(w) = p + 1, so |#0(w) #1(w)| (mod 3) = |p + 3k + 1 (p + 1)| (mod 3) = 0 and w / B4 . If |y | = 3k + 2, then xy 3 z = w has #0(w) = p + 6k + 4 and #1(w) = p + 1, so |#0(w) #1(w)| (mod 3) = |p + 6k + 4 (p + 1)| (mod 3) = 0 and w / B4 . Therefore, B4 is not regular by the pumping lemma.

You might also like