解释 Arden 定理,用于将 DFA 转换为正则表达式


将确定性有限自动机 (DFA) 转换为正则表达式 (RE) 有两种方法。这些方法如下所示:

  • Arden 定理方法。
  • 状态消除方法。

让我们详细了解 Arden 定理方法。

Arden 定理

假设 P 和 Q 是两个正则表达式。

如果 P 不包含空字符串,则关于 R 的以下等式,即 R = Q + RP,

有一个唯一的解,即 R = QP*

这里,

  • 有限自动机 (FA) 没有 ε 移动。
  • 它必须只有一个初始状态 q1。
  • 它的状态为 q1、q2、q3、…、qn。最终状态可以是某个 qi,其中 i<=n。
  • qi 是表示有限自动机接受的字符串集的正则表达式,即使 qi 是最终状态。

使用 Arden 定理查找 DFA 的 RE。

为了找到给定自动机的正则表达式,我们可以首先为所有状态创建给定形式的方程。

q1=q1α11+q2α21+----------+qnαn1+ε

q2=q1α12+q2α22+-----------+qnαn2

-

-

-

-

qn=q1α1n+q2α2n+------------+qnαnn。

通过重复应用替换和 Arden 定理,我们可以用 α ij 表示 qi。为了获得有限状态自动机 (FSA) 识别的字符串集,我们必须取对应于最终状态的所有 qi 的并集

示例

注意:对于并行边,表达式中将存在该状态的多个表达式。

然后,我们求解这些方程以获得关于 α ij 的 qi 方程,并且该表达式是所需的解,其中 qi 是最终状态。如下所示:

q 1= q a + q3a + € (€ 移动是因为 q1 是初始状态)

q2 = q1b + q2b + q3b

q3 = q2a

现在,我们将求解这些方程,如下所示:

. q2 = q1b + q2b + q3b

= q1b + q2b + (q2a)b (代入 q3 的值)

= q1b + q2(b + ab)

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

. q1 = q1a + q3a + €

= q1a + q2aa + € (代入 q3 的值)

= q1a + q1b(b + ab*)aa + € (代入 q2 的值)

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

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

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

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

更新于: 2021年6月11日

5K+ 次查看

启动您的 职业生涯

通过完成课程获得认证

开始
广告