设计一个 DFA,每 00 紧跟 1
原文:https://www . geesforgeks . org/design-a-DFA-that-ever-00-紧接着是-1/
DFA 机器被设计成接受特定类型的输入,其输出是通过输入字母表从每个状态的转换而产生的。
进场:
- 在这种情况下,除了 3 个以上的零之外,所有字符串都是可以接受的。在这种字符串中,没有三个连续的零是可以接受的。
- 创建初始状态,从最小长度的可能字符串开始,将其输入 0 和 1 转换为可能的状态。
- 根据过渡,注意最终状态并标记它。
分步设计 DFA:
Step-1: 做一个初始状态,比如说“A”,最小可能的字符串是 1 和 0,也可以是任意数量的 1。为此,将 1 的自循环置于状态“A”,并将输入字母 0 转换到状态“B”。因为只有 1 是可接受的,所以状态“A”也被称为最终状态。
Step-2: 由于字符串中的单个零是可以接受的,所以使状态“B”成为最终状态。横断面输入 0 从状态“B”到状态“C”。
第 3 步: 由于每 00 紧接着 1,所以现在在状态“C”之后,将输入 1 从状态“C”转换到状态“A”。
步骤-4: 我们剩下状态“B”的输入字母表 1 的转换。所以把 1 从状态“B”过渡到状态“A”。
第 5 步: 00 后连续不超过零是可以接受的。所以横切状态“C”到死状态“D”的 0。
第 6 步: 输入死亡状态的字母 0 和 1 横切死亡状态本身。
上述 DFA– 状态“A”既是最终状态也是初始状态,状态“C”是最终状态,状态“D”是死状态。初始状态由— >表示,最终状态标识由*表示。
状态 | 输入(0) | 输入(1) |
---|---|---|
—>A*(初始和最终状态均为) | B | A |
B*(最终状态) | C | A |
C | d(死状态) | A |
d(死状态) | d(死状态) | d(死状态) |
q ':有限集合集= {A,B,C,D} 输入字母集= {0,1}
转换规则讲述了使用每个输入字母在每个状态下工作的转换函数。
版权属于:月萌API www.moonapi.com,转载请注明出处