什么是NP中的不确定性?

时间:2017-05-29 07:57:17

标签: algorithm np

我正在研究NP-Completeness,我对NP问题的定义有疑问。

材料说

  

nondeterministic指的是可以猜出解决方案的事实   O(1)时间中多项式的多项选择

这里,polynomially many options in O(1) time是什么意思?

例如,在着名的3SAT问题的情况下,是否存在指数级的选项?
(b.c.每个文字可以是truefalse,如果有n个文字,则选项总数为2*2*2* ... * 2 = 2^n

然而,它说3SAT问题是NP问题。即使有很多证书,它怎么会是NP问题?

由于

1 个答案:

答案 0 :(得分:4)

这句话似乎是一种奇怪的措辞,但它可能指的是能够在O(1)中选择1和n之间的随机数类似的东西 - 有n种可能性,但只能选择其中一种他们需要O(1)。

另请参阅:nondeterministic algorithms

"非确定多项式时间"是NP的完整定义 - "多项式时间"很重要 - 你做出的每一个决定都可能需要O(1),但是有多个这样的决定,导致理论上可以在多项式时间内解决的东西,如果你可以在每一步做出正确的选择或执行所有选项同一时间。

画出高度为p(n)的k-ary树。如果您(从一个方向)从根目录中选择正确的孩子,或者如果您可以以某种方式同时访问所有路径,则可以在O(p(n))中找到正确的叶子。

当然,在实践中,你不能依赖于做出正确的随机选择,也没有无限多的处理器 - 如果你要顺序访问所有节点,那将需要O(k p( n)的)。

对于3SAT,我们可以随机选择每个文字的真或假,这导致我们得到一个多项式时间算法,如果我们所有的随机选择都是正确的,它将产生正确的结果。