Skip to main content
QUICK REVIEW

[论文解读] Linear-Space Substring Range Counting over Polylogarithmic Alphabets

Travis Gagie, Paweł Gawrychowski|arXiv (Cornell University)|Feb 15, 2012
Algorithms and Data Compression参考文献 16被引用 7
一句话总结

本文提出了一种针对多对数字母表的字符串的线性空间子串范围计数数据结构,在 u = n·polylog(n) 时实现最优的 O(m) 查询时间,优于先前的 O(n log n / log log n) 空间复杂度。该方法利用后缀树、前驱数据结构和部分和结构,高效计算标记位置区间内的模式出现次数,从而实现位置受限子串计数及相关问题的最优复杂度。

ABSTRACT

Bille and Gørtz (2011) recently introduced the problem of substring range counting, for which we are asked to store compactly a string $S$ of $n$ characters with integer labels in ([0, u]), such that later, given an interval ([a, b]) and a pattern $P$ of length $m$, we can quickly count the occurrences of $P$ whose first characters' labels are in ([a, b]). They showed how to store $S$ in $\Oh{n \log n / \log \log n}$ space and answer queries in $\Oh{m + \log \log u}$ time. We show that, if $S$ is over an alphabet of size (\polylog (n)), then we can achieve optimal linear space. Moreover, if (u = n \polylog (n)), then we can also reduce the time to $\Oh{m}$. Our results give linear space and time bounds for position-restricted substring counting and the counting versions of indexing substrings with intervals, indexing substrings with gaps and aligned pattern matching.

研究动机与目标

  • 解决先前子串范围计数方案在空间和时间上的低效问题,这些方案需要 O(n log n / log log n) 的空间。
  • 在多对数字母表上的字符串上实现线性空间(O(n)),在标准假设下这是最优的。
  • 当标签宇宙大小 u 为 n·polylog(n) 时,将查询时间减少至 O(m),与模式长度匹配。
  • 将解决方案扩展至支持带区间、间隙和对齐模式匹配的子串索引变体计数。
  • 为位置受限子串计数提供一个实用且高效的框架,实现最优的空间与时间复杂度。

提出的方法

  • 在字符串 S 上构建后缀树,其中字符为 [0, u] 范围内的整数标签。
  • 在每个内部节点上,存储紧随该节点所代表子串出现之后的字符标签序列。
  • 使用前驱数据结构(定理 3.2)在 O(1) 或 O(log log u) 时间内回答标签区间上的秩和选择查询。
  • 维护一个部分和数据结构,以计算每个节点标签序列中 [a,b] 范围内的标签范围。
  • 从根节点向下遍历后缀树至模式 P 的定位点,在每一层维护有效出现区间的范围。
  • 在每个节点上使用秩查询计算当前子串在 [a,b] 内的标签区间,并将区间大小传递至下一层。

实验结果

研究问题

  • RQ1当字母表大小为 n 的多对数时,子串范围计数能否在 O(n) 空间内解决?
  • RQ2当 u = n·polylog(n) 时,能否实现 O(m) 的查询时间?
  • RQ3该线性空间解法能否扩展至其他问题,如位置受限子串计数以及带区间或间隙的索引?
  • RQ4当 u 大于 n·polylog(n) 时,空间-时间权衡如何?我们是否仍能实现近似最优性能?
  • RQ5当 u 无限制时,能否同时实现线性空间和线性查询时间?这是否在根本上受到限制?

主要发现

  • 对于多对数字母表上的字符串,所提出的数据结构仅使用 O(n) 空间,实现了最优的线性空间复杂度。
  • 当 u = n·polylog(n) 时,查询时间减少至 O(m),这是与模式长度匹配的最优时间,并优于先前的 O(m + log log u) 上界。
  • 该解法支持任何首字符标签位于 [a,b] 区间内的模式 P 的出现次数计数,通过后缀树实现高效的区间传播。
  • 该方法实现了位置受限子串计数、带区间和间隙的子串索引变体计数以及对齐模式匹配的最优复杂度边界。
  • 该方法结合后缀树、前驱数据结构和部分和结构,实现每个秩查询 O(1) 或 O(log log u) 的时间复杂度。
  • 该框架还可通过向上遍历后缀树并使用选择查询,在 O(m) 时间内返回一个示例出现位置,额外需 O(n) 空间用于位置映射。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。