📜  雅顿定理

📅  最后修改于: 2020-11-26 10:13:41             🧑  作者: Mango


为了找出有限自动机的正则表达式,我们将Arden定理与正则表达式的属性一起使用。

声明

PQ为两个正则表达式。

如果P不包含空字符串,则R = Q + RP具有唯一的解决方案,即R = QP *

证明

R = Q +(Q + RP)P [输入值R = Q + RP之后]

= Q + QP + RPP

当我们一次又一次地递归R的值时,我们得到以下等式-

R = Q + QP + QP 2 + QP 3 …..

R = Q(ε+ P + P 2 + P 3 +…。)

R = QP * [如P *表示(ε+ P + P2 + P3 +…。)]

因此,证明了。

应用阿登定理的假设

  • 过渡图不得具有NULL过渡
  • 它必须只有一个初始状态

方法

步骤1-为具有初始状态为q 1的n个状态的DFA的所有状态创建方程,形式如下。

q 1 = q 1 R 11 + q 2 R 21 +…+ q n R n1

q 2 = q 1 R 12 + q 2 R 22 +…+ q n R n2

…………………………

…………………………

…………………………

…………………………

q n = q 1 R 1n + q 2 R 2n +…+ q n R nn

R ij表示从q iq j的边的标签集,如果不存在这样的边,则R ij =∅

步骤2-求解这些方程,以R ij的形式得出最终状态的方程

问题

构造与下面给出的自动机相对应的正则表达式-

有限自动机

解决方案

在此,初始状态和最终状态为q 1

三种状态q1,q2和q3的等式如下-

q 1 = q 1 a + q 3 a +ε (ε移动是因为q1是初始状态0

q 2 = q 1 b + q 2 b + q 3 b

q 3 = q 2 a

现在,我们将解决这三个方程-

q 2 = q 1 b + q 2 b + q 3 b

= q 1 b + q 2 b +(q 2 a)b (q 3的替换值)

= q 1 b + q 2 (b + ab)

= q 1 b(b + ab)* (应用Arden定理)

q 1 = q 1 a + q 3 a +ε

= q 1 a + q 2 aa +ε (q 3的替换值)

= q 1 a + q 1 b(b + ab *)aa +ε (q 2的替换值)

= q 1 (a + b(b + ab)* aa)+ε

=ε(a + b(b + ab)* aa)*

=(a + b(b + ab)* aa)*

因此,正则表达式为(a + b(b + ab)* aa)*。

问题

构造与下面给出的自动机相对应的正则表达式-

有限自动机1

解决方案

这里的初始状态是q 1 ,最终状态是q 2

现在我们写下等式-

q 1 = q 1 0 +ε

q 2 = q 1 1 + q 2 0

q 3 = q 2 1 + q 3 0 + q 3 1

现在,我们将解决这三个方程-

q 1 =ε0* [As,εR= R]

因此, q 1 = 0 *

q 2 = 0 * 1 + q 2 0

因此, q 2 = 0 * 1(0)* [根据Arden定理]

因此,正则表达式为0 * 10 *。