模数比较的确定性有限状态自动机

时间:2015-09-07 22:55:06

标签: finite-automata state-machine deterministic

我正致力于为以下问题创建确定性有限状态自动机:

您可以创建由x&s和y组成的字符串。当(x' s mod 4)的数量大于(y' s mod 4)的数量时,如何创建仅接受该语言的图表?

我目前能够理解的是,我需要创建一个类似于下面的图表:

>(0,0) -b-> (0,1) -b-> (0,2) -b-> (0,3) -b-> (0,4)
   a          a          a          a          a
 (1,0) -b-> (1,1) -b-> (1,2) -b-> (1,3) -b-> (1,4)
   a          a          a          a          a
 (2,0) -b-> (2,1) -b-> (2,2) -b-> (2,3) -b-> (2,4)
   a          a          a          a          a
 (3,0) -b-> (3,1) -b-> (3,2) -b-> (3,3) -b-> (3,4)
   a          a          a          a          a
 (4,0) -b-> (4,1) -b-> (4,2) -b-> (4,3) -b-> (4,4)

但我不明白的是如何比较x和y相对于彼此出现的次数。

1 个答案:

答案 0 :(得分:0)

我尝试通过转换表定义DFA行为而不是使用转换图来回答您的问题 - 此表更容易在此处键入,并且它在功能上等同于相应的转换图。

在下表中

  • 第一列列出了所有州;每个州由一个有序对表示,其元素分别代表x的数量和到目前为止所读取的y的数量
  • 第二列和第三列分别包含在阅读xy时达到的状态,而DFA处于表格第一列所示的状态
  • 以黄色突出显示的状态是接受状态:如果在检查字符串中的最后一个符号后DFA处于其中一种状态,则接受该字符串,即它属于该语言。

enter image description here

查看此表,您应该能够轻松地调整图表,以使工作正常。例如,表格中的第一行对应于图表的以下部分

>(0,0) -y-> (0,1)
   x
 (1,0)