Succinct 2D dictionary matching

10Citations
Citations of this article
6Readers
Mendeley users who have this article in their library.

This article is free to access.

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.

Cite

CITATION STYLE

APA

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.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free