当前课程知识点:软件理论基础 >  第六章 正则语言的性质与DFA优化 >  6.3 非正则语言的判定 1 >  Video

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

Video在线视频

Video

下一节:Video

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

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

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

现在介绍正则语言判定性质的第三部分

非正则语言的判定

在上一节里面我们介绍了泵引理

泵引理它是介绍了

是对一个无限的正则语言

它满足的必要条件

这个必要条件指

只要是这个语言是无限的正则语言

它一定存在一个正整数m

那对任意的语言当中的串

只要这个串的长度大于或等于m的话

这个串一定能够分成三个部分

x、y、z

并且满足下面这两个条件

就是xy的长度小于或等于m

y的长度大于或等于1

对任意的ixy的i次方z

都应该在这个无限的正则语言L当中

只要是无限正则语言

它是满足这个条件的

那如果不满意它

那这个语言就不是正则语言

下面我们介绍泵引理的应用

那我们泵引理用到哪呢

就是证明一个语言不是正则语言

这个泵引理刚才我们是用自然语言

把它的条件叙述出来的

那我们现在可以把刚才的泵引理

写成这个逻辑表示形式

刚才泵引理不就是说对无限正则语言

一定存在一个正整数m

对任意的一个字符串w

只要是大于或等于m的话

那这个w它一定分解为xyz

也就存在x 存在y 存在z

它满足y不等于空串

xy是小于或等于m的

这个时候对任意的k

则k大于或等于0的话

xy的k次方

z一定是L的

也就是说对于无限正则语言

这个结论是必须满足的

要证明一个无限语言不是正则语言

那就是这个结论它是不满足的

也就是我们把这个逻辑形式

它的否定形式要表示出来

那也就是这个命题的否定形式

可以表示成为这种形式

刚才这里是存在一个正整数m

那它的否定形式是任意的

对任意的正整数m

刚才是对任意的w

那我就是只要找到一个w

这个w是大于或等于m的

这个w原来是存在某一个分解xyz

存在xyz

现在这个w它任意的表示成为

xyz这三个子串

只要是y不等于空串

xy是小于或等于m的

那这个时候 我们只要找到一个k就可以了

也就是找到一个反例

使得xy的k次方z

不在这个L里面

只要是使这个逻辑形式成立的话

那这个语言就不是正则语言

从自然语言写成逻辑

从逻辑到它的否定形式

实际上大家将来学习了一级逻辑

这个表示形式是很简单能写出来的

那下面我们怎么样去利用这样的表示

来证明一个语言不是正则语言

那我们的证明步骤

根据刚才的这个否定形式

我们翻译成为自然语言

就是第一 选取一个任意的正整数m

第二个 找一个长度至少是m的这一个串

这个串当然是属于这个L的

再然后把这个w任意的分解xyz

这xyz是任意的分解

当然它必须要满足y不等于空串

xy是小于等于m的

不论怎么写

只要是满足这两点就可以了

最后我们去找一个k

也就是相当于找一个反例

使xy的k次方z 不在这个语言里面

只要是把这个(05:37)完了

那这个语言就肯定不是正则语言了

就根据我们刚才的泵引理

下面我们看一个例子

证明语言

这个语言是我们比较熟悉的

0的n次方

1的n次方

也就是0出现n个之后

1也出现n个

我们要证明这个语言不是正则的

那根据刚才的泵引理

首先对任意的正整数m去写一个w

因为我们要求w长度是大于等于m的

而且是属于这个语言里面的

那我们就选取0的m次方

1的m次方

所以我们在选取这个w的时候

是你证明这个结论当中非常关键的一步

这个w它的长度肯定是大于或等于m的

那现在我们把这个w写成xyz的形式

w等于xyz

当然我们这个y是不等于空串的

xy是小于或等于m

只要满足这两个条件

你xyz 不论是怎么选取

任意的

那大家可以看出

只要是xy小于或等于m的话

因为这个w前面0的个数是m个

那这说明了xy它全部都是字符0

全部都是字符0

另外 y是不等于空串

那就说明y它含0的个数

肯定是大于或等于1的

那么我们现在选取xy的k次方z的时候

我们把k就取成0

k取成0

实际上就是把y 就取成空串了

那就是xz

xz我们知道y的个数

含0的个数

是大于或等于1的

那xz那就看出 它这个串当中的

因为把y取出了

那这个0的个数 就比1的个数就少

这就说明xz它就不可能满足

0的个数和1的个数是一样多

因此k等于0的时候

也就是xz它不属于这个语言L01当中

这样我们就通过泵引理严格证明了

这个语言就不是正则语言

下面我们再看另外一个例子

我们刚才讲了在正则语言这个集合之外

这个语言v

v的R次方

这个也就是叫v∈

这个语言我们说

它也不在这个正则语言这个串里面

它也是非正则语言

那我们要证明这个语言不是正则语言

怎么证呢

首先这个语言它是无限的

大家看这个语言它不会是有限语言

是无限的

我们就可以用泵引理

那用泵引理 按刚才泵引理的步骤

首先要对任意的正整数m

我找一个字符串

找这个字符串要∈这个L当中

并且这个长度是大于或等于m的

那这个选取 大家看看

既在这个L当中

长度有大于等于m

那我们选取的话

就可以选取这类的字符串

就令这个W等于a的m次方

b的m次方

这个a的m次方 b的m次方

也就是我们的v

那它的翻转就是b的m次方 a的m次方

这个字符串肯定是在L当中

它的长度应该是4m

它是大于m的

所以这个字符串是满足我们的选取条件的

现在把这个w

我们就表示成为xyz

任意的xyz

只要满足下面这两个条件

y是不等于空串

xy的长度是小于或等于m

只要满足这两个条件

xyz任意的选取

那这一选取你看

这个xy它是小于或等于m的

而a的个数因为a这个子串

是在这个串当中是前缀

它有m个

xy是长度是小于等于m的

那就说明x和y 它们全部都是字符串a

再还有y长度是大于或等于1的

就说明y含a至少要含一个a

我们就可以把y

就可以表示成为a的k次方

k是大于或等于1的

k它不可能等于0

因为我们刚才构造的y

它是长度大于或等于1

因此这个w表示串xyz就可以表示成

这样的串 因为这是a的m次方

接下来是b的m次方

b的m次方

a的m次方

那我们现在就看前面的xy

证明xy都是a

而且y的个数是大于或等于1的

所以y就在这前面a的这一部分里面

也就是y等于a的k次方

对于这个字符串里面

我们把y的i次方里面

我们把i就取2

就看我们字符串xy的2次方z

xy的2次方z

实际上就是在这个y后面再增添了一个y

也就是a的k次方

那这样 大家看

这个字符串实际上就是

前面a就成了m加k个a

再是m个b

再是m个b

然后是m个a

这个字符串xy的平方z

那从这样的一个结构

我们看看就成了a的m加k次方

b的m次方

b的m方

a的m次方

因为L是一个回文也是vv的R次方

这是一个对称的形式

而这种表示大家看

它在(13:57)这形式了

因此 这个串就不属于L

不属于L

根据我们的泵引理

就说明这个L不是正则语言

这节里面我们介绍了

怎么利用泵引理来检验一个无限的语言

不是正则语言

好 这节内容介绍完毕

谢谢大家

软件理论基础课程列表:

第一章 基础知识

-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笔记与讨论

也许你还感兴趣的课程:

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