Answers:
的任务决定的成员是:给出任何输入,据此决定是否X ∈ 大号,即计算以下功能:
在另一方面,任务验证会员资格:给予任何输入和(建议)证明(或证人会员),检查快速阉X ∈ 大号的证明了这一点 ¹。
例如,考虑素数分解。鉴于,计算所有的质因数ñ。另一方面,给定(n ,{ i 1,… ,i k } ),请验证∏ k j = 1 i j = n。哪个更容易?
另一个示例:给定加权图,确定是否存在一个权重最大为k的汉密尔顿圆(访问所有节点)。另一方面,给定(G ,(v 1,… ,v n)),请验证路径v 1 → ⋯ → v n是否正好访问所有节点一次并且权重最大为k。哪个更难?
如果我们忽略效率问题,还有另一个例子可以通过类比说明差异。我们知道停顿问题是无法确定的:给图灵机提供代码,没有有效的方法来确定如果没有输入的情况下机器是否停止运行。
但是,如果一台机器确实停止了,那么向其他人证明并不困难:只要告诉他们机器停止运行多少步即可。他们可以将机器运行那么多步骤,并知道您是否说了实话(当然忽略了效率)。
因此,暂停图灵机的设置是不确定的,但可以验证。请注意,对于不停止的机器,无需提供任何证据。核查是在这个意义上,只有会员不对称的设定有是可验证,成员出一组则没有。
P和NP的情况类似。语言是在NP如果有证据的一个系统,使得每个是对象在语言具有短的证明(通过多项式中的对象的大小为界),其能够有效地进行验证(与多个由界定步骤输入大小的多项式)。
另一方面,如果有一种方法可以使用对象大小的多项式界定的多个步骤来判断一个任意对象是否在该语言中,那么该语言就是P语言。现在我们不得不担心任意输入,而不仅仅是语言中的对象。但是这个问题是对称的:如果一种语言是P语言,那么它的补语也是如此。每种NP语言的补语是否也是NP语言的问题尚未解决。
(这一类比暗示,NP问题是P问题,就像re集是可计算集一样。这是对的,但可能会产生误导。这是一个基本事实,re和co-re集是可计算的,而尚不知道NP和Co-NP的每个集合是否都在P中)。