[论文解读] Space-Efficient String Indexing for Wildcard Pattern Matching
本文提出了首个用于通配符模式匹配的压缩数据结构,其空间复杂度为 $o(n\log n)$ 位,实现了次线性空间使用的同时支持高效的查询。该工作提出了一种 $O(n\log^\varepsilon n)$-位索引,查询时间为 $O(m + \sigma^g \sqrt{\log^{(3)}n} + \mathrm{occ})$,相较于以往针对常数字母表的线性空间解决方案有显著改进。
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 生成,并经人工编辑审核。