【问题标题】:DFA with 4 or 5 states具有 4 或 5 个状态的 DFA
【发布时间】:2021-06-27 23:54:22
【问题描述】:

有人可以为语言 A 构建一个只有 4 或 5 个状态的 DFA 吗? ∑={0,1}, A={z 是 ∑^* 的元素 | z=uvwxy,u,y是∑^*的元素,v,w,x是∑的元素,vwx至少有一个0元素}。我只能构建一个有 6 个状态的 DFA,但我们应该构建一个有 4 或 5 个状态的 DFA。这是我的 DFA:

DFA

【问题讨论】:

    标签: automata dfa


    【解决方案1】:

    看起来您的语言具有以下属性:

    • 字符串长度至少为三个
    • 字符串至少包含一个 0

    我们可以使用 Myhill-Nerode 定理来证明对此的最小 DFA 有五个以上的状态:

    1. 空字符串对应初始状态[e]
    2. 字符串 0 后面可以跟 (0+1)(0+1)(0+1)(0+1) 得到语言中的字符串,与空字符串不同细绳。调用对应的状态[0]。
    3. 字符串 1 后面可以跟 (0+1)0(0+1)(0+1) + (0+1)(0+1)0(0 +1) 获取该语言的字符串。这与 0 和空字符串都不同,因此它会获得一个新状态,称之为 [1]
    4. 字符串 00 后面可以跟 (0+1)(0+1)(0+1),同样是不同的,[00]
    5. 字符串 01 与 00 无法区分
    6. 字符串 10 与 00 和 01 无法区分
    7. 字符串 11 后面可以跟 (0+1)0(0+1),与之前的所有字符串不同;称之为 [11]。
    8. 000 后面可以跟 (0+1)*,同样是不同的。这是与所有较短字符串区分开来的第 6 个字符串,这意味着您的语言的最小 DFA 必须至少具有六个状态。

    【讨论】:

      猜你喜欢
      • 2012-03-10
      • 1970-01-01
      • 1970-01-01
      • 2014-03-11
      • 2019-03-21
      • 1970-01-01
      • 1970-01-01
      • 2020-07-12
      • 2020-05-24
      相关资源
      最近更新 更多