TY - GEN
T1 - Detecting false matches in string matching algorithms
AU - Muthukrishnan, S.
N1 - Publisher Copyright:
© Springer-Verlag Berlin Heidelberg 1993.
PY - 1993
Y1 - 1993
N2 - Consider a text string of length n, a pattern string of length m, and a match vector of length n which declares each location in the text to be either a mismatch (the pattern does not occur beginning at that location in the text) or a potential match (the pattern may occur beginning at that location in the text). Some of the potential matches could be false, i.e., the pattern may not occur beginning at some location in the text declared to be a potential match. We investigate the complexity of two problems in this context, namely, checking if there is any false match, and identifying all the false matches in the match vector. We present an algorithm on the CRCW PRAM that checks if there exists any false match in O(1) time using O(n) processors. Since string matching takes Ω(log log m) time on the CRCW PRAM, checking for false matches is provably simpler than string matching. As an important application, we use this simple algorithm to convert the Karp-Rabin Monte Carlo type string matching algorithm into a Las Vegas type algorithm without asymptotic loss in complexity. We also present an efficient algorithm for identifying all the false matches and as a consequence, show that string matching algorithms take Ω(log log m) time even given the flexibility to output a few false matches. In addition, we give a sequential algorithm for checking using three heads on a 2-way deterministic finite slate automaton (DFA) in linear time and another on a 1-way DFA with a fixed number of heads.
AB - Consider a text string of length n, a pattern string of length m, and a match vector of length n which declares each location in the text to be either a mismatch (the pattern does not occur beginning at that location in the text) or a potential match (the pattern may occur beginning at that location in the text). Some of the potential matches could be false, i.e., the pattern may not occur beginning at some location in the text declared to be a potential match. We investigate the complexity of two problems in this context, namely, checking if there is any false match, and identifying all the false matches in the match vector. We present an algorithm on the CRCW PRAM that checks if there exists any false match in O(1) time using O(n) processors. Since string matching takes Ω(log log m) time on the CRCW PRAM, checking for false matches is provably simpler than string matching. As an important application, we use this simple algorithm to convert the Karp-Rabin Monte Carlo type string matching algorithm into a Las Vegas type algorithm without asymptotic loss in complexity. We also present an efficient algorithm for identifying all the false matches and as a consequence, show that string matching algorithms take Ω(log log m) time even given the flexibility to output a few false matches. In addition, we give a sequential algorithm for checking using three heads on a 2-way deterministic finite slate automaton (DFA) in linear time and another on a 1-way DFA with a fixed number of heads.
UR - http://www.scopus.com/inward/record.url?scp=0005311094&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=0005311094&partnerID=8YFLogxK
U2 - 10.1007/bfb0029804
DO - 10.1007/bfb0029804
M3 - Conference contribution
AN - SCOPUS:0005311094
SN - 9783540567646
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 164
EP - 178
BT - Combinatorial Pattern Matching - 4th Annual Symposium, CPM 1993, Proceedings
A2 - Apostolico, Alberto
A2 - Apostolico, Alberto
A2 - Crochemore , Maxime
A2 - Galil, Zvi
A2 - Galil, Zvi
A2 - Manber, Udi
PB - Springer Verlag
T2 - Conference of the European Society for Fuzzy Logic and Technology, EUSFLAT 2017 and 16th International Workshop on Intuitionistic Fuzzy Sets and Generalized Nets, IWIFSGN 2017
Y2 - 11 September 2017 through 15 September 2017
ER -