解决字符串匹配问题的图论模型与模糊自动机研究
1. 固定长度移位的字符串匹配问题
在处理固定长度移位的字符串匹配问题时,我们引入了P图和T图的概念。给定一个P图PG和一个用于移位大小为k的T图TG,当且仅当在PG中存在一条路径Q = u1u2 … um,其中u1 ∈ {M[0, 1], M[+1, 1]}且um ∈ {M[−k, m], M[0, m]},并且对于j ∈ [1..m],有label(uj) = Ti−m+j时,我们称PG在位置i ∈ [1..n]与TG匹配。
下面的引理给出了解决该问题的思路:给定长度为m的模式P、长度为n的文本T以及作为移位大小的整数k,假设PG和TG分别是P和T的P图和T图,那么P在T的位置i ∈ [m, m + 1 … n]有k - md出现当且仅当PG在TG的位置i ∈ [m, m + 1 … n]与TG匹配。
由于PG中长度为m - 1的可能路径数量在m上是指数级的,拼写所有路径然后对T的索引进行模式匹配是非常耗时的,除非m是一个常数。因此,我们采用了经典移位与算法的修改版本来解决这个问题。
2. 算法设计
我们使用修改后的移位与算法来实现近似字符串匹配,允许固定长度的移位。在我们的模型中,模式P可以看作在每个位置i有一组字母:˜P = [M[−k, i], M[−k + 1, i], M[−k + 2, i] … , M[0, i], …, M[k - 2, i], M[k - 1, i], M[k, i]]。但与普通的退化模式不同,这里连续位置的字符集关系有所不同,例如在P的位置i + 1的匹配依赖于位置i的前一个匹配。
为了适应这种情况,我们使用P图来调整移位与算法。首
超级会员免费看
订阅专栏 解锁全文
3211

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



