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=anan−1...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)中两个状态p和q,对任意ω∈Σ∗:δ^(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)]