论自动机在模式匹配中的实际效能
数据结构与算法
2022-07-19 v1
摘要
经典模式匹配范式是在另一字符串(文本)中寻找一字符串(模式)的出现,其中两字符串均取自字母表 。假设文本长度为 、模式长度为 ,该问题朴素求解时间为 。在 Knuth、Morris 与 Pratt 1977 年的开创性论文中,构造了一种自动机,可对任一字母表在 时间内解决该问题。我们将此自动机称为 {\em KMP-自动机},其在解决许多其他问题中被证明有用。一个显著例子是 {\em 参数化模式匹配}模型。该模型中,匹配时允许对 中符号进行一致重命名。参数化匹配范式在软件工程、计算机视觉及其他应用中被证实用。长期以来人们怀疑,对于符号均匀随机的文本,朴素算法将与 KMP 算法表现相当。本文中我们考察随机生成文本上 KMP 算法对比朴素算法的实际效率。我们分析不同参数下的时间,如字母表大小、模式长度以及模式在文本中的出现分布。我们对原始精确匹配问题与参数化匹配均做了此分析。虽然这些发现证实了精确匹配情形下的民间常识,但令人惊讶的是,在参数化匹配情形下 KMP 算法远快于朴素算法。我们在 DNA 文本上检验此假设,观察到与随机文本类似的行为。我们还展示了一个非常结构化的情形,其中自动机效率高得多。
引用
@article{arxiv.2207.08120,
title = {On the Practical Power of Automata in Pattern Matching},
author = {Ora Amir and Amihood Amir and Aviezri Fraenkel and David Sarne},
journal= {arXiv preprint arXiv:2207.08120},
year = {2022}
}