高效带交换模式匹配的新算法
1. 引言
模式匹配带交换问题(简称交换匹配问题)是经典模式匹配问题的一个研究较多的变体。该问题旨在找出长度为 $m$ 的模式 $P$ 在长度为 $n$ 的文本 $T$ 中,允许模式内进行不相交局部字符交换的所有出现位置。这里的 $P$ 和 $T$ 是从大小为 $\sigma$ 的同一有限字符集 $\Sigma$ 中抽取的字符序列。
1.1 问题定义
具体来说,如果通过必要时交换相邻的模式字符,能使模式与文本在位置 $j$ 处的子串相同,则称模式在位置 $j$ 处与文本交换匹配。所有交换必须是不相交的,即每个字符最多参与一次交换,且不允许交换相同的相邻字符。
1.2 应用场景
这个问题在实际应用中具有重要意义,如文本和音乐检索、数据挖掘、网络安全等领域。在生物计算中,特别是在分子生物学的翻译过程中,该问题也有重要应用,例如检测生物序列中 mRNA 的起始和终止密码子的可能位置,并找出与翻译的 mRNA 区域相关的侧翼区域的提示。
1.3 研究现状
交换匹配问题于 1995 年被提出。早期,Amir 等人针对字母集大小为 2 的情况,给出了时间复杂度为 $O(nm^{\frac{1}{3}}\log m)$ 的算法,并表明字母集大小大于 2 的情况可通过一定的开销(最初为 $O(\log^2\sigma)$,后在期刊版本中降至 $O(\log\sigma)$)转化为大小为 2 的情况。此外,他们还研究了一些特殊情况,可得到时间复杂度为 $O(m\log^2 m)$ 的算法。后来,他们又以 $O(n\log m\log\sigma)$ 的时间复杂度解决了该问题,这些
超级会员免费看
订阅专栏 解锁全文
1326

被折叠的 条评论
为什么被折叠?



