【形式语言与自动机】学习day3--状态消除法证明DFA与正则表达式的等价性,正则表达式的代数定理,正则语言的性质


title: 形式语言与自动机
date: 2024-01-27 17:58:49
tags: Computer Science

形式语言与自动机

DFA与正则表达式的等价性–状态消除法

  • 从DFA中逐个删除状态;

  • 用标记了正则表达式的新路径替换被删掉的路径;

  • 保持自动机等价.

    在这里插入图片描述

在这里插入图片描述

例:在这里插入图片描述

在这里插入图片描述

这里增加空转移是为了消去所有路径,这里指q0和q2

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

定理4:正则表达式定义的语言都能被有穷自动机识别.

任何正则表达式e,都存在与其等价的epsilon-NFA A,即L(A) = L(e),并且A满足:

  • 仅有一个接受状态;
  • 没有进入开始状态的边;
  • 没有离开接受状态的边.

在这里插入图片描述

在这里插入图片描述

正则表达式的代数定律

含有变量的两个正则表达式,如果以任意语言替换其变量,二者所表示的语言仍然相同,则称这两个正则表达式等价,满足等价的正则表达式满足一些代数定律。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

订正:分配律

在这里插入图片描述

需要注意的是,不满足正则表达式的运算的不能用于判断,比如这里求交就不是我们包括的运算:

在这里插入图片描述

正则语言的性质

泵引理

注意,泵引理只是正则语言的必要条件,因此只能证明不是正则语言

在这里插入图片描述

在这里插入图片描述

应用–判断是否是正则语言

从正则语言的定义上来看,正则语言无法记住之前读入的输入的数量,因此下面L01显然不是正则语言,我们用泵引理形式化的证明:

在这里插入图片描述

在这里插入图片描述

再来看一个题

在这里插入图片描述

L 等价于 L = { 0 { 0 , 1 } ∗ 1 } , 显然等价 L等价于L = \{0\{0,1\}^*1\},显然等价 L等价于L={0{0,1}1},显然等价
因此不能只根据阶数进行判断。

MYhill -Nerode THeorem

封闭性

正则语言经过某些运算得到的新语言仍保持正则,称正则语言在这些运算下封闭.

定理6:正则语言在并,连接和闭包运算下保持封闭.

这一点由正则表达式的定义可以显然得到:在这里插入图片描述

补运算定理7:

在这里插入图片描述在这里插入图片描述在这里插入图片描述

闭包运算定理8:

在这里插入图片描述

闭包运算定理8证明:

在这里插入图片描述

交运算定理9:

在这里插入图片描述

这里说明一个思考:

在这里插入图片描述

这里我们用Leq的子集L01说明了Leq的正则性,实际上,是因为它能构造等价的表达式L01 = L(0*1*)∩Leq,且我们已知L(0*1*)是正则,反过来Leq是不能说明L(0*1*)是正则的,子集仍然并不能说明原集合的正则性

差运算定理10:

在这里插入图片描述

反转运算定理11:

先给出反转的定义:
字符串 ω = a 1 a 2 . . . a n 的反转,记作 ω R ,定义为: ω R = a n a n − 1 . . . a 1 . 语言 L 的反转,记作 L R ,定义为 L R = { ω R ∈ ∑ ∗ ∣ ω ∈ L } . 字符串\omega = a_1a_2...a_n的反转,记作{\omega}^R,定义为:\\ {\omega^R = a_na{n-1}...a_1}.\\ 语言L的反转,记作L^R,定义为\\ L^R=\{{\omega}^R \in {\sum}^*|\omega \in L\}. 字符串ω=a1a2...an的反转,记作ωR,定义为:ωR=anan1...a1.语言L的反转,记作LR,定义为LR={ωRωL}.
反转的封闭性:

在这里插入图片描述

同态运算定理12:

先给出同态的定义:

在这里插入图片描述

同态的封闭性:

在这里插入图片描述

逆同态封闭定理13:

在这里插入图片描述

证明:在这里插入图片描述

在这里插入图片描述

判定性质

空性,有穷性和无穷性

定理14:

具有n个状态的有穷自动机M接受的集合S;

  • S是非空的,当且仅当M接受某个长度小于n的串;
  • S是无穷的,当且仅当M接受某个个长度为m的串,n<=m<2n

因此,对于正则语言:

  • 存在算法,判断其是否为空,只需检查全部长度小于n的串;
  • 存在算法,判断其是否为无穷,只需检查全部长度由n到2n-1的串.

证明:在这里插入图片描述

在这里插入图片描述

正则语言的等价性

存在算法,判定两个有穷自动机是否等价(接受语言相同).

状态的等价性

D F A   A = ( Q , Σ , δ , q 0 , F ) 中两个状态 p 和 q ,对任意 ω ∈ Σ ∗ : δ ^ ( p , ω ) ∈ F = δ ^ ( q , δ ) ∈ F , 则称这两个状态是等价的,否则称为可区分的 DFA\ A =(Q,\Sigma,\delta,q_0,F)中两个状态p和q,对任意\omega \in {\Sigma}^*:\\ \hat{\delta}(p,\omega) \in F = \hat{\delta}(q,\delta) \in F,\\ 则称这两个状态是等价的,否则称为可区分的 DFA A=(Q,Σ,δ,q0,F)中两个状态pq,对任意ωΣ:δ^(p,ω)F=δ^(q,δ)F,则称这两个状态是等价的,否则称为可区分的

填表算法:在这里插入图片描述

自动机的最小化

q_0,F)中两个状态p和q,对任意\omega \in {\Sigma}^*:\
\hat{\delta}(p,\omega) \in F = \hat{\delta}(q,\delta) \in F,\
则称这两个状态是等价的,否则称为可区分的
$$

填表算法:[外链图片转存中…(img-VzHbfx5T-1706449657826)]

自动机的最小化

在这里插入图片描述

  • 24
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值