Abstract
Given a text of length n and a pattern, we present a parallel linear algorithm for finding all occurrences of the pattern in the text. The algorithm runs in O(n/p) time using any number of p ≤ n/log n processors on a concurrent-read concurrent-write parallel random-access-machine.
This research was supported by DOE grant DE-AC02-76ER03077, by NSF grants NSF-MCS79-21258 and NSF-DCR-8318874 and by ONR grant N0014-85-K0046.
Preview
Unable to display preview. Download preview PDF.
References
A.V. Aho, J.E. Hopcroft and J.D. Ullman, The Design and Analysis of Computer Algorithms, Addison-Wesley, Reading, MA, 1974.
B. Awerbuch, A. Israeli and Y. Shiloach, “Finding Euler circuits in logarithmic parallel time”, Proc. 16th Annual ACM Symp. on Theory of Computing (1984), 249–257.
M. Ajtai, J. Komlós, and E. Szemerédi, “An O(n log n) sorting network,” Combinatorica 3, 1 (1983), 1–19.
M.J. Atallah and U. Vishkin, “Finding Euler tours in parallel”, to appear in JCSS.
T.P. Baker, “A technique for extending rapid exact-match string matching to arrays of more than one dimention”, SIAM J. Comput. 7,4 (1978), 533–541.
R.S. Boyer and J.S. Moore, “A fast string searching algorithm”, Comm. ACM 20(1977), 762–772.
I. Bar-On and U. Vishkin, “Optimal parallel generation of a computation tree form”, Proc. 1984 International Conf. on Parallel Processing, 490–495. To appear in ACM Trans. on Programming languages and systems.
F.Y. Chin, J. Lam and I. Chen, “Optimal parallel algorithms for the connected component problems,“ Proc. 1981 International Conf. on Parallel Processing (1981), 170–175.
Z. Galil, “Optimal parallel algorithms for string matching”, Proc. 16th ACM Symp. on Theory of Computing, 1984, 240–248.
F.E. Fich, R.L. Radge and A. Wigderson, “Relation between concurrent-write models of parallel computation”, preprint, Div. of Computer Science, Univ. of Calif., Berkeley, 1983.
D.S. Hirschberg, A.K. Chandra and D.V. Scywate, “Computing connected components on parallel computers”, Comm. ACM 22 (1979), 461–464.
D.E. Knuth, J.H. Morris and V.R. Pratt, “Fast pattern matching in strings”, SIAM J. Comp. 6 (1977), 322–350.
R.C. Lyndon and M.P. Schutzenberger, “The equation aM=bNcP in a free group”, Michigan Math. J. 9 (1962), 289–298.
W. Paul, U. Vishkin and H. Wagener, “Parallel dictionaries on 2–3 trees”, Proc. 10th ICALP, Lecture Notes in Computer Science 154, Springer-Verlag, 1983, 597–609.
J.H. Reif, “Optimal parallel algorithm for graph connectivity”, TR-08-84, Aiken Computation Lab., Harvard Univ.
J.H. Reif and L.G. Valiant, “A logarithmic time sort for linear size networks”, Proc. 15th Annual ACM Symp. on Theory of Computing (1983), 10–16.
Y. Shiloach and U. Vishkin, “Finding the maximum merging, and sorting in a parallel computation model,“ J. Algorithms 2 (1981), 88–102.
Y. Shiloach and U. Vishkin, “An O(log n) parallel connectivity algorithm”, J. Algorithms 3 (1982), 57–67.
Y. Shiloach and U. Vishkin, “An O(n2log n) parallel max-flow algorithm”, J. Algorithms 3 (1982), 128–146.
Y.H. Tsin and F.Y. Chin, “Efficient parallel algorithms for a class of graph theoretic problems”, SIAM J. COMPUT. 13 (1984), 580–599.
R.E. Tarjan and U. Vishkin, “An efficient parallel biconnectivity algorithm”, TR 69, Dept. of Computer Science, Courant Institute, NYU, 1983. To appear in SIAM J. Comput..
U. Vishkin, “Synchronous parallel computation — a survey”, TR 71, Dept. of Computer Science, Courant Institute, NYU, 1983.
U. Vishkin, “An optimal parallel algorithm for selection”, preprint, 1983.
U. Vishkin, “An optimal parallel connectivity algorithm”, Discrete Applied Mathematics 9 (1984), 197–207.
U. Vishkin, “Randomized speed-ups in parallel computation”, Proc. 16th Annual ACM Symp. on Theory of Computing (1984), 230–239.
U. Vishkin, “On efficient parallel strong orientation”, to appear in Information Processing Letters.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1985 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Vishkin, U. (1985). Optimal parallel pattern matching in strings. In: Brauer, W. (eds) Automata, Languages and Programming. ICALP 1985. Lecture Notes in Computer Science, vol 194. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0015775
Download citation
DOI: https://doi.org/10.1007/BFb0015775
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-15650-5
Online ISBN: 978-3-540-39557-7
eBook Packages: Springer Book Archive