【问题标题】:String to string correction problem np-completeness proof字符串到字符串更正问题 np 完整性证明
【发布时间】:2011-05-17 21:39:25
【问题描述】:

我有这个作业来证明这个问题:

有限字母 £,两个字符串 x,y € £*,和一个正整数 K。是 有一种方法可以导出字符串 y 从字符串 x 到 K 的序列 或更少的单个符号操作 删除或相邻符号 交换?

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

【问题讨论】:

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


    【解决方案1】:

    好像修改了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|

    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.]
    

    证明串串校正问题(A,B,k)是可满足的,只要源MSC问题是。

    从字符串构造来看,证明并非微不足道 :-) 但管理起来并不太复杂。

    【讨论】:

    • 我知道某些版本的字符串到字符串校正问题有二次时间解决方案,但是通过这些修改,我 100% 确定它在 NPC 中。它甚至在 Michael R. Garey 的“计算机与难处理性 NP 完备性理论指南”中被列为 NPC。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-10
      • 2011-05-20
      • 1970-01-01
      • 2022-12-09
      • 1970-01-01
      • 2014-11-01
      • 1970-01-01
      相关资源
      最近更新 更多