1 / 12

Chapter 6

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 )

manju
Download Presentation

Chapter 6

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. Chapter 6 Homomorphisms (lecture 10) Transparency No. 6-1

  2. 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.

  3. 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

  4. 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’ = ?

  5. 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 CiS*, 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.

  6. 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 k0 h(L(b)k) = h( U k 0 L(b)k) = h( L(b)*) • = h(L(b*)).

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

  8. 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)).

  9. 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.

  10. 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.

  11. 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 }.

  12. 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.

More Related