【问题标题】:Effect of number base when proving NP completeness of numerical problems证明数值问题的 NP 完备性时数基的影响
【发布时间】:2011-12-11 08:47:59
【问题描述】:

我正在阅读tardos的算法设计书中关于NP完整性的内容,在证明子集和是NP完全的部分中,写到-
为子集和开发的算法的运行时间为 O(nW)。如果给定 100 个数字的实例,每个数字都是 100 位长,那么输入只有 100 * 100 = 10000 位,但 W 大约为 2^100。
我不明白这个说法,为什么是 W 2^100 ? base 对这个问题有什么影响,我的意思是,如果我们将其更改为其他 base x,W 会是 x^100 吗?如果我们把它改成一元基数呢?
谢谢。

【问题讨论】:

    标签: np-complete subset-sum


    【解决方案1】:

    要理解这一点,您需要考虑算法的运行时间如何随着问题集中数字大小的增长而变化。我假设您的教科书描述了对子集和的通常动态编程攻击。该算法的运行时间随着问题集的宽度线性增长。 (问题集的宽度是集合中正数的总和减去负数的总和。)随着集合中数字的大小的增加,该宽度呈指数增长。 例如,如果您使用 101 位数而不是 100 位数,则问题集的宽度加倍。移动到 102 位数字,问题集宽度再次加倍。而且由于算法的运行时间随着问题集的宽度线性增长,所以每次运行时间也会加倍。随着输入大小线性增长,这种加倍是运行时间的指数增长,因此这不是多项式时间算法。

    如果这些数字是以 > 1 的不同基数编写的,那么是的,您会看到该基数的问题宽度呈指数增长。例如,以 10 为底,添加另一个数字会使问题宽度扩大十倍。如果您切换到一元,您将失去问题集大小的指数增长,但任何给定问题的 输入大小 都比它在基数 > 1 时的指数大,因此您一无所获。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多