自动机的正则表达式是什么?

时间:2016-02-01 04:31:47

标签: finite-automata

在这个自动机中如何找到正则表达式

enter image description here

1 个答案:

答案 0 :(得分:0)

基本上有三种方法。 Hopcroft和Ullman在书中给出了两个。

1)Calucalte R_ij递归地用于所有状态i,j仅经过k个中间状态。

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)