【问题标题】:Passive learning in finite state automata有限状态自动机中的被动学习
【发布时间】:2020-09-05 03:05:28
【问题描述】:

我正在阅读《机器学习基础》一书中的以下段落 https://cs.nyu.edu/~mohri/mlbook/(本书的第 362 页)。

现在我对 DFA 的概念还很陌生,但我有一些经验。我对这一段有一些疑问。

  1. 为什么他们想要一个接受正标记字符串“a”或“b”的确定性自动机?您肯定想拒绝 $"b"$ ,因为它带有负面标签吗?

  2. “a”是一串字符,即 a = 01010101 还是一个字母本身?

  3. 接受“a”或“b”的最小二态自动机是什么?有人能描述一下吗?另外我不确定它与他们接下来为语言 a* 描述的单状态机有何不同?有人可以明确描述两者吗?我看不出这两种情况有什么区别,也许这就是为什么我不明白为什么一个有两个状态而另一个只有一个状态。

我真的很感激任何帮助,因为我真的在努力理解他们谈论的概念。

【问题讨论】:

    标签: state-machine finite-automata computation-theory deterministic


    【解决方案1】:
    1. 他们想要一个状态尽可能少的 DFA,接受字符串“a”并拒绝字符串“b”
    2. 'a' 表示符号 a,而不是表示您提供的位字符串的简写。在形式语言理论中,允许使用字母作为符号。
    3. 他们试图在这里区分接受“a”和拒绝“b”的状态最少的 DFA 和接受语言 {'a'} 的最小 DFA。见下文。

    如果您使用必须表示死状态并且必须显示所有转换的标准约定,那么接受“a”并拒绝“b”的最小 DFA 实际上有两个状态:

           +--a--+
           |     |
    ----->q0<----+
           |
           b
           |
           V
          q1<----+
           |     |
           +-a,b-+
    

    在上面的 DFA 中,q0 是接受的。没有较小的 DFA 接受“a”并拒绝“b”。你知道这一点,因为 DFA 必须有一个接受状态来接受任何东西,和一个不接受状态来拒绝任何东西,并且由于一个状态不能同时是两个,我们需要两个。现在,引用段落的区别在于接受语言 {'a'} 的 DFA 更大(因为它排除了除 'a' 之外的所有内容,而不仅仅是 'b'):

    ----->q0--a-->q1
          |       |
          b      a,b
          |       |
          |       V
          +------>q2<---+
                  |     |
                  +-a,b-+
    

    这里,q1 正在接受。请注意,我们需要一个额外的状态来避免接受较长的 'a' 字符串。

    【讨论】:

    • 但是为什么它说接受语言 $'a'$ 的 DFS 只有一个状态?你画的有三种状态
    • 有一个接受“a”(除其他外)的 DFA,它有一个状态:接受每个字符串的单一状态 DFA。不幸的是,那个 DFA 也接受 'b',所以我们不能使用它。接受 'a' 和拒绝 'b' 可以通过两种状态来完成:通过保持在初始状态接受任何字符串 'a',如果你看到了 'b' 则进入死亡状态。准确地接受语言“a”需要三种状态:初始(仍然需要一个“a”)、接受(看到我们的一个“a”)和死亡(看到更多/不仅仅是“a”)。如果这本书另有说明,那本书使用的是我不熟悉的约定,或者是错误的
    • 感谢这本书的解释很不清楚
    猜你喜欢
    • 1970-01-01
    • 2015-06-29
    • 1970-01-01
    • 2018-04-30
    • 2013-10-19
    • 1970-01-01
    • 1970-01-01
    • 2018-09-25
    • 2011-11-22
    相关资源
    最近更新 更多