中文

带 d 个通配符的流式模式匹配

数据结构与算法 2020-01-01 v1

摘要

在带 dd 个通配符的模式匹配问题中,给定一个长度为 nn 的文本 TT 和一个长度为 mm 且包含 dd 个通配符的模式 PP,每个通配符由特殊符号 ?'?' 表示。通配符可匹配任意其他字符。目标是确定 TT 的每个长度为 mm 的子串是否与 PP 匹配。在带 dd 个通配符模式匹配问题的流式模型变体中,文本 TT 逐字符到达,目标是在下一个字符到达之前,仅使用 o(m)o(m) 字的空间报告最后 mm 个字符是否与 PP 匹配。本文介绍了两种用于流式模型中 dd 通配符模式匹配问题的新算法。第一种是随机蒙特卡洛算法,由常数 0δ10\leq \delta \leq 1 参数化。该算法对每个字符使用 O~(d1δ)\tilde{O}(d^{1-\delta}) 平摊时间以及 O~(d1+δ)\tilde{O}(d^{1+\delta}) 字空间。第二种算法作为第一种算法中的黑盒使用,是一种随机蒙特卡洛算法,对每个字符使用 O(d+logm)O(d+\log m) 最坏情况时间以及 O(dlogm)O(d\log m) 字空间。

关键词

引用

@article{arxiv.1704.01646,
  title  = {Streaming Pattern Matching with d Wildcards},
  author = {Shay Golan and Tsvi Kopelowitz and Ely Porat},
  journal= {arXiv preprint arXiv:1704.01646},
  year   = {2020}
}

备注

Extended abstract appeared in ESA 2016