所以我正在审核这个问题的笔记,我似乎无法理解这个问题是如何工作的。假设我们有M,并且M接受一个输入,使其访问每个非暂停状态。
我确信自己这个问题是可以判定的,但我很难证明这一点。我的答案的大致轮廓是:假设我们有一个只有一个暂停状态的TM T,如果它想要通过所有状态,它需要通过这个暂停状态,我们不知何故需要显示它们如何循环所有州都是这样的。
任何帮助都会有益,谢谢!
答案 0 :(得分:0)
我想你会发现答案实际上是不可判定的。为什么?那么这可以让你解决停止问题。
对于您描述的问题,您将获得TM M和输入x以及oracle Q.我们可以使用oracle Q解决输入x的M的暂停问题吗?
首先,我们将一个新的TM N连接到M的前面。这是N的作用: - 删除磁带内容 - 将x写入磁带
M停止x iff NM在所有输入上停止。这应该很容易看到,因为如果输入是x,则N完全按照M所见的方式离开磁带。我们可以设计N,以便访问N的所有状态。
现在,通过添加第二个磁带将M修改为M'。第二个磁带将用于跟踪我们访问过的M'的最高编号状态。将转换添加到M',从第二个磁带读取第n个状态并使M'转换到第(n + 1)个st状态。从M'的最高编号状态的转换应返回到M'的初始状态,并在辅助磁带上写入类似“已完成”的内容。当M'在辅助磁带上看到“已完成”时,它的行为就像M一样,只考虑主磁带。
所以M'与M'完全相同,只是它首先访问M的所有状态然后重置,之后它的行为就像M一样。
M'停止在x上如果M停止在x上。如果M停止在x上,则NM'停止。
最后我们准备好了证明。如果M在x上停止,则oracle Q接受NM'。如果NM'接受导致NM'访问所有状态的输入y,则Q接受NM'。但: - 所有输入y导致NM'访问所有状态(因为N的所有状态都是通过构造访问的,并且通过修改M来访问M'的所有状态);所以Q真的只是回答“NM是否接受任何字符串?”的问题。 - NM'从输入磁带中删除y,写入x并将其移交给M'。所以输入y无关紧要;如果NM'接受任何输入,它接受所有输入。如果M'接受x,它接受所有这些。 - M'接受与M相同的语言。
因此Q应用于NM'确实告诉我们M是否在x上停止。然后Q解决了暂停问题。