形式语言与自动机 第4章 正规文法和正规集的性质

第4章 正规文法和正规集的性质

正规文法和有穷自动机

RG → \to ε \varepsilon ε-NFA

将文法中的变元看作状态,并增加一个新的状态 f f f 作为终结状态:

fct-4-1

DFA → \to RG

将文法中的变元看作状态;对于终结状态 F ,若 F 还有出边,则需要增加两条转移函数:

image-20220627215333908

正规集的缩胀定理

缩胀定理:设 A A A 是一个正规集,则 ∃ k ≥ 0 \exists k{\ge}0 k0 ,对于任何串 x x x y y y z z z x y z   ∈   A xyz{\,}{\in}{\,}A xyzA ,只要 ∣ y ∣ ≥ k |y|{\ge}k yk ,就可以将 y y y 写成 y = u v w y=uvw y=uvw v ≠ ε v\not={\varepsilon} v=ε ,并且对于 ∀ i ≥ 0 \forall i{\geq}0 i0 ,都有 x u v i w z   ∈   A xuv^iwz{\,}{\in}{\,}A xuviwzA

逆否命题:对于一个语言类 A A A ,若对 ∀ k ≥ 0 \forall k{\ge}0 k0 ,存在字符串 x x x y y y z z z x y z   ∈   A xyz{\,}{\in}{\,}A xyzA ,只要 ∣ y ∣ ≥ k |y|{\ge}k yk ,对于将 y y y 写成任意 y = u v w y=uvw y=uvw v ≠ ε v\not={\varepsilon} v=ε ,并且 ∃ i ≥ 0 \exists i{\geq}0 i0 ,使得 x u v i w z   ∉   A xuv^iwz{\,}{\not\in}{\,}A xuviwzA ,则 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={0i2iN+} 不是正规集

证明:对 ∀ k ≥ 0 \forall k{\ge}0 k0 ,取 x = 0 k ( k − 1 ) x=0^{k(k-1)} x=0k(k1) 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 1vk ,故取 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<xuv2wzk2+k<(k+1)2 ,故 x u v 2 w z ∉ L 1 xuv^2wz{\not\in}L_1 xuv2wzL1 ,即 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}} L1L2=L1L2 ,因为并运算和补运算是封闭的,所以交运算也是封闭的)

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={xyL2,xyL1}

FA 的判定问题

Th 4.9:具有 n n n 个状态的有穷自动机具有如下性质:

  • 它接受的集合非空,当且仅当它接受一个长度小于 n n n 的字符串;
  • 它接受的集合是无穷的,当且仅当它接受一个长度为 l l l 的字符串,这里 n ≤ l < 2 n n{\le}l{\lt}2n nl<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=(L1L2)(L1L2) (即对称差);若该有穷自动机接受的语言为空集,则这两个有穷自动机等价;而有穷自动机接受语言是否为空是可判定的)

有穷自动机的极小化

等价关系:对于 p , q   ∈   Q p,q{\,}{\in}{\,}Q p,qQ ,若对任意 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 等价:

极小化前算法草稿
fct-4-3-1fct-4-3-3
极小化后
fct-4-3-2

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 xzAyzA

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=0n1m2mn,m1 不是正规集

证明:考虑一列语句: 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+2i1A) ( 0 i 12 + 2 j − 1   ∉   A ) (0^i12+2^{j-1}{\,}{\not\in}{\,}A) (0i12+2j1A) ,因此 R A R_A RA 的指数是无穷的,由 Myhill-Nerode 定理得, A A A 不是正规集;

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
虽然不是入门教材,但个人感觉这才是真正的“计算机文化基础”,看看节目录就会爱不释手。<br><br>目录<br>1、1字符串、字母表和语言<br>第一 预备知识<br>1、2图和树<br>1、3归纳证明<br>1、4合<br>1、5关系<br>1、6本书提要<br>2、1有穷状态系统<br>第二 有穷自动机正规表达式<br>2、2基本定义<br>2、3非确定有穷自动机<br>2、4具有∈动作的有穷自动机<br>2、5正规表达式<br>2、6双向有穷自动机<br>2、7具有输出的有穷自动机<br>2、8有穷自动机的应用<br>3、1正规合的泵作用引理<br>第三 正规合的性质<br>3、2正规合的封闭性质<br>3、3正规合的判定算法<br>3、4Myhill-Nerode定理和有穷自动机的最小化<br>4、1动机和引言<br>第四 上下文无关文法<br>4、2上下文无关文法<br>4、3派生树<br>4、4上下文无关文法的简化<br>4、5Chomsky范式<br>4、6Greibach范式<br>4、7固有多义上下文无关语言的存在性<br>5、1非形式描述<br>第五 下推自动机<br>5、2定义<br>5、3下推自动机和上下文无关语言<br>6、1关于CFL的泵作用引理<br>第六 上下文无关语言的性质<br>6、2CFL的封闭性质<br>6、3有关CFL的判定算法<br>7、1引言<br>第七 图灵机<br>7、2图灵机模型<br>7、3可计算语言和可计算函数<br>7、4图灵机构造技术<br>7、5图灵机的修改<br>7、6Church假设<br>7、7作为枚举器的图灵机<br>7、8等价于基本模型的受限图灵机<br>8、1问题<br>第八 不可判定性<br>8、2递归语言和递归可枚举语言的性质<br>8、3通用图灵机和一个不可判定问题<br>8、4Rice定理和某些其它的不可判定问题<br>8、5Post对应问题的不可判定性<br>8、6图灵机的有效计算和无效计算:证明CFL问题不可判定性的一个工具<br>8、7Greibach定理<br>8、8递归函数论初步<br>8、9Oracle计算<br>9、1正规文法<br>第九 Chomsky谱系<br>9、2无限制文法<br>9、3上下文有关语言<br>9、4语言类之间的关系<br>第十 确定的上下文无关语言<br>10、1DPDA的标准形式<br>10、2DCFL在补运算下的封闭性<br>10、3预测机<br>10、4DCFL的其它封闭性质<br>10、5DCFL的判定性质<br>10、6LR(0)文法<br>10、7LR(0)文法与DPDA<br>10、8LR(k)文法<br>11、1三元族和完全三元族<br>第十一 语言族的封闭性质<br>11、2广义时序机映射<br>11、3三元族的其它封闭性质<br>11、4抽象语言族<br>11、5AFL运算的独立性<br>11、6小结<br>12、1定义<br>第十二 计算复杂性理论<br>12、2线性加速、带压缩和带数目的减少<br>12、3谱系定理<br>12、4复杂性量度间的关系<br>12、5转换引理和非确定谱系<br>12、6一般复杂性量度的性质:间隙定理、加速定理和并定理<br>12、7公理化复杂性理论<br>13、1多项式时间和空间<br>第十三 难解型问题<br>13、2某些NP完全问题<br>13、3co-NP类<br>13、4PSPACE完全问题<br>13、5对于P和NSPACE(logn)的完全问题<br>13、6某些可证明的难解型问题<br>13、7对于带Oracle的图灵机的P=NP问题:辨别是否P=NP时我们能力的限度<br>14、1辅助下推自动机<br>第十四 其它重要语言类锦<br>14、2栈自动机<br>14、3加标语言<br>14、4发展系统<br>14、5小结<br>参考文献<br>汉英名词索引<br>

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Air浩瀚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值