阿登定理


为了找出有限自动机的正则表达式,我们使用阿登定理以及正则表达式的属性。

声明-

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 - 对于具有 n 个状态且初始状态为 q 1的 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 + ε (ε move 是因为 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)* (应用阿登定理)

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)* [根据雅顿定理]

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