📜  NFA用于语言中至少一个符号出现奇数次

📅  最后修改于: 2021-08-27 05:37:15             🧑  作者: Mango

问题陈述 :
设计和构造接受过输入字母(A,B,c)与(输入符号)的一个ATLEAST字符串非确定性有限自动机机具有奇数字符串中存在。

例子 :

aaabbbb, ababac, ababababccc ... 

方法:

  • 用标记–>构造初始状态。
  • 相应地,在每个输入字母上从一种状态转换到另一种状态。
  • 检查是否需要构造自循环。
  • 用两个同心圆标记最终状态。

逐步设计NFA:

步骤1:
创建一个初始状态“ A”,该状态将转换为三个不同的状态,即“ B”,“ C”,“ D”为空。

第2步:
在状态“ B”上,如果输入字母为“ a”,则进行从状态“ B”到“ X”的“ a”转换,如果状态“ B”上的输入字母为“ b”或“ c”,则进行自循环状态“ B”本身上的“ b”和“ c”。

步骤3:
在状态“ X”上,输入字母“ b”和“ c”是到状态“ X”本身的过渡,但是,“ a”的过渡是从状态“ X”到状态“ B”的。

第四步:
在状态“ C”上,如果输入字母为“ b”,则进行从状态“ B”到“ Y”的“ b”转换;如果在状态“ C”上的输入字母为“ b”或“ c”,则进行自我转换。状态“ C”本身上的“ b”和“ c”循环以及状态“ Y”上的输入字母“ a”和“ c”本身是向状态“ Y”的过渡,但“ b”的过渡是从状态“ Y”开始的”以表示“ B”。

步骤5:
在状态“ D”上,如果输入字母为“ c”,则进行从状态“ D”到“ Z”的“ c”转换,如果在状态“ D”上的输入字母为“ b”或“ a”,则进行自循环状态“ D”本身上的“ b”和“ a”的关系。在状态“ Z”上,输入字母“ a”和“ b”是到状态“ Z”本身的过渡,但从状态“ Z”到状态“ D”的过渡是“ c”。

步骤6:
状态“ X”确保“ a”的奇数,状态“ Y”确保“ b”的奇数,状态“ Z”确保“ c”的奇数。因此,将这些状态标记为最终状态。