1 / 17

Lecture 5 Examples of DFA

Lecture 5 Examples of DFA. Construct DFA to accept (0+1)*. 0. 1. Construct DFA to accept 00(0+1)*. 0. 0. 0. 1. 1. 1. 1. 0. (0+1)*00(0+1)*. Idea : Suppose the string x 1 x 2 ··· x n is on the tape. Then we check x 1 x 2 , x 2 x 3 , ..., x n-1 x n in turn.

sophie
Download Presentation

Lecture 5 Examples of DFA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lecture 5 Examples of DFA

  2. Construct DFA to accept (0+1)* 0 1

  3. Construct DFA to accept 00(0+1)* 0 0 0 1 1 1 1 0

  4. (0+1)*00(0+1)* • Idea: Suppose the string x1x2···xn is on the tape. Then we check x1x2, x2x3, ..., xn-1xn in turn. • Step 1. Build a checker 0 0

  5. Step 2. Find all edges by the following consideration: Consider x1x2. • If x1=1, then we give up x1x2 and continue to check x2x3. So, we have δ(q0, 1) = q0. • If x1x2 = 01, then we also give up x1x2 and continue to check x2x3. So, δ(q1, 1) = δ(q0, 1) =q0. • If x1x2 = 00, then x1x2··· xn is accepted for any x3···xn. So, δ(q2,0)=δ(q2,1)=q2.

  6. (0+1)*00(0+1)* 1 0 0 0 1 1

  7. (0+1)*00 0 1 0 0 1 1

  8. In general, suppose x1 x2 … xn is the string on the tape And we want check x1 …xk, x2 …xk+1, …, in turn. If x1…xk Is not the substring that we want and we need to check x2…xk+1, then we set that for and i < k, δ( δ(s, x1 …xi), xi+1) = δ(s, x1…xi xi+1).

  9. (0+1)*(00+01) 0 1 0 0 1 1 0 1

  10. 2nd Solution-Parallel Machine L(M) = (0+1)*00 M=(Q, Σ, δ, s, F) L(M’)= (0+1)*01 M’=(Q’, Σ, δ’, s’, F’) L(M’’) = (0+1)(00+01) = L(M) U L(M’) Q’’ = {(q, q’) | q in Q, q’ in Q’} δ’’((q, q’), a) = (δ(q, a), δ’(q’, a)) s’’ = (s, s’) F’’ = { (q, q’) | q in F or q’ in F’ }.

  11. 1 0 0 1 1 0 0 0 c a c b a 0 b 1 1 1 0 1 a 0 b 0 c a b b 1 1 0 1 a c

  12. Union, Intersection, subtraction Union: F’’ = {(q,q’) | q in F or q’ in F’} Intersection: F’’= {(q,q’) | q in F and q’ in F’} Subtraction: L(M) \ L(M’) F’’ = {(q,q’) | q in F and q’ not in F’}

  13. 1 0 0 1 1 0 0 0 c a c b a 0 b 1 1 1 0 1 a 0 b 0 c a b b 1 1 (0+1)*00 ∩ (0+1)*01 0 1 a c c c

  14. 1 0 0 1 1 0 0 0 c a c b a 0 b 1 1 1 0 1 a 0 b 0 c a b b 1 1 (0+1)*00 \ (0+1)*01 0 1 a c

  15. Complement • L(M’)= Σ*-L(M) F’ = Q - F 1 0 0 0 1 (0+1)*00

  16. The set of all binary strings beginning with 1 which interpreted as a binary representation of an integer, is congruent to zero modulo 5. • Idea: To construct a DFA, we need to figure out what should be states and where each edge should go. Usually, states can be found through studying the condition for accepting. The condition for accepting a string x1x2···xn is x1x2···xn≡ 0 mod(5). So, we first choose residues 0, 1, 2, 3, 4 as states.

  17. 2i + 0 ≡ ? (mod 5) 2i + 1 ≡ ? (mod 5) 1 0 1 2 1 0 0 1 1 1 1 3 4 0 0 0 0 0,1

More Related