我似乎无法区分接受算法和决策算法,尽管我觉得我确实理解了这个概念。我目前正在阅读“算法简介”(Cormen),并且在 NP-Completeness 章节之后遇到问题,因为它指出
“对于其他问题,例如图灵的停机问题,存在接受算法,但不存在决策算法”。
到目前为止,这对我来说确实有意义,但我们更进一步说
"P= {L from {0,1}*: there exists an algorithm A that decides L in polynomial time}
我们要证明 P 也是
P={L:L is accepted by a polynomial time algorithm}, starting with
“因为语言的类别是由多项式时间算法决定的,我们只需要证明,如果 L 被多项式时间算法接受,它就是由多项式时间算法决定的。”。
然后我们继续构建一个接受算法的模拟,它额外检查接受算法的行为,如果前一个算法接受输入,则输出 1,否则输出 0。
但是,如果我们可以构造这样的算法,Halting Problem 怎么可能有一个接受但没有一个决策算法呢?