中文

Lempel-Ziv 压缩索引的时间 - 空间权衡

数据结构与算法 2018-01-10 v2

摘要

给定字符串 SS,\emph{压缩索引问题}是将 SS 预处理为压缩表示,以支持快速的\emph{子串查询}。目标是使用相对于 SS 压缩大小较少的空间,同时支持快速查询。我们提出了一种基于 Lempel--Ziv 1977 压缩方案的压缩索引。我们获得了以下时间 - 空间权衡:对于常数大小字母表;(i) 使用 O(zlg(n/z)lglgz)O(z\lg(n/z)\lg\lg z) 空间,时间为 O(m+occlglgn)O(m + occ \lg\lg n),或 (ii) 使用 O(zlg(n/z))O(z\lg(n/z)) 空间,时间为 O(m(1+lgϵzlg(n/z))+occ(lglgn+lgϵz))O(m(1 + \frac{\lg^\epsilon z}{\lg(n/z)}) + occ(\lg\lg n + \lg^\epsilon z))。对于多项式有界于 nn 的整数字母表;(iii) 使用 O(z(lg(n/z)+lglgz))O(z(\lg(n/z) + \lg\lg z)) 空间,时间为 O(m(1+lgϵzlg(n/z))+occ(lglgn+lgϵz))O(m(1 + \frac{\lg^\epsilon z}{\lg(n/z)}) + occ(\lg\lg n + \lg^\epsilon z)),或 (iv) 使用 O(z(lg(n/z)+lgϵz))O(z(\lg(n/z) + \lg^{\epsilon} z)) 空间,时间为 O(m+occ(lglgn+lgϵz))O(m + occ(\lg\lg n + \lg^{\epsilon} z)),其中 nnmm 分别是输入字符串和查询字符串的长度,zz 是输入字符串 LZ77 解析中的短语数量,occocc 是查询在输入中的出现次数,ϵ>0\epsilon > 0 是任意小的常数。特别是,(i) 将先前最佳解决方案的查询时间主导项从 O(mlgm)O(m\lg m) 改进为 O(m)O(m),代价是将空间增加了 lglgz\lg \lg z 倍。或者,(ii) 匹配了先前最佳的空间界限,但其查询时间的主导项为 O(m(1+lgϵzlg(n/z)))O(m(1+\frac{\lg^{\epsilon} z}{\lg (n/z)}))。然而,对于任何多项式压缩比,即 z=O(n1δ)z = O(n^{1-\delta})(常数 δ>0\delta > 0),这变为 O(m)O(m)。我们的索引还支持在 O(+lg(n/z))O(\ell + \lg(n/z)) 时间内提取任意长度为 \ell 的子串。从技术上讲,我们的结果是通过对现有具有独立兴趣的数据结构进行新颖的扩展和组合而获得的,包括一种新的批量弱前缀搜索变体。

关键词

引用

@article{arxiv.1706.10094,
  title  = {Time-Space Trade-Offs for Lempel-Ziv Compressed Indexing},
  author = {Philip Bille and Mikko Berggren Ettienne and Inge Li Gørtz and Hjalte Wedel Vildhøj},
  journal= {arXiv preprint arXiv:1706.10094},
  year   = {2018}
}