问题描述
我正在尝试解决大学提出的问题,但我不知道如何解决。有人可以帮助我说我如何证明下面提到的两种语言是可判定的或不可判定的
L1:= M,w |在输入 w 上,图灵机 M 永远不会将读/写头向左移动,其中 w ∈ {0,1} ∗ 和 M ∈ {0,1} ∗。
L2:= M,w |在输入 w 上,图灵机 M 在每一步移动读/写头,其中 w ∈ {0,1} ∗。
解决方法
L1:让 M 开始处理 w。如果它将读/写头向左移动,您可以立即停止拒绝,因为我们知道答案。否则,它最终将读取整个有限输入并插入输入右侧的空白空间,之后所有磁带单元都为空白。现在,继续允许 TM 运行。如果它将读/写头向左移动,则再次停止拒绝。否则,我们需要做的就是检测 TM 首次进入同一状态两次的时刻。这是为什么?如果 TM 在读取所有输入后两次进入某个状态并且已经在输入右侧的空白空间中,则 TM 已进入闭合循环,并将继续在循环中的状态之间转换,同时将磁头向右移动永远。根据鸽巢原理,在保证停止、向左移动或重复状态之前,您只需要检查与 TM 的状态一样多的转换。当然,如果 TM 在将读/写头向左移动之前的任何时候转换为停止接受或停止拒绝,您也有答案。这意味着这个问题是可判定的。
L2:让 M' 是我们想要解决停机问题的任何 TM。对于 M' 中的每个状态 Q,我们可以添加一个新状态 Q',其唯一功能是用从 Q 到 Q' 并再次返回的转换替换 M' 中没有移动读/写头的转换,以便 M''具有两倍于 M' 的状态,并且没有保持读/写头静止的转换。现在,我们可以将所有转换更改为停止接受或停止拒绝,以便它们保持磁头静止(没有理由不这样做);叫这个M'''。 TM M''' 具有以下属性:它完全接受 M' 接受的内容,完全拒绝 M' 拒绝的内容,在 M' 永远循环的地方永远循环,并且包含只有当它明确停止时才能保持读/写头静止的转换一个输入。现在,假设我们的问题是可判定的;也就是说,我们可以决定在处理某些输入 w 时,任意 TM 是否曾经保持磁头静止。然后我们可以决定 M''' 在处理 w 时是否曾经保持磁头静止。但是,由于 M''' 的构造方式使得磁头仅在 TM 停止时才静止,这告诉我们 M''' 在 w 上停止(或不停止)。这允许我们决定任意 TM M' 的停机问题。这是一个荒谬的结论,所以我们的问题是不可判定的。