中文

带k处不匹配与少量无关字符的模式匹配

数据结构与算法 2016-10-31 v2

摘要

我们考虑带kk处不匹配的模式匹配问题,其中模式中可包含无关(通配)字符。具体而言,给定长度为mm的模式PP和长度为nn的文本TT,我们希望找到PPTT中所有不匹配数不超过kk的出现位置。模式可包含无关字符,其能匹配任意字符。若无无关字符,解决带kk处不匹配模式匹配的最知名算法运行时间为O(nklogk)O(n\sqrt{k \log k})。若模式中含有无关字符,最佳的确定性算法运行时间为 O(nk polylog m)。因此,有无无关字符的版本之间存在重要差距。本文中,我们给出一种运行时间随无关字符数量增加而增长的算法。我们定义{\em 岛}(island)为PP中不含无关字符的最大长度子串。设PP中岛的数量为qq。我们提出一种运行时间为O(nklogm+nmin{qklog2m3,qlogm})O(n\sqrt{k\log m}+n\min\{\sqrt[3]{qk\log^2 m},\sqrt{q\log m}\})的算法。若岛的数量qqO(k)O(k),该运行时间变为O(nklogm)O(n\sqrt{k\log m}),这基本与无无关字符时带kk处不匹配模式匹配的最知名运行时间持平。若岛的数量qqO(k2)O(k^2),该算法在渐近意义上快于先前带无关字符的kk处不匹配模式匹配最佳算法。

关键词

引用

@article{arxiv.1602.00621,
  title  = {On pattern matching with k mismatches and few don't cares},
  author = {Marius Nicolae and Sanguthevar Rajasekaran},
  journal= {arXiv preprint arXiv:1602.00621},
  year   = {2016}
}

备注

Information Processing Letters, Available online 27 October 2016, ISSN 0020-0190