我不明白为什么Turing Machine T,ACCEPTS在没有接受状态时被标记,并在接受状态被标记时拒绝:
E(dfa)= {| A是DFA,L(A)=空集(没有符号)}
E(dfa)是一种可判定的语言。
证明:DFA接受一些字符串iff从开始状态到达接受状态,并且>沿着DFA的箭头行进是可能的。为了测试这种情况,我们可以设计一个> TM T,它使用类似于例3.23中使用的标记算法。
T =“在输入时,其中A是DFA: 1.标记A的开始状态。 2.重复直到没有标记新状态: 3.从任何状态标记任何具有转换的状态 已标记。 4.如果没有标记接受状态,则接受;否则,拒绝。“
这似乎是我的倒退。谁能解释一下呢?
谢谢。
答案 0 :(得分:4)
我相信你的困惑是因为在不同背景下使用“接受”和“拒绝”这两个词。在较高的层次上,很容易避免这种混淆,因为您可以定义图灵机, T 以便不参考DFA, A 的过程,自己接受并拒绝。
L( T )是{A | L( A )为空}。这与您的问题中定义的E(dfa)相同,但使用L( T )会使我们更明确地说我们在这里处理两种不同的语言,其中一种恰好用术语来定义另一个。
如果我们从高级到低级工作,我们可以说:
我们现在也可以很容易地从低到高工作:
现在你的证据更详细地说明 T 如何决定是否接受 A ,但我认为你的困惑更多地围绕着多重接受和拒绝的使用。非常广泛地说,您可以说 T 接受 A iff A 拒绝所有内容。