Advertisement

Dictionary-matching on unbounded alphabets: Uniform length dictionaries

  • Dany Breslauer
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 807)

Abstract

In the string-matching problem one is interested in all occurrences of a short pattern string in a longer text string. Dictionary-matching is a generalization of this problem where one is looking simultaneously for all occurrences of several patterns in a single text.

This paper presents an efficient on-line dictionary-matching algorithm for the case where the patterns have uniform length and the input alphabet is unbounded. A tight lower bound establishes that our approach is optimal if the only access the algorithm has to the input strings is by pairwise symbol comparisons.

In an immediate application, the new dictionary-matching algorithm can be used in a previously known higher-dimensional array-matching algorithm, improving the performance of this algorithm on unbounded alphabets. The resulting algorithm is currently the fastest known algorithm for k-dimensional array-matching on unbounded alphabets, for k≥3.

Keywords

Binary Search Suffix Tree Input String Input Alphabet Potential Occurrence 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [1]
    A.V. Aho. Algorithms for Finding Patterns in Strings. In J. van Leeuwen, editor, Handbook of Theoretical Computer Science, pages 257–300, Elsevier Science Publishers B. V., Amsterdam, the Netherlands. 1990.Google Scholar
  2. [2]
    A.V. Aho and M.J. Corasick. Efficient string matching: An aid to bibliographic search. Comm. of the ACM. 18(6):333–340, 1975.Google Scholar
  3. [3]
    A.V. Aho, J.E. Hopcroft, and J.D. Ullman. The Design and Analysis of Computer Algorithms. Addison-Wesley. Reading. MA. 1971.Google Scholar
  4. [4]
    A. Amir and G. Benson. Two-dimensional periodicity and its applications. In Proc. 3rd ACM-SIAM Symp. on Discrete Algorithms, pages 440–452, 1992.Google Scholar
  5. [5]
    A. Amir, G. Benson, and M. Farach. Alphabet-Independent. Two-Dimensional Matching. In Proc. 24th ACM Symp. on Theory of Computing, pages 59–68, 1992.Google Scholar
  6. [6]
    A. Amir and M. Farach. Adaptive dictionary matching. In Proc. 32th IEEE Symp. on Foundations of Computer Science. pages 760–766, 1991.Google Scholar
  7. [7]
    A. Amir and M. Farach. Two-dimensional dictionary matching. Inform. Process. Lett., 44:223–239, 1992.Google Scholar
  8. [8]
    A. Amir, M. Farach, Z. Galil, R. Giancarlo, and K. Park. Dynamic Dictionary Matching. Manuscript, 1992.Google Scholar
  9. [9]
    A. Amir, M. Farach, R.M. Idury, J.A. La Poutré, and A.A. Schäffer. Improved Dynamic Dictionary-Matching. In Proc. 4nd ACM-SIAM Symp. on Discrete Algorithms, pages 392–401, 1993.Google Scholar
  10. [10]
    A. Amir, M. Farach, and Y. Matias. Efficient Randomized Dictionary-Matching Algorithms. In Proc. 3rd Symp. on Combinatorial Pattern Matching, number 644 in Lecture Notes in Computer Science, pages 262–275. Springer-Verlag, Berlin, Germany, 1992.Google Scholar
  11. [11]
    A. Apostolico, C. Iliopoulos, G.M. Landau. B. Schieber, and U. Vishkin. Parallel construction of a suffix tree with applications. Algorithmica, 3:347–365. 1988.Google Scholar
  12. [12]
    R. Baeze-Yates and M. Régnier. Fast two-dimensional pattern matching. Inform. Process. Lett., 45:51–57, 1993.Google Scholar
  13. [13]
    T.P. Baker. A Technique for Extending Rapid Exact-Match String Matching to Arrays of More than One Dimension. SIAM J. Comput., 7(4):533–541, 1978.Google Scholar
  14. [14]
    G.E. Benson. Two-Dimensional Periodicity and Matching Algorithms. PhD thesis, Dept. of Computer Science. University of Maryland. 1992.Google Scholar
  15. [15]
    R.S. Bird. Two Dimensional Pattern Matching. Inform. Process. Lett., 6(5): 168–170, 1977.Google Scholar
  16. [16]
    R.S. Boyer and J.S. Moore. A fast string searching algorithm. Comm. of the ACM, 20:762–772, 1977.Google Scholar
  17. [17]
    M.T. Chen and J. Seiferas. Efficient and elegant subword-tree construction. In A. Apostolico and Z. Galil. editors. Combinatorial Algorithms on Words, volume 12 of NATO ASI Series F, pages 97–107. Springer-Verlag, Berlin. Germany, 1984.Google Scholar
  18. [18]
    B. Commentz-Walter. A string matching algorithm fast on the average. In Proc. 6th International Colloquium on Automata, Languages, and Programming, Lecture Notes in Computer Science. pages 118–132. Springer-Verlag. Berlin, Germany, 1979.Google Scholar
  19. [19]
    B. Commentz-Walter. A string matching algorithm last on the average. Technical Report 79.09.007, IBM Wissenschaftliches Zentrum. Heidelberg. Germany, 1979.Google Scholar
  20. [20]
    M. Crochemore, A. Czumaj, L. Gasieniec, S. Jarominek, T. Lecroq, W. Plandowski, and W. Rytter. Fast Practical Multi-Pattern Matching. Technical Report. 93-3, Institut Gaspard Monge, Université de Marne la Vallée. Marne la Vallée, France, 1993.Google Scholar
  21. [21]
    M. Dietzfelbinger, J. Gil, Y. Matias, and N. Pippenger. Polynomial Hash Functions Are Reliable. In Proc. 19th International Colloquium on Automata, Languages, and Programming, number 623 in Lecture Notes in Computer Science. Springer-Verlag, Berlin, Germany, 1992.Google Scholar
  22. [22]
    M.L. Fredman, J. Komlos, and E. Szemeredi. Storing a sparse table with O(1) worst case access time. J. Assoc. Comput. Mach., 31(3):538–544, 1984.Google Scholar
  23. [23]
    Z. Galil and K. Park. Truly Alphabet-Independent Two-Dimensional Pattern Matching. In Proc. 33th IEEE Symp. on Foundations of Computer Science, pages 247–256, 1992.Google Scholar
  24. [24]
    R.M. Idury and A.A. Schäffer. Dynamic Dictionary-Matching with Failure Functions. In Proc. 3rd Symp. on Combinatorial Pattern Matching. number 644 in Lecture Notes in Computer Science, pages 276–287. Springer-Verlag, Berlin, Germany, 1992.Google Scholar
  25. [25]
    R.M. Karp and M.O. Rabin. Efficient randomized pattern matching algorithms. IBM J. Res. Develop., 31(2):249–260. 1987.Google Scholar
  26. [26]
    D.E. Knuth, J.H. Morris, and V.R. Pratt. Fast pattern matching in strings. SIAM J. Comput., 6:322–350, 1977.Google Scholar
  27. [27]
    E.M. McCreight. A space economical suffix tree construction algorithm. J. Assoc. Comput. Mach., 23:262–272, 1976.Google Scholar
  28. [28]
    M. Régnier and L. Rostami. A Unifying Look at d-dimensional Periodicities and Space Coverings. In Proc. 4rd Symp. on Combinatorial Pattern Matching, number 684 in Lecture Notes in Computer Science. pages 215–227. Berlin, Germany, 1993. Springer-Verlag.Google Scholar
  29. [29]
    R.E. Tarjan. Data Structures and Network Algorithms. SIAM, Philadelphia, PA., 1985.Google Scholar
  30. [30]
    P. Weiner. Linear pattern matching algorithms. In Proc. 14th Symposium on Switching and Automata Theory, pages 1–11, 1973.Google Scholar
  31. [31]
    R.F. Zhu and T. Takaoka. A Technique for Two-Dimensional Pattern Matching. Comm. of the ACM. 32(9):1110–1120, 1989.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1994

Authors and Affiliations

  • Dany Breslauer
    • 1
  1. 1.Istituto di Elaborazione della InformazioneConsiglio Nazionale delle RicerchePisaItaly

Personalised recommendations