Algorithm NP问题,需要一些细节吗?
我看到一个关于算法的问题。下列哪项是NPAlgorithm NP问题,需要一些细节吗?,algorithm,sorting,complexity-theory,knapsack-problem,computation-theory,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-难? 还是NP完全 谢谢。它们都是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-难?
还是NP完全
谢谢。它们都是NP,因为:
另外,我假设“寻找最大流量”在这里意味着一个决策版本。它们都在NP中,因为:
另外,我假设“寻找最大流量”在这里意味着一个决策版本。NP意味着有一个确定性算法,该算法在多项式时间内运行,问题的大小可以验证证书。在这种情况下,证书可以被视为问题的可能解决方案。证书可以在非确定多项式时间内生成。例如,对于TSP,证书可以是任何路径。在这种情况下,验证器需要验证路径是否为哈密顿量且小于或等于给定的界 如果某个问题至少和X一样难,那么它就是X-难的。对于NP难,这是通过以下事实形式化的:NP中的每个问题都可以在多项式时间内简化为该问题 如果同时是x元素和x-硬元素,则问题是x-完全。因此,对于NP-complete而言,这意味着问题是NP-hard的,也是NP的一部分 第一个问题显然是NP。可以不确定地生成长度为n-1或更小的所有可能循环,并让验证器检查是否所有城市都访问了一次,并且总重量小于或等于给定长度 第二种方法甚至可以在不使用非确定性的情况下完成,只需在已经存在的数组上迭代,并检查每个元素是否大于或等于前一个元素 第三个也可以确定地完成:有一个运行在O(V^2e)中的Max-Flow算法 最后一个问题也是在NP中:这里的证书是每个项目的一个位字符串,其
1
表示该项目属于背包,如果不属于背包,则为0
。验证器必须检查总重量是否不超过背包容量,以及总效用值是否大于或等于给定值
所以所有的问题都是NP,但并非所有的问题都是NP难的(因此在一定程度上不是NP完全的)。为了证明某个问题是NP难的,只要证明从SAT到该问题有一个简化就足够了。因为已经证明所有NP问题都可以简化为SAT,如果您可以在多项式时间内将SAT简化为您的问题,则可以通过SAT转换所有问题。可以查找详细信息,但对于以下问题,可以从SAT构造简化:
总而言之,下表内容如下:
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
------------------------------------+---+----+---------+-------------
如果p!=NP(一些尚未被证明,并且在不久的将来可能不会被证明的东西),存在确定性多项式算法来解决问题(不验证解决方案),然后确定数组是否被排序或生成最大流的算法不是NP难的
因此,如果p=NP,问号(?
)应该是Y
,否则应该是N
。*
正好相反:如果P=NP<