NP - 非确定性多项式时间

时间:2016-10-23 20:37:26

标签: algorithm complexity-theory

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

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

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

有人可以纠正我吗?你能给我一个例子,硬币翻转实际上解决了多项式时间内的问题,否则会成为指数吗?

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

2 个答案:

答案 0 :(得分:4)

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

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

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

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

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

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

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

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

答案 1 :(得分:0)

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

表征NP的一种等效方式是它包含那些问题,给定问题的实例I和“证书”C(I)(您可以将其视为一个问题)提示算法),我们可以验证实例是否具有实例大小和证书大小的时间多项式解。 (这两个特征之间存在等效性的正式证据。例如,参见Arora和Barak的书。)