Loading…
Faster Fully Compressed Pattern Matching by Recompression
In this article, a fully compressed pattern matching problem is studied. The compression is represented by straight-line programs (SLPs)—that is, context-free grammars generating exactly one string; the term fully means that both the pattern and the text are given in the compressed form. The problem...
Saved in:
Published in: | ACM transactions on algorithms 2015-01, Vol.11 (3), p.1-43 |
---|---|
Main Author: | |
Format: | Article |
Language: | English |
Subjects: | |
Citations: | Items that this one cites Items that cite this one |
Online Access: | Get full text |
Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
Summary: | In this article, a fully compressed pattern matching problem is studied. The compression is represented by straight-line programs (SLPs)—that is, context-free grammars generating exactly one string; the term
fully
means that both the pattern
and
the text are given in the compressed form. The problem is approached using a recently developed technique of local recompression: the SLPs are refactored so that substrings of the pattern and text are encoded in both SLPs in the same way. To this end, the SLPs are locally decompressed and then recompressed in a uniform way.
This technique yields an
O
((
n
+
m
) log
M
) algorithm for compressed pattern matching, assuming that
M
fits in
O
(1) machine words, where
n
(
m
) is the size of the compressed representation of the text (pattern, respectively), and
M
is the size of the decompressed pattern. If only
m
+
n
fits in
O
(1) machine words, the running time increases to
O
((
n
+
m
) log
M
log (
n
+
m
)). The previous best algorithm due to Lifshits has
O
(
n
2
m
) running time. |
---|---|
ISSN: | 1549-6325 1549-6333 |
DOI: | 10.1145/2631920 |