【问题标题】:NP - Non deterministic polynomial timeNP - 非确定性多项式时间
【发布时间】:2017-03-05 14:08:33
【问题描述】:

我已经看到了 NP 的多个定义,我有点困惑将其称为非确定性多项式时间。

“NP 是可以在非确定性多项式时间内识别的语言集合。”

我的理解是,普通计算机(没有随机性)无法在多项式时间内识别语言,但具有某种形式的非确定性(硬币翻转?)的计算机可以在多项式时间内解决这个问题?

有人可以纠正我吗?你能给我举个例子,抛硬币实际上可以在多项式时间内解决问题,否则这将是指数级的?

我确实理解 NP 包括可以在多项式时间内验证的语言的定义,但我不明白如何使用非确定性来识别它们。

【问题讨论】:

标签: algorithm complexity-theory


【解决方案1】:

事实上,抛硬币是关于随机性的,有些人错误地用随机性来描述不确定性。假设您有以下问题:

有 n 扇门,其中一扇门后面有你想找到的奖品。现在,让我们分析不同的方法:

(注意,为了简化描述,我不使用大O等渐近符号)

确定性:确定性算法的一个示例可以是从左到右一一打开所有门;因此,n 次操作的最坏情况复杂度

随机:我掷硬币,如果我有尾巴,我会从左到右检查门,如果我有头,我会从右到左检查它们。因此,在预期的意义上,我将获得 n/2 次操作。 (练习:为什么?)在随机算法中,我们寻找良好的平均(预期)行为

非确定性:非确定性是一个完全不同的故事,这在现实世界中是不可能的。如果你有不确定性的力量,当面临多个选择时,你可以同时尝试所有的选择。因此,非确定性算法可以同时打开所有 n 扇门;因此需要 1 次操作来找到奖品。

现在,一个可以使用非确定性多项式求解的示例。假设您面对 2 扇门(深度 1),您选择一扇门,然后再次看到 2 扇门(深度 2),依此类推,直到深度 n。所以实际上,最后一个深度有 2^n 扇门,其中一扇门后面有奖品。

使用确定性方法寻找奖品需要 2^n 次操作。但是,使用非确定性,您可以同时打开深度 1 的两扇门,同时打开 2 层的四扇门,依此类推。因此,您可以在 n 次(非确定性)操作后找到珍贵的

【讨论】:

    【解决方案2】:

    在这种情况下,非确定性是指计算模型在某种技术意义上从所有可能的执行路径中“猜测”正确(执行)路径的能力。 A. Mashreghi 在他的回答中很好地描述了这一点。

    表征 NP 的一种等效方法是它由那些问题组成),我们可以验证实例在实例大小和证书大小上是否存在时间多项式解。 (这两种表征之间有正式的等价证明。例如,参见 Arora 和 Barak 的书。)

    【讨论】:

      猜你喜欢
      • 2016-12-05
      • 1970-01-01
      • 2011-04-12
      • 2012-01-03
      • 1970-01-01
      • 1970-01-01
      • 2015-07-06
      • 1970-01-01
      • 2015-01-29
      相关资源
      最近更新 更多