1 module 17 closure properties of language class lfsa –remember ideas used in solvable languages...
Post on 21-Dec-2015
213 views
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
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’
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, , 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
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
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’
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’
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
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
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
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
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
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
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
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
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
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
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) }
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
Comparison *
L1 intersect L2
L1
L2
LFSA
M3
M1
M2
FSA’s
LFSAREC
FSA’s C++ Programs
L L
M P