【问题标题】:Deterministic Finite State Automata for Modulo Comparison模比较的确定性有限状态自动机
【发布时间】:2015-09-07 22:55:06
【问题描述】:

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

您可以创建由 x 和 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 相对于彼此出现的次数。

【问题讨论】:

    标签: finite-automata state-machine deterministic


    【解决方案1】:

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

    在下表中

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

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

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

    【讨论】:

      猜你喜欢
      • 2013-10-19
      • 1970-01-01
      • 2011-11-22
      • 2015-01-10
      • 2011-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-29
      相关资源
      最近更新 更多