Skip to main content
QUICK REVIEW

[论文解读] Space-Efficient String Indexing for Wildcard Pattern Matching

Moshe Lewenstein, Yakov Nekrich|arXiv (Cornell University)|Jan 3, 2014
Algorithms and Data Compression参考文献 8被引用 8
一句话总结

本文提出了首个用于通配符模式匹配的压缩数据结构,其空间复杂度为 $o(n\log n)$ 位,实现了次线性空间使用的同时支持高效的查询。该工作提出了一种 $O(n\log^\varepsilon n)$-位索引,查询时间为 $O(m + \sigma^g \sqrt{\log^{(3)}n} + \mathrm{occ})$,相较于以往针对常数字母表的线性空间解决方案有显著改进。

ABSTRACT

In this paper we describe compressed indexes that support pattern matching queries for strings with wildcards. For a constant size alphabet our data structure uses $O(n\log^{\varepsilon}n)$ bits for any $\varepsilon>0$ and reports all $\mathrm{occ}$ occurrences of a wildcard string in $O(m+σ^g \cdotμ(n) + \mathrm{occ})$ time, where $μ(n)=o(\log\log\log n)$, $σ$ is the alphabet size, $m$ is the number of alphabet symbols and $g$ is the number of wildcard symbols in the query string. We also present an $O(n)$-bit index with $O((m+σ^g+\mathrm{occ})\log^{\varepsilon}n)$ query time and an $O(n(\log\log n)^2)$-bit index with $O((m+σ^g+\mathrm{occ})\log\log n)$ query time. These are the first non-trivial data structures for this problem that need $o(n\log n)$ bits of space.

研究动机与目标

  • 设计支持通配符模式匹配的压缩字符串索引,实现次线性空间使用,特别是 $o(n\log n)$ 位。
  • 解决现有数据结构需要 $\Theta(n\log n)$ 位或更多空间的低效问题,尤其在大规模文本索引中表现不佳。
  • 在保持空间开销最小化的同时,实现对任意数量通配符的模式进行高效查询处理。
  • 在空间与查询时间之间实现优于以往线性空间解决方案的权衡,同时在两项指标上均表现更优。

提出的方法

  • 构建一种具有分层采样机制的压缩后缀树:通过主标记节点与次级标记节点减少空间占用,同时保持查询效率。
  • 使用通配符树处理通配符符号,通过并行分支与路径遍历实现,且活动位置数量有限。
  • 为短模式(长度 $\leq \ell$)使用查找表,以实现通配符块的快速匹配与位置查找。
  • 将采样后缀树上的标准LCP查询与通配符感知的遍历机制结合,实现 $O(\sigma^g \sqrt{\log^{(3)}n})$ 时间内的查询响应。
  • 引入分层数据结构,每一层处理模式中最多 $t_1$ 个通配符的片段,从而减少递归查询次数。
  • 对小的子树使用压缩后缀数组,支持 $O(1)$ 的LCP查询时间;对较大的采样子树使用压缩LCP结构,其查询时间为 $\mu(n) = O(\sqrt{\log^{(3)}n})$。

实验结果

研究问题

  • RQ1我们能否设计一种用于通配符模式匹配的压缩字符串索引,其空间使用为 $o(n\log n)$ 位?
  • RQ2对于具有任意数量通配符的通配符模式匹配,空间使用与查询时间之间能达到的最佳权衡是什么?
  • RQ3我们能否在保持次线性空间的前提下,实现对含有 $g$ 个通配符的模式的次线性查询时间?
  • RQ4如何高效处理包含多个通配符段的模式,而无需显式枚举所有 $\sigma^g$ 种可能的模式?
  • RQ5是否可能在将空间减少至 $O(n)$ 或 $O(n(\log\log n)^2)$ 位的同时,仍保持 $O(\mathrm{occ})$ 的报告时间?

主要发现

  • 本文提出了一种 $O(n\log^\varepsilon n)$-位的数据结构,可在 $O(m + \sigma^g \sqrt{\log^{(3)}n} + \mathrm{occ})$ 时间内支持通配符模式匹配,实现了次线性空间与优于以往工作的查询性能提升。
  • 一种 $O(n)$-位索引可在 $O((m + \sigma^g + \mathrm{occ})\log^\varepsilon n)$ 时间内支持查询,实现了显著的空间压缩,仅带来适度的查询时间增加。
  • 一种 $O(n(\log\log n)^2)$-位索引可在 $O((m + \sigma^g + \mathrm{occ})\log\log n)$ 时间内支持查询,实现了空间与性能之间的良好平衡。
  • 对于常数字母表大小 $\sigma$,查询时间为 $O(m + \sigma^g \sqrt{\log^{(3)}n} + \mathrm{occ})$,优于以往线性空间结构的 $O(m + \sigma^g \log\log n)$ 时间。
  • 该数据结构支持任意数量的通配符,并通过分层采样与短通配符段的查找表机制,避免了对所有 $\sigma^g$ 种可能模式的显式枚举。
  • 该方法可推广至更大字母表:当 $\sigma \geq \log\log n$ 时,$O(n\log n)$-位结构支持 $O(m + \sigma^g + \mathrm{occ})$ 的查询时间;对于一般 $\sigma$,$O(n\log\sigma)$-位结构支持 $O((m + \sigma^g + \mathrm{occ})\log_\sigma^\varepsilon n)$ 的查询时间。

更好的研究,从现在开始

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

无需绑定信用卡

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