形式语言与自动机理论期末复习

形式语言与自动机理论期末复习慕课

哈工大形式语言 慕课链接🔗

重点是:各种类型转换
在这里插入图片描述
**

后面出现好多图片转存失败,还是挂个文档pdf链接吧
0积分下载链接
**

集合相乘

AxB,其实就是做笛卡尔积。

注意一点:ヾ(≧▽≦*)o
A 0 = ϵ A^0=\epsilon A0=ϵ
考点:
A 2 A^2 A2

归纳法的一个例题

image-20211115174333702

FA,NFA,DFA的定义与之间的联系

  • FA:有限状态自动机
  • NFA:非确定状态有穷自动机
  • DFA:确定状态有穷自动机
- FA包括NFA和DFA
- NFA和DFA的区别:NFA对于一个输入可以有多个输出状态,而DFA只能有一个。

DFA

image-20211115175609515

image-20211115180041019

幂集

设有集合A,由A的所有子集组成的集合,称为A的幂集,记作2A,即:2A={S|S⊆A}。

NFA

image-20211116100529445

上面的不同也就是造成:

image-20211116100626671

也就是:对于一个输入字符可以有多个输出状态,造成了其不确定性

有限状态自动机的三种表示方式

说明:下列三种方式表示的是同一个DFA

  • 五元组表示

    image-20211115180439868
  • 状态转移图表示

image-20211115191752723

image-20211115191825079

  • 状态转移表表示

image-20211115191933317

设计DFA满足相应的语言L

步骤:

  1. 先得出语言的状态,在这个题中,状态有两个:输入了偶数个1和输入了奇数个1
  2. 根据情况画出状态转移图
  3. 标出箭头(开始)和双圈(接受/结束)状态。
  4. 验证:输入的句子完毕后如果是达到终止状态,则该DFA满足语言L

image-20211115192224096


image-20211115192720035

image-20211115192703541

image-20211115193138532

状态转移函数的拓展

  • DFA的状态转移函数的拓展

    • 为什么要拓展?

      我的理解是:普通的状态转移函数(即上面没有那个小尖尖的 δ \delta δ),只能输入一个字符。

      而拓展的状态转移函数即 δ ^ \hat\delta δ^,可以输入一个字符串。

      如下图定义中, ω \omega ω 便是一个字符串, a a a是一个字符

      image-20211115194211109


image-20211115194306182


image-20211115194425145


image-20211115194813216


  • NFA的状态转移函数的拓展

    image-20211116102051840

正则语言

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-272QlSEt-1637332940212)(https://i.loli.net/2021/11/15/1jWLoTvxAIfZuEs.png)]

NFA的例子

对于NFA,即非确定状态有穷自动地,给它一个输入,它可以对应不同的输出状态

image-20211116095611639


image-20211116143636210


image-20211116101733728

各种类型的转换

###NFA转换为DFA

对于任何一个NFA,都存在一个与其等价的DFA

从 q 0 开 始 , 得 到 的 状 态 为 { q 0 , q 1 } , 和 { q 0 } , 这 两 个 就 是 新 的 状 态 集 , 从q_0开始,得到的状态为\{q_0,q_1\},和\{q_0\},这两个就是新的状态集, q0{q0,q1},{q0},

然 后 对 这 两 个 状 态 集 进 行 新 一 轮 的 输 入 字 符 得 到 状 态 集 , 对 所 有 新 出 现 的 状 态 集 都 如 此 操 作 , 直 到 不 出 现 新 的 状 态 集 然后对这两个状态集进行新一轮的输入字符得到状态集,对所有新出现的状态集都如此操作,直到不出现新的状态集

image-20211115162101938


image-20211118161800648

image-20211118172350423

image-20211118163527916

DFA转正则表达式

有两种方法,第一种比较复杂,适用于机器进行操作,考试大概率不考,在此不做介绍。

方法步骤的文字描述(下方有步骤的图描述,更好懂一点):

image-20211118202434268

image-20211118202648572

image-20211118202610950

image-20211118202717224

  • 状态消除法

    image-20211116160235211

    • 状态消除法的例子:

      image-20211116160439887

      解题:1.添加新的开始状态和结束状态

      ​ 2.消除节点,注意这个节点的入度和出度

      image-20211116160637672

      image-20211116162406914

      image-20211116162509546

      例题2:

      image-20211118202900619

      解答:

      image-20211118202924002

      image-20211118204155314

      image-20211118204212331

      image-20211118204222602

      image-20211118204233546

      image-20211118204245266

      image-20211118204256754

      注意:这里下面的图片中有错误 中间部分是(……)* ,少打了一个星号,最终结果也少打了这个星号

      image-20211118204348381

      image-20211118204714864

正则表达式转 ε − N F A \varepsilon - NFA εNFA

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eTIglKkP-1637332940257)(https://i.loli.net/2021/11/16/BhWviFRTkwxYJL8.png)]

对于任何正则表达式,都存在与之等价的 ε − N F A \varepsilon -NFA εNFA

image-20211116163036590

例题:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AtUDCUpT-1637332940273)(https://i.loli.net/2021/11/16/wr96AVCQfkxWJ5P.png)]

例题2:

image-20211118201531027

在这里插入图片描述

ε − N F A 转 N F A \varepsilon-NFA转NFA εNFANFA

  • 题目:

    image-20211118174702962

  • 首先要会画下面这样一个表格:

    • 其中 δ \delta δ 的表格相当于只输入一个字符,包括空字符 ε \varepsilon ε
    • δ ^ \hat{\delta} δ^的表格如图红字的说明

image-20211118171755379

  • ε − N F A 转 N F A \varepsilon-NFA转NFA εNFANFA

image-20211118173455953

image-20211118173926610

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)]

image-20211119123332316

文法的化简

  • 三个步骤

image-20211119093721047

第一步,消除无用符号

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j7G0KhP5-1637332940295)(https://i.loli.net/2021/11/19/mcQ4qkuVFB57DRI.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Dgic4MvF-1637332940296)(https://i.loli.net/2021/11/19/qWtGFaDgjneEBJ4.png)]

image-20211119093844266

注意下图是先去掉产生,用得到的去掉产生之后得到的式子,再去去掉可达

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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)]

第三步,消除单元产生式

image-20211119095222789

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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 ε 的两个状态之间,可以不读入输入即进行转移。

image-20211116144254552

例子:image-20211116144848568

image-20211116144903150

正则表达式的递归定义

正则语言中,a+b表示a|b

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qTWq0ZhP-1637332940314)(https://i.loli.net/2021/11/16/Dz98ECQPivgK1kZ.png)]

正则表达式的符号优先级

image-20211116150056919

正则表达式与正则语言的区别与联系

  • 正则语言的定义:
    • 形式语言理论中最简单的语言类,是上下文无关语言类的一个真子类,在乔姆斯基语言分层中处于最低层。又称 3型语言。正则语言有两种描述方法:①文法描述;②正则表达式与接受器。
  • 正则表达式的定义:
    • 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

区别:正则语言是语言类,正则表达式是逻辑公式

两者联系

RERL的一种描述

正则语言是正则集,可以用称为正则表达式的简单式子来表示。对任意一个给定的正则表达式可以构造出不确定有限自动机来接收它,反过来,从任意有限自动机可以找出它所接受的正则表达式。

NFA,DFA, ε − N F A \varepsilon-NFA εNFA,正则表达式之间的关系

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ms4DUN97-1637332940317)(https://i.loli.net/2021/11/16/EGZ7HQzay8ABWo5.png)]

正则表达式化简

  1. 简单常用化简规则

image-20211116155624402

  1. [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BrMeSGJ0-1637332940320)(https://i.loli.net/2021/11/16/pAi8PE9KqDuabe7.png)]

  2. image-20211116164159625

  3. image-20211116164214567

  4. [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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泵引理

如果是正则语言,则一定满足泵引理;如果不满足泵引理,则一定不是正则语言;这两命题互为逆否命题且都是正确的

例题:

image-20211116170511424

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)]

解答:

image-20211119084230602

竖排的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)]

image-20211119084930766

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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)]

消除左递归

image-20211119123504907

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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

image-20211119130722737

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)]


  • 4
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值