假设一些问题L在复杂度等级P中。然后有一些多项式时间算法A决定了问题。我们有以下定理:如果A接受L,则A决定L。
该证明的工作原理是,如果A以多项式时间运行,则存在一些非负常数c,k,使得A的运行时间为cn ^ k,其中n是输入L的大小。因此我们可以构造一个多项式时间算法A',该算法调用A,如果A在time <= cn ^ k中返回1,则返回1,如果A花费比cn ^ k长的时间返回某事物,则返回0。通过这样做,我们注意到如果A试图进入无限循环,则A'只是在poly时间中暂停该过程并返回0,这意味着A'拒绝了L的赞美。
我的问题是:为什么该证明不适用于复杂度等级NP?难道我们不能仅仅说如果L在NP中,那么就存在一个确定L的不确定的多重时间算法A,因此只需如上所述定义A'?
答案 0 :(得分:0)
“确定”问题是指能够说出给定字符串是否是该语言。如果字符串不是NP语言,则在声明字符串不是该语言之前,没有多项式的时间可以等待验收失败,从而使算法无法使用。
对于P语言,您不知道“多项式时间”实际上是什么,但是您要做知道您的算法将在有限时间内终止任何输入。但是对于NP,测试非语言输入可能不会永远终止,因此您永远无法判断输入是否非语言,或者您等待的时间还不够长。