IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【编译原理】泵引理 -> 正文阅读

[人工智能]【编译原理】泵引理

泵引理

浅浅冒泡一下我这个科研废物。

泵引理:若 A A A是一个正则语言,则存在一个数 p p p(泵长度)使得,如果 s s s A A A中任一长度不小于 p p p的字符串,那么 s s s可以被分成 3 3 3段, s = x y z s=xyz s=xyz,满足下述条件:

  1. 对每一个 i ≥ 0 , x y i z ∈ A i\geq0,xy^iz\in A i0,xyizA
  2. ∣ y ∣ > 0 |y|>0 y>0
  3. ∣ x y ∣ ≤ p |xy|\leq p xyp

这定理乍一看给我整不会了,然后以下借助例题说一下我的理解。(如有错误可以告诉我呜呜呜)

泵引理就是:在一个正则语言 A A A中有任意一个字符串 s s s,这个字符串由 3 3 3个子串 x 、 y 、 z x、y、z xyz构成(即 s = x y z s=xyz s=xyz),且 s s s中的一个子串(也就是 y y y)在自我重复 i i i次后,组成的新字符串 x y i z xy^iz xyiz仍在语言 A A A中。

注意:泵引理只能证明一个语言不是正则语言,而不能证明一个语言是正则语言。


例1:用泵引理证明语言 B = { 0 n 1 n ∣ n ≥ 0 } B=\{0^n1^n|n\geq0\} B={0n1nn0}不是正则的。

  1. 先假设语言正则:假设相反, B B B是正则的。
  2. 找合适的字符串 s s s,一般与语言本身形式长得一样:设 p p p是泵引理给出的泵长度。选择字符串 s = 0 p 1 p s=0^p1^p s=0p1p
  3. 利用泵引理证明语言非正则,一般考察 x y y z xyyz xyyz

书上说,满足条件的子串 y y y有以下三种情况——
(1) y y y中只有 0 0 0:比如对于 000111 000111 000111 x = 00 , y = 0 , z = 111 x=00, y=0, z=111 x=00,y=0,z=111,那么 x y y z = 0000111 xyyz=0000111 xyyz=0000111 0 0 0 1 1 1多,矛盾。
(2) y y y中只有 1 1 1:比如对于 000111 000111 000111 x = 000 , y = 11 , z = 1 x=000, y=11, z=1 x=000,y=11,z=1,那么 x y y z = 0001111 xyyz=0001111 xyyz=0001111 1 1 1 0 0 0多,矛盾。
(3) y y y中有 0 0 0 1 1 1:比如对于 000111 000111 000111 x = 00 , y = 01 , z = 11 x=00, y=01, z=11 x=00,y=01,z=11,那么 x y y z = 00010111 xyyz=00010111 xyyz=00010111,顺序乱了,不是所有 0 0 0都在 1 1 1前面,矛盾。

但是考虑 ∣ x y ∣ ≤ p |xy|\leq p xyp,又因为 s s s p p p个字符都为 0 0 0,说明 x y xy xy肯定由全 0 0 0组成。
而且 ∣ y ∣ > 0 |y|>0 y>0,所以 y y y必然由 0 0 0组成。那就是上面的第(1)种情况。

例2:用泵引理证明语言 C = { w ∣ w 中 0 和 1 的 个 数 相 同 } C=\{w|w中0和1的个数相同\} C={ww01}不是正则的。

  1. 先假设语言正则:假设相反, C C C是正则的。
  2. 找合适的字符串 s s s,一般与语言本身形式长得一样:设 p p p是泵引理给出的泵长度。选择字符串 s = 0 p 1 p s=0^p1^p s=0p1p
  3. 利用泵引理证明语言非正则,一般考察 x y y z xyyz xyyz:同上。

例3:用泵引理证明语言 D = { w w ∣ w ∈ { 0 , 1 } ? } D=\{ww|w\in\{0,1\}^*\} D={www{0,1}?}不是正则的。

  1. 先假设语言正则:假设相反, D D D是正则的。
  2. 找合适的字符串 s s s,一般与语言本身形式长得一样:设 p p p是泵引理给出的泵长度。选择字符串 s = 0 p 1 0 p 1 s=0^p10^p1 s=0p10p1
  3. 利用泵引理证明语言非正则,一般考察 x y y z xyyz xyyz
    同样地, s s s p p p个字符串都是 0 0 0,所以根据泵引理, y y y必然由 0 0 0组成。
    那么考察 001001 001001 001001,选择 x = 0 , y = 0 , z = 1001 x=0, y=0, z=1001 x=0,y=0,z=1001
    x y y z = 0001001 xyyz=0001001 xyyz=0001001,前面一串 0 0 0和后面一串 0 0 0的个数不相等,不满足 s s s的形式,矛盾。

参考:《计算理论导引(第3版)》

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-03-30 18:23:58  更:2022-03-30 18:25:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/9 2:08:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码