Upload
barry-witt
View
25
Download
0
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
Transparency No. ?-0
Formal Languageand Automata Theory
Chapter 6
Homomorphisms
(lecture 10)
Transparency No. 6-1
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 .
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
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’ = ?
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.
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(*)).
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)).
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.
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.
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
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.