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
Preview
Unable to display preview. Download preview PDF.
References
A. V. Aho and M. J. Corasick. Efficient string matching. Commun. ACM, 18(6):333–340, 1975.
A. V. Aho, J. E. Hopcroft, and J. D. Ullman. Data Structures and Algorithms. Addison-Wesley Publishing Company, 1983.
A. Amir and M. Farach. Adaptive dictionary matching. FOCS '91, 1991.
A. Amir, M. Farach, R. Giancarlo, Z. Galil, and K. Park. Dynamic dictionary matching. Manuscript, 1991.
A. Apostolico, C. Iliopoulos, G. M. Landau, B. Schieber, and U. Vishkin. Parallel construction of a suffix tree. Algorithmica, 3:347–365, 1988.
H. Bast and T. Hagerup. Fast and reliable parallel hashing. In SPAA '91, pages 50–61, July 1991.
R. Boyer and J. Moore. A fast string searching algorithm. Commun. ACM, 20:762–772, 1977.
M. Dietzfelbinger, J. Gil, Y. Matias, and N. Pippenger. Polynomial hash functions are reliable. In ICALP '92, July 1992.
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.
M. Dietzfelbinger and F. Meyer auf der Heide. An optimal parallel dictionary. In SPAA '89, pages 360–368, 1989.
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.
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.
Z. Galil and R. Giancarlo. Data structures and algorithms for approximate string matching. J. of Complexity, 4:33–72, 1988.
J. Gil and Y. Matias. Fast hashing on a PRAM—designing by expectation. In SODA '91, pages 271–280, Jan. 1991.
J. Gil, Y. Matias, and U. Vishkin. Towards a theory of nearly constant time parallel algorithms. In FOCS '91, pages 698–710, Oct. 1991.
R. Indury and A. Schaeffer. Dynamic dictionary matching with failure functions. In Combinatorial Pattern Matching, 1992.
C. Jordan. Sur le assemblages des lignes. J. Reine und Ang. Math., 70:185–190, 1869.
R. M. Karp and M. O. Rabin. Efficient randomized pattern-matching algorithms. IBM J. of Research and Development, 31:249–260, 1987.
D. Knuth, J. Morris, and V. Pratt. Fast pattern matching in strings. SIAM J. Comput., 6:323–350, 1977.
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.
Y. Matias and U. Vishkin. On parallel hashing and integer sorting. J. of Alg., 12(4):573–606, 1991.
N. Megiddo. Applying parallel computation algorithms in the design of serial algorithms. J. ACM, 28:852–865, 1983.
K. Mehlhorn. Multi-dimensional Searching and Computational Geometry. Springer-Verlag, Berlin Heidelberg, 1984.
M. Naor. String matching with preprocessing of text and pattern. In ICALP '91, pages 739–750, 1991.
R. E. Tarjan. Efficiency of a good but not linear set union algorithm. J. ACM, 22:215–225, 1975.
R. E. Tarjan and U. Vishkin. Finding biconnected components and computing tree functions in logarithmic parallel time. SIAM J. Comput., 14:862–874, 1985.
Author information
Authors and Affiliations
Editor information
Rights 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