11
Transparency No. ?-0 Formal Language and Automata Theory Chapter 6 Homomorphisms (lecture 10) Transparency No. 6-1

Chapter 6

Embed Size (px)

DESCRIPTION

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 ) - PowerPoint PPT Presentation

Citation preview

Page 1: Chapter 6

Transparency No. ?-0

Formal Languageand Automata Theory

Chapter 6

Homomorphisms

(lecture 10)

Transparency No. 6-1

Page 2: Chapter 6

Homomorphisms

Transparency No. 6-2

Homomorphisms (the definition)

Def: A homomorphism is a mapping h: * -> * s.t. for all x,y in * h(xy) = h(x) h(y) (10-1) h() = (10.2)

Note: (10.2) is not needed since h( ) = h( ) = h( ) h( ) => |h( )| = |h( )|+|h( )| ==> |h( )| = 0 ==> h( ) = .

Property 1: Any homomorphism h:* -> * is uniquely determined by its value on . I.e., if g,h: * ->* are morphism s.t. g(a)=h(a) for all a in , th

en g = h (I.e., g(x) = h(x) for all x in *).

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: *->* completely, it suffices to specify its values on .

Page 3: Chapter 6

Homomorphisms

Transparency No. 6-3

More about homomorphisms

h: * -> *: a homomorphim; A: a subset of *; B: a subset of * h(A) =def {h(x) |x in A} * is the image of A under h.

h-1(B) =def {x | h(x) in B} * is the preimage of B under h.

Theorem 10:

h: *->* a homomorphism; B: a regular language over ==> h-1(B) is regular too.

Pf : M=(Q, ,,s,F) : a DFA s.t. L(M) = B

=> let M’ = (Q, ,’,s,F) where ’(q,a) = (q,h(a)) for all a in .

Property of M’:

’(q,x) = (q,h(x)) for all q in Q and x in * ----- (10.3)

by simple induction on |x|, left as an exercise.

=> for all x in *, x L(M’) iff ’(s,x) F iff (s,h(x)) F iff x L(M) = B => h-1(B) = L(M’) is regular. QED

Page 4: Chapter 6

Homomorphisms

Transparency No. 6-4

Example:

EX:

h:{a,b}* -> {0,1}* s.t. h(a) = 01 and h(b) = 10.

B= L(M)

M :

==> M’ = ?

Page 5: Chapter 6

Homomorphisms

Transparency No. 6-5

Theorem 10.2

h : * -> *: a homoporphism; A *: a regular set

=> h(A) is regular.

Let be any reg. expr. S.t. L( ) = A.

Let ’ be the reg. expr. obtained from by replacing every letter a in appearing in with the string h(a) in *.

eg: if h(a) =000, h(b) = 11, = [(a+b)*ab] => ’ = (000+11)*00011

’ can be defined inductively as follows: _____ (exercise)

Property: for any reg. expr. over . L(’) = h(L()) --- (10.4)

Hence L(’) = h(L()) = h(A) is regular.

To prove 10.4, we require:

for all C,D * and any family of subsets Ci *, 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.

Page 6: Chapter 6

Homomorphisms

Transparency No. 6-6

proof of 10.4:

pf: by induction on : case 1: = a : L(a’) = L(h(a)) = {h(a)} = h(L(a)) = => L(’) = L() = {} = h({}) = h(L()). = e (note: since e = * L(e’) can be covered by other case

) Ind. cases: 1. L((+)’) = L(’ + ’) = L(’) U L(’) = h(L()) U h(L()) = h(L( ) U L(r)) = h(L( +r)) 2. L(( )’) = L(’’) = L( ’)L(’) = h(L( )) h(L()) = h(L( )L()) = h(L()) 3. L((*)’) = L((’)*) = U k 0 (L(’))k = U k 0 (h(L()))k

= U k0 h(L()k) = h( U k 0 L()k) = h( L()*)

= h(L(*)).

Page 7: Chapter 6

Homomorphisms

Transparency No. 6-7

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:* * and a FA M, find a FA M’ s.t. L(M’) = h (L(M)).

Page 8: Chapter 6

Homomorphisms

Transparency No. 6-8

Automata with -transiiton

Def: A NFA with e-transition is a structure M = (Q,,e,,S,F) where Q,,,S,F are the same as in NFAs and e is a special symbol not in (standing for the empty string ).

for each M, define Me = (Q,U{e}, ,S,F) to be a usual NFA over the alphabet U{e}.

Define acceptance for automata with e-transitions as follows: for all x in *, M accepts x if y in (U{e})* s.t. Me accepts y u

nder usual definition and x is obtained from y by erasing all e from y.

I.e., x = h(y) where h(U{e})* -> * with h(a) = a for a in and h(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) (U{e})* is regular

with h(B) = A. => A is regular too.

Page 9: Chapter 6

Homomorphisms

Transparency No. 6-9

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.

Page 10: Chapter 6

Homomorphisms

Transparency No. 6-10

Applications of homomorphisms

= {0,1}; x = { 00, 01,10,11} = { }

define top, btm : with

top( ) = x and btm( ) = y.

top and btm can be extended to homomorphism ( x )* -> *

eg:

top( ) = 0001 and btm( ) = 1011

Dk =def {x (x )* | x contains no more than k occurrences of

(0,1) or (1,0) } is certainly regular (why?)

= {x ( x )* | H(top(x), btm(x)) k }.

xy

xy

Page 11: Chapter 6

Homomorphisms

Transparency No. 6-11

Applications of homomorphisms (cont’d)

Now let A be any regular set over => 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.