1 / 23

Module 17

Module 17. Closure Properties of Language class LFSA Remember ideas used in solvable languages unit Set complement Set intersection, union, difference, symmetric difference. LFSA is closed under set complement. If L is in LFSA, then L c is in LFSA Proof

lorand
Download Presentation

Module 17

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. Module 17 • Closure Properties of Language class LFSA • Remember ideas used in solvable languages unit • Set complement • Set intersection, union, difference, symmetric difference

  2. LFSA is closed under set complement • If L is in LFSA, then Lc is in LFSA • Proof • Let L be an arbitrary language in LFSA • Let M be the FSA such that L(M) = L • M exists by definition of L in LFSA • Construct FSA M’ from M • Argue L(M’) = Lc • There exists an FSA M’ such that L(M’) = Lc • Lc is in LFSA

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

  4. Construct FSA M’ from M * • What did we do when we proved that REC, the set of solvable languages, is closed under set complement? • Construct program P’ from program P • Can we translate this to the FSA setting?

  5. Construct FSA M’ from M • M = (Q, S, q0, A, d) • M’ = (Q’, S’, q’, A’, d’) • M’ should say yes when M says no • M’ should say no when M says yes • How? • Q’ = Q • S’ = S • q’ = q0 • d’ = d • A’ = Q-A

  6. a a b 2 1 b b 3 FSA M’ a • Q’ = Q • S’ = S • q’ = q0 • d’ = d • A’ = Q-A Example a a b 2 1 b b 3 FSA M a

  7. Construction is an algorithm * FSA M FSA M’ Construction Algorithm • Set Complement Construction • Algorithm Specification • Input: FSA M • Output: FSA M’ such that L(M’) = L(M)c • Comments • This algorithm can be in any computational model. • It does not have to be (and typically is not) an FSA • These set closure constructions are useful. • More on this later

  8. Specification of the algorithm FSA M FSA M’ Construction Algorithm • Your algorithm must give a complete specification of M’ in terms of M • Example: • Let input FSA M = (Q, S, q0, A, d) • Output FSA M’ = (Q’, S’, q’, A’, d’) where • Q’ = Q • S’ = S • q’ = q0 • d’ = d • A’ = Q-A • When I ask for such a construction algorithm specification, this type of answer is what I am looking for. Further algorithmic details on how such an algorithm would work are unnecessary.

  9. LFSA closed under Set Intersection Operation (also set union, set difference, and symmetric difference)

  10. LFSA closed under set intersection operation * • Let L1 and L2 be arbitrary languages in LFSA • Let M1 and M2 be FSA’s s.t. L(M1) = L1, L(M2) = L2 • M1 and M2 exist by definition of L1 and L2 in LFSA • Construct FSA M3 from FSA’s M1 and M2 • Argue L(M3) = L1 intersect L2 • There exists FSA M3 s.t. L(M3) = L1 intersect L2 • L1 intersect L2 is in LFSA

  11. L1 L1 intersect L2 L2 M1 M3 M2 FSA’s Visualization • Let L1 and L2 be arbitrary languages in LFSA • Let M1 and M2 be FSA’s s.t. L(M1) = L1, L(M2) = L2 • M1 and M2 exist by definition of L1 and L2 in LFSA • Construct FSA M3 from FSA’s M1 and M2 • Argue L(M3) = L1 intersect L2 • There exists FSA M3 s.t. L(M3) = L1 intersect L2 • L1 intersect L2 is in LFSA LFSA

  12. Alg Algorithm Specification • Input • Two FSA’s M1 and M2 • Output • FSA M3 such that L(M3) = L(M1) intersection L(M2) FSA M1 FSA M2 FSA M3

  13. FSA M1 FSA M2 Alg FSA M3 Use Old Ideas * • Key concept: Try ideas from previous closure property proofs • Example • How did the algorithm that was used to prove that REC is closed under set intersection work? • If we adapt this approach, what should M3 do with respect to M1, M2, and the input string?

  14. FSA M1 FSA M2 Alg FSA M3 l,A 0,A 1,A 2,A 1 0,1 l,B 0,B 1,B 2,B A 0 B M2 M3 Run M1 and M2 Simultaneously 0 1 1 0 l 0 0 1 2 1 0 1 M1 What happens when M1 and M2 run on input string 11010?

  15. Input FSA M1 = (Q1, S1, q1, d1, A1) FSA M2 = (Q2, S2, q2, d2, A2) Output FSA M3 = (Q3, S3, q3, d3, A3) What is Q3? Q3 = Q1 X Q2 where X is cartesian product In this case, Q3 = {(l,A), (l,B), (0,A), (0,B), (1,A), (1,B), (2,A), (2,B)} What is S3? S3 = S1 = S2 In this case, S3 = {0,1} 0 1 1 0 l 0 0 1 2 1 0 1 M1 1 0,1 0 A B M2 Construction *

  16. Input FSA M1 = (Q1, S1, q1, d1, A1) FSA M2 = (Q2, S2, q2, d2, A2) Output FSA M3 = (Q3, S3, q3, d3, A3) What is q3? q3 = (q1, q2) In this case, q3 = (l,A) What is A3? A3 = {(p, q) | p in A1 and q in A2} In this case, A3 = {(0,B)} 0 1 1 0 l 0 0 1 2 1 0 1 M1 1 0,1 0 A B M2 Construction *

  17. Input FSA M1 = (Q1, S1, q1, d1, A1) FSA M2 = (Q2, S2, q2, d2, A2) Output FSA M3 = (Q3, S3, q3, d3, A3) What is d3? For all p in Q1, q in Q2, a in S, d3((p,q),a) = (d1(p,a),d2(q,a)) In this case, d3((0,A),0) = (d1(0,0),d2(A,0)) = (0,B) d3((0,A),1) = (d1(0,1),d2(A,1)) = (1,A) 0 1 1 0 l 0 0 1 2 1 0 1 M1 1 0,1 0 A B M2 Construction

  18. 1 0,1 A 0 B M2 Example Summary 1 0 1 1 1 0 l 0 0 1 2 l,A 0,A 1 1,A 2,A 1 0 1 0 0 0 M1 1 0 0 1 l,B 0,B 1,B 2,B 0 1 M3

  19. Observation • Input • FSA M1 = (Q1, S1, q1, d1, A1) • FSA M2 = (Q2, S2, q2, d2, A2) • Output • FSA M3 = (Q3, S3, q3, d3, A3) • What is A3? • A3 = {(p, q) | p in A1 and q in A2} • What if operation were different? • Set union, set difference, symmetric difference

  20. Observation continued * • Input • FSA M1 = (Q1, S1, q1, d1, A1) • FSA M2 = (Q2, S2, q2, d2, A2) • Output • FSA M3 = (Q3, S3, q3, d3, A3) • What is A3? • Set intersection: A3 = {(p, q) | p in A1and q in A2} • Set union: A3 = {(p, q) | p in A1or q in A2} • Set difference: A3 = {(p, q) | p in A1 and q not in A2} • Symmetric difference: A3 = {(p, q) | (p in A1 and q not in A2) or (p not in A1 and q in A2) }

  21. Observation conclusion • LFSA is closed under • set intersection • set union • set difference • symmetric difference • The constructions used to prove these closure properties are essentially identical

  22. Comments * • You should be able to execute this algorithm • Convert two FSA’s into a third FSA with the correct properties. • You should understand the idea behind this algorithm • The third FSA essentially runs both input FSA’s simultaneously on any input string • How we set A3 depending on the specific set operation • You should understand how this algorithm can be used to simplify design of FSA’s • You should be able to construct new algorithms for new closure property proofs

  23. L L1 L1 intersect L2 L LFSA L2 REC LFSA M1 M3 C++ Programs M M2 P FSA’s FSA’s Comparison *

More Related