120 likes | 234 Views
Chapter 6. Homomorphisms (lecture 10). Transparency No. 6- 1. Homomorphisms (the definition). Def: A homomorphism is a mapping h: S * -> G * s.t. for all x,y in S * h(xy) = h(x) h(y) (10-1) h( e ) = e (10.2) Note: (10.2) is not needed since h( e ) = h( e e ) = h( e ) h( e )
E N D
Chapter 6 Homomorphisms (lecture 10) Transparency No. 6-1
Homomorphisms (the definition) Def: A homomorphism is a mapping h: S* -> G* s.t. for all x,y in S* • h(xy) = h(x) h(y) (10-1) • h(e) = e (10.2) Note: (10.2) is not needed since h(e ) = h(ee ) = h(e ) h(e ) => |h(e )| = |h(e )|+|h(e )| ==> |h(e )| = 0 ==> h(e ) = e . • Property 1: Any homomorphism h:S* -> G* is uniquely determined by its value on S. • I.e., if g,h: S* ->G* are morphism s.t. g(a)=h(a) for all a in S, then g = h (I.e., g(x) = h(x) for all x in S*). Pf: if x = x1x2…xn => h(x) = h(x1x2…xn) = h(x1)h(x2)…h(xn) = g(x1)…g(xn) = g(x1x2…xn) = g(x). Conclusion: to specify a homomorphism h: S*->G* completely, it suffices to specify its values on S.
More about homomorphisms h: S* -> G*: a homomorphim; A: a subset of S*; B: a subset of G* • h(A) =def {h(x) |x in A} G* is the image of A under h. • h-1(B) =def {x | h(x) in B} S* is the preimage of B under h. Theorem 10: h: S*->G* a homomorphism; B: a regular language over G ==> h-1(B) is regular too. Pf : M=(Q, G ,d,s,F) : a DFA s.t. L(M) = B => let M’ = (Q, S ,d’,s,F) where d’(q,a) = D(q,h(a)) for all a in S. Property of M’: D’(q,x) = D(q,h(x)) for all q in Q and x in S* ----- (10.3) by simple induction on |x|, left as an exercise. => for all x in S*, x L(M’) iff D’(s,x) F iff D (s,h(x)) F iff x L(M) = B => h-1(B) = L(M’) is regular. QED
0,1 0 0 1 1 1 Example: • EX: h:{a,b}* -> {0,1}* s.t. h(a) = 01 and h(b) = 10. B= L(M) M : ==> M’ = ?
Theorem 10.2 h : S* -> G*: a homoporphism; A S*: a regular set => h(A) is regular. Let a be any reg. expr. S.t. L(a ) = A. Let a’ be the reg. expr. obtained from a by replacing every letter a in S appearing in a with the string h(a) in G*. eg: if h(a) =000, h(b) = 11, a = [(a+b)*ab] => a’ = (000+11)*00011 a’ can be defined inductively as follows: _____ (exercise) Property: for any reg. expr. b over S. L(b’) = h(L(b)) --- (10.4) Hence L(a’) = h(L(a)) = h(A) is regular. To prove 10.4, we require: for all C,D S* and any family of subsets CiS*, i I, h(CD) = h(C) h(D) --- (10.5) h(U i I Ci) = U i I h(Ci) --- (10.6) ==> can be proved direct from definition.
proof of 10.4: • pf: by induction on b: • case 1: b = a S: L(a’) = L(h(a)) = {h(a)} = h(L(a)) • b = => L(’) = L() = {} = h({}) = h(L()). • b = e (note: since e = * L(e’) can be covered by other case ) • Ind. cases: • 1. L((b+g)’) = L(b’ + g’) = L(b’) U L(g’) = h(L(b)) U h(L(g)) • = h(L(b ) U L(r)) = h(L(b +r)) • 2. L((bg)’) = L(b’ g’) = L(b ’)L(g’) = h(L(b )) h(L(g)) • = h(L(b )L(g)) = h(L(bg)) • 3. L((b*)’) = L((b’)*) = U k 0 (L(b’))k = U k 0 (h(L(b)))k • = U k0 h(L(b)k) = h( U k 0 L(b)k) = h( L(b)*) • = h(L(b*)).
0,1 0 0 1 1 1 Example: • EX: h:{0,1}* -> {a,b}* s.t. h(0) = ab and h(1) = ba. A= L(M) M : ==> h(A) is accepted by M’ = ?
Quiz • Q1: Is it true that “ h(A) is regular => A is regular “ ? • Notes: • 1. h(A) = B does not mean h-1(B) = A. • Hence Q1 is not a consequence of Theorem 10.1. • 2. counter example: • Let A = {anbn | n 0 } • h: {a,b}* -> {a,b}* with h(a)=h(b) = a • => h(A) = {a2n | n 0 } = B is regular, but A can be shown • to be not regular. • 3. h-1(B) = ______ A. • ans: {x {a,b}* | |x| = 2n }. • Exercise: Given a homomorphism h:S* G* and a FA M, find a FA M’ s.t. L(M’) = h (L(M)).
Automata with e-transiiton • Def: A NFA with e-transition is a structure M = (Q,S,e,d,S,F) where Q,S,d,S,F are the same as in NFAs and e is a special symbol not in S (standing for the empty string e). • for each M, define Me = (Q,SU{e}, d,S,F) to be a usual NFA over the alphabet SU{e}. • Define acceptance for automata with e-transitions as follows: • for all x in S*, M accepts x if $ y in (SU{e})* s.t. Me accepts y under usual definition and x is obtained from y by erasing all e from y. • I.e., x = h(y) where h(SU{e})* -> S* with h(a) = a for a in S and h(e) = e. • In other words, L(M) =def h(L(Me)). • Hence if A is accepted by a NFA-e machine M • => A = L(M) and B = L(Me) (SU{e})* is regular with h(B) = A. => A is regular too.
Application of homomorphisms : Haming distance • x, y: two bit strings, A: a set of bit strings; k 0 : any number. H(x,y) = # of positions at which they differ if |x| = |y|, or infinite if |x| |y|. H(x,A) = min y A H(x,y) Nk(A) = {x | H(x,A) k } is the set of strings of Haming distance at most k from A. Example: 1. N0({000}) = {000}, 2. N1({000}) = ? 3. N2({000}) = ? 4. N2({001, 11}) = {0,1}3 - {110} U {0,1}2. Ex3Hw2: if A is regular, then so is Nk(A) for any k 0.
x y x y 1 1 1 1 0 0 0 0 0 1 0 1 0 1 0 1 1 1 0 0 1 0 0 1 Applications of homomorphisms S = {0,1}; S x S = { 00, 01,10,11} = { } define top, btm : S2 -> S with top( ) = x and btm( ) = y. top and btm can be extended to homomorphism (S x S )* -> S * eg: top( ) = 0001 and btm( ) = 1011 Dk =def {x (SxS )* | x contains no more than k occurrences of (0,1) or (1,0) } is certainly regular (why?) = {x (S x S )* | H(top(x), btm(x)) k }.
Applications of homomorphisms (cont’d) • Now let A be any regular set over S • => Nk(A) = top (btm-1(A) Dk) where • btm-1(A) is the set of (x,y) with y A, • Dk is the set of (x,y) with H(x,y) k • btm-1(A) Dk is the set of (x,y) with y A and H(x,y) k • top (btm-1(A) Dk) is the set of x s.t. $ y A with H(x,y) k = the set of x with H(x,A) k = Nk(A). • Hence Nk(A) is regular if A is regular.