📌  相关文章
📜  设计一个DFA,使其每隔00后紧跟1

📅  最后修改于: 2021-08-24 16:16:22             🧑  作者: Mango

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}

转换规则介绍了转换函数在每个输入字母和每个状态下的作用。