作为独异点的重要应用,教材中引入了有穷自动机的相关概念。限于篇幅,教材中只是简单地提到了概念性的介绍。出于兴趣,我们小组深入探究了自动机的相关知识。😕 😃 😦 😒 😡 😐 😗
摘要
定理
(1)对于任意自动机或半自动机 M M M都存在它的独异点 T M T_M TM;
(2)对于任意独异点 T T T都存在一个自动机 M M M,使 M M M的独异点 T M T_M TM同构于 T T T。
一、自动机的定义与分析
半自动机
一个有穷半自动机是一个三元组 M = < Q , Σ , δ > M=<Q,\Sigma ,\delta> M=<Q,Σ,δ> ,其中 Q Q Q为有穷状态集, Σ \Sigma Σ 为有穷输入字符集, δ : Q × Σ → Q \delta :Q\times \Sigma \rarr Q δ:Q×Σ→Q 为状态转移函数。
例如
自动机
一个有穷自动机是在有穷半自动机基础上的五元组 M = < Q , Σ , Γ , δ , λ > M=<Q,\Sigma,\Gamma ,\delta,\lambda> M=<Q,Σ,Γ,δ,λ> ,其中 Γ \Gamma Γ为有穷输出字符集, λ : Q × Σ → Γ \lambda:Q\times \Sigma\rarr\Gamma λ:Q×Σ→Γ 是输出函数
自动机为自动机加上了输出功能,描述了在各个状态下输入不同的字符可以输出什么样的结果
例如
二、自动机的独异点
自动机的扩展
我们定义集合
Σ
∗
\Sigma^*
Σ∗,其元素为由
Σ
\Sigma
Σ中的字符组成的全体字符串,并且定义
"
Λ
"
"\Lambda"
"Λ"为空字符串。
定义
δ
∗
:
Q
×
Σ
∗
→
Q
\delta^*:Q\times\Sigma^*\rarr Q
δ∗:Q×Σ∗→Q,有
(1)
δ
∗
(
S
1
,
"
a
"
)
=
δ
(
S
1
,
′
a
′
)
\delta^*(S_1,"a")=\delta(S_1,'a')
δ∗(S1,"a")=δ(S1,′a′);
(2)
δ
∗
(
S
1
,
"
Λ
"
)
=
S
1
\delta^*(S_1,"\Lambda")=S_1
δ∗(S1,"Λ")=S1;
(3)
δ
∗
(
S
1
,
"
a
b
"
)
=
δ
∗
(
δ
∗
(
S
1
,
"
a
"
)
,
"
b
"
)
\delta^*(S_1,"ab")=\delta^*(\delta^*(S_1,"a"),"b")
δ∗(S1,"ab")=δ∗(δ∗(S1,"a"),"b");
定义
M
∗
=
<
Q
,
Σ
∗
,
δ
∗
>
M^*=<Q,\Sigma^*,\delta^*>
M∗=<Q,Σ∗,δ∗>为半自动机M的扩展
以上描述的是半自动机的扩展,用同样的方法可以得到自动机的扩展。
其中
Σ
∗
\Sigma^*
Σ∗和
δ
∗
\delta^*
δ∗的定义与上相同,定义
Γ
∗
\Gamma^*
Γ∗的元素是
Γ
\Gamma
Γ中的全部字符组成的字符串。
定义
λ
∗
:
Q
×
Γ
∗
→
Γ
∗
\lambda^*:Q\times\Gamma^*\rarr\Gamma^*
λ∗:Q×Γ∗→Γ∗,
(1)
λ
∗
(
S
1
,
"
Λ
"
)
=
"
Λ
"
\lambda^*(S_1,"\Lambda")="\Lambda"
λ∗(S1,"Λ")="Λ"
(2)
λ
∗
(
S
1
,
"
a
"
)
=
"
λ
(
S
1
,
′
a
′
)
"
\lambda^*(S_1,"a")="\lambda(S_1,'a')"
λ∗(S1,"a")="λ(S1,′a′)"
(3)
λ
∗
(
S
1
,
"
a
b
"
)
=
λ
∗
(
S
1
,
"
a
"
)
+
λ
∗
(
δ
∗
(
S
1
,
"
a
"
)
,
"
b
"
)
\lambda^*(S_1,"ab")=\lambda^*(S_1,"a")+\lambda^*(\delta^*(S_1,"a"),"b")
λ∗(S1,"ab")=λ∗(S1,"a")+λ∗(δ∗(S1,"a"),"b") (此处“+”是字符串的连接)
定义
M
∗
=
<
Q
,
Σ
∗
,
Γ
∗
,
δ
∗
,
λ
∗
>
M^*=<Q,\Sigma^*,\Gamma^*,\delta^*,\lambda^*>
M∗=<Q,Σ∗,Γ∗,δ∗,λ∗>是自动机
M
M
M的扩展
自动机的独异点
对于每一个
Σ
∗
\Sigma^*
Σ∗ 中的字符串,与
δ
∗
\delta^*
δ∗一起都可以生成一个
Q
→
Q
Q\rarr Q
Q→Q的一元函数
例如,对于以上半自动机为例
我们发现
f
a
b
=
f
a
∘
f
b
f_{ab}=f_a\circ f_b
fab=fa∘fb
f
Λ
=
I
Q
f_\Lambda=I_Q
fΛ=IQ
f
a
b
c
=
(
f
a
∘
f
b
)
∘
f
c
=
f
a
∘
(
f
b
∘
f
c
)
f_{abc}=(f_a\circ f_b)\circ f_c=f_a\circ (f_b\circ f_c)
fabc=(fa∘fb)∘fc=fa∘(fb∘fc) (可结合)
f
a
∘
f
Λ
=
f
Λ
∘
f
a
=
f
a
f_a\circ f_\Lambda=f_\Lambda\circ f_a=f_a
fa∘fΛ=fΛ∘fa=fa (单位元)
于是代数系统 T M = < { f s t r i n g ∣ s t r i n g ∈ Σ ∗ } , ∘ , f Λ > T_M=<\{f_{string}|string\in \Sigma^*\},\circ,f_\Lambda> TM=<{fstring∣string∈Σ∗},∘,fΛ> 是一个独异点
定理
(1)对于任意自动机或半自动机
M
M
M都存在它的独异点
T
M
T_M
TM;
(2)对于任意独异点
T
T
T都存在一个自动机
M
M
M,使
M
M
M的独异点
T
M
T_M
TM同构于
T
T
T。
独异点和自动机之间的一一对应关系可以得到自动机的许多性质,加以应用就能解决实际问题。
三、商自动机以及自动机的化简
自动机的等价
设
M
1
=
<
Q
1
,
Σ
1
,
Γ
1
,
δ
1
,
λ
1
>
M_1=<Q_1,\Sigma_1,\Gamma_1,\delta_1,\lambda_1>
M1=<Q1,Σ1,Γ1,δ1,λ1>和
M
2
=
<
Q
2
,
Σ
2
,
Γ
2
,
δ
2
,
λ
2
>
M_2=<Q_2,\Sigma_2,\Gamma_2,\delta_2,\lambda_2>
M2=<Q2,Σ2,Γ2,δ2,λ2>是有穷自动机。如果它们满足:
(1)
Σ
1
=
Σ
2
=
Σ
,
Γ
1
=
Γ
2
=
Γ
\Sigma_1=\Sigma_2=\Sigma,\ \Gamma_1=\Gamma_2=\Gamma
Σ1=Σ2=Σ, Γ1=Γ2=Γ;
(2)
q
0
∈
Q
1
,
q
0
′
∈
Q
2
q_0\in Q_1,q_0'\in Q_2
q0∈Q1,q0′∈Q2分别是
M
1
M_1
M1和
M
2
M_2
M2的初始状态,且对于
∀
ω
∈
Σ
∗
\forall \omega\in\Sigma^*
∀ω∈Σ∗都有
λ
1
∗
(
q
0
,
ω
)
=
λ
2
∗
(
q
0
′
,
ω
)
\lambda_1^*(q_0,\omega)=\lambda_2^*(q_0',\omega)
λ1∗(q0,ω)=λ2∗(q0′,ω)则称
M
1
M_1
M1和
M
2
M_2
M2是等价的有穷自动机,记作
M
1
∼
M
2
M_1\sim M_2
M1∼M2。
从等价有穷自动机的定义来看,如果两个有穷自动机等价,那么意味着两个自动机在任何相同的输入字符串下都能得到相同的输出字符串,也就是说两个自动机是完全可以相互替代的。对于上述 M 1 , M 2 M_1,M_2 M1,M2,如果 M 1 M_1 M1的状态和转移函数、输出函数个数少于 M 2 M_2 M2, M 2 M_2 M2就可以化简成 M 1 M_1 M1。自动机之间的化简是可以通过等价来实现的!
商自动机
定义一个
Q
×
Q
Q\times Q
Q×Q上的等价关系
∼
=
{
<
q
1
,
q
2
>
∣
ω
∈
Σ
∗
,
λ
∗
(
q
1
,
ω
)
=
λ
∗
(
q
2
,
ω
)
}
\sim=\{<q_1,q_2>|\omega\in\Sigma^*,\lambda^*(q_1,\omega)=\lambda^*(q_2,\omega) \}
∼={<q1,q2>∣ω∈Σ∗,λ∗(q1,ω)=λ∗(q2,ω)}
类似于商代数的概念,我们可以定义商自动机
对于有穷自动机
M
=
<
Q
,
Σ
,
Γ
,
δ
,
λ
>
M=<Q,\Sigma,\Gamma,\delta,\lambda>
M=<Q,Σ,Γ,δ,λ>,令
M
‾
=
<
Q
/
∼
,
Σ
,
Γ
,
δ
‾
,
λ
‾
>
\overline M=<Q/\sim,\Sigma,\Gamma,\overline\delta,\overline\lambda>
M=<Q/∼,Σ,Γ,δ,λ>,满足
称
M
‾
\overline M
M是
M
M
M的商自动机。
定理
M
2
M_2
M2是
M
1
M_1
M1的商自动机,则
M
1
∼
M
2
M_1\sim M_2
M1∼M2。
四、结语
自动机是独异点的重要应用,自动机是处理形式语言的工具。通过寻找商代数,可以找到一个自动机的最简化的形式。这样的过程,就是化简自动机的过程。
在教材中没有深入讨论有穷自动机的化简算法,我们小组将会探究化简自动机的简单方法。
推荐参考资料:蒋宗礼《形式语言与自动机理论》:https://download.csdn.net/download/qq_33880788/10275619
百度网盘分享
链接:https://pan.baidu.com/s/1yFTJXULPmyssW6CNzh-37A?pwd=a36r
提取码:a36r