Abstract
The problem of exact pattern matching is an essential programming problem. Different algorithms that solve this problem are core elements of search engines, version control systems, text editors, DNA analyzers, and many others. For simplification reasons articles usually denote pattern as P or p and pattern length as M or m. Similarly, the text is usually denoted as T or t and its length - N or n. Alphabet is denoted Σ and its length - |Σ|. Based on these notations the problem of pattern matching can be written as follows: Find all positions/ amount of i, such that P[0...m] = T[i...i + m], or: Find all positions i in text for which substring starting at position i of the text of length m is equal to the pattern. The main parameters of this problem are pattern length and alphabet size. The length of the text usually doesn’t matter because, for any long enough text of a specific structure, the run time of the algorithm per character will be close to constant. Besides that, the specifics of the input data and text may also impact the performances of the algorithms. All of that makes the problem both very nuanced and interesting to investigate. This problem features a lot of different existing solutions developed over the course of the last 5 decades. The main part of the work provides short descriptions and analyses of a set of algorithms that are still relevant in the field. Besides that, some remarks are made on the topic of their theoretical regions of efficiency and how they depend on the specifics of the input. The results of the practical experimentation on the variety of randomly generated test data are provided. The conclusion provides some analysis of the received results and algorithms’ class efficiency based on the input as well as a visual representation of the received results in a form of a table representing the most efficient algorithm for each pair of pattern length and alphabet size.
Publisher
Taras Shevchenko National University of Kyiv
Subject
Medical Assisting and Transcription,Medical Terminology
Reference11 articles.
1. 1. ZAVADSKYI, I.O. A family of exact pattern matching algorithms with multiple adjacent search windows. Proceedings of the Prague Stringology Conference, p.152-166. J. Holub and J. Zdarek, Eds. Czech Technical University in Prague, Czech Republic (2017).
2. 2. ZAVADSKYI, I.O Fast exact pattern matching by the means of a character bit representation SN Computer Science. 3. Springer (2022).
3. 3. DURIAN, B., PELTOLA, H., SALMELA, L., TARHIO, J. Bit-parallel search algorithms for long patterns. 9th International Symposium on Experimental Algorithms. Ischia Island, Naples, Italy., pp. 129-140. Springer (2010).
4. 4. KULEKCI, M. Filter based fast matching of long patterns by using simd instructions. Proceedings of the Prague Stringology Conference, pp. 118-128. J. Holub and J. Zdarek, Eds. Czech Technical University in Prague, Czech Republic (2009).
5. 5. LECROQ, T. Fast exact string matching algorithms. Information Processing Letters 102(6), 229-235 (2007).