我正在研究NP-Completeness,我对NP问题的定义有疑问。
材料说
nondeterministic指的是可以猜出解决方案的事实 O(1)时间中多项式的多项选择
这里,polynomially many options in O(1) time
是什么意思?
例如,在着名的3SAT
问题的情况下,是否存在指数级的选项?
(b.c.每个文字可以是true
或false
,如果有n个文字,则选项总数为2*2*2* ... * 2 = 2^n
)
然而,它说3SAT
问题是NP问题。即使有很多证书,它怎么会是NP问题?
由于
答案 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,我们可以随机选择每个文字的真或假,这导致我们得到一个多项式时间算法,如果我们所有的随机选择都是正确的,它将产生正确的结果。