具有 4 或 5 个状态的 DFA

DFA with 4 or 5 states

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

DFA

看起来你的语言具有这些属性:

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