定理已证明
停机问题的不可判定性
命题陈述
不存在这样的算法:对任意给定的程序(图灵机) 与输入 ,总能在有限时间内正确判断 在输入 上运行是否会停机。
为什么成立?
假设存在这样的停机判定器 。构造一个程序 :对输入的程序 ,先用 检查 在以自身为输入运行时是否停机,然后做相反的事(若 停机则死循环,若 死循环则停机)。把 自身作为输入运行,无论哪种情形都会导致矛盾,因此 不可能存在。
证明思路
对角线论证:假设存在判定器 ,能输出 在 上是否停机;定义 :若 回答“停机”则“死循环”,否则“停机”;再追问 是否停机。若它停机,按定义 应回答“死循环”,矛盾;若它死循环, 应回答“停机”,同样矛盾。因此 不可能存在。
用到此定理的主题
相关定理
分步证明
该定理暂无分步证明。
参考文献
- Alan M. Turing (1936). On Computable Numbers, with an Application to the Entscheidungsproblem · DOI:10.1112/plms/s2-42.1.230
- Michael Sipser (2012). Introduction to the Theory of Computation