1 module 17 closure properties of language class lfsa –remember ideas used in solvable languages...

23
1 Module 17 • Closure Properties of Language class LFSA – Remember ideas used in solvable languages unit – Set complement – Set intersection, union, difference, symmetric difference

Post on 21-Dec-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Module 17 Closure Properties of Language class LFSA –Remember ideas used in solvable languages unit –Set complement –Set intersection, union, difference,

1

Module 17

• Closure Properties of Language class LFSA– Remember ideas used in solvable languages

unit– Set complement– Set intersection, union, difference, symmetric

difference

Page 2: 1 Module 17 Closure Properties of Language class LFSA –Remember ideas used in solvable languages unit –Set complement –Set intersection, union, 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

Page 3: 1 Module 17 Closure Properties of Language class LFSA –Remember ideas used in solvable languages unit –Set complement –Set intersection, union, difference,

3

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

LcL

LFSA

FSA’s

MM’

Page 4: 1 Module 17 Closure Properties of Language class LFSA –Remember ideas used in solvable languages unit –Set complement –Set intersection, union, difference,

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?

Page 5: 1 Module 17 Closure Properties of Language class LFSA –Remember ideas used in solvable languages unit –Set complement –Set intersection, union, difference,

5

Construct FSA M’ from M

• M = (Q, , q0, A, )• M’ = (Q’, ’, q’, A’, ’)

– M’ should say yes when M says no– M’ should say no when M says yes– How?

• Q’ = Q• ’ = • q’ = q0

• ’ = • A’ = Q-A

Page 6: 1 Module 17 Closure Properties of Language class LFSA –Remember ideas used in solvable languages unit –Set complement –Set intersection, union, difference,

6

Example

1

2

3

a

a

a

b

b

b

FSA M

1

2

3

a

a

a

b

b

b

FSA M’

Q’ = Q’ = q’ = q0

’ = A’ = Q-A

Page 7: 1 Module 17 Closure Properties of Language class LFSA –Remember ideas used in solvable languages unit –Set complement –Set intersection, union, difference,

7

Construction is an 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

Construction Algorithm

FSA M

FSA M’

Page 8: 1 Module 17 Closure Properties of Language class LFSA –Remember ideas used in solvable languages unit –Set complement –Set intersection, union, difference,

8

Specification of the algorithm

• Your algorithm must give a complete specification of M’ in terms of M– Example:

• Let input FSA M = (Q, , q0, A, )• Output FSA M’ = (Q’, ’, q’, A’, ’) where

– Q’ = Q– ’ = – q’ = q0

– ’ = – 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.

Construction Algorithm

FSA M

FSA M’

Page 9: 1 Module 17 Closure Properties of Language class LFSA –Remember ideas used in solvable languages unit –Set complement –Set intersection, union, difference,

9

LFSA closed under Set Intersection Operation

(also set union, set difference, and symmetric difference)

Page 10: 1 Module 17 Closure Properties of Language class LFSA –Remember ideas used in solvable languages unit –Set complement –Set intersection, union, 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

Page 11: 1 Module 17 Closure Properties of Language class LFSA –Remember ideas used in solvable languages unit –Set complement –Set intersection, union, difference,

11

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

L1 intersect L2

L1

L2

LFSA

M3

M1

M2

FSA’s

Page 12: 1 Module 17 Closure Properties of Language class LFSA –Remember ideas used in solvable languages unit –Set complement –Set intersection, union, difference,

12

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 M3Alg

Page 13: 1 Module 17 Closure Properties of Language class LFSA –Remember ideas used in solvable languages unit –Set complement –Set intersection, union, difference,

13

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?

FSA M1

FSA M2

FSA M3Alg

Page 14: 1 Module 17 Closure Properties of Language class LFSA –Remember ideas used in solvable languages unit –Set complement –Set intersection, union, difference,

14

1

Run M1 and M2 Simultaneously

0 20

0

0

0

1

1

1

1

M1

A B0

1 0,1

M2

,A 0,A 1,A 2,A

,B 0,B 1,B 2,B

M3

What happens when M1 and M2 run on input string 11010?

FSA M1

FSA M2

FSA M3Alg

Page 15: 1 Module 17 Closure Properties of Language class LFSA –Remember ideas used in solvable languages unit –Set complement –Set intersection, union, difference,

15

Construction *

• Input – FSA M1 = (Q1, , q1, , A1)

– FSA M2 = (Q2, , q2, , A2)

• Output– FSA M3 = (Q3, , q3, , A3)

– What is Q3?

• Q3 = Q1 X Q2 where X is cartesian product

• In this case, Q3 = {(,A), (,B), (0,A), (0,B), (1,A), (1,B), (2,A), (2,B)}

– What is 3?

• 3 = 1 = 2

• In this case, 3 = {0,1}

1 0 20

000

1

11

1

M1

A B0

1 0,1

M2

Page 16: 1 Module 17 Closure Properties of Language class LFSA –Remember ideas used in solvable languages unit –Set complement –Set intersection, union, difference,

16

Construction *

• Input – FSA M1 = (Q1, , q1, , A1)

– FSA M2 = (Q2, , q2, , A2)

• Output– FSA M3 = (Q3, , q3, , A3)

– What is q3?

• q3 = (q1, q2)

• In this case, q3 = (,A)

– What is A3?

• A3 = {(p, q) | p in A1 and q in A2}

• In this case, A3 = {(0,B)}

1 0 20

000

1

11

1

M1

A B0

1 0,1

M2

Page 17: 1 Module 17 Closure Properties of Language class LFSA –Remember ideas used in solvable languages unit –Set complement –Set intersection, union, difference,

17

Construction

• Input – FSA M1 = (Q1, , q1, , A1)

– FSA M2 = (Q2, , q2, , A2)

• Output– FSA M3 = (Q3, , q3, , A3)

– What is 3?

• For all p in Q1, q in Q2, a in , 3((p,q),a) = (1(p,a),2(q,a))

• In this case,– 3((0,A),0) = (1(0,0),2(A,0))

– = (0,B)

– 3((0,A),1) = (1(0,1),2(A,1))

– = (1,A)

1 0 20

000

1

11

1

M1

A B0

1 0,1

M2

Page 18: 1 Module 17 Closure Properties of Language class LFSA –Remember ideas used in solvable languages unit –Set complement –Set intersection, union, difference,

18

Example Summary

1 0 200

01

1

1

M1

A B0

1 0,1

M2

,A 0,A 1,A 2,A

,B 0,B 1,B 2,B

M3

0 1

0

1

0

1

0

1

0

1

0

1 0

1

Page 19: 1 Module 17 Closure Properties of Language class LFSA –Remember ideas used in solvable languages unit –Set complement –Set intersection, union, difference,

19

Observation

• Input – FSA M1 = (Q1, , q1, , A1)

– FSA M2 = (Q2, , q2, , A2)

• Output– FSA M3 = (Q3, , q3, , 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

Page 20: 1 Module 17 Closure Properties of Language class LFSA –Remember ideas used in solvable languages unit –Set complement –Set intersection, union, difference,

20

Observation continued *

• Input – FSA M1 = (Q1, , q1, , A1)

– FSA M2 = (Q2, , q2, , A2)

• Output– FSA M3 = (Q3, , q3, , A3)

– What is A3?

• Set intersection: A3 = {(p, q) | p in A1 and q in A2}

• Set union: A3 = {(p, q) | p in A1 or 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) }

Page 21: 1 Module 17 Closure Properties of Language class LFSA –Remember ideas used in solvable languages unit –Set complement –Set intersection, union, difference,

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

Page 22: 1 Module 17 Closure Properties of Language class LFSA –Remember ideas used in solvable languages unit –Set complement –Set intersection, union, difference,

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

Page 23: 1 Module 17 Closure Properties of Language class LFSA –Remember ideas used in solvable languages unit –Set complement –Set intersection, union, difference,

23

Comparison *

L1 intersect L2

L1

L2

LFSA

M3

M1

M2

FSA’s

LFSAREC

FSA’s C++ Programs

L L

M P