1 / 23

Lecture 20

Lecture 20. LNFA subset of LFSA Theorem 4.1 on page 105 of Martin textbook Compare with set closure proofs Main idea A state in FSA represents a set of states in original NFA. LNFA subset LFSA. Let L be an arbitrary language in LNFA Let M be the NFA such that L(M) = L

herne
Download Presentation

Lecture 20

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 20 • LNFA subset of LFSA • Theorem 4.1 on page 105 of Martin textbook • Compare with set closure proofs • Main idea • A state in FSA represents a set of states in original NFA

  2. LNFA subset LFSA • Let L be an arbitrary language in LNFA • Let M be the NFA such that L(M) = L • M exists by definition of L in LNFA • Construct an FSA M’ such that L(M’) = L • Argue L(M’) = L • There exists an FSA M’ such that L(M’) = L • L is in LFSA • By definition of L in LFSA

  3. L L M M’ NFA’s FSA’s Visualization • Let L be an arbitrary language in LNFA • Let M be an NFA such that L(M) = L • M exists by definition of L in LNFA • Construct FSA M’ from NFA M • Argue L(M’) = L • There exists an FSA M’ such that L(M’) = L • L is in LFSA LNFA LFSA

  4. L L1 L1 intersect L2 L LNFA L2 LFSA LFSA M1 M3 M M2 M’ NFA’s FSA’s FSA’s Comparison

  5. Construction Specification • We need an algorithm which does the following • Input: NFA M • Output: FSA M’ such that L(M’) = L(M)

  6. An NFA can be in several states after processing an input string x Example The given NFA can be in states {1,2,3} after processing string aa (1, aaaaba) (1, aaaba) (2, aaaba) (1, aaba) (2, aaba) (3, aaba) (1, aba) (2, aba) (3, aba) crash a,b a,b (1, ba) (2, ba) (3, ba) a a b a (1, a) (4, a) (1, l) (2, l) (5, l) Difficulty Input string aaaaba

  7. All strings which end up in the set of states {1,2,3} are indistinguishable with respect to L(M) Example Strings aa, aaa, aaaa all end up in the same set of states {1,2,3} For all strings z, if aaz is in L(M), then aaaz and aaaaz are also in L(M) (1, aaaaba) (1, aaaba) (2, aaaba) (1, aaba) (2, aaba) (3, aaba) (1, aba) (2, aba) (3, aba) crash a,b a,b (1, ba) (2, ba) (3, ba) a a b a (1, a) (4, a) (1, l) (2, l) (5, l) Observation Input string aaaaba

  8. Given an NFA M = (Q,S,q0,d,A), the equivalent FSA M’ should have one state for each subset of Q Example In this case there are 5 states in Q There are 25 subsets of Q including {} and Q The FSA M’ will have 25 states What strings end up in state {1,2,3} of M’? The strings which end up in states 1, 2, and 3 of NFA M. In this case, strings which do not contain aaba and end with aa such as aa, aaa, and aaaa. a,b a,b a a b a Idea Input string aaaaba

  9. (1,[1,aaaaba) ({1}, aaaaba) (1, aaaba) (2, aaaba) ({1,2}, aaaba) ({1,2,3}, aaba) (1, aaba) (2, aaba) (3, aaba) (1, aba) (2, aba) (3, aba) ({1,2,3}, aba) a,b a,b (1, ba) (2, ba) (3, ba) ({1,2,3}, ba) a a b a ({1,4}, a) (1, a) (4, a) ({1,2,5}, l) (1, l) (2, l) (5, l) Idea Illustrated Input string aaaaba

  10. a,b a,b Input NFA M = (Q, S, q0, d, A) Output FSA M’ = (Q’, S’, q’, d’, A’) What is Q’? all subsets of Q including Q and {} In this case, Q’ = {{}, {1}, {2}, {3}, {1,2}, {1,3}, {2,3}, {1,2,3}} What is S’? We always make S’ = S In this case, S’ = S = {a,b} What is q’? We always make q’ = {q0} In this case q’ = {1} NFA M a a 1 2 3 Construction

  11. a,b a,b Input NFA M = (Q, S, q0, d, A) Output FSA M’ = (Q’, S’, q’, d’, A’) What is A’? Suppose a string x ends up in states 1 and 2 of the NFA M above. Is x accepted by M? No, neither 1 nor 2 are in A. Should {1,2} be an accepting state in FSA M’? No, {1,2} should not be in A’ Suppose a string x ends up in states 1 and 2 and 3 of the NFA M above. Is x accepted by M? Yes, because state 3 is in A. Should {1,2,3} be an accepting state in FSA M’? Yes, {1,2,3} should be in A’. Suppose p = {q1, q2, …, qk} where q1, q2, …, qk are in Q p is in A’ iff at least one of the states q1, q2, …, qk is in A In this case, A’ = {{3},{1,3},{2,3},{1,2,3}} NFA M a a 1 2 3 Construction

  12. a,b a,b Input NFA M = (Q, S, q0, d, A) Output FSA M’ = (Q’, S’, q’, d’, A’) What is d’? If string x ends up in states 1 and 2 after being processed by the NFA above, where does string xa end up after being processed by the NFA above? From state 1, the a will take the NFA to states 1 and 2 From state 2, the a will take the NFA to state 3 Figuring out d’(p,a) in general Suppose p = {q1, q2, …, qk} where q1, q2, …, qk are in Q Then d’(p,a) = d(q1,a) union d(q2,a) union … union d(qk,a) Similar to 2 FSA to 1 FSA construction In this case d’({1,2},a) = d(1,a) union d(2,a) = {1,2} union {3} = {1,2,3} NFA M a a 1 2 3 Construction

  13. a,b a,b Input NFA M = (Q, S, q0, d, A) Output FSA M’ = (Q’, S’, q’, d’, A’) Q’ =all subsets of Q including Q and {} In this case, Q’ = {{}, {1}, {2}, {3}, {1,2}, {1,3}, {2,3}, {1,2,3}} S’ = S In this case, S’ = S = {a,b} q’ ={q0} In this case, q’ = {1} A’ Suppose p = {q1, q2, …, qk} where q1, q2, …, qk are in Q p is in A’ iff at least one of the states q1, q2, …, qk is in A d’ Suppose p = {q1, q2, …, qk} where q1, q2, …, qk are in Q Then d’(p,a) = d(q1,a) union d(q2,a) union … union d(qk,a) NFA M a a 1 2 3 Construction Summary

  14. a b b a b a {1} {1,2} {1,2,3} {1,3} b a a,b a,b b a a,b {} {2} {3} {2,3} FSA M’ Example Summary a,b a,b 1 a 2 a 3 NFA M

  15. These states cannot be reached from initial state and are unnecessary. Example Summary Continued a b b a,b a,b a b a {1} {1,2} {1,2,3} {1,3} 1 a 2 a 3 b a a,b a,b NFA M b a a,b {} {2} {3} {2,3} FSA M’

  16. Example Summary Continued a b b a,b a,b a b a {1} {1,2} {1,2,3} {1,3} 1 a 2 a 3 b a NFA M Smaller FSA M’ By examination, we can see that state {1,3} is unnecessary. However, this is a case by case optimization. It is not a general technique or algorithm.

  17. A B C Example 2 a,b a b NFA M Step 1: name the three states of NFA M

  18. a,b a b A B C {B} NFA M {} Step 2: transition table a b {A} {B} {} d’({B,C},a) = d(B,a) U d(C,a) = {B} U {} = {B} d’({B,C},b) = d(B,b) U d(C,b) = {B,C} U {} = {B,C} {B} {B,C} {} {} {B,C} {B} {B,C}

  19. a,b a b A B C NFA M Step 3: accepting states a b Which states should be accepting? Any state which includes an accepting state of M, in this case, C. A’ = {{B,C}} {A} {B} {} {B} {B} {B,C} {} {} {} {B,C} {B} {B,C}

  20. a,b a b a b A B C {A} {B} {} {B} {B} {B,C} NFA M {} {} {} {B,C} {B} {B,C} Step 4: Answer Initial state is {A} Set of final states A’ = {{B,C}} This is sufficient. You do NOT need to turn this into a diagram.

  21. a,b a b A B C a b a b NFA M {A} {B} {B,C} a a,b b {} Step 5: Optional FSA M’

  22. Comments • You should be able to execute this algorithm • You should be able to convert any NFA into an equivalent FSA. • You should understand the idea behind this algorithm • For an FSA M’, strings which end up in the same state of M’ are indistinguishable wrt L(M’) • For an NFA M, strings which end up in the same set of states of M are indistinguishable wrt L(M)

  23. Comments • You should understand the importance of this algorithm • Design tool • We can design using NFA’s • A computer will convert this NFA into an equivalent FSA • FSA’s can be executed by computers whereas NFA’s cannot (or at least cannot easily be run by computers) • Chaining together algorithms • Perhaps it is easy to build NFA’s to accept L1 and L2 • Use this algorithm to turn these NFA’s to FSA’s • Use previous algorithm to build FSA to accept L1 intersect L2 • You should be able to construct new algorithms for new closure property proofs

More Related