- 自动机理论教程
- 自动机理论 - 首页
- 自动机理论 - 入门
- 自动机理论 - 历史
- 自动机理论 - 应用
- 自动机理论术语
- 自动机中字符串的基础知识
- 自动机的集合论
- 语言和文法
- 计算理论中的文法
- 由文法生成的语言
- 乔姆斯基文法分类
- 有限自动机
- 确定性有限自动机 (DFA)
- 非确定性有限自动机 (NFA)
- 从NFA到DFA的转换
- DFA的最小化
- Moore机与Mealy机
- DFA的补集
- 正则表达式
- 自动机中的正则表达式
- 自动机中的Arden定理
- 将正则表达式转换为有限自动机
- 正则文法的泵引理
- 计算理论中的正则集
- 上下文无关文法
- 上下文无关文法 (CFG)
- 上下文无关文法中的二义性
- 上下文无关语言的闭包性质
- 简化上下文无关文法
- 乔姆斯基范式 (CNF)
- 格雷巴赫范式 (GNF)
- 上下文无关文法的泵引理
- 下推自动机
- 下推自动机 (PDA)
- 下推自动机的接受
- 从CFG构造PDA
- 下推自动机和语法分析
- 图灵机
- 图灵机 (TM) 基础
- 图灵机接受的语言
- 多磁带图灵机
- 多轨迹图灵机
- 非确定性图灵机
- 半无限带图灵机
- 线性界限自动机 (LBA)
- 可计算性和不可判定性
- 图灵语言的可判定性
- 不可判定语言
- 图灵机停机问题
- 计算理论中的Rice定理
- Post对应问题 (PCP)
- 自动机理论资源
- 自动机理论 - 快速指南
- 自动机理论 - 资源
- 自动机理论 - 讨论
Arden定理
为了找出有限自动机的正则表达式,我们使用Arden定理以及正则表达式的性质。
陈述 −
设P和Q为两个正则表达式。
如果P不包含空串,则R = Q + RP 有唯一解R = QP*
证明 −
R = Q + (Q + RP)P [代入R = Q + RP]
= Q + QP + RPP
当我们反复递归地代入R的值时,我们得到以下等式−
R = Q + QP + QP2 + QP3…..
R = Q (ε + P + P2 + P3 + …. )
R = QP* [因为P*表示(ε + P + P2 + P3 + ….)]
因此,得证。
应用Arden定理的假设
- 状态转换图不能有空转移
- 它必须只有一个初始状态
方法
步骤1 − 为具有n个状态和初始状态q1的DFA的所有状态创建如下形式的等式。
q1 = q1R11 + q2R21 + … + qnRn1 + ε
q2 = q1R12 + q2R22 + … + qnRn2
…………………………
…………………………
…………………………
…………………………
qn = q1R1n + q2R2n + … + qnRnn
Rij表示从qi到qj的边的标签集,如果没有这样的边,则Rij = ∅
步骤2 − 解这些方程以获得最终状态关于Rij的方程
问题
构造与下面给出的自动机对应的正则表达式−
解答 −
这里初始状态和最终状态是q1。
三个状态q1、q2和q3的方程如下:
q1 = q1a + 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)*。
问题
构造与下面给出的自动机对应的正则表达式−
解答 −
这里初始状态是q1,最终状态是q2
现在我们写下方程:
q1 = q10 + ε
q2 = q11 + q20
q3 = q21 + q30 + q31
现在,我们将求解这三个方程:
q1 = ε0* [因为,εR = R]
所以,q1 = 0*
q2 = 0*1 + q20
所以,q2 = 0*1(0)* [根据Arden定理]
因此,正则表达式是0*10*。