问题描述
我遇到了一个声明,它假设 TM 是否覆盖了它自己的任何输入是无法确定的。
什么是直觉和实际证明?
解决方法
证明:
构建一个机器 B
,将机器 A
作为输入,并在不干扰输入字符串(描述 A
的字符串)的情况下模拟它。这并不难。
现在构建机器 C
,B
的修改版本。如果 A
停止,C
将覆盖输入字符串;在此之前,它将保持输入字符串不变。
为了确定 C
(作用于 A
)是否会覆盖其输入字符串,必须确定 A
是否会停止。但是“是否 A
停止”是不可判定的,因此“是否 C
会覆盖其输入”也是不可判定的。
直觉:
有了图灵机,几乎所有不简单的事情都是不可能的。