什么是图灵机的停顿?

时间:2016-09-27 08:41:34

标签: computation-theory turing-machines decidable

我是新的可判定性。我读到了停止问题的暂停问题,但没有得到它实际上暗示的任何东西。我已经搞砸了解释。

任何人都可以向我提供任何合理的解释或至少一些细节,这会有很大的帮助吗?

1 个答案:

答案 0 :(得分:2)

您可以将图灵机视为一种可以执行程序的理论计算机。图灵机的程序由一组状态和这些状态之间的转换组成。在图灵机上运行的程序可以访问一个称为磁带的输入源,它有一些程序可以处理的字符串(可能是空的)。图灵机的所有程序都是return true(停止接受),return false(停止拒绝),或者根本不能return任何事情 - while (true) ; return true;。根据您的定义,机器也可能throw异常(崩溃);但通常认为崩溃是try { /*crash*/ } catch (Exception) { return false; }之类的事情,因此崩溃意味着停止拒绝。

然后,暂停问题是你是否可以为图灵机编写一个程序,其输入是图灵机的另一个程序和一些输入字符串,它返回truefalse(如果已给出的程序在提供的输入上停止,则返回false(即,如果程序永不停止),则暂停接受或停止拒绝。

事实证明,答案是图灵机没有这样的通用程序。假设有一个确实存在,M。给定输入mi,如果m暂停i,则会接受,否则拒绝。我们可以制作另一个专门用来愚弄M的程序:

N(i)
1. if M(N, i) then loop forever;
2. otherwise return true

现在继续M是否适用于N

  1. 假设M表示N暂停输入i。然后N将永远循环,M将出错。

  2. 假设M表示N在输入i上永远循环。然后N将返回true并停止,因此M将出错。

  3. 在任何一种情况下,M都会为我们的N提供错误的答案,而且由于我们没有对M做出任何假设,除了它存在并解决了暂停问题,我们可以安全地得出结论,没有解决停机问题的机器存在。

    (如果首选不直接引用MN可作为输入传递到程序M