为什么我们说NP完全问题是NP?

时间:2015-07-14 10:39:34

标签: algorithm complexity-theory np

我已经完成了关于这个主题的所有链接,但仍然混淆了为什么我们认为NP Complete是NP。只是我们可以在多项式时间验证它,我们说NP完全问题是NP,但我们有一些NP问题可以在多项式时间内解决,但NP完全问题不能在多项式时间内求解,所以那么这与NP完全问题的NP属性相矛盾吗?

1 个答案:

答案 0 :(得分:1)

在多项式时间内,确定性图灵机可以解决决策问题的集合P.

然后是在多项式时间内由非确定性图灵机解决的决策问题的集合NP,即那些解决方案可以在给定一些见证字符串的多项式时间内验证的那些。

确定性图灵机可以模拟非确定性图灵机,因此我们知道存在指数时间算法来解决NP问题。然而,我们知道我们是否实际上没有P = NP。

NP-complete问题是一个NP问题至少与其他NP问题一样难以。例如,SAT是NP完全的,因为它可以有效地编码非确定性图灵机并且解决SAT意味着模拟该机器。通过证明先前已知的NP完全问题B可以在多项式时间内减少到A,可以显示问题决策问题A的NP完全性。这意味着如果A可以在多项式时间内求解,B也可以在多项式时间内求解,因此在某种意义上A至少与B一样难。

  

但我们有一些NP问题,可以在多项式时间内解决

确切地说,因为P是NP的子集。

  

NP完全问题在多项式时间内无法解决

我们肯定不知道。

  

这与NP完全问题的NP属性相矛盾

完全没有。是的,NP中存在我们知道也存在于P中的问题。这并不意味着NP中没有P中没有问题。但是当然我们不知道后者。在P = NP的情况下,甚至可能出现每个NP完全问题都在P中的情况。