当前课程知识点:软件理论基础 >  第四章 正则表示 >  4.2 正则语言的运算性质 >  Video

返回《软件理论基础》慕课在线视频课程列表

Video在线视频

Video

下一节:Video

返回《软件理论基础》慕课在线视频列表

Video课程教案、知识点、字幕

欢迎同学们来到《软件理论基础》的MOOC课堂

现在介绍第四章 正则表示的第二节

正则语言的运算性质

之前我们介绍了正则语言

怎么判断一个语言是正则呢

我们现在有两种方法

要么这个语言它的DFA你能够画得出来

那这个语言就是正则的

要么解释这个语言的NFA可以画出来

那这个语言也是正则的

除此之外,我们现在还没有其他的方法

能够判断一个语言是正则的

但有时候我们知道一些语言

它已经具有一些性质

根据这些性质进行一些运算之后

得到新的语言

那我们能不能通过

原来的语言的主要的性质

来判断这些新的语言的性质呢

这就是我们通过正则语言的运算

来判断语言的性质

你比如说我们给了正则语言a1、a2

它们的连接运算

它们的并运算

它们的新运算

还有它们的反转、它们的补

通过了这些运算之后

这些语言是不是还是正则的

如果这些语言

通过这些运算依然是正则的

我们就说这些正则语言

对于这些运算,它是封闭的

下面给了正则语言L1

任何一个正则语言

它应该对应一个NFA

而任何一个NFA

都等价于只有一个终态的NFA

所以我们假设L1它对应的

只有一个终态NFA 是M1

正则语言L2

同样它也对应一个只有一个终态的NFA,M2

那下面的讨论当中,我们都做这样的假设

我们给了这个L1是个正则语言

它对应的这里的自动机是M1

L2这个例子

它对应的NFA是只有一个终态的M2

我们下面在进行运算的时候

我们也把这两个例子

作为我们要介绍的实例

首先我们介绍第一个性质就是语言的并

正则语言的并

L1、L2都是正则语言

它们并了之后

我们看它们的自动机能不能构造出来

这是我们刚才讲的L1对应的自动机

NFA M1

这个是L2对应的NFAM2

通过这两个自动机

要构造一个新的NFA

那么我们只需要加一个初态

或加一个终态

再分别用ε把它连接起来

这得到的NFA也只有一个终态

但这个NFA 它接受的语言

从这个构造的原理我们可以看出

它要么到这个自动机里面再接受

要么到这个自动机里面接受

来得到的就分别是语言L1或L2的并

我们从这里看L1并L2

它的NFA我们能不能得到

所以L1并L2就是一个正则语言

我们看这个例子

另外一个是L2的一个例子

那它得到的并自动机就是这样的

它的语言也就是这两个语言的并

下面我们介绍正则语言的另外一个运算

就是语言的连接

假设L1、L2都是正则语言

那它们的连接是不是正则语言呢

假设L1对应的只有一个终态的NFAM1

L2对应的只有一个终态的NFA M2

那这两个自动机我们要做连接的话

构造新的NFA

就我们增加一个终态

这前面 把前面的M1的初态

作为新的自动机的初态

这里增加一个ε转移

再增加一个终态的ε转移

这样得到一个新的

只有一个终态的NFA

它接受的语言很容易验证

就是L1、L2两个正则语言的连接的NFA

两个正则语言的连接

依然是正则语言

我们看这个例子

它两个自动机的连接

就是我们这两个正则语言的

得到的新的语言

这就是a的n次方bba

那下面我们再看正则语言的

新的一个运算

叫星运算,星闭包

假设a1是正则语言

它们做星运算是不是还是正则语言

也就是说它的NFA我们构造出来

L1对应的自动机是M1,只有一个终态

要构造它的星闭包的自动机

也就是它接受的语言做任意一次的连接

依然在这个语言里面

那我们只需要

增加一个初态,增加一个终态

然后增加一个ε迁移

这样这个语言它做任意一次它的连接

都在这个语言里面

但是我们要注意

在这个语言里面 星闭包它包含有空串

那么如果是原来的这个自动机里面

它有空串

那么ε是L1*的

但我们并不一定知道

原来的语言里面包含ε

所以在这种情况下

我们必须要增加一个ε转移

这个转移就保证了

这个自动机一定包含空串ε

我们下面看这个实例

这个就是对应a的n次方b的

它的自动机M1

它增做了增加了这里ε迁移和这个状态之后

得到的是L1的星闭包

这样正则语言的形式上依然是正则语言

下面我们再看正则语言的反转

我们给了正则语言L1

它对应的自动机M1

它的反转的自动机能不能构造出来呢

在这里我们只需要

把它所有的迁移都反转

而且它的初态和终态也进行一个互换

因为我们讲了L1只有一个终态

所以这里的互换是可行的

那这样得到的自动机M′

它对应的语言就是L1这个语言的反转

下面我们看这个例子

这是L1这个语言 它对应的自动机是M1

我们把它的迁移都反转一下

再把它的终态和初态反转一下

得到的这个语言

就是它的反转的自动机

这就说明正则语言的反转

依然是正则语言

正则语言的补

如果语言是集合 集合它是要补的

那我们给了L1是正则语言

它对应的自动机

下面只讨论它的DFA了

这个DFA它的终态可能有多个

这个没关系

我们假设接受的L1的DFA是M1

另外我们将所有的终态改为非终态

再把所有的非终态改为终态

这样得到的自动机M′

这个M′接受的语言L12

这个语言刚好就是我们a1的它的补集

说明正则语言它的补依然是正则语言

我们这里给了一个例子

这个例子它的自动机是DFA

这里它的状态

把它的终态和非终态进行互换

得到的自动机就是它的补集的自动机

那它的语言就是原来的语言的补

就得到了正则语言

对于并集 连接 反转 星闭包 还有补

对这些运算都是封闭的

那现在我们还有一个运算

就是正则语言的交

正则语言a1、a2

那它们的交是不是还是正则呢

我们按前面的证明方法

就是构造它们的自动机

如果是它的DFA或者NFA能够构造出来

那当然就说明它是正则的

那现在我们已经有了前面一些运算之后

下面我们就不需要构造

这两个语言交的自动机

我们直接用一个集合的德摩根公式

或者德摩根律

那从L1、L2是正则的

我们就知道 它们的补是正则的

那它们的补是正则的

那它们得到的并就是正则的

这个并做正则

那这个语言再做补的时候

也是正则的

根据德摩根公式

这个语言 就跟这个交是相等的

所以我们就推导两个正则语言的交

依然是正则的

像这里给了这个语言

这个语言都是正则的

它们做交

我们很容易算出就等于这么一个集合

这个集合肯定是正则的

那我们就得出了正则语言对我们

提到的这几种运算都是封闭的

这节内容讲到这里

谢谢大家

软件理论基础课程列表:

第一章 基础知识

-1.1 概要

--第一节

-1.2 数学基础

--Video

-1.3 图

--Video

-1.4 证明方法

--Video

-1.5 语言基础

--Video

-1.6 语言运算

--Video

-习题--作业

第二章 确定有限自动机

-2.1 确定有限自动机的概念

--Video

-2.2 确定有限自动机的定义

--Video

-2.3 扩展转移函数

--Video

-2.4 正则语言

--Video

-2.5 DFA构造

--Video

-习题--作业

第三章 非确定有限自动机

-3.1 非确定有限自动机的概念

--Video

-3.2 e转移

--Video

-3.3 非确定有限自动机的定义

--Video

-3.4 扩展转移函数

--Video

-3.5 等价性证明

--Video

-3.6 文本搜索

--Video

-习题--作业

第四章 正则表示

-4.1 单一终结状态的NFA

--Video

-4.2 正则语言的运算性质

--Video

-4.3 正则表示和语言

--Video

-4.4 正则表示和正则语言

--Video

-4.5 正则语言的同态

--Video

-4.6 正则表示的代数定律

--Video

-习题--作业

第五章 正则文法和正则语言

-5.1 文法

--Video

-5.2 线性文法

--Video

-5.3 正则文法与正则语言

--Video

-5.4 自动机的积

--Video

-习题--作业

第六章 正则语言的性质与DFA优化

-6.1 基本问题

--Video

-6.2 泵引理

--Video

-6.3 非正则语言的判定 1

--Video

-6.4 非正则语言的判定 2

--Video

-6.5 DFA的优化 1

--Video

-6.6 DFA的优化 2

--Video

-习题--作业

第七章 上下文无关文法和推导

-7.1 上下文无关文法

--Video

-7.2 规约和推导

--Video

-7.3 语法分析树

--Video

-7.4 规约、推导和语法分析树之间的关系

--Video

-7.5 上下文无关语言

--Video

-习题--作业

第八章 CFG的应用与文法的二义性

-8.1 CFG的应用

--Video

-8.2 CFG的转化

--Video

-8.3 文法二义性

--Video

-8.4 二义性的消除方法

--Video

-8.5 CFG的构造方法

--Video

-8.6 CFG的构造实例

--Video

-第八章 CFG的应用与文法的二义性--习题

第九章 下推自动机

-9.1 PDA介绍

--Video

-9.2 PDA的定义

--Video

-9.3 PDA的即时描述

--Video

-9.4 PDA的语言

--Video

-9.5 PDA与CFG的关系

--Video

-习题--作业

第十章 下推自动机与CFG化简规范

-10.1 确定下推自动机

--Video

-10.2 DPDA与其他语言的关系

--Video

-10.3 终态型DPDA和空栈型DPDA

--Video

-10.4 消除无用符号

--Video

-10.5 消除e产生式

--Video

-10.6 消除单一产生式

--Video

-10.7 CFG的化简与Chomsky范式

--Video

-习题--作业

第十一章 上下文无关语言的性质

-11.1 CFL的必要条件

--Video

-11.2 CFL的Pumping引理

--Video

-11.3 CFL的闭运算性质

--Video

-11.4 CFL的同态性质

--Video

-11.5 CFL的交运算

--Video

-11.6 CFL的判定性质

--Video

-习题--作业

第十二章 Turing机

-12.1 图灵机的介绍

--Video

-12.2 图灵机的定义

--Video

-12.3 图灵机的即时描述

--Video

-12.4 图灵机的计算

--Video

-12.5 图灵机的编程技术

--Video

-习题--作业

第十三章 图灵机的扩展

-13.1 Turing理论

--Video

-13.2 图灵机带的扩展

--Video

-13.3 图灵机移动的扩展

--Video

-13.4 受限图灵机

--Video

-13.5 图灵机与其他自动机

--Video

-习题--作业

第十四章 不可判定问题

-14.1 图灵机编码

--Video

-14.2 对角线语言与通用语言

--Video

-14.3 图灵机语言的性质

--Video

-14.4 判定问题和语言

--Video

-14.5 计算复杂性问题

--Video

-第十四章 不可判定问题--习题

第十五章 自动机及应用

-15.1 时间自动机

--Video

-15.2 Buchi自动机

--Video

-15.3 软件形式化验证

--Video

-15.4 模型检测方法

--Video

-15.5 M3C模型检测系统

--Video

-习题--作业

期中考试

-期中考试

Video笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。