Turbo BM
Turbo BM
Turbo-BM Algorithm
Adviser: R. C. T. Lee
Speaker: H. M. Chen
Deux mthodes pour acclrer l'algorithme de Boyer-Moore,
Thorie des Automates et Applications. ,
589-600, 1992.
CROCHEMORE, M., CZUMAJ, A., GASIENIEC, L.,
JAROMINEK, S., LECROQ, T., PLANDOWSKI, W. and
RYTTER, W.
2
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.
Turbo-BM
3
S
1
S
1
Text
Pattern
S
1
S
1
Text
Pattern S
1
S
1
S
1
Text
Pattern S
1
Good Suffix Rule 1 of the BM Algorithm.
4
S
2
S
2
Text
Pattern
Another matching:
S
1
S
1
But, remember that S
1
is a suffix of P.
S
2
S
2
Text
Pattern S
1
S
1
Thus,
S
2
S
2
Text
Pattern
S
2
S
2
S
1
S
1
S
1
S
1
5
S
2
S
1
Text
Pattern
S
2
y
x
S
2
x
S
1
S
2
x
S
2
S
2
Text
Pattern S
2
S
2
S
1
S
1
S
1
S
1
6
If we move only one step
S
2
S
1
Text
Pattern
S
2
y
x
S
2
x
S
2
x
y
After this one step move
S
2
S
1
Text
Pattern
S
2
y
x
S
2
x
S
1
S
2
x
y
y
S
1
y
S
1
For a successful
matching.
Impossible for matching.
7
Conclude :
We must move at least |S
1
| - | S
2
| steps.
Condition :
(1) In the pervious step, Good Suffix Rule 1 (BM) was used.
Thus S
1
is long and not unique. This means that there is
a period.
(2)In the pervious step, S
2
is contained in S
1
.
S
1
S
2
S
1
8
We compare the pattern and the text from right to left.
Turbo-BM skips the memory part which has been
matched in preceding attempt.
Text =
Pattern =
memory
match
Turbo-skip
9
b b a a b b b b b b a b a b a b a a a b a b a b
b b a b a b a b a a a b a b a b
Text =
Pattern =
b b a a b b b b b b a b a b a b a a a b a b a b
b b a b a b a b a a a b a b a b
Text =
Pattern =
Example
memory
match
10
b b a a b c a b a c c a a d a b a a b a a a d a
b b a b a a a b a
Text =
Pattern =
b b a b a a a b a
Shift by using Good Suffix Rule 1
Full Example
memory
11
b b a a b c a b a c c a a d a b a a b a a a d a
Text =
Pattern =
b b a b a a a b a
memory
b b a b a a a b a Turbo-shift= |aba| - |a| = 2
Shift by Turbo-shift
b b a a b c a b a c c a a d a b a a b a a a d a
Text =
Pattern =
b b a b a a a b a
Shift by Good Suffix Rule 1
b b a b a a a b a
We select the maximal number of shift between Good Suffix Rule 1
and Turbo-shift.
Full Example
12
b b a a b c a b a c c a a d a b a a b a a a d a
Text =
Pattern =
b b a b a a a b a
b b a b a a a b a
memory
Shift by using Good Suffix Rule 1
Full Example
13
b b a a b c a b a c c a a d a b a b b a b a a a
Text =
Pattern =
b b a b a a a b a
memory
match is aba, but memory is a. when |match| > |memory|, we shift pattern
by using Good Suffix Rule 1 only.
Turbo-skip
b b a a b c a b a c c a a d a b a b b a b a a a
Text =
Pattern =
b b a b a a a b a
b b a b a a a b a
Shift by Good Suffix Rule 1
Full Example
14
The preprocessing phase in O(m+) time and
space complexity and searching phase in O(n)
time complexity.
Time Complexity
15
References
Off-line serial exact string searching , CROCHEMORE, M. , Oxford
University Press , Chapter 1 , 1997 , pp. 1-53.
Deux mthodes pour acclrer 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 Orlans, France , 1992.
Experimental results on string matching algorithms , LECROQ, T. ,
Software - Practice & Experience , Vol 25 , 1995 , pp.727-765.
16
THANK YOU