Advertisement

On the Parallel Dynamic Dictionary Matching problem: New results with applications

  • Paolo Ferragina
  • Fabrizio Luccio
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1136)

Abstract

In the Parallel Dynamic Dictionary Matching (DDM) problem, a dictionary \(\mathcal{D}\)contains a set of patterns that can change over time under insertion and deletion of individual patterns. \(\mathcal{D}\)has to be properly maintained such that, given an arbitrary text T, for each position in T we have to list in parallel the longest pattern of \(\mathcal{D}\)occurring there. In this paper, we follow a completely new approach thus providing the first parallel algorithm for the DDM problem which achieves optimal (amortized) work for the update operations in the case of both a constant sized and an unbounded alphabet. It requires small space and still preserves the same time and work of the best known CRCW-PRAM algorithm [27] for answering queries on an arbitrary text.

Furthermore, our parallel approach gives new useful insights for the sequential solution of the DDM problem both in main memory and in secondary storage, and either on strings or on parameterized strings [7].

Keywords

Parallel Algorithm Suffix Tree Disk Access Secondary Storage Disk Page 
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, and M. J. Corasick. Efficient string matching: an aid to bibliographic search. Communications of the ACM, 18:333–340, 1975.Google Scholar
  2. 2.
    A. Amir and M. Farach. Adaptive dictionary matching. In IEEE Symposium on Foundations of Computer Science, 760–766, 1991.Google Scholar
  3. 3.
    A. Amir, M. Farach, Z. Galil, R. Giancarlo, and K. Park. Dynamic dictionary matching. Journal of Computer and System Science, 49:208–222, 1994.Google Scholar
  4. 4.
    A. Amir, M. Farach, R. M. Idury, H. La Poutré, and A. A. Schäffer. Improved dictionary matching. Information and Computation, 119:258–282, 1995.Google Scholar
  5. 5.
    A. Amir, M. Farach, and Y. Matias. Efficient randomized dictionary matching algorithms. In Combinatorial Pattern Matching, 259–272, 1992.Google Scholar
  6. 6.
    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.CrossRefGoogle Scholar
  7. 7.
    B. S. Baker. A theory of parameterized-pattern matching: Algorithms and applications. In ACM Symposium on Theory of Computing, 71–80, 1993.Google Scholar
  8. 8.
    R. S. Boyer and J. S. Moore. A fast string searching algorithm. Communications of the ACM, 20:762–772, 1977.Google Scholar
  9. 9.
    W. L. Chang and E. L. Lawler. Approximate string matching in sublinear expected time. In IEEE Symposium on Foundations of Computer Science, 116–124, 1990.Google Scholar
  10. 10.
    Y. Chiang, M. T. Goodrich, E. F. Grove, R. Tamassia, D. E. Vengroff, and J. S. Vitter. External-memory graph algorithms. In ACM-SIAM Symposium on Discrete Algorithms, 139–149, 1995.Google Scholar
  11. 11.
    T. H. Cormen, C. E. Leiserson, and R. L. Rivest. Introduction to Algorithms. MIT Press, 1990.Google Scholar
  12. 12.
    P. F. Dietz and D. D. Sleator. Two algorithms for maintaining order in a list. In ACM Symposium on Theory of Computing, 365–372, 1987.Google Scholar
  13. 13.
    M. Farach and S. Muthukrishnan. Optimal parallel dictionary matching and compression. In ACM Symposium on Parallel Algorithms and Architectures, 244–253, 1995.Google Scholar
  14. 14.
    P. Ferragina. A simple parallel dictionary matching algorithm. In EURO-PAR 96 Parallel Processing, 1996 (to appear).Google Scholar
  15. 15.
    P. Ferragina. Incremental Text Editing: a new data structure. In European Symposium on Algorithms, Lecture Notes in Computer Science, 495–507, 1994. Also: Dynamic Text Indexing under string updates, Journal of Algorithms, 1996 (to appear).Google Scholar
  16. 16.
    P. Ferragina and R. Grossi. A fully-dynamic data structure for external substring search. In ACM Symposium on Theory of Computing, 693–702, 1995.Google Scholar
  17. 17.
    P. Ferragina and R. Grossi. Fast string searching in secondary storage: Theoretical developments and experimental results. In ACM-SIAM Symposium on Discrete Algorithms, 373–382, 1996.Google Scholar
  18. 18.
    J. Gil, Y. Matias, and U. Vishkin. Towards a theory of nearly constant time parallel algorithms. In IEEE Symposium on Foundations of Computer Science, 698–710, 1991.Google Scholar
  19. 19.
    M. T. Goodrich, J.-J. Tsay, D. E. Vengroff, and J. S. Vitter. External-memory computational geometry. In IEEE Symposium on Foundations of Computer Science, 714–723, 1993.Google Scholar
  20. 20.
    R. M. Idury and A. A. Schäffer. Dynamic dictionary matching with failure functions. Theoretical Computer Science, 131:295–310, 1994.CrossRefGoogle Scholar
  21. 21.
    R. M. Idury and A. A. Schäffer. Multiple matching of parameterized patterns. In Theoretical Computer Science, 154:203–224, 1996.Google Scholar
  22. 22.
    J. Já Já. An introduction to parallel algorithms. Addison-Wesley, 1992.Google Scholar
  23. 23.
    R. Karp, R. Miller, and A. Rosenberg. Rapid identification of repeated patterns in strings, arrays and trees. In ACM Symposium on Theory of Computing, 125–136, 1972.Google Scholar
  24. 24.
    D. E. Knuth, J. H. Morris, and V. R. Pratt. Fast pattern matching in strings. SIAM Journal on Computing, 6(2):63–78, 1977.Google Scholar
  25. 25.
    U. Manber and G. Myers. Suffix arrays: a new method for on-line string searches. SIAM Journal on Computing, 22: 935–948, 1993.Google Scholar
  26. 26.
    E. M. McCreight. A space-economical suffix tree construction algorithm. Journal of the ACM, 23(2):262–272, 1976.CrossRefGoogle Scholar
  27. 27.
    S. Muthukrishnan and K. Palem. Highly efficient dictionary matching in parallel. In ACM Symposium on Parallel Algorithms and Architectures, 69–78, 1993.Google Scholar
  28. 28.
    M. H. Overmars. The design of Dynamic Data Structures. Springer-Verlag Lecture Notes in Computer Science #156, 1983.Google Scholar
  29. 29.
    S. Subramanian and S. Ramaswamy. The P-range tree: A new data structure for range searching in secondary memory. In ACM-SIAM Symposium on Discrete Algorithms, 378–387, 1995.Google Scholar
  30. 30.
    P. Weiner. Linear pattern matching algorithm. In IEEE Symp. on Switch. Autom. Th., 1–11, 1973.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1996

Authors and Affiliations

  • Paolo Ferragina
    • 1
  • Fabrizio Luccio
    • 1
  1. 1.Dipartimento di InformaticaUniversità di PisaItaly

Personalised recommendations