复杂度理论中的“决策”和“验证”之间有什么区别?


16

在Michael Sipser的计算理论第270页中,他写道:

P =可以快速确定其成员资格的语言类别。
NP =可以快速验证其成员资格的语言类别。

“决定”和“验证”之间有什么区别?


1
顺便说一句,我敢肯定报价单不是P和NP Sipser使用的正式定义。定义(或一些最初的结果)应该解决这个问题。
拉斐尔

Answers:


12

的任务决定的成员是:给出任何输入,据此决定是否X 大号,即计算以下功能:xxL

χL(x)={1xL0xL

在另一方面,任务验证会员资格:给予任何输入和(建议)证明(或证人会员),检查快速阉X 大号的证明了这一点 ¹。xxL

例如,考虑素数分解。鉴于,计算所有的质因数ñ。另一方面,给定n { i 1i k } ,请验证k j = 1 i j = n。哪个更容易?nNn(n,{i1,,ik})j=1kij=n

另一个示例:给定加权图,确定是否存在一个权重最大为k的汉密尔顿圆(访问所有节点)。另一方面,给定G v 1v n,请验证路径v 1v n是否正好访问所有节点一次并且权重最大为k。哪个更难?G=(V,E)k(G,(v1,,vn))v1vnk


  1. 所以,你会说“不”,如果但证明是错误的。不过,这很好,因为我们在这种情况下考虑非确定性机器。重要的是我们可以猜测正确的证据并迅速进行验证。xL

其实,如果你能确认在多项式时间籍着确定性图灵机M,它很容易建立一个非确定性TM M”这决定成员:刚刚枚举不确定性所有可能的输入,然后用M.撰写
罗穆亚尔德

8

如果我们忽略效率问题,还有另一个例子可以通过类比说明差异。我们知道停顿问题是无法确定的:给图灵机提供代码,没有有效的方法来确定如果没有输入的情况下机器是否停止运行。e

但是,如果一台机器确实停止了,那么向其他人证明并不困难:只要告诉他们机器停止运行多少步即可。他们可以将机器运行那么多步骤,并知道您是否说了实话(当然忽略了效率)。

因此,暂停图灵机的设置是不确定的,但可以验证。请注意,对于停止的机器,无需提供任何证据。核查是在这个意义上,只有会员不对称设定有是可验证,成员一组则没有。

P和NP的情况类似。语言是在NP如果有证据的一个系统,使得每个是对象语言具有短的证明(通过多项式中的对象的大小为界),其能够有效地进行验证(与多个由界定步骤输入大小的多项式)。

另一方面,如果有一种方法可以使用对象大小的多项式界定的多个步骤来判断一个任意对象是否在该语言中,那么该语言就是P语言。现在我们不得不担心任意输入,而不仅仅是语言中的对象。但是这个问题是对称的:如果一种语言是P语言,那么它的补语也是如此。每种NP语言的补语是否也是NP语言的问题尚未解决。

(这一类比暗示,NP问题是P问题,就像re集是可计算集一样。这是对的,但可能会产生误导。这是一个基本事实,re和co-re集是可计算的,而尚不知道NP和Co-NP的每个集合是否都在P中)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.