[论文解读] Longest Common Extensions with Recompression
本文提出了一种使用重压缩技术的新压缩最长公共扩展(LCE)数据结构,实现 O(lg N) 的查询时间与 O(z lg(N/z)) 的空间复杂度,其中 z 是不包含自引用的 Lempel-Ziv 77 分解的大小。该方法通过在相同子串间保持一致的压缩模式,实现了对语法压缩字符串的高效 LCE 查询,在时间和空间复杂度上均优于以往工作。
Given two positions $i$ and $j$ in a string $T$ of length $N$, a longest common extension (LCE) query asks for the length of the longest common prefix between suffixes beginning at $i$ and $j$. A compressed LCE data structure is a data structure that stores $T$ in a compressed form while supporting fast LCE queries. In this article we show that the recompression technique is a powerful tool for compressed LCE data structures. We present a new compressed LCE data structure of size $O(z \lg (N/z))$ that supports LCE queries in $O(\lg N)$ time, where $z$ is the size of Lempel-Ziv 77 factorization without self-reference of $T$. Given $T$ as an uncompressed form, we show how to build our data structure in $O(N)$ time and space. Given $T$ as a grammar compressed form, i.e., an straight-line program of size n generating $T$, we show how to build our data structure in $O(n \lg (N/n))$ time and $O(n + z \lg (N/z))$ space. Our algorithms are deterministic and always return correct answers.
研究动机与目标
- 设计一种压缩的 LCE 数据结构,以在高度可压缩字符串上实现快速查询并最小化空间使用。
- 利用重压缩技术确保相同子串的压缩模式一致,从而支持高效的 LCE 计算。
- 在时间与空间复杂度上优于现有随机化或高空间消耗的替代方案,实现确定性且正确的答案。
- 支持从原始字符串和语法压缩字符串(SLP)表示两种形式高效构建。
提出的方法
- 该方法使用重压缩技术将字符串中频繁出现的字符对替换为新变量,从而生成压缩的语法表示。
- 维护一个高度为 O(lg N) 的平衡推导树结构,支持 O(lg N) 时间内完成 LCE 查询的遍历。
- 该算法确保相同子串以几乎相同的方式被压缩,其上下文差异仅在 O(lg N) 范围内。
- 在重压缩过程中采用两种类型的划分:一种用于以恒定因子压缩字符串,另一种用于压缩语法大小,从而将中间上下文自由文法(CFG)的大小保持在 O(n) 范围内。
- 通过改进的 SimTtoG 算法按层构建,当字符串足够小时切换为直接的 TtoG 方法。
- 最终生成的语法称为 RLSLP,通过模拟推导树遍历并匹配公共变量序列,实现 O(lg N) 时间内的 LCE 查询。
实验结果
研究问题
- RQ1重压缩技术能否用于构建时间与空间复杂度优于现有方法的压缩 LCE 数据结构?
- RQ2如何利用相同子串的一致压缩模式,以支持语法压缩字符串中的快速 LCE 查询?
- RQ3在 SLP 压缩字符串上,LCE 查询的构建时间、空间使用与查询时间之间最优权衡为何?
- RQ4该数据结构能否从 SLP 输入在 O(n lg(N/n)) 时间与 O(n + z lg(N/z)) 空间内确定性地构建?
主要发现
- 所提出的数据结构实现 O(lg N) 的查询时间,优于以往工作的 O(lg N + lg ℓ lg* N) 时间复杂度。
- 空间复杂度为 O(z lg(N/z)),显著优于以往基于签名编码方法的 O(z lg N lg* N) 空间复杂度。
- 从原始字符串构建需 O(N) 时间与空间,从大小为 n 的 SLP 输入构建需 O(n lg(N/n)) 时间与 O(n + z lg(N/z)) 空间。
- 构建过程为确定性算法,始终返回正确结果,避免了随机化方法中所需的概率验证步骤。
- 该方法无需显式解压即可在语法压缩字符串上实现高效的 LCE 查询,从而在压缩字符串算法中实现更快速的处理。
- 通过使用双重划分策略,在构建过程中保持中间 CFG 大小为 O(n),确保语法大小线性增长。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。