中文

含单一间隔的字典匹配

数据结构与算法 2014-08-12 v1

摘要

带间隔的字典匹配问题旨在预处理由字母表 Σ\Sigma 上的 dd 个带间隔模式 P1,,PdP_1,\ldots,P_d 组成的字典 DD,其中每个带间隔模式 PiP_i 是由有界长度的通配符序列分隔的子模式序列。随后,给定字母表 Σ\Sigma 上长度为 nn 的查询文本 TT,目标是输出 TT 中所有模式 PiDP_i\in D (1id1\leq i\leq d) 结束的位置。源于网络安全领域的需求,带间隔匹配问题重新引起了关注。本文解决了字典中所有模式均包含一个间隔的问题,该间隔包含至少 α\alpha 个且至多 β\beta 个通配符,其中 α\alphaβ\beta 为给定参数。具体而言,我们证明了含单一间隔的字典匹配问题既可在 O(dlogd+D)O(d\log d + |D|) 时间和 O(dlogεd+D)O(d\log^{\varepsilon} d + |D|) 空间内解决,查询时间为 O(n(βα)loglogdlog2min{d,logD}+occ)O(n(\beta -\alpha )\log\log d \log ^2 \min \{ d, \log |D| \} + occ),其中 occocc 为找到的模式数量;也可在 O(d2+D)O(d^2 + |D|) 的预处理时间和空间内解决,查询时间为 O(n(βα)+occ)O(n(\beta -\alpha ) + occ),其中 occocc 为找到的模式数量。据我们所知,这是针对该问题设定(即字典中可能存在大量重叠)的最佳解决方案。

关键词

引用

@article{arxiv.1408.2350,
  title  = {Dictionary Matching with One Gap},
  author = {Amihood Amir and Avivit Levy and Ely Porat and B. Riva Shalom},
  journal= {arXiv preprint arXiv:1408.2350},
  year   = {2014}
}

备注

A preliminary version was published at CPM 2014