Lune

FOCS2024Top-tier venue

Lempel-Ziv (LZ77) Factorization in Sublinear Time

Dominik Kempa, Tomasz Kociumaka

2024Year
2Citations
4Top-tier citations

Abstract

Lempel-Ziv (LZ77) factorization is a fundamental problem in string processing: Greedily partition a given stringTTfrom left to right into blocks (called phrases) so that each phrase is either the leftmost occurrence of a single letter or the longest prefix of the unprocessed suffix that has another occurrence earlier in the text. This simple routine has numerous applications. Most importantly, the LZ77 factorization is the central component and the computational bottleneck of most existing compression algorithms (utilized in formats like zip, pdf, and png). LZ77 is also a widely used algorithmic tool for the detection of repetitions and periodicities in strings, and the centerpiece of many powerful compressed indexes that enable computation directly over compressed data. LZ77 factorization is one of the most studied problems in string processing. In the 47 years since its inception, numerous efficient algorithms were developed for different models of computation, including parallel, GPU, external-memory, and quantum. Remarkably, however, the complexity of the most basic problem is still not settled: All existing algorithms in the RAM model run inΩ(n)\Omega(n)time, which is aΘ(log⁡n)\Theta(\log n)factor away from the lower bound ofΩ(n/log⁡n)\Omega(n/\log n)(following simply from the necessity to read the entire input, which takesΘ(n/log⁡n)\Theta(n/\log n)space for anyT∈{0,1}n)T\in\{0,1\}^{n}). Sublinear-time algorithms are known for nearly all other fundamental problems on strings, but LZ77 seems resistant to all currently known techniques. We present the firsto(n)o(n)-time algorithm for constructing the LZ77 factorization, breaking the linear-time barrier present for nearly 50 years. More precisely, we show that, in the standard RAM model, it is possible to compute the LZ77 factorization of a given length-nnstringT∈{0,1}nT\in \{0,1\}^{n}inO(n/log⁡n)=o(n)\mathcal{O}(n/\sqrt{\log n})=o(n)time and using the optimalO(n/log⁡n)O(n/\log n)working space. Our algorithm generalizes to larger alphabetsΣ=[0..σ), where σ=nO2(1)\Sigma=[0.. \sigma),\text{ where }\sigma=n^{\mathcal{O}2(1)}. The runtime and working space then becomeO((nlog⁡σ)/log⁡n)\mathcal{O}((n\log\sigma)/\sqrt{\log n})andO(n/log⁡σn)\mathcal{O}(n/\log_{\sigma}n), respectively. To achieve this sublinear-time LZ77 algorithm, we prove a more general result: We show that, for any constantϵ∈(0,1)\epsilon\in(0,1)and stringT∈[0..σ)nT\in[0..\sigma)^{n}, inO((nlog⁡σ)/log⁡n)\mathcal{O}((n\log\sigma)/\sqrt{\log n})time and usingO(n/log⁡σn)\mathcal{O}(n/\log_{\sigma}n)working space, we can construct an index of optimal sizeO(n/log⁡σn)\mathcal{O}(n/\log_{\sigma}n)that, given any substringP=T[j..j+ℓ)P=T[j.. j+\ell)specified with a pair(j,ℓ)(j,\ell), computes the leftmost occurrence ofPPinTTinO(log⁡ϵn)O(\log^{\epsilon}n)time. In other words, we solve the indexing/online variant of the LZ77 problem, where we can efficiently query the phrase length starting at any position. Our solution is based on a new type of queries that we call prefix range minimum queries or prefix RMQ. After developing an efficient solution for these queries, we provide a general reduction showing that any new tradeoff for the prefix RMQ implies a new tradeoff for an index finding leftmost occurrences (and hence a new LZ77 factorization algorithm).

Ask about this paper

Your agent reads all of it.

Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.

Questions to start from

Your agent calls

Luneget_paper_fulltext

Ask in Lune

Free to start. No credit card required.

Cited by top-tier papers4

Ask how each one uses it

Builds on12

Related papers

Dusk over the sea between two cliffs drawn in fine vertical lines