NP问题需要一些细节吗?

时间:2015-03-17 12:57:48

标签: algorithm sorting complexity-theory knapsack-problem computation-theory

我看到一个解决了算法的前任。 NP中有以下哪一项?

a) Decision Version of TSP 

b) Array is Sorted?

c) Finding the maximum flow network

d) Decision version of 0/1 knapsack?
  

我的注意事项,所有这些都在NP中,任何人都可以添加一些细节   每一个为什么?而且我对0/1背包感到困惑,是NP吗? NP-HARD?   还是NP-Complete?

感谢。

2 个答案:

答案 0 :(得分:4)

他们都在NP,因为:

  1. 在多项式时间内可验证。给定一些路线,我们可以轻松检查其长度是否超过给定值。

  2. 它在P级(我认为多项式时间解决方案很明显),这自动意味着在NP中。

  3. 同样,有多项式时间解,这意味着它在P中。因此,它在NP中。

  4. 在给定适当的子集的情况下,我们可以在多项式时间内验证它。因此,根据定义,它在NP中。

  5. 关于0/1背包问题的决定版本:它在NP中。它也被称为NP完全(证明这里写的太长了,这里是链接:proof)。它也意味着它是NP难的(根据定义,任何NP完全问题都是NP难的)。

    P.S。我认为"找到最大流量"在这里意味着决定版本。

答案 1 :(得分:2)

NP表示存在确定性算法,该算法在多项式时间中运行,其大小为问题,可以验证证书。在这种情况下,证书可以被视为问题的可能解决方案。证书可以在非确定多项式时间中生成。例如,对于TSP,证书可以是任何路径。在这种情况下,验证者需要验证路径是哈密顿量并且小于或等于给定的界限。

如果 X- ,那么它至少和 X 一样难。对于 NP-hard ,这可以通过以下事实来形式化:NP中的每个问题可以在多项式时间内减少到该问题。

问题是 x- 完成 如果它既是 x 的元素又是 x- Hard 强> 的。因此,对于 NP-complete ,这意味着问题是 NP-hard 以及 NP 的一部分。

现在第一个问题显然是NP。可以非确定地生成长度 n-1 或更小的所有可能循环,并让验证者检查所有城市是否只被访问一次并且总重量小于或等于给定长度。

第二个甚至可以在不使用非确定性的情况下完成,只需遍历已存在的数组并检查每个元素是否大于或等于前一个元素。

第三个也可以确定性地完成:有一个Max-Flow算法在 O(V ^ 2 E)中运行。

最后一个问题也出现在NP中:证书在这里是每个项目的一个位串,1表示该项目属于背包,0如果不是。Problem | P | NP | NP-hard | NP-complete ------------------------------------+---+----+---------+------------ a) Decision Version of TSP | * | Y | Y | Y b) Array is Sorted? | Y | Y | ? | ? c) Finding the maximum flow network | Y | Y | ? | ? d) Decision version of 0/1 knapsack | * | Y | Y | Y ------------------------------------+---+----+---------+------------- 。验证者必须检查总重量是否不超过背包容量以及总效用值是否大于或等于给定值。

因此所有问题都在 NP 中,但并非所有问题(必然) NP-hard (因此范围不是 NP-complete )。为了证明某些东西是 NP-hard ,足以表明从SAT到该问题的减少。因为已经证明所有 NP 问题都可以减少到SAT,如果你可以在多项式时间内减少SAT到你的问题,你可以通过SAT转换所有问题。可以查找详细信息,但是对于以下问题,可以从SAT构建减少:

  1. 旅行商问题的决策问题;和
  2. 背包问题的决策问题
  3. 从学术上讲, P NP 只包含问题的决策变体。为了解决这个问题,他们引入了FPFNP。在这里,我们假设 FP 是"有点等于" P (从上下文中可以清楚地看出它是否为决策变体)而 FNP 或多或少相当,但显然还不够以致人们阅读之前的评论我们可以平等地理解"等价" NP 。大多数算法设计师(甚至是学术设计师)都没有做出改变,并说他们的算法在 P " (而实际上他们的算法是在 FP )。你可以说这是经济观点" (与#34;学术观点相反;#34;)。


    总而言之,该表格如下:

    ?

    如果 P!= NP (某些尚未证实,并且可能在不久的将来未被证实),存在确定性多项式算法求解<的算法/ strong>问题(没有验证解决方案),然后确定数组是排序还是生成最大流量不是NP难的。

    因此,如果 P = NP ,问号(Y)应为N,否则它们应为*Y是相反的:如果 P = NP ,则答案为*,以防 P!= NP (非常可能), N为{{1}}。