字符串到字符串校正问题np-完整性证明

时间:2011-05-17 21:39:26

标签: algorithm theory complexity-theory np-complete proof

我有这个任务来证明这个问题:

  

有限字母表£,两个字符串x,y€   £*,和正整数K.是   有一种方法来派生字符串y   从字符串x乘K序列   或更少的单个符号操作   删除或相邻的符号   交换?

是np-complete。我已经发现我必须从设置覆盖问题的决策版本进行转换,但我不知道如何做到这一点。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

看起来像修改过的Levenshtein distance。 DP可以在二次时间内解决问题。

从最小集合覆盖(MSC)到此字符串纠正问题的转换描述如下:

Robert A. Wagner
On the complexity of the Extended String-to-String Correction Problem
1975, Proceedings of seventh annual ACM symposium on Theory of computing 

简而言之,MSC问题:

给定有限集x_1,...,x_n和整数L,是否存在{1,...,n}的子集J,使得| J | < = L,和

union_ {j in J} x_j = union all x_i?

让w =联合所有x_i,让t = | w |并且r = t ^ 2,并选择符号Q,R,S不在w。

拿弦:

A = Q^r R x_1 Q^r S^(r+1) ... Q^r R x_n Q^r S^(r+1)
B = R Q^r ... R Q^r w S^(r+1) ... S^(r+1)   <- each ... is n times
and
k = (l+1)r - 1 + 2t(r+1)(n-1) + n(n-1)(r+1)^2/2 + (r*n + |x_1 ... x_n| - t)*W_d
[W_d is delete operation weight, can be 1.]

如果源MSC问题是,则表明字符串校正问题(A,B,k)是可以满足的。

从字符串构造中可以清楚地看出证明不是微不足道的:-)但是管理它并不是太复杂。

答案 1 :(得分:0)

提到的NP硬度证明仅适用于任意大的字母。 对于有限字母,问题是多项式时间,请参见 https://dblp.org/rec/bibtex/journals/tcs/Meister15