Abstract
The dictionary matching problem seeks all locations in a given text that match any of the patterns in a given dictionary. Efficient algorithms for dictionary matching scan the text once, searching for all patterns simultaneously. Existing algorithms that solve the 2-dimensional dictionary matching problem all require working space proportional to the size of the dictionary. This paper presents the first efficient 2-dimensional dictionary matching algorithm that operates in small space. Given d patterns, D = {P1, Pd }, each of size m×m, and a text T of size n × n, our algorithm finds all occurrences of Pi, 1 ≤ i ≤ d, in T . The preprocessing of the dictionary forms a compressed self-index of the patterns, after which the original dictionary may be discarded. Our algorithm uses O(dmlogdm) extra bits of space. The time complexity of our algorithm is close to linear, O(dm2 + n2 τ logσ), where τ is the time it takes to access a character in the compressed self-index and σ is the size of the alphabet. Using recent results τ is at most sub-logarithmic. © The Author(s) 2012.
Author supplied keywords
Cite
CITATION STYLE
Neuburger, S., & Sokol, D. (2013). Succinct 2D dictionary matching. Algorithmica, 65(3), 662–684. https://doi.org/10.1007/s00453-012-9615-9
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.