中文

用于小空间文本索引的局部一致解析

数据结构与算法 2020-04-28 v2

摘要

我们考虑在亚线性工作空间中进行文本索引的两个密切相关的问题。第一个问题是仅使用 O(B)O(|B|) 个字的空间来构造后缀集合 BB 的稀疏后缀树(Sparse Suffix Tree, SST)。第二个问题是最长公共扩展(Longest Common Extension, LCE)问题,其中对于某个参数 1τn1\le\tau\le n,目标是构造一个使用 O(nτ)O(\frac {n}{\tau}) 个字空间且能计算任意一对后缀的最长公共前缀长度的数据结构。我们展示了如何以一些非平凡的方式使用由 Sahinalp 和 Vishkin [STOC '94] 引入的基于局部一致解析(Locally Consistent Parsing)技术的思想,以改进上述问题的已知结果。我们为这两个问题引入了新的拉斯维加斯(Las-Vegas)算法和确定性算法。我们引入了第一个耗时 O(n)O(n) 时间的拉斯维加斯 SST 构造算法。这改进了 Gawrychowski 和 Kociumaka [SODA '17] 的最后一个结果,他们获得了蒙特卡洛(Monte-Carlo)算法的 O(n)O(n) 时间和拉斯维加斯算法的 O(nlogB)O(n\sqrt{\log |B|}) 时间。此外,我们引入了一个随机的拉斯维加斯 LCE 数据结构构造方法,可在线性时间内构造并以 O(τ)O(\tau) 时间回答查询。对于确定性算法,我们引入了一个耗时 O(nlognB)O(n\log \frac{n}{|B|}) 时间的 SST 构造算法(对于 B=Ω(logn)|B|=\Omega(\log n))。这是第一个几乎线性时间、O(npolylogn)O(n\cdot poly\log{n}) 的确定性 SST 构造算法,而所有先前的算法至少需要 Ω(min{nB,n2B})\Omega\left(\min\{n|B|,\frac{n^2}{|B|}\}\right) 时间。对于 LCE 问题,我们引入了一个以 O(τlogn)O(\tau\sqrt{\log^*n}) 时间回答 LCE 查询、具有 O(nlogτ)O(n\log\tau) 构造时间(对于 τ=O(nlogn)\tau=O(\frac{n}{\log n}))的数据结构。该数据结构在查询时间和构造时间上都改进了 Tanimura 等人 [CPM '16] 的结果。

关键词

引用

@article{arxiv.1812.00359,
  title  = {Locally Consistent Parsing for Text Indexing in Small Space},
  author = {Or Birenzwige and Shay Golan and Ely Porat},
  journal= {arXiv preprint arXiv:1812.00359},
  year   = {2020}
}

备注

Extended abstract to appear is SODA 2020