1 / 45

Function Matching

Function Matching. Amihood Amir Yonatan Aumann Moshe Lewenstein Ely Porat. Bar Ilan University. Baker ’ s Parameterized Matching. Prog.c int a,b; a=1; a = g(a)*5+f(a); b=2; a = func(a,b); a = a*g(b); b=1; b = g(b)*5+f(b); …. Baker ’ s Parameterized Matching. c=1;

ethan
Télécharger la présentation

Function Matching

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. Function Matching Amihood Amir Yonatan Aumann Moshe Lewenstein Ely Porat Bar Ilan University

  2. Baker’s Parameterized Matching Prog.c int a,b; a=1; a = g(a)*5+f(a); b=2; a = func(a,b); a = a*g(b); b=1; b = g(b)*5+f(b); ….

  3. Baker’s Parameterized Matching c=1; c = g(c)*5+f(c); Prog.c int a,b; a=1; a = g(a)*5+f(a); b=2; a = func(a,b); a = a*g(b); b=1; b = g(b)*5+f(b); …. Pattern Baker’s work pdup dupstat psearch SICOMP 1997 JCSS 1996

  4. Two dimensional parameterized matching pattern ‘A horse is a horse, it ain’t make a difference what color it is’John Wayne

  5. Parameterized Matching InputP = p1…pm over alphabet T = t1 . . . tn over alphabet Output: locations i of T, for which a bijection : exists s.t. (P) = (p1) (p2)… (pm) = ti…ti+m-1

  6. Parameterized Matching • One dimensional • Baker 1996, JCSS - Suffix Trees • Baker 1997, SICOMP - Boyer Moore • Amir, Farach, Muthu 1995, IPL - Knuth-Morris-Pratt • Two dimensional Regular methods fail !!

  7. Function Matching Input: P = p1…pm over alphabet T = t1 . . . tn over alphabet Output: locations i of T, where f: exists s.t. f(P) = f(p1)f(p2)…f(pm) = ti…ti+m-1

  8. Function Matching Input: P = p1…pm over alphabet T = t1 . . . tn over alphabet Output: locations i of T, where f: exists s.t. f(P) = f(p1)f(p2)…f(pm) = ti…ti+m-1 P = h e h a e h T = a b c b a c b a d a b d a d d a d

  9. Function Matching Input: P = p1…pm over alphabet T = t1 . . . tn over alphabet Output: locations i of T, where f: exists s.t. f(P) = f(p1)f(p2)…f(pm) = ti…ti+m-1 f(h) = b f(e) = c f(a) = a P = hehaeh T = a bcbacb a d a b d a d d a d

  10. Function Matching Input: P = p1…pm over alphabet T = t1 . . . tn over alphabet Output: locations i of T, where f: exists s.t. f(P) = f(p1)f(p2)…f(pm) = ti…ti+m-1 f(h) = a f(e) = d f(a) = b P = hehaeh T = a b c b a c b adabda d d a d

  11. Function Matching Input: P = p1…pm over alphabet T = t1 . . . tn over alphabet Output: locations i of T, where f: exists s.t. f(P) = f(p1)f(p2)…f(pm) = ti…ti+m-1 f(h) = d f(e) = a f(a) = d P = hehaeh T = a b c b a c b a d a b daddad

  12. Function Matching Input: P = p1…pm over alphabet T = t1 . . . tn over alphabet Output: locations i of T, where f: exists s.t. f(P) = f(p1)f(p2)…f(pm) = ti…ti+m-1 no match ! f(h) = ?? P = h e h a e h T = a b c b a c b a d a b d a d d a d

  13. Function Matching vs. Parameterized Matching P p-matches ti…ti+m-1 iff 1. P f-matches ti…ti+m-1 and 2. # of symbols in ti…ti+m-1 = # of symbols in P f(h) = b f(e) = c f(a) = a f(h) = d f(e) = a f(a) = d P = hehaeh hehaeh T = a bcbacb a d a b daddad

  14. Naïve Algorithm At each location i of text T check if pattern f-matches Check For each letter ‘a’ in pattern Are elements aligned with the pattern ‘a’s the same? no? declare ‘no match’ All letters “OK” – declare ‘match’ Running time:O(nm), where m = |P| and n = |T|

  15. Function Matching with Don’t Cares Input: P = p1…pm over alphabet {?} T = t1 . . . tn over alphabet Output: locations i of T, where f: exists s.t. f(P) = f(p1)f(p2)…f(pm) = ti…ti+m-1, f(?) - wildcard P = he ? ? eh T = a b c b a cb c d bc d a d d a d

  16. Why do we need don’t cares? Pattern Text

  17. Linearize Text and Pattern Pattern Text Line 1 Line 2 T = …

  18. Linearize Text and Pattern n m Text m Pattern n Line 1 Line 2 n-m n-m P = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? T= … … Line 5 Line 6

  19. Polynomial Multiplication - Convolutions t1 t2 t3 t4 . . . tn-2 tn-1 tn pm pm-1 . . . p2 p1 p1t1 p1t2 . . . p1tn-2 p1tn-1 p1tn p2t1 p2t2 p2t3 . . . p2tn-2 p2tn-1 p2tn p3t1 p3t2 p3t3 p3t3 . . . p3tn-1 p3tn . . . .. . . . pmt1 . . . pmtm pmtm+1 . . pmtn-1 pmtn . . . . . . Running time: O(n log m)

  20. Convolutions: Fischer-Patterson [1974] p1 p2 p3 p4 . . . pm t1t2 t3 t4 . . . tn-2 tn-1 tn pm pm-1 . . . p2 p1 p1t1 p1t2 . . . p1tn-2 p1tn-1 p1tn p2t1p2t2p2t3 . . . p2tn-2 p2tn-1 p2tn p3t1 p3t2p3t3p3t4 . . . p3tn-1 p3tn . . . .. . . . pmt1 . . . pmtmpmtm+1 . . pmtn-1 pmtn . . . . . .

  21. Convolutions: Fischer-Patterson [1974] p1 p2 p3 p4 . . . pm t1 t2 t3 t4 . . . tn-2 tn-1 tn pm pm-1 . . . p2 p1 p1t1 p1t2 . . . p1tn-2 p1tn-1 p1tn p2t1 p2t2 p2t3 . . . p2tn-2 p2tn-1 p2tn p3t1 p3t2 p3t3 p3t4 . . . p3tn-1 p3tn . . . .. . . . pmt1 . . . pmtm pmtm+1 . . pmtn-1 pmtn . . . . . .

  22. How does this help for Function Matching? The property that needs to be checked is: beneath each symbol from the pattern alphabet all text characters must be the same

  23. Example - T = a b c b a c b a c a b d a d d a d e a P = h e h a e h ? e PR = e ? h e a h e h

  24. Example - T = a b c b a c b a c a b d a d d a d e a P = h e h a e h ? e PR = e ? h e a h e h h in P vs. a in T Ta= 1 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 0 0 1 PRh = 0 0 1 0 0 1 0 1

  25. Example - T = a b c b a c b a c a b d a d d a d e a P = h e h a e h ? e PR = e ? h e a h e h h - a Ta= 1 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 0 0 1 PRh= 0 0 1 0 0 1 0 1 1 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 0 2 0 2 1 0 3 0 1 2 0 1 2 0 1 1 0 1

  26. Example - h e h a e h ? e T = a b c b a c b a c a b d a d d a d e a P = h e h a e h ? e PR = e ? h e a h e h h - a Ta = 1 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 0 0 1 PRh = 0 0 1 0 0 1 0 1 1 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 0 2 0 2 1 0 3 0 1 2 0 1 2 0 1 1 0 1

  27. Example - T = a b c b a c b a c a b d a d d a d e a P = h e h a e h ? e PR = e ? h e a h e h h - a Ta = 1 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 0 0 1 PRh = 0 0 1 0 0 1 0 1 0 0 1 0 0 1 1 1 0 2 0 2 1 0 3 0 1 2 0 1 2 0 1 1 0 1 => in O(n log m) time!!

  28. Example - T = a b c b a c b a c a b d a d d a d e a P = h e h a e h ? e PR = e ? h e a h e h h - a 1 0 2 0 2 1 0 3 0 1 2 0 h - b 0 3 0 1 1 1 1 0 1 0 1 0 h - c 2 0 1 2 0 1 1 0 1 0 0 0 h - d 0 0 0 0 0 0 1 0 1 2 0 3 Match(h) 0 1 0 0 0 0 0 1 0 0 0 1 => in O(| | n log m) time!!

  29. In general - the Algorithm • For each character ‘a’ in create Pa • For each character ‘b’ in create Tb • For all Pa and Tb multiply them and • construct Match(a) for each ‘a’ in • Announce each location i of T as a ‘match’ if Match(a)[i] = 1 for all a’s in P => in O(| || | n log m) time.

  30. Improvement Lemma: Let a1, ..., ak , then k iff for all i,j, ai = aj Idea: Let’s encode text with numbers for symbols and encode pattern to compute their sum and separately their sum of squares.

  31. Improvement Lemma: Let a1, ..., ak , then k iff for all i,j, ai = aj Example: Compute sum of text char’s beneath “e” T# =1 2 3 2 13 2 1 3 1 2 4 1 4 4 1 4 5 1 T = a b c b a c b a c a b d a d d a d e a P = h e h a e h ? e Pe = 0 1 0 0 1 0 0 1

  32. Improvement Lemma: Let a1, ..., ak , then k iff for all i,j, ai = aj Example: Compute sum of squares beneath “e” T#2= 1 4 9 4 1 9 4 1 9 1 4 16 1 16 16 1 16 25 1 T# =1 2 3 2 1 3 2 1 3 1 2 4 1 4 4 1 4 5 1 T = a b c b a c b a c a b d a d d a d e a P = h e h a e h ? e Pe = 0 1 0 0 1 0 0 1

  33. Improvement Lemma: Let a1, ..., ak , then k iff for all i,j, ai = aj Running Time: Two convolutions for each pattern character. O(| | n log m)

  34. We have seen – 2 algorithms for Function Matching • O(nm) - naïve algorithm • O(| | n log m) - convolution based • O(n log2m) - randomized convolutions based • Lower bound of (nm) for deterministic convolutions based methods We will see: Can we do better for big alphabets?

  35. Def:A pattern is 2-charactered if every character appears at most twice in the pattern. Lemma: Let P be a pattern and T a text. 2-charactered patterns P1 and P2 s.t. at loc. i of T Pf-matches iffP1 and P2f-match. Example:P = a b c b c c b b P1 = a1 b1 c1 b1 c1 c2 b2 b2 (even pairs) P2 = a1 b1 c1 b2 c2 c2 b2 b3 (odd pairs)

  36. Situation: An algorithm for Function Matching with 2-charactered patterns a general algorithm for Function Matching. So, all that needs to be checked is that: each pair in P has equal text symbols beneath it.

  37. New Randomized Algorithm • For each character:- a in T, randomly choose ra in {0, 1} - relace all a’s in T with ra - get T’- b in P, randomly choose sbin {1,2} - set first b to be sb and the second b to be -sb - get P’ • Convolve T’ and P’R • For each location i, for which T’*P’R[i] equals 0 for the convolutiondeclare a ‘match’

  38. h(v) = a h(q) = b h(u) = a h(s) = a Example: P = v q v u q u ? s T = a b a a b a b a c a b d a b c b d b a g(P) = 2 6 –2 8 –6 –8 0 0 f(T) = 1 0 1 1 0 1 0 1 0 0 1 0 1 1 0 0 0 1 0 1 2+0–2+8+0–8+0+0 = 0 g(v) = g(q) = g(u) = 2 6 8 f(a) = f(b) = f(c) = f(d) = 1 0 0 1

  39. Example: P = v q v u q u ? s T = a b a a b a b a c a b d a b c b d b a g(P) = 2 6 –2 8 –6 –8 0 0 f(T) = 1 0 1 1 0 1 0 1 0 0 1 0 1 1 0 0 0 1 0 1 0+6–2+0-6+0+0+0 = -2 g(v) = g(q) = g(u) = 2 6 8 f(a) = f(b) = f(c) = f(d) = 1 0 0 1

  40. Example: P = v q v u q u ? s T = a b a a b a b a c a b d a b c b d b a g(P) = 2 6 –2 8 –6 –8 0 0 f(T) = 1 0 1 1 0 1 0 1 0 0 1 0 1 1 0 0 0 1 0 1 0= 2+6+0+0+0-8+0+0 g(v) = g(q) = g(u) = 2 6 8 f(a) = f(b) = f(c) = f(d) = 1 0 0 1

  41. Running Time: O(nk log m) with probability 2-k O(n log2m) with probability 1/m if P f-matches at location i of T then f(T)*g(P)R [i+m-1] is trivially always equal to 0 if P does not f-match at location i of T then for each convolution <f,g>, f(T)*g(P)R [i+m-1], equals 0 with probability ½ with k rounds of amplification the probability is (½)k Correctness:

  42. Limitation of the Convolutions Model Can we do the same deterministically? No! To show this we use the model of communication complexity Alice Bob x y f(x,y)

  43. Limitation of the Convolutions Model Known: for x,y in {0,1}k the communication complexity of equals(x,y) is (k) Take pattern P = a1 a2 a3 …am a1 a2 a3 …am, where i j ai aj Given a collection of convolutions {<g(P), f(T)>} the convolutions of location i, (g(P)*f(t))[i+m-1] = g(aj )*f(ti+j-1) + g(aj )*f(ti+j+m-1). Since we are in essence comparing ti…ti+m-1 to ti+m…ti+2m-1 we get the equal information from the convolution. This is lower bounded by (m) for each location, In general (nm)

  44. Another Application for Function Matching Protein Folding detection: 10 10 9 9 8 8 1 2 3 7 7 1 2 3 4 5 6 P = 1 2 3 4 5 6 7 8 9 10 10 9 8 7 6 5 4 11 12 … 12 11 3 2 1

  45. Questions • Can Function Matching be solved deterministicallyin o(nm) time for big alphabets? • Are there special cases of Function Matching thatare easier (other than Parameterized Matching andother trivial ones)? • Does 2-dimensional Parameterized Matching needto be solved with function matching?

More Related