微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

具有 4 或 5 个状态的 DFA

如何解决具有 4 或 5 个状态的 DFA

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

DFA

解决方法

您的语言似乎具有以下属性:

  • 字符串长度至少为 3
  • 字符串至少包含一个 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 必须至少具有六个状态。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。