为啥 E(dfa) 是可判定语言?
Posted
技术标签:
【中文标题】为啥 E(dfa) 是可判定语言?【英文标题】:Why is E(dfa) a decidable language?为什么 E(dfa) 是可判定语言? 【发布时间】:2014-04-10 05:58:21 【问题描述】:我不明白为什么图灵机 T,在没有标记接受状态时接受并在标记接受状态时拒绝:
E(dfa) = | A 是一个 DFA 并且 L(A) = 空集(没有符号)
E(dfa) 是一种可判定的语言。
证明:如果通过 > 沿着 DFA 的箭头移动从起始状态达到接受状态,则 DFA 接受某个字符串。为了测试这种情况,我们可以设计一个 >TM T,它使用类似于示例 3.23 中使用的标记算法。
T= "在 input 上,其中 A 是一个 DFA: 1.标记A的开始状态。 2. 重复直到没有新的状态被标记: 3. 标记任何有从任何状态进入它的转换的状态 已经标记。 4.如果没有标注accept状态,accept;否则,拒绝。”
这对我来说似乎倒退了。谁能解释一下?
谢谢。
【问题讨论】:
【参考方案1】:我相信您的困惑是由于在不同的上下文中使用了“接受”和“拒绝”这两个词。在高层次上,很容易避免这种混淆,因为您可以将图灵机 T 定义为不引用 DFA A 自己接受的过程和拒绝。
L(T) 是 A | L(A) 为空。这与您的问题中定义的 E(dfa) 相同,但使用 L(T) 可以更明确地表明我们在这里处理两种不同的语言,一种恰好是用术语定义的另一个。
如果我们从高层到低层工作,我们可以说:
只要 L(A) 为空,L(T) 就接受 A。 但是我们如何判断 L(A) 是否为空呢?当 A 拒绝所有字符串时,L(A) 为空。 我们如何知道一个字符串在 A 中被拒绝了?它不会以接受状态结束。我们现在也可以很容易地从低到高工作:
如果提供给 A 的字符串未以接受状态结束,则会被拒绝。 如果所有字符串都被 A 拒绝,则 L(A) 为空。 如果 L(A) 为空,则 L(T) 接受 A。现在你的证明更详细地说明了 T 如何决定是否接受 A,但我认为你的困惑更多地围绕着多重接受和拒绝的用法。从广义上讲,您可以说 T 接受 A 且当 A 拒绝所有内容。
【讨论】:
精彩的解释;谢谢以上是关于为啥 E(dfa) 是可判定语言?的主要内容,如果未能解决你的问题,请参考以下文章