i read 在wikipedia上读取:

由于NP完整问题在NP中,它们的运行时间是最令人指向的。

是正确的吗?如果:

,我认为问题是np-templess

  • 问题也在NP中(即,在多项式时间接受验证)
  • 在多项式时间中可以减少NP中的每个问题。

这两个条件不一定限制(对我们的知识)如何 hard np完成的问题可以是,对吧?(除界限之外 验证的复杂性到多项式时间)。

我错过了什么?

有帮助吗?

解决方案

直观地,所有 $ \ mathsf {np} $ -complete问题相关:解决任何 $ \ mathsf {np} $ - 符合时间 $ o(t(n))$ 立即产生任何其他 $ \ mathsf {np} $ - 使用 $ o(t(\ mbox {poly}(n)))$ 。例如,如图所示,所有 $ \ mathsf {np} $ -complete问题承认多项式时间算法或它们中没有。

您的第一个语句“由于NP完整的问题是NP,他们的运行时间是大多数指数的”是 not $ \ mathsf的定义{np} $ -complete问题。这只是NP完整问题的财产。

这相当于说 $ \ mathsf {np} \ subseteq \ mathsf {exptime} $ 。事实上,它猜测了容纳是合适的,即 $ \ mathsf {np} \ subset \ mathsf {exptime} $ 。这意味着存在(决定)问题可以在指数时间中解决,但不在 $ \ mathsf {np} $ 中。我们也知道 $ \ mathsf {p} \ subset \ mathsf {exptime} $ ,显示我们必须具有 $ \ mathsf {np} \ subset \ mathsf {exptime} $ 如果 $ \ mathsf {p}=mathsf {np} $

其他提示

(除了将验证的复杂性限制为多项式时间)。

这正是在指数时间内可以解决问题的原因。算法可以简单地运行验证算法以查找所有可能的证书,以查看其中的任何一个是有效的“解决方案”。由于 $ np $ 限制了要多项式的证书的长度,因此只有许多证书。每个证书都可以在多项式时间中进行检查,因此我们可以通过所有可能的证书迭代并在指数时间内检查它们。

注意,为此目的,“指数”表示 $ 2 ^ {poly(n)} $ 所以例如 $ 2 ^ {n ^ 2} $ 计数为指数。

许可以下: CC-BY-SA归因
不隶属于 cs.stackexchange
scroll top