文章目录
第4章 正规文法和正规集的性质
正规文法和有穷自动机
RG → \to → ε \varepsilon ε-NFA
将文法中的变元看作状态,并增加一个新的状态 f f f 作为终结状态:
DFA → \to → RG
将文法中的变元看作状态;对于终结状态 F ,若 F 还有出边,则需要增加两条转移函数:
正规集的缩胀定理
缩胀定理:设 A A A 是一个正规集,则 ∃ k ≥ 0 \exists k{\ge}0 ∃k≥0 ,对于任何串 x x x, y y y, z z z 且 x y z ∈ A xyz{\,}{\in}{\,}A xyz∈A ,只要 ∣ y ∣ ≥ k |y|{\ge}k ∣y∣≥k ,就可以将 y y y 写成 y = u v w y=uvw y=uvw, v ≠ ε v\not={\varepsilon} v=ε ,并且对于 ∀ i ≥ 0 \forall i{\geq}0 ∀i≥0 ,都有 x u v i w z ∈ A xuv^iwz{\,}{\in}{\,}A xuviwz∈A ;
逆否命题:对于一个语言类 A A A ,若对 ∀ k ≥ 0 \forall k{\ge}0 ∀k≥0 ,存在字符串 x x x, y y y, z z z 且 x y z ∈ A xyz{\,}{\in}{\,}A xyz∈A ,只要 ∣ y ∣ ≥ k |y|{\ge}k ∣y∣≥k ,对于将 y y y 写成任意 y = u v w y=uvw y=uvw, v ≠ ε v\not={\varepsilon} v=ε ,并且 ∃ i ≥ 0 \exists i{\geq}0 ∃i≥0 ,使得 x u v i w z ∉ A xuv^iwz{\,}{\not\in}{\,}A xuviwz∈A ,则 A A A 不是正规集;
证明:取 k = n k=n k=n , n n n 为对应 DFA 的状态数;在派生出长度大于 n n n 的字符串过程中,必然会出现两个重复的状态(重复状态中间生成的字符串对应 v v v ),则该段可以缩减,也可以反复膨胀
(常用逆否命题证明某个语言类不属于正规集)
例:证明集合 L 1 = { 0 i 2 ∣ i ∈ N + } L_1=\{0^{i^2}|i{\,}{\in}{\,}N^+\} L1={0i2∣i∈N+} 不是正规集
证明:对 ∀ k ≥ 0 \forall k{\ge}0 ∀k≥0 ,取 x = 0 k ( k − 1 ) x=0^{k(k-1)} x=0k(k−1) , y = 0 k y=0^k y=0k, z = ε z={\varepsilon} z=ε ,显然 ∣ y ∣ = k |y|=k ∣y∣=k;对于任意 y = u v w y=uvw y=uvw ,由于 1 ≤ ∣ v ∣ ≤ k 1{\le}|v|{\le}k 1≤∣v∣≤k ,故取 i = 2 i=2 i=2 ,此时 k 2 < x u v 2 w z ≤ k 2 + k < ( k + 1 ) 2 k^2<xuv^2wz{\le}k^2+k{\lt}(k+1)^2 k2<xuv2wz≤k2+k<(k+1)2 ,故 x u v 2 w z ∉ L 1 xuv^2wz{\not\in}L_1 xuv2wz∈L1 ,即 L 1 L_1 L1 不是正规集
正规集的封闭性质和判定性
RL 的封闭性质
Th 4.5:正规集在并、连接和闭包运算下是封闭的
(由正规集的定义可知)
Th 4.6:正规集在补运算下封闭
(只需将对应的 FA 的终结状态和非终结状态对换)
Th 4.7:正规集在交运算下封闭
( L 1 ∩ L 2 = L 1 ‾ ∪ L 2 ‾ ‾ L_1{\cap}L_2=\overline{\overline{L_1}\cup\overline{L_2}} L1∩L2=L1∪L2 ,因为并运算和补运算是封闭的,所以交运算也是封闭的)
Th 4.8:正规集与任意集合的商运算是封闭的
(商运算: L 1 / L 2 = { x ∣ ∃ y ∈ L 2 , x y ∈ L 1 } L_1/L_2=\{x|\exists y{\,}{\in}{\,}L_2,xy{\,}{\in}{\,}L_1\} L1/L2={x∣∃y∈L2,xy∈L1} )
FA 的判定问题
Th 4.9:具有 n n n 个状态的有穷自动机具有如下性质:
- 它接受的集合非空,当且仅当它接受一个长度小于 n n n 的字符串;
- 它接受的集合是无穷的,当且仅当它接受一个长度为 l l l 的字符串,这里 n ≤ l < 2 n n{\le}l{\lt}2n n≤l<2n ;
(若接受集合非空,则对于其中任意一个字符串,若它长度大于等于 n n n,则接受过程中必然会有重复状态出现,因此可用缩胀定理将其长度缩短至小于 n n n ;若接受一个长度小于 n n n 的字符串,自然接受的集合非空)
(若接受的集合无穷,则必然接受一个长度大于等于 n n n 的串,接受过程中必然会有重复状态出现,将相邻的重复状态删去(每次删去的长度小于等于 n n n ),直至长度小于 2 n 2n 2n ;若接受一个长度为 l l l 的字符串,根据缩胀定理,可以不断膨胀,故接受的集合是无穷的)
推论:给定一个有穷自动机 M M M
- L ( M ) L(M) L(M) 是否为空是可判定的;
- L ( M ) L(M) L(M) 是否有穷是可判定的
(只需遍历所有长度小于 n n n 的字符串)
(只需遍历所有长度大于等于 n n n 且小于 2 n 2n 2n 的字符串)
Th 4.10:两个有穷自动机是否等价是可判定的
(可构造一个有穷自动机,使得 L = ( L 1 ∩ L 2 ‾ ) ∪ ( L 1 ‾ ∩ L 2 ) L=(L_1{\cap}\overline{L_2}){\cup}(\overline{L_1}{\cap}L_2) L=(L1∩L2)∪(L1∩L2) (即对称差);若该有穷自动机接受的语言为空集,则这两个有穷自动机等价;而有穷自动机接受语言是否为空是可判定的)
有穷自动机的极小化
等价关系:对于 p , q ∈ Q p,q{\,}{\in}{\,}Q p,q∈Q ,若对任意 x ∈ Σ ∗ x{\,}{\in}{\,}{\Sigma}^{\ast} x∈Σ∗ , δ ( p , x ) ∈ F \delta(p,x){\,}{\in}{\,}F δ(p,x)∈F 当且仅当 δ ( q , x ) ∈ F \delta(q,x){\,}{\in}{\,}F δ(q,x)∈F ,则称 p p p 和 q q q 等价
算法:
① 首先画一个这样的阶梯形表格,并且将终结状态和非终结状态对应的位置打上标记;
(标记了意味着不等价)
② 对于上一轮增加的新标记的一对状态,若它们可由另一对状态接受相同字母转移而来,则将前一对状态也打上标记;
③ 重复 ② ,直至没有新的标记产生,最终没有被打上标记的状态是等价的
原理:
- 若 p p p 、 q q q 等价,则 δ ( p , a ) \delta(p,a) δ(p,a) 和 δ ( q , a ) \delta(q,a) δ(q,a) 等价;
- 若 δ ( p , a ) \delta(p,a) δ(p,a) 和 δ ( q , a ) \delta(q,a) δ(q,a) 不等价,则 p p p 和 q q q 不等价;
例:将如图所示 FA 进行极小化,算法结果如右图所示,即状态 1 和状态 2 等价,状态 3 和状态 4 等价:
极小化前 | 算法草稿 |
极小化后 | |
Myhill-Nerode 定理
(这个定理比较难,简单讲一讲)
Myhill-Nerode 关系:设 A ⊆ Σ ∗ A{\,}{\subseteq}{\,}{\Sigma}^{\ast} A⊆Σ∗ , R R R 为 Σ ∗ {\Sigma}^{\ast} Σ∗ 上的等价关系,称 R R R 为关于 A A A 的 Myhill-Nerode 关系,当且仅当 R R R 满足:
- 是右不变的(即若 x R y xRy xRy ,则 x z R y z xzRyz xzRyz )
- 细分 A A A
- 具有有穷指数
R A R_A RA :设 A ⊆ Σ ∗ A{\,}{\subseteq}{\,}{\Sigma}^{\ast} A⊆Σ∗ ,定义 Σ ∗ {\Sigma}^{\ast} Σ∗ 上的等价关系 R A R_A RA 为: x R A y xR_Ay xRAy 当且仅当对任意 z ∈ Σ ∗ z{\in}{\Sigma}^{\ast} z∈Σ∗ , x z ∈ A ⟺ y z ∈ A xz{\in}A\iff yz{\in}A xz∈A⟺yz∈A ;
Myhill-Nerode 定理:设 A ⊆ Σ ∗ A{\,}{\subseteq}{\,}{\Sigma}^{\ast} A⊆Σ∗ ,下列几个命题是等价的:
- A A A 是一个正规集
- 在 Σ ∗ {\Sigma}^{\ast} Σ∗ 上存在一个关于 A A A 的 Myhill-Nerode 关系
- 关系 R A R_A RA 具有有穷指数
(常用第三条反证第一条)
例:证明 A = 0 n 1 m 2 m ∣ n , m ≥ 1 A={0^n1^m2^m|n,m{\ge}1} A=0n1m2m∣n,m≥1 不是正规集
证明:考虑一列语句: 0012 0012 0012, 00012 00012 00012, 000012 000012 000012 …… 0 n 12 0^n12 0n12 …… ,其中 i ≠ j i{\not=}j i=j 时,有 ( 0 i 12 + 2 i − 1 ∈ A ) (0^i12+2^{i-1}{\,}{\in}{\,}A) (0i12+2i−1∈A) 而 ( 0 i 12 + 2 j − 1 ∉ A ) (0^i12+2^{j-1}{\,}{\not\in}{\,}A) (0i12+2j−1∈A) ,因此 R A R_A RA 的指数是无穷的,由 Myhill-Nerode 定理得, A A A 不是正规集;