quick search algorithm l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Quick Search Algorithm PowerPoint Presentation
Download Presentation
Quick Search Algorithm

Loading in 2 Seconds...

play fullscreen
1 / 28

Quick Search Algorithm - PowerPoint PPT Presentation


  • 615 Views
  • Uploaded on

Quick Search Algorithm. A very fast substring search algorithm, SUNDAY D.M., Communications of the ACM . 33(8),1990, pp. 132-142. Adviser: R. C. T. Lee Speaker: C. W. Cheng National Chi Nan University. Problem Definition.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Quick Search Algorithm' - elan


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
quick search algorithm

Quick Search Algorithm

A very fast substring search algorithm, SUNDAY D.M., Communications of the ACM . 33(8),1990, pp. 132-142.

Adviser: R. C. T. Lee

Speaker: C. W. Cheng

National Chi Nan University

problem definition
Problem Definition

Input: a text string T with length n and a pattern string P with length m.

Output: all occurrences of P in T.

definition
Definition
  • Ts: the first character of a string T aligns to a pattern P.
  • Pl : the first character of a pattern P aligns to a string T.
  • Tj : the character of the jth position of a string T.
  • Pi : the character of the ith position of a pattern P.
  • Pf : the last character of a pattern P.
  • n :The length of T.
  • m : The length of P.
rule 2 2 1 suffix rule a special version of rule 2
Rule 2-2: 1-Suffix Rule (A Special Version of Rule 2)
  • Consider the 1-suffix x. We may apply Rule 2-2 now.
introduction
Introduction
  • simplification of the Boyer-Moore algorithm.
  • uses only the bad-character shift.
  • easy to implement.
  • uses Rule 2-2: 1-Suffix Rule
quick search rule
Quick Search Rule

Suppose that P1 is aligned to Ts now, and we perform a pair-wise comparing between text T and pattern P from left to right. Assume that the first mismatch occurs when comparing Tq with Pp .

Since Tq ≠Pp , we move the pattern P to right such that the largest position i in the right of Pi is equal to Ts+m. We can shift the pattern at least (m-i) positions right.

s

q

s + m

mismatch

1

p

i

Shift

1

p

i

quick search preprocessing table
Quick Search Preprocessing Table
  • The only thing we want to do is to construct a table as follow. Let x be a character in the alphabet. We record the position of the last x, if it exists in P, we counted the position of x from the right end. If x does not exist in P, we record it as m+1.
quick search preprocessing table8
Quick Search Preprocessing Table
  • Example:

7 6 5 4 3 2 1

P=CAGAGAG

  • With this table, the number of steps which we move the pattern can be easily done. After the movement, we compare the pattern and the text from left to right until a mismatch occurs, otherwise we output the position of the first character in T which aligns to pattern P .
example
Example
  • Text string T=GCGCAGAGAGTAGAGAGTACG
  • Pattern string

P=CAGAGAG

example10
Example
  • Text string T=GCGCAGAGAGTAGAGAGTACG
  • Pattern string

P=CAGAGAG

mismatch

example11
Example
  • Text string T=GCGCAGAGAGTAGAGAGTACG
  • Pattern string

P=CAGAGAG

qsBC[G]=1, shift=1

mismatch

example12
Example
  • Text string T=GCGCAGAGAGTAGAGAGTACG
  • Pattern string

P=CAGAGAG

example13
Example
  • Text string T=GCGCAGAGAGTAGAGAGTACG
  • Pattern string

P=CAGAGAG

mismatch

example14
Example
  • Text string T=GCGCAGAGAGTAGAGAGTACG
  • Pattern string

P=CAGAGAG

qsBC[A]=2, shift=2

mismatch

example15
Example
  • Text string T=GCGCAGAGAGTAGAGAGTACG
  • Pattern string

P=CAGAGAG

example16
Example
  • Text string T=GCGCAGAGAGTAGAGAGTACG
  • Pattern string

P=CAGAGAG

exact match

example17
Example
  • Text string T=GCGCAGAGAGTAGAGAGTACG
  • Pattern string

P=CAGAGAG

qsBC[T]=8, shift=8

exact match

example18
Example
  • Text string T=GCGCAGAGAGTAGAGAGTACG
  • Pattern string

P=CAGAGAG

example19
Example
  • Text string T=GCGCAGAGAGTAGAGAGTACG
  • Pattern string

P=CAGAGAG

mismatch

example20
Example
  • Text string T=GCGCAGAGAGTAGAGAGTACG
  • Pattern string

P=CAGAGAG

qsBC[A]=2, shift=2

mismatch

example21
Example
  • Text string T=GCGCAGAGAGTAGAGAGTACG
  • Pattern string

P=CAGAGAG

example22
Example
  • Text string T=GCGCAGAGAGTAGAGAGTACG
  • Pattern string

P=CAGAGAG

mismatch

example23
Example
  • Text string T=GCGCAGAGAGTAGAGAGTACG
  • Pattern string

P=CAGAGAG

qsBC[G]=1, shift=1

mismatch

example24
Example
  • Text string T=GCGCAGAGAGTAGAGAGTACG
  • Pattern string

P=CAGAGAG

example25
Example
  • Text string T=GCGCAGAGAGTAGAGAGTACG
  • Pattern string

P=CAGAGAG

mismatch

time complexity
Time complexity
  • preprocessing phase in O(m+ σ) time and O(σ) space complexity, σ is the number of alphabets in pattern.
  • searching phase in O(mn) time complexity.
reference
Reference

[KMP77] Fast pattern matching in strings, D. E. Knuth, J. H. Morris, Jr and V. B. Pratt, SIAM J. Computing, 6,

1977, pp. 323–350.

[BM77] A fast string search algorithm, R. S. Boyer and J. S. Moore, Comm. ACM, 20, 1977, pp. 762–772.

[S90] A very fast substring search algorithm, D. M. Sunday, Comm. ACM, 33, 1990, pp. 132–142.

[RR89] The Rand MH Message Handling system: User’s Manual (UCIVersion), M. T. Rose and J. L. Romine,

University of California, Irvine, 1989.

[S82] A comparison of three string matching algorithms, G. De V. Smith, Software—Practice and Experience,12,

1982, pp. 57–66.

[HS91] Fast string searching, HUME A. and SUNDAY D.M. , Software - Practice & Experience 21(11), 1991, pp.

1221-1248.

[S94] String Searching Algorithms , Stephen, G.A., World Scientific, 1994.

[ZT87] On improving the average case of the Boyer-Moore string matching algorithm, ZHU, R.F. and

TAKAOKA, T., Journal of Information Processing 10(3) , 1987, pp. 173-177 .

[R92] Tuning the Boyer-Moore-Horspool string searching algorithm, RAITA T., Software - Practice & Experience,

22(10) , 1992, pp. 879-884.

[S94] On tuning the Boyer-Moore-Horspool string searching algorithms, SMITH, P.D., Software - Practice &

Experience, 24(4) , 1994, pp. 435-436.

[BR92] Average running time of the Boyer-Moore-Horspool algorithm, BAEZA-YATES, R.A., RÉGNIER, M.,

Theoretical Computer Science 92(1) , 1992, pp. 19-31.

[H80] Practical fast searching in strings, HORSPOOL R.N., Software - Practice & Experience, 10(6) , 1980, pp.

501-506.

[L95] Experimental results on string matching algorithms, LECROQ, T., Software - Practice & Experience 25(7) ,

1995, pp. 727-765.