文章目录

  • 第二章 目录
    • 【2.1】 有穷自动机(有限自动机)
    • 【2.2】 不确定有穷自动机(NFA)
    • 【2.3】 确定的有穷自动机
    • 【2.4】 格局
    • 【2.5】 DFA与NFA等效
    • 【2.6】 有ε转换的不确定有限自动机
    • 【2.7】 有ε转换NFA和无ε转换的NFA的等效
    • 【复习】
    • 【2.8】正规式和正规集
      • 【2.8.1】正规式和正规集
      • 【2.8.2】从右线性文法到正规式——联立方程
    • 【2.9】右线性文法和正规集
      • 【2.10】右线性文法与有限自动机
        • 【2.10.1】右线性文法→有限自动机
        • 【2.10.2】确定有限自动机→右线性文法
      • 【2.11】右线性语言的性质
        • 【2.11.1】DFA M的化简
      • 【2.11.2】泵浦原理
      • 【2.11.3】右线性语言的封闭性
      • 【2.11.4】有限自动机的可解问题(判定问题)
    • 【2.12】双向和有输出的有限自动机
      • 【2.12.1】双向有限自动机
      • 【2.12.2】有输出的FA

第二章 目录

【2.1】 有穷自动机(有限自动机)

我们来回顾一下文法与自动机的区别:

  • 文法:对语言的有穷说明
  • 识别器:有穷的说明无穷语言的一种方法,最简单的识别器就是有穷自动机

文法可以建模,但是文法不能有效地编程实现,因此引出了有穷自动机。

有穷自动机不能定义所有由文法定义的语言,它所能定义的语言是3型文法。

  • 第一项:状态集
  • 第二项:字母表,可以理解文自动机中的终结符集合
  • 第三项:得儿塔,映射关系(要强调的是,如果是德尔塔’,代表输入的是一个字而不是一个字母)
  • 第四项:s0起始状态、初态,是S的成员
  • 第五项:终止状态集,F是S的子集

【2.2】 不确定有穷自动机(NFA)

它的特点是,对于一个状态Si,经过函数变换,它的结果是不确定的,有可能会变到Sj,也有可能变到Sk。



注意DFA和NFA的区别,因为NFA可能到达的终止状态有多个,因此是个集合,只要其中一个能满足终止条件即可

【2.3】 确定的有穷自动机

DFA:M = (S, Σ, δ, q0, F)

由于空字的转移不影响当前状态,因此可以省略上角标

【2.4】 格局

为描述FA的工作状态,可用两个信息表明:

  • 当前时刻有限自动机所处的状态q
  • 当前时刻等待输入的字符串ω

这两者构成一个瞬间描述,称为格局,用(q, ω)表示。

符号“|-”表示连接两个格局,从第一个格局变为第二个格局。


【2.5】 DFA与NFA等效

NFA简单明了,容易编程,但是很难编程实现特性,因为一旦走错(如上图),可能要进行大量回溯。但是DFA很难编程实现,所以我们希望通过NFA来转换为DFA。

DFA、NFA在没有公共转移时是等效的。

由于DFA是NFA的特例,所以DFA能接受的语言,NFA也一定能接受,相反,NFA接受的语言,则能找到一个等效的DFA接受语言。

**定理:**设L(Mn)是接受的语言,则存在DFA Md接受L(Md),满足L(Md) = L(Mn)。

【2.6】 有ε转换的不确定有限自动机

前面定义的NFA M,当有空串ε输入时,并不能进行状态转换,而且NFA也不能接受空串,除非NFA的初态也是终态,下面的NFA,在输入空串ε时,也能进行状态转换。

虽然经过之前的学习,我们知道了理论上是不允许出现空串的,但实际中,如果不允许空串的出现,会很难以实现。

引入概念“ε闭包,又写作ε-closure()

简单来说q状态的ε闭包就是q经过零个、一个或多个空字符串所能达到的下态的集合。

定理:ε-closure({q1, q2}) = ε-closure(q1) + ε-closure(q2)

这里要注意Ia的定义,通俗讲是指经过弧a所能到达所有空字的转移的下态的集合


例:

【2.7】 有ε转换NFA和无ε转换的NFA的等效

其中,“当ε-closure(q0)含F的一个状态”,意思就是说,原自动机是否能识别空字ε。识别就是能不能从初态由ε到达终态。

例子:

【复习】

我们来看底下这张图,老师先讲了无空字转移的FA分为NFA和DFA,他们两者是可以转换的,我们的目的一般是要得到DFA。

但后面又讲到,在实际中是很难不使用空字的,因此我们的解决思路是,先把带空字的NFA转换为不带空字的NFA,然后再转换为DFA,我们今天要讲的就是:将带空字的NFA转换为带空字的DFA(也有可能是将带空字的NFA转换为不带空字转移的DFA,这里是老师画错了还是口误?)。


【2.8】正规式和正规集

【2.8.1】正规式和正规集

设G为正规式,则L(G)是它可以识别的正规集。

  1. 空字、空集是正规式(正规式是一个模型,可以识别正规集,相当于自动机),分别表示的正规集是{空字},空集。
  2. 任意一个字母表的成员α是正规式,表示的正规集是{α}
  3. 若A、B是正规式,则A、B的正规运算也是正规式,比如A或B,A连接B,A的闭包,B的闭包等。若A、B是正规式,表示的正规集是L(A)、L(B),且L(A)、L(B)的集合运算也是正规集。

    一些运算

【2.8.2】从右线性文法到正规式——联立方程

什么是右线性文法?推导出的式子如果包含非终结符,只能有一个且一定在最右边。
右线性文法RG、正规式R。

【2.9】右线性文法和正规集

我们想要让右线性文法RG、自动机FA、正规式R三者之间相互转换。上一小节中,我们已经讨论了RG如何到R,使用的是联立方程法。

如果我们已知两个右线性文法所识别的对象(语言集),我们希望构造一个新的右线性文法,新右线性文法识别的对象(语言集)是这两个右线性文法识别的对象(语言集)的或。

我们采取先构造、再证明的方法。


如果,一个语言是正规集,那么它一定可以通过上图的方法构造一个闭包为右线性文法。

【2.10】右线性文法与有限自动机

【2.10.1】右线性文法→有限自动机

至此,我们已经知道了,右线性文法和正规集之间的互相转换。现在我们来讨论,右线性语言与有限自动机的关系,它们如何等价转换?因为自动机容易编程实现。

非终结符 - 状态 + {H},引入吸纳状态,H是新的终态表示,因为文法没有识别态的概念。

q0 = S

为了自动机能识别空字,我们引入“当S → e 包含于 P”。当文法能识别空字,F 要包含S,否则不包含。

反过来看最后两行,如果A接受a映射到B,则原式应该属于P。
如果非终结符A,接收小a,到达新终结态H,则原式应该属于P。

证明:

例1:
B输入a有两种可能。具有不确定性,推导式理应用属于符号,不应用等号,这里简写了。

【2.10.2】确定有限自动机→右线性文法



【2.11】右线性语言的性质

【2.11.1】DFA M的化简

找一个状态数比DFA M少的DFA M1,且满足L(M) = L(M1),称为对M的化简。

如何化简?

  1. 将M的Q,按终止态和非终止态分成两个子集。
  2. 将基本划分再不断细分
  3. 删去M1中不可达状态,得最小化的DFA

【2.11.2】泵浦原理

利用泵浦原理可以证明某个语言不是正规集。可以得出哪些问题不可以用正规集或文法或自动机来建模。

用途:泵引理给出一个语言是正规语言的必要条件。

泵引理:

  1. 如果L是Σ上的正规 语言,则存在一个正整数N(与L(句子长度)有关)。


【2.11.3】右线性语言的封闭性


之前我们用文法证明了xxxxx的各种运算也是封闭的,接下来就用自动机证明它们是封闭的,而且补集也是封闭的。
连接、或、闭包、补、交、差集。

【2.11.4】有限自动机的可解问题(判定问题)

【2.12】双向和有输出的有限自动机

ppt 第72页

  1. 双向有限自动机
  2. 有输出的FA

有限自动机的类型很多,下面介绍双向有限 自动机和有输出的自动机,因为它们有用。

【2.12.1】双向有限自动机

【2.12.2】有输出的FA

  1. 米兰机
    输出与输入有关

  2. 摩尔机
    输出只与状态有关

形式语言与自动机——第二章 自动机相关推荐

  1. 【第二章 语言及文法】形式语言与自动机第二章个人总结复习笔记分享!(含文件、持续更新...)

    目录 一.总览 二.2.1 [语言的定义与运算] 2.2 [文法] 2.3 [文法的分类] 说明 网盘链接 参考教材 有用的话请点个赞吧,后续有时间会持续更新. 提示:本文内容全是我一人学习总结而来, ...

  2. 《编译原理教程(第四版)胡元义》第二章 词法分析

    第二章 词法分析 2.1词法分析器的设计方法 1.词法分析器的处理结构(2种): 第一种: 词法分析器和语法分析器完全分开 ​ 词法分析器的输出(单词符号流)作为语法分析器的输入 ​ 将词法分析工作作 ...

  3. 人工智能:第二章 知识表示方法

    第二章 知识表示方法 教学内容:本章讨论知识表示的各种方法,是人工智能课程三大内容(知识表示.知识推理.知识应用)之一,也是学习人工智能其他内容的基础. 教学重点:状态空间法.问题归约法.谓词逻辑法. ...

  4. 【学习笔记】编译原理 第二章 文法和语言

    以下为参考课件与<编译技术>(张莉等著)的个人整理,若有错误欢迎指出 第二章 文法和语言 文章目录 第二章 文法和语言 一.文法的非形式讨论 二.文法的形式定义 1.文法的形式定义 2.推 ...

  5. 王道考研 计算机网络笔记 第二章:物理层

    本文基于2019 王道考研 计算机网络: 2019 王道考研 计算机网络 个人笔记总结 第一章:王道考研 计算机网络笔记 第一章:概述&计算机网络体系结构 后续章节将陆续更新- 第二章 一.物 ...

  6. 计算机组成原理-第二章 数据表示与运算

    计算机组成原理-第二章 数据表示与运算 一.数据的表示 1.数值型数据的表示(重点难点) 1.1数值型数据的表示--进位制 1.2数值型数据表示-码制 1.3数值型数据的表示--定点数 1.4数值型数 ...

  7. 2021-08-08概率论与数理统计-第二章

    文章目录 概率论与数理统计-第二章 概率论与数理统计-第二章

  8. 软件构造 第二章 第一节 软件生命周期和版本控制

    软件构造第二章 第一节 软件生命周期和版本控制 基本内容 Software Development Lifecycle (SDLC) Traditional software process mode ...

  9. 第二节认识计算机教案,第二章 第二节 局域网的构建 教学设计_博客

    <第二章 第二节 局域网的构建 教学设计_博客>由会员分享,可在线阅读,更多相关<第二章 第二节 局域网的构建 教学设计_博客(3页珍藏版)>请在装配图网上搜索. 1.第二章 ...

最新文章

  1. python close函数_Matplotlib的close()函数使Tkinter GUI窗口关闭
  2. java修改JFrame默认字体
  3. [云炬创业基础笔记] 第四章测试15
  4. docker-compose执行报错(selinux所致):write /proc/self/attr/keycreate: permission denied
  5. 又栽了?苹果侵犯高通三项专利需赔偿3100万美元
  6. 年底各类年会邀请函也要美美的设计
  7. 如何在ngRepeat中使用Bootstrap Span元素
  8. 将有格式的int解析成float
  9. node-cookie- session
  10. 华为主题锁屏壁纸换不掉_华为手机的不明照片是哪来的?这几个设置得关闭,否则128G也不够...
  11. Windows XP下用Modem发送传真(ZZ)
  12. Nginx 域名跳转配置
  13. Dockerfile Registry WebUI 之 docker-registry-frontend 基础应用
  14. 陈省身文集51——闭黎曼流形高斯-博内公式的一个简单的内蕴证明
  15. Android 恢复出厂设置流程分析
  16. 联想笔记本无法识别USB(通用串行总线(USB)的控制器问题)
  17. linux添加驱动模块,Linux驱动模块添加
  18. linux设备模型:devtmpfs虚拟文件系统分析
  19. 计算机公式SUBSTITUTE,全了,SUBSTITUTE函数常用套路集合!
  20. Nginx 502 Bad Gateway 的错误的解决方案

热门文章

  1. python自定义一个函数求序列中的偶数_使用range函数创建一个从2到10的偶数列表 alist...
  2. 让Windows XP启动更快
  3. 本原多项式 M序列和AES不可约多项式
  4. 疫情之下代运营行业揭秘,找速卖通代运营为什么要认准官方代运营商?
  5. 一个密码本(ACodebook)使用说明
  6. Java大佬是怎样炼成的3-4
  7. 凤凰教育商学院成立 致力于为教育机构提供运营方案
  8. Kubernetes DaemonSet使用详解
  9. 985、211的他们,最终为何选择了培训?
  10. 图片和视频编辑之旋转角度问题