【问题标题】:Understanding recognizers and deciders in Theory of Computation理解计算理论中的识别器和决策器
【发布时间】:2011-07-14 18:14:26
【问题描述】:

我很难理解机器识别和决定语言的含义。我认为我接近定义但不正确。

当有人说图灵机 T 识别语言 L

L = { <A> | A is a DFA }

其中 DFA = 确定性有限自动机

我的理解是,这意味着可以构建一个图灵机,给定任何类型的输入(字符串、汽车、人,等等!)将能够告诉你你作为输入提供的东西是否是一个DFA 与否。我的意思是,将始终接受 DFA 并始终拒绝非 DFA 输入。

也就是说,如果该输入是L 的成员。另一个例子是说那个家伙是他父亲的识别者,因为无论你放在他面前的东西是什么,他都能告诉你他面前的东西是不是他的父亲。它是否正确?哪一部分不正确?

另一方面,一个语言上的decider 似乎是一个从不loops 的图灵机,也就是说,对于任何输入,它总是会在接受或拒绝状态下停止。这与我上面关于识别器的解释是否相似或相同?

谢谢

【问题讨论】:

    标签: computer-science computation-theory


    【解决方案1】:

    我认为图灵机识别诸如 L 这样的语言意味着图灵机将接受与构成 L 的 DFA 相同的所有输入。因此,它们在某种意义上是等价的。

    【讨论】:

      【解决方案2】:

      经过一番研究,我想我明白了两者之间的区别。

      一如既往,魔鬼在细节中。

      首先,可确定的语言始终是可识别的语言

      可识别的语言是一种至少有一台机器将其作为其语言的语言。起初,这可能看起来像是其中的一个循环定义,但是..

      用通俗的话来说,如果您能想到一台能够接受其所有字符串的机器,则可以识别一种语言。

      一个例子

      让我们设计一些非常简单的语言:

      L = { abc }
      

      这种语言仅由单词 abc 组成。这意味着要证明这种语言是可识别的,必须建造一台接受它的机器。我们会非正式地这样做:

      M 是输入 abc 时接受的机器,否则无限循环。

      这台机器接受语言 L 的所有成员,因此它是 L 的识别器。然而,对于所有其他输入,它只会永远挂起。是否存在对于每个输入都接受/拒绝的机器,这种语言也可以是可判定语言类的一部分。你能建一个吗?

      (剧透警告!!!11@#$!1)

      M' 是当输入 abc 时接受,否则拒绝的机器。

      也就是说,因为有一台机器可以识别 L,并且无论你给它什么输入,它总是要么接受 / 拒绝,所以该语言被认为是可判定的。

      此外,如果你有兴趣在某一天建造一台能够识别 L 的机器,你就会知道你至少有一台机器能够始终做到这一点,而不会遇到能够接受 abc 但惨遭失败的问题其他情况,永远挂着!

      【讨论】:

      • 这是否意味着 DFA 始终是决策者(假设输入有限)?由于它没有 epsilon 转换,因此它必须始终在处理完所有输入后终止。 NFA 可能会在输入停止后继续模拟 epsilon 转换,所以我认为 NFA 不能保证这一点。那是对的吗?由于您可以构建一个接受与 NFA 相同的常规语言的 DFA,这意味着任何常规语言都是可判定的?
      • 由于 DFA 和 NFA 不是 TM,因此严格来说应用这些术语没有任何意义。尽管如此,有趣的问题@JochemKuijpers。您可以编写一个算法来检查给定的字符串是否是 NFA 的语言,并且在某些输入上永远不会停止。但是你也可以写一个总是停止的,所以语言 { | N 是 NFA,w 是 L(N) 中的字符串 } 是可判定的。您可以看到这一点,因为有一个将 NFA 转换为 DFA 的算法;您可以先进行该转换,然后运行 ​​DFA 检查算法。还有一些不进行转换的算法。
      【解决方案3】:

      我认为的简单答案是:

      决策者总是停止、接受或拒绝

      但是

      识别器并不总是停止,机器可以接受、拒绝或循环。通过循环意味着机器不会停止。

      对于识别器,有时我们使用决策器来决定,如果机器处于循环中,那么决策器将根据我们的描述拒绝。

      【讨论】:

        【解决方案4】:

        Turing decidable 意味着有一个图灵机接受该语言中的所有字符串并拒绝所有非该语言的字符串,请注意,如果它是决策者,则不允许该机器永远循环在一个字符串上,它必须停止在某一阶段接受或拒绝输入字符串。

        图灵可识别意味着有一个图灵机可以接受该语言的所有字符串。请注意,机器不必拒绝不属于该语言的字符串,换句话说,该机器可以在不属于该语言的字符串上永远循环。

        用高级英语来说,决策机器必须对问题“是语言 A 中的字符串 x”回答“是”或“否” 如果字符串是语言,识别器必须对同一问题回答“是”,但如果字符串不是,则允许说“否”或“无注释,即永远循环”

        【讨论】:

          猜你喜欢
          • 2012-12-15
          • 2019-11-23
          • 2021-11-19
          • 1970-01-01
          • 2011-08-07
          • 1970-01-01
          • 2013-07-02
          • 1970-01-01
          相关资源
          最近更新 更多