【发布时间】:2016-02-01 04:31:46
【问题描述】:
【问题讨论】:
-
我投票结束这个问题,因为它是关于计算机科学的简单应用并且与编程无关。
标签: finite-automata
【问题讨论】:
标签: finite-automata
基本上有三种方法。 Hopcroft 和 Ullman 在书中给出了两个。
1) 递归计算所有状态 i,j 只经过 k 个中间状态的 R_ij。
2) 通过消除起始状态和单个最终状态之间的状态来计算正则表达式。这比第一种方法简单。
3) 分析并尝试了解 DFA 本身。
如果我们消除中间状态,我们就会跟随
a_02 = (aa+ba)*(ab+bb) :从状态 0 到 2 的正则表达式,不使用从状态 2 到 0 的箭头。 a_00 = (aa+ba)* :从状态 0 到 0 的正则表达式,不使用从状态 2 到 0 的箭头。
我们现在可以使用教科书中给出的表达式,但在这个阶段我们也可以分析自动机并提出解决方案。所以最后 R_02 变成了
((aa+ba)*(ab+bb)(a+b))*(aa+ba)*(ab+bb)
【讨论】: