180 likes | 679 Views
Turbo-BM Algorithm. Deux méthodes pour accélérer l'algorithme de Boyer-Moore, Théorie des Automates et Applications . , 589-600, 1992. CROCHEMORE, M., CZUMAJ, A., GASIENIEC, L., JAROMINEK, S., LECROQ, T., PLANDOWSKI, W. and RYTTER, W. Adviser: R. C. T. Lee Speaker: H. M. Chen. Turbo-BM.
E N D
Turbo-BM Algorithm Deux méthodes pour accélérer l'algorithme de Boyer-Moore, Théorie des Automates et Applications. , 589-600, 1992. CROCHEMORE, M., CZUMAJ, A., GASIENIEC, L., JAROMINEK, S., LECROQ, T., PLANDOWSKI, W. and RYTTER, W. Adviser: R. C. T. Lee Speaker: H. M. Chen
Turbo-BM • The Turbo-BM algorithm is an amelioration of the Boyer-Moore algorithm. • It needs no extra preprocessing and requires only a constant extra space with respect to the original Boyer-Moore algorithm. • It improves the worst-case complexity of Boyer-Moore algorithm.
Good Suffix Rule 1 of the BM Algorithm. Text S1 S1 Pattern Text S1 S1 S1 Pattern Text S1 S1 S1 Pattern
Another matching: Text S1 S2 S1 S2 Pattern But, remember that S1 is a suffix of P. Text S1 S2 S1 S2 Pattern S1 Thus, Text S2 S2 S1 S2 S2 Pattern S1 S1
Text S2 S2 S1 S2 S2 Pattern S1 S1 S1 Text x S2 y S2 S1 S1 x S2 x S2 Pattern
For a successful matching. If we move only one step S1 Text x S2 y S2 y x y S2 x S2 Pattern S1 S1 After this one step move S1 Text x S2 y S2 y y S2 x x S2 Pattern S1 Impossible for matching.
Conclude : We must move at least |S1| - | S2| steps. Condition : (1) In the pervious step, Good Suffix Rule 1 (BM) was used. Thus S1 is long and not unique. This means that there is a period. (2)In the pervious step, S2 is contained in S1. S1 S2 S1
Turbo-skip We compare the pattern and the text from right to left. Turbo-BM skips the memory part which has been matched in preceding attempt. match memory Text = Pattern =
Example Text = Pattern = match Text = Pattern = memory
Full Example Text = Pattern = Shift by using Good Suffix Rule 1 memory
Full Example Shift by Turbo-shift Text = Pattern = memory Turbo-shift= |aba| - |a| = 2 Shift by Good Suffix Rule 1 Text = Pattern = We select the maximal number of shift between Good Suffix Rule 1 and Turbo-shift.
Full Example Text = Pattern = memory Shift by using Good Suffix Rule 1
Full Example Turbo-skip Text = Pattern = memory match is aba, but memory is a. when |match| > |memory|, we shift pattern by using Good Suffix Rule 1 only. Text = Pattern = Shift by Good Suffix Rule 1
Time Complexity • The preprocessing phase in O(m+Σ) time and space complexity and searching phase in O(n) time complexity.
References • Off-line serial exact string searching , CROCHEMORE, M. , Oxford University Press , Chapter 1 , 1997 , pp. 1-53. • Deux méthodes pour accélérer l'algorithme de Boyer-Moore , CROCHEMORE, M. , CZUMAJ, A. , GASIENIEC, L. , JAROMINEK, S. , LECROQ, T. , PLANDOWSKI, W. and RYTTER W. , Rouen France , 1991, pp. 45-63. • Speeding up two string matching algorithms , CROCHEMORE, M. , CZUMAJ, A. , GASIENIEC, L. , JAROMINEK, S. , LECROQ, T. , PLANDOWSKI, W. and RYTTER, W. , Algorithmica , Vol 12 , 1994 , pp. 247-267. • Text Algorithms , CROCHEMORE, M. and RYTTER, W. , Oxford University Press, 1994. • Recherches de mot , LECROQ, T. , University of Orléans, France , 1992. • Experimental results on string matching algorithms , LECROQ, T. , Software - Practice & Experience , Vol 25 , 1995 , pp.727-765.