Lune

FOCS2024顶会

Lempel-Ziv (LZ77) Factorization in Sublinear Time

Dominik Kempa, Tomasz Kociumaka

2024年份
2被引次数
4顶会引用

摘要

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).

问问这篇 Paper

智能体会读完全文。

Lune 把这篇 Paper 索引到了每一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。

可以从这些问题问起

智能体调用

Luneget_paper_fulltext

在 Lune 里问

免费开始,无需绑卡

引用它的顶会 Paper4

问问它们各自怎么用它

它引用的顶会 Paper12

相关 Paper

黄昏的海面,两侧是细线勾勒的悬崖