【问题标题】:Proving a decision prob is in NP证明决策概率在 NP 中
【发布时间】:2015-06-06 15:38:57
【问题描述】:

我正在阅读 CLRS,试图自学并发现这部分很难。

我正在尝试解决,但实际上没有可参考的解决方案。

假设你有输入:x1, x2, x3, ..., xn m1, m1, m3, ... mn M1 and M2

那你要输出:A partition into two disjoint subsets S, T (so the intersection is an empty set) so that the sum of each mk (1<=k<=n) of all elements in S is <= M1 and the sum of each mk (1<=k<=n) of all elements in T is <= M2, so that the total value sum of all (xk's in S) + (xk's in T) is maximized. where (1<=k<=n)

我试图证明它在 NP 中。 我在进行动态编程时遇到了类似的问题,相信这是针对背包的。但这似乎有点复杂。我一直在废纸上写,但似乎无处可寻。这是出于个人兴趣。

【问题讨论】:

  • 这不是一个决策问题,一个相关的决策问题可能是“是否存在一个分区,其总和大于 Y”。显然在 NP 中 - 给定两个集合,测试所有要求非常容易。
  • 嗯,我明白了,我想我必须先将这个“优化”问题转化为决定?
  • 是的。然后在这种情况下,甚至可以很容易地证明它是 NP 完全的,使用与背包的明显联系
  • 我有点迷路了。这东西对我来说真的不明显哈哈。我只是想在NP中证明它。小心阐述?非常感谢您的帮助。
  • xi<= M1<= M2 是否必须包含在 ST 中? mks 的意义和/或意义是什么? (据我所知,ms 和 xs 只能是一对一的。)如果它与 value 一致,xs 与 @ 987654333@s 小于较小的Mj 可能会转到一个子集,ms 在Ms 之间的那些会转到另一个子集-双枢轴分区/快速排序?似乎在P中,在NP中包含……

标签: algorithm complexity-theory theory


【解决方案1】:

让我们以此作为决策版本:

是否存在分区S,T使得S和T不相交,S的总权重= Y?

(我将其改写为“重量”和“价值”,以使与背包的联系更加明显)

现在,这是在 NP 中吗?

是的。有几种方法可以显示 NP 的成员资格,最简单的可能是这种方式:有一个见证人可以让我们(在多项式时间内)验证“是”的答案是否正确。见证人就是 S 和 T 对。这里的验证也不需要任何技巧,只需测试问题中提到的所有条件即可。

它也是 NP-Complete 因为它会解决一个背包实例。这个问题就像有两个背包一样,只需将其中一个的大小设为零,就可以恢复为普通背包了。

【讨论】:

  • 我明白了,很有趣。我有一个观察/问题。如果您想在输入位的数量中计算多时间的最大值怎么办?如果您在那里发布的决策问题可以在多时间内解决,那不应该吗?至少我是这么认为的。
  • @VratislavLudvik 如果您可以在多时间内解决决策问题,那么可以。但你不能。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-13
  • 2014-06-09
  • 1970-01-01
  • 2020-12-03
  • 2012-08-04
  • 1970-01-01
相关资源
最近更新 更多