DFA机器旨在接受特定类型的输入,其输入是通过从每个状态转换输入字母而生成的。
方法 :
- 在这种情况下,字符串所有字符串都是除了以上3个零可以接受的。在这种字符串,三个连续的零是不可接受的。
- 创建初始状态并从可能的字符串的最小长度开始,将其输入0和1转换为可能的状态。
- 根据过渡,注意最终状态并标记它。
逐步设计DFA:
步骤1:
设置一个初始状态,例如“ A”,最小可能的字符串是1和0,也可以接受任意数量的1。为此,将“ 1”的自循环放在状态“ A”上,并使输入字母0转换为状态“ B” ”。因为只能接受1,所以状态“ A”也称为最终状态。
第2步:
由于字符串中的单个零是可接受的,因此使状态“ B”为最终状态。将输入0从状态“ B”转换为状态“ C”。
步骤3:
由于每00后面紧跟着1,所以现在在状态“ C”之后将输入1从状态“ C”转换到状态“ A”。
第四步:
我们剩下状态“ B”的输入字母1的转换。因此,将状态1从状态“ B”转换为状态“ A”。
步骤5:
00之后,连续性不能接受更多的零。因此,将状态“ C”的0转换为无效状态“ D”。
步骤6:
死态的输入字母0和1会变为死态本身。
上述DFA的过渡表和过渡规则–
状态“ A”既是最终状态又是初始状态,状态“ C”是最终状态,状态“ D”是死状态。初始状态用->表示,最终状态ID用*表示。
State | Input (0) | Iinput (1) |
---|---|---|
—>A* (initial and final state both) | B | A |
B* (final state) | C | A |
C | D (dead state) | A |
D (dead state) | D (dead state) | D (dead state) |
Q’:有限集的集合= {A,B,C,D}
输入字母集= {0,1}
转换规则介绍了转换函数在每个输入字母和每个状态下的作用。