形式语言与自动机理论期末复习慕课
重点是:各种类型转换
**
后面出现好多图片转存失败,还是挂个文档pdf链接吧
0积分下载链接
**
集合相乘
AxB,其实就是做笛卡尔积。
注意一点:ヾ(≧▽≦*)o
A
0
=
ϵ
A^0=\epsilon
A0=ϵ
考点:
A
2
A^2
A2
归纳法的一个例题
FA,NFA,DFA的定义与之间的联系
- FA:有限状态自动机
- NFA:非确定状态有穷自动机
- DFA:确定状态有穷自动机
- FA包括NFA和DFA
- NFA和DFA的区别:NFA对于一个输入可以有多个输出状态,而DFA只能有一个。
DFA
幂集
设有集合A,由A的所有子集组成的集合,称为A的幂集,记作2A,即:2A={S|S⊆A}。
NFA
上面的不同也就是造成:
也就是:对于一个输入字符可以有多个输出状态,造成了其不确定性
有限状态自动机的三种表示方式
说明:下列三种方式表示的是同一个DFA
-
五元组表示
-
状态转移图表示
- 状态转移表表示
设计DFA满足相应的语言L
步骤:
- 先得出语言的状态,在这个题中,状态有两个:输入了偶数个1和输入了奇数个1
- 根据情况画出状态转移图
- 标出箭头(开始)和双圈(接受/结束)状态。
- 验证:输入的句子完毕后如果是达到终止状态,则该DFA满足语言L
状态转移函数的拓展
-
DFA的状态转移函数的拓展
-
为什么要拓展?
我的理解是:普通的状态转移函数(即上面没有那个小尖尖的 δ \delta δ),只能输入一个字符。
而拓展的状态转移函数即 δ ^ \hat\delta δ^,可以输入一个字符串。
如下图定义中, ω \omega ω 便是一个字符串, a a a是一个字符
-
-
NFA的状态转移函数的拓展
正则语言
NFA的例子
对于NFA,即非确定状态有穷自动地,给它一个输入,它可以对应不同的输出状态
各种类型的转换
###NFA转换为DFA
对于任何一个NFA,都存在一个与其等价的DFA
从 q 0 开 始 , 得 到 的 状 态 为 { q 0 , q 1 } , 和 { q 0 } , 这 两 个 就 是 新 的 状 态 集 , 从q_0开始,得到的状态为\{q_0,q_1\},和\{q_0\},这两个就是新的状态集, 从q0开始,得到的状态为{q0,q1},和{q0},这两个就是新的状态集,
然 后 对 这 两 个 状 态 集 进 行 新 一 轮 的 输 入 字 符 得 到 状 态 集 , 对 所 有 新 出 现 的 状 态 集 都 如 此 操 作 , 直 到 不 出 现 新 的 状 态 集 然后对这两个状态集进行新一轮的输入字符得到状态集,对所有新出现的状态集都如此操作,直到不出现新的状态集 然后对这两个状态集进行新一轮的输入字符得到状态集,对所有新出现的状态集都如此操作,直到不出现新的状态集
DFA转正则表达式
有两种方法,第一种比较复杂,适用于机器进行操作,考试大概率不考,在此不做介绍。
方法步骤的文字描述(下方有步骤的图描述,更好懂一点):
-
状态消除法
-
状态消除法的例子:
解题:1.添加新的开始状态和结束状态
2.消除节点,注意这个节点的入度和出度
例题2:
解答:
注意:这里下面的图片中有错误 中间部分是(……)* ,少打了一个星号,最终结果也少打了这个星号
-
正则表达式转 ε − N F A \varepsilon - NFA ε−NFA
对于任何正则表达式,都存在与之等价的 ε − N F A \varepsilon -NFA ε−NFA
例题:
例题2:
ε − N F A 转 N F A \varepsilon-NFA转NFA ε−NFA转NFA
-
题目:
-
首先要会画下面这样一个表格:
- 其中 δ \delta δ 的表格相当于只输入一个字符,包括空字符 ε \varepsilon ε
- δ ^ \hat{\delta} δ^的表格如图红字的说明
- ε − N F A 转 N F A \varepsilon-NFA转NFA ε−NFA转NFA
DFA转正则文法
下面的图注意:只有指向终结状态才可以产生终结符
正则文法转FA
CFG转CNF
乔姆斯基范式 乔姆斯基范式文法(Chomsky normal form ,CNF)、
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wZxCm3p7-1637332940290)(https://i.loli.net/2021/11/19/gQqJpzWnw1aoM8i.png)]
CNF转GNF
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FcV1ADVf-1637332940293)(https://i.loli.net/2021/11/19/xRerWvIHbPNVQht.png)]
文法的化简
- 三个步骤
第一步,消除无用符号
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j7G0KhP5-1637332940295)(https://i.loli.net/2021/11/19/mcQ4qkuVFB57DRI.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Dgic4MvF-1637332940296)(https://i.loli.net/2021/11/19/qWtGFaDgjneEBJ4.png)]
注意下图是先去掉产生,用得到的去掉产生之后得到的式子,再去去掉可达
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0S2vbFxV-1637332940299)(https://i.loli.net/2021/11/19/oTU173NOQlkefWJ.png)]
第二步,去空产生式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VLAeGm32-1637332940299)(https://i.loli.net/2021/11/19/rs2gqAcBhIjOWMp.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PTWuEISM-1637332940301)(https://i.loli.net/2021/11/19/BQ6JPzFXYWm7usg.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ninWuY6v-1637332940302)(https://i.loli.net/2021/11/19/6qFIYZu7XcNwHRz.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yZJnsQvy-1637332940303)(https://i.loli.net/2021/11/19/1JziZtmcVDd7WuR.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VnJAXz2G-1637332940305)(https://i.loli.net/2021/11/19/LiMEq9bB4CasVIZ.png)]
第三步,消除单元产生式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hmSadPGs-1637332940308)(https://i.loli.net/2021/11/19/B6Hkoh2jz3ucr1s.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-M7sPmjje-1637332940309)(https://i.loli.net/2021/11/19/5kROQFiv1jPJSgZ.png)]
状态的空转移 ε \varepsilon ε
如图下,在有 ε \varepsilon ε 的两个状态之间,可以不读入输入即进行转移。
例子:
正则表达式的递归定义
正则语言中,a+b表示a|b
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qTWq0ZhP-1637332940314)(https://i.loli.net/2021/11/16/Dz98ECQPivgK1kZ.png)]
正则表达式的符号优先级
正则表达式与正则语言的区别与联系
- 正则语言的定义:
- 形式语言理论中最简单的语言类,是上下文无关语言类的一个真子类,在乔姆斯基语言分层中处于最低层。又称 3型语言。正则语言有两种描述方法:①文法描述;②正则表达式与接受器。
- 正则表达式的定义:
- 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
区别:正则语言是语言类,正则表达式是逻辑公式
两者联系
RE是RL的一种描述
正则语言是正则集,可以用称为正则表达式的简单式子来表示。对任意一个给定的正则表达式可以构造出不确定有限自动机来接收它,反过来,从任意有限自动机可以找出它所接受的正则表达式。
NFA,DFA, ε − N F A \varepsilon-NFA ε−NFA,正则表达式之间的关系
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ms4DUN97-1637332940317)(https://i.loli.net/2021/11/16/EGZ7HQzay8ABWo5.png)]
正则表达式化简
- 简单常用化简规则
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BrMeSGJ0-1637332940320)(https://i.loli.net/2021/11/16/pAi8PE9KqDuabe7.png)]
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f7dsjR7S-1637332940324)(https://i.loli.net/2021/11/16/l4yS7sFa2iKUGgZ.png)]
判断一个语言是否是正则语言
-
如何说明一个语言是正则语言
- 不能用满足泵引理来证明它是正则语言
- 能被一个有穷状态机表示出来的语言是正则语言
- 能写出正则表达式的语言是正则语言
- 实际上正则表达式和有穷状态自动机是可以等价的(具体关系可看本文目录中的
NFA,DFA,正则表达式之间的关系
),所以上面的两种判断其实可以也可以说是一种 - 故:如果要说明一个语言是正则语言,可以写出它的正则表达式或者画出它的状态转移图
- 如下两个例题,是正则语言
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XxmwfEiV-1637332940326)(https://i.loli.net/2021/11/16/NJbkW125lofV6rd.png)]
-
说明一个语言不是正则语言:泵引理
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-StYw3p3Z-1637332940327)(https://i.loli.net/2021/11/16/Fm4HSBUOhntzpKE.png)]
满足泵引理是一个正则语言的必要条件,即 正 则 语 言 ⇀ 泵 引 理 正则语言\rightharpoonup泵引理 正则语言⇀泵引理
如果是正则语言,则一定满足泵引理;如果不满足泵引理,则一定不是正则语言;这两命题互为逆否命题且都是正确的
例题:
M = ( S , Σ , δ , s o , F ) M=(S,\Sigma,\delta,s_o,F) M=(S,Σ,δ,so,F)
状态的等价性
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xJDJc8zb-1637332940329)(https://i.loli.net/2021/11/19/1MCEITwZf2RUQgd.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lwS7ZOvq-1637332940330)(https://i.loli.net/2021/11/19/BcaeMhLs9NGOnkv.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ui90AXF3-1637332940333)(https://i.loli.net/2021/11/19/cGNajDQOrStghvW.png)]
DFA最小化
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Tdxcu9kU-1637332940335)(https://i.loli.net/2021/11/19/Mrlqf4V2UZeNuAR.png)]
解答:
竖排的A,横排的H没画出来,是为了避免(A,A)(B,B)…这样的状态对出现,因为它们自身很明显是不可区分的
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o76fua9b-1637332940337)(https://i.loli.net/2021/11/19/iKm2JNjBurhXOY8.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7cNilDQC-1637332940337)(https://i.loli.net/2021/11/19/xXcuHIVaCs1AZhW.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-enlKhCmb-1637332940339)(https://i.loli.net/2021/11/19/Lz3KJkrZPXtnli6.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pnEEFfbK-1637332940343)(https://i.loli.net/2021/11/19/kGApDqNWd6Ixe8a.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SxLZYuCp-1637332940344)(https://i.loli.net/2021/11/19/NCewOnl8WHGzUtD.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wxlPoCAd-1637332940346)(https://i.loli.net/2021/11/19/VNgXlsnBC4ev5uR.png)]
例题2:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sE1v29U7-1637332940347)(https://i.loli.net/2021/11/19/J8U9ZgpDtr5LHCj.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g4Un8Ix9-1637332940349)(https://i.loli.net/2021/11/19/R1oU4krs6CvfzLm.png)]
语法分析树
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SdEfXm3k-1637332940349)(https://i.loli.net/2021/11/19/3QkAUVDZHhu6med.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LI8LT9yA-1637332940351)(https://i.loli.net/2021/11/19/PWhUk5gZySnLe12.png)]
文法的歧义性
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zeZlLHqe-1637332940353)(https://i.loli.net/2021/11/19/Z4kHvxRUYI1tpwu.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8zglhv5E-1637332940353)(https://i.loli.net/2021/11/19/kuHYrP15Lthi6XB.png)]
消除左递归
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9O0FZ5Lb-1637332940357)(https://i.loli.net/2021/11/19/DU4ZKqzslSQjtVd.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EDJgYVQX-1637332940359)(https://i.loli.net/2021/11/19/C17uiXaVdPzHIxZ.png)]
间接左递归讲解视频 11:00
这个例题 有点复杂难懂 讲得很好
CNF
GNF
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4XmMHuZl-1637332940361)(https://i.loli.net/2021/11/19/k6jGmUhqNV12a8w.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-56ENzwaX-1637332940362)(https://i.loli.net/2021/11/19/fOeK2pFUPLI3TbN.png)]