Skip to main content

Efficient randomized dictionary matching algorithms

Extended abstract

  • Conference paper
  • First Online:
Book cover Combinatorial Pattern Matching (CPM 1992)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 644))

Included in the following conference series:

Abstract

The standard string matching problem involves finding all occurrences of a single pattern in a single text. While this approach works well in many application areas, there are some domains in which it is more appropriate to deal with dictionaries of patterns. A dictionary is a set of patterns; the goal of dictionary matching is to find all dictionary patterns in a given text, simultaneously.

In string matching, randomized algorithms have primarily made use of randomized hashing functions which convert strings into “signatures” or “finger prints”. We explore the use of finger prints in conjunction with other randomized and deterministic techniques and data structures. We present several new algorithms for dictionary matching, along with parallel algorithms which are simpler of more efficient than previously known algorithms.

Partially supported by NSF grant IRI-90-13055

Supported by DIMACS under NSF contract STC-88-09648

Partially supported by NSF grants CCR-9111348 and CCR-8906949

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. A. V. Aho and M. J. Corasick. Efficient string matching. Commun. ACM, 18(6):333–340, 1975.

    Google Scholar 

  2. A. V. Aho, J. E. Hopcroft, and J. D. Ullman. Data Structures and Algorithms. Addison-Wesley Publishing Company, 1983.

    Google Scholar 

  3. A. Amir and M. Farach. Adaptive dictionary matching. FOCS '91, 1991.

    Google Scholar 

  4. A. Amir, M. Farach, R. Giancarlo, Z. Galil, and K. Park. Dynamic dictionary matching. Manuscript, 1991.

    Google Scholar 

  5. A. Apostolico, C. Iliopoulos, G. M. Landau, B. Schieber, and U. Vishkin. Parallel construction of a suffix tree. Algorithmica, 3:347–365, 1988.

    Google Scholar 

  6. H. Bast and T. Hagerup. Fast and reliable parallel hashing. In SPAA '91, pages 50–61, July 1991.

    Google Scholar 

  7. R. Boyer and J. Moore. A fast string searching algorithm. Commun. ACM, 20:762–772, 1977.

    Google Scholar 

  8. M. Dietzfelbinger, J. Gil, Y. Matias, and N. Pippenger. Polynomial hash functions are reliable. In ICALP '92, July 1992.

    Google Scholar 

  9. M. Dietzfelbinger, A. Karlin, K. Mehlhorn, F. Meyer auf der Heide, H. Rohnert, and R. E. Tarjan. Dynamic perfect hashing: Upper and lower bounds. In FOCS '88, pages 524–531, Oct. 1988. Also, Revised Version: Tech. Report, University of Paderborn, FB 17 Mathematik/Informatik, 1991.

    Google Scholar 

  10. M. Dietzfelbinger and F. Meyer auf der Heide. An optimal parallel dictionary. In SPAA '89, pages 360–368, 1989.

    Google Scholar 

  11. M. Dietzfelbinger and F. Meyer auf der Heide. A new universal class of hash functions and dynamic hahshing in real time. In ICALP '90, pages 6–19, 1990.

    Google Scholar 

  12. M. L. Fredman, J. Komlós, and E. Szemerédi. Storing a sparse table with O(1) worst case access time. J. ACM, 31(3):538–544, July 1984.

    Google Scholar 

  13. Z. Galil and R. Giancarlo. Data structures and algorithms for approximate string matching. J. of Complexity, 4:33–72, 1988.

    Google Scholar 

  14. J. Gil and Y. Matias. Fast hashing on a PRAM—designing by expectation. In SODA '91, pages 271–280, Jan. 1991.

    Google Scholar 

  15. J. Gil, Y. Matias, and U. Vishkin. Towards a theory of nearly constant time parallel algorithms. In FOCS '91, pages 698–710, Oct. 1991.

    Google Scholar 

  16. R. Indury and A. Schaeffer. Dynamic dictionary matching with failure functions. In Combinatorial Pattern Matching, 1992.

    Google Scholar 

  17. C. Jordan. Sur le assemblages des lignes. J. Reine und Ang. Math., 70:185–190, 1869.

    Google Scholar 

  18. R. M. Karp and M. O. Rabin. Efficient randomized pattern-matching algorithms. IBM J. of Research and Development, 31:249–260, 1987.

    Google Scholar 

  19. D. Knuth, J. Morris, and V. Pratt. Fast pattern matching in strings. SIAM J. Comput., 6:323–350, 1977.

    Google Scholar 

  20. Y. Matias and U. Vishkin. Converting high probability into nearly-constant time— with applications to parallel hashing. In STOC '91, pages 307–316, 1991. Also in UMIACS-TR-91-65, Inst. for Advanced Computer Studies, Univ. of Maryland, April 1991.

    Google Scholar 

  21. Y. Matias and U. Vishkin. On parallel hashing and integer sorting. J. of Alg., 12(4):573–606, 1991.

    Google Scholar 

  22. N. Megiddo. Applying parallel computation algorithms in the design of serial algorithms. J. ACM, 28:852–865, 1983.

    Google Scholar 

  23. K. Mehlhorn. Multi-dimensional Searching and Computational Geometry. Springer-Verlag, Berlin Heidelberg, 1984.

    Google Scholar 

  24. M. Naor. String matching with preprocessing of text and pattern. In ICALP '91, pages 739–750, 1991.

    Google Scholar 

  25. R. E. Tarjan. Efficiency of a good but not linear set union algorithm. J. ACM, 22:215–225, 1975.

    Google Scholar 

  26. R. E. Tarjan and U. Vishkin. Finding biconnected components and computing tree functions in logarithmic parallel time. SIAM J. Comput., 14:862–874, 1985.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Alberto Apostolico Maxime Crochemore Zvi Galil Udi Manber

Rights and permissions

Reprints and permissions

Copyright information

© 1992 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Amir, A., Farach, M., Matias, Y. (1992). Efficient randomized dictionary matching algorithms. In: Apostolico, A., Crochemore, M., Galil, Z., Manber, U. (eds) Combinatorial Pattern Matching. CPM 1992. Lecture Notes in Computer Science, vol 644. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-56024-6_21

Download citation

  • DOI: https://doi.org/10.1007/3-540-56024-6_21

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-56024-1

  • Online ISBN: 978-3-540-47357-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics