📅  最后修改于: 2020-12-17 06:59:29             🧑  作者: Mango
Arden定理对于检查两个正则表达式的等效性以及将DFA转换为正则表达式很有用。
让我们看看它在DFA转换为正则表达式中的用途。
以下算法用于构建给定DFA的正则表达式形式。
1.令q 1为初始状态。
2.状态数为q 2 ,q 3 ,q 4 …. q n 。最终状态可能是某个q j ,其中j <= n。
3.设αji代表从q j到q i的过渡。
4.计算q i使得
如果q j是开始状态,则我们有:
5.同样,计算最终给出正则表达式“ r”的最终状态。
为给定的DFA构造正则表达式
解:
让我们写下方程式
由于q1是开始状态,因此将添加ε,并且输入0从q1到达q1,因此我们写
状态=输入的源状态×输入的状态< p="">
同样,
由于最终状态是q1和q2,因此我们仅对求解q1和q2感兴趣。让我们先看q1
我们可以将其重写为
类似于R = Q + RP,并简化为R = OP *。
假设R = q1,Q =ε,P = 0
我们得到
将值代入q2,我们将得到
正则表达式由
状态=输入的源状态×输入的状态<>