【问题标题】: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;否则,拒绝。”

这对我来说似乎倒退了。谁能解释一下?

谢谢。

【问题讨论】:

    标签: language-agnostic programming-languages dfa turing-machines decidable


    【解决方案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 拒绝所有内容。

    【讨论】:

    • 精彩的解释;谢谢
    猜你喜欢
    • 2012-03-16
    • 1970-01-01
    • 2012-02-19
    • 1970-01-01
    • 2016-03-03
    • 1970-01-01
    • 2017-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多