【发布时间】:2016-12-05 00:57:47
【问题描述】:
我实际上是在寻找描述 NP 算法的实际含义以及什么样的算法/问题可以归类为 NP 问题
我在网上阅读了很多资源。我喜欢
- https://www.quora.com/What-are-P-NP-NP-complete-and-NP-hard
- What are the differences between NP, NP-Complete and NP-Hard?
- Non deterministic Turing machine
- What are NP problems?
- What are NP and NP-complete problems?
多项式问题:- 如果运行时间是输入**大小的某个多项式函数,例如,如果算法以线性时间或二次时间或三次时间运行,那么我们说该算法以多项式时间运行。例子可以是二分查找
现在我明白多项式问题了。但无法与 NP 对比。
NP(非确定性多项式问题):-
现在有很多程序(不一定)在普通计算机上以多项式时间运行,但在非确定性图灵机上却以多项式时间运行。这些程序解决了 NP 中的问题,NP 代表非确定性多项式时间。
我无法理解/想到不在常规计算机上以多项式时间运行的示例。根据我目前的理解,每个问题/算法都可以解决 在一些时间的多项式函数中,它可以或不能与时间成正比。我知道我在这里遗漏了一些东西,但真的无法理解这个概念。有人可以 举例说明在普通计算机上不能在多项式时间内解决但可以在多项式时间内验证的问题?
上面提到的第二个链接中给出的示例之一是Integer factorization is in NP. This is the problem that given integers n and m, is there an integer f with 1 < f < m, such that f divides n (f is a small factor of n)? 为什么这不能在普通计算机上的某个多项式时间内解决?我们可以检查从 1 到 n 的所有数字是否整除 n。正确的 ?
还有验证部分在哪里(我的意思是它是否可以在多项式时间内解决,但是如何在多项式时间内验证问题解决方案)?
【问题讨论】:
-
您的整数分解算法在伪多项式时间内运行。 en.wikipedia.org/wiki/Pseudo-polynomial_time