DFA 机器被设计为接受特定类型的输入,其输出是由输入字母表从每个状态的转换生成的。
方法 :
- 在这种情况下,字符串除了超过 3 个零之外的所有字符串都是可以接受的。在这种字符串,不能接受三个连续的零。
- 创建初始状态并从可能的字符串的最小长度开始,将其输入 0 和 1 转换为可能的状态。
- 根据转移,注意最终状态并标记它。
一步一步设计DFA:
第1步:
做一个初始状态,比如“A”,最小可能的字符串是 1 和 0,也可以接受任意数量的 1。为此,在状态“A”上放置 1 的自循环,并使输入字母表 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的Transition Table和Transition规则——
状态“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}
转换规则讲述了对每个输入字母表对每个状态函数的转换函数。