文章目录

  • I . 上下文无关语言 ( CFL ) 的 泵引理 ( Pumping Lemma )
  • II . 上下文无关语言 ( CFL ) 的 泵引理 ( Pumping Lemma ) 示例
  • III . 自动机扩展

I . 上下文无关语言 ( CFL ) 的 泵引理 ( Pumping Lemma )


有些语言 在 上下文无关语法 与 下推自动机 计算能力之外 ;

通过 上下文无关语言 ( CFL ) 的 Pumping Lemma ( 泵引理 ) 可以证明上述命题 ;

( 证明的不是充要条件 , 只证明必要条件 )

上下文无关语言 ( CFL ) 的 泵引理 ( Pumping Lemma ) :

假设 AAA 是 上下文无关的语言 ( CFL ) , 一定会存在一个 泵长度 ( Pumping Length ) ppp , 使得 AAA 语言中的字符串长度都大于等于 ppp , AAA 语言中的每个字符串都可以被分为 S=uvxyzS = uvxyzS=uvxyz 五个部分 , 满足下面 333 个条件 :

  • ① i≥0i \geq 0i≥0 , uvixyiz∈Auv^i xy ^iz \in Auvixyiz∈A ; 其中 viv^ivi 表示 iii 个 vvv 串联在一起 , 如 v3v^3v3 就是 vvvvvvvvv ;
  • ② ∣vy∣≥0|vy| \geq 0∣vy∣≥0 ;
  • ③ ∣vxy∣≤p|vxy| \leq p∣vxy∣≤p ;

这是一个必要条件 , 如果某语言是 上下文无关语言 , 那么符合上述要求 ; 反过来 , 如果不符合上述要求 , 什么都不能代表 , 该语言可能是 CFL , 也可能不是 CFL ;

如果证明 某 语言不是 上下文无关语言 ( CFL ) , 先假设该语言是 CFL , 假如不符合上述 333 条件 , 说明假设不成立 , 该语言不是 CFL ;

正则表达式 也有一个 泵引理 , 注意区分 ;

II . 上下文无关语言 ( CFL ) 的 泵引理 ( Pumping Lemma ) 示例


使用 上下文无关语言 ( CFL ) 的 泵引理 ( Pumping Lemma ) 证明

C={ww∣w∈{0,1}∗}C = \{ ww | w \in \{0,1\}^* \}C={ww∣w∈{0,1}∗}

不是 上下文无关语言 ( CFL ) ;

1 . 假设 : 假设 CCC 是 上下文无关语言 ( CFL ) ;

2 . 泵长度 : 根据 泵引理 , 存在一个 泵长度 ppp ;

3 . SSS 是 语言 CCC 的字符串 : S=0p1p0p1pS = 0^p 1^p 0^p 1^pS=0p1p0p1p ;

4 . 泵引理 :

  • ① i≥0i \geq 0i≥0 , uvixyiz∈Auv^i xy ^iz \in Auvixyiz∈A ; 其中 viv^ivi 表示 iii 个 vvv 串联在一起 , 如 v3v^3v3 就是 vvvvvvvvv ;
  • ② ∣vy∣≥0|vy| \geq 0∣vy∣≥0 ;
  • ③ ∣vxy∣≤p|vxy| \leq p∣vxy∣≤p ;

5 . 根据泵引理 , 将其分为 555 部分 :

S=0p1p0p1p=uvxyzS = 0^p 1^p 0^p 1^p = uvxyzS=0p1p0p1p=uvxyz

其中 ∣vxy∣≤p|vxy| \leq p∣vxy∣≤p ;

6 . vvv 和 yyy 相等的情况讨论 :

其中 vvv 和 yyy 不能同时是 000 或 111 , 如果 vyvyvy 同时是一个数 ( 000 或 111 ) , 如果重复 vvv 和 yyy 部分 , 该重复的数字会增多 , 如 000 增多 , 111 没有增多 , 导致字符串不符合语言的要求 ;

因此 vvv 和 yyy 必须是不同的 字符 , 一个是 000 一个是 111 ;

7 . vvv 和 yyy 取值不等 并处于 中间的 101010 之间的情况讨论 :

如果 vvv 和 yyy 处于中间的 111 和 000 之间 , 那么 vvv 和 yyy 同时增加后 , 第一个 000 与 第三个 000 个数不再相等 , 第二个 111 与 第四个 111 个数不再相等 , 不符合语言要求 ;

8 . vvv 和 yyy 取值不等 并处于 左侧的 010101 之间的情况讨论 :

如果 vvv 和 yyy 处于左侧的 000 和 111 之间 , 那么 vvv 和 yyy 同时增加后 , 第一个 000 与 第三个 000 个数不再相等 , 第二个 111 与 第四个 111 个数不再相等 , 不符合语言要求 ;

9 . vvv 和 yyy 取值不等 并处于 右侧的 010101 之间的情况讨论 :

如果 vvv 和 yyy 处于右侧的 000 和 111 之间 , 那么 vvv 和 yyy 同时增加后 , 第一个 000 与 第三个 000 个数不再相等 , 第二个 111 与 第四个 111 个数不再相等 , 不符合语言要求 ;

10 . 结论 :

因此该字符串 不满足 上下文无关语言 ( CFL ) 的泵引理 ;

假设不成立 , 因此该语言 CCC 不是上下文无关语言 ;

引申 : 下推自动机 之所以无法识别 CCC 这个语言 , 是因为下推自动机的 栈是后进先出的 , 先入栈的字符 , 后出来 , 这样就使得 前后相等 的字符串无法识别 , 镜面反射的字符串可以被识别 , 如果将栈替换成 先进先出的队列 , 那么就可以识别 语言 CCC 了 ;

III . 自动机扩展


1 . 确定性优先自动机 ( DFA ) 最小化 : 确定性有限自动机 ( DFA ) 有算法可以将其最小化 , 可以找到一个最小的确定性优先自动机 与 原来的 确定性有限自动机 ( CFG ) 等价 ;

( 等价的 确定性有限自动机 DFA 所识别的语言是相同的 )

2 . 下推自动机 ( PDA ) 无法最小化 , 也无法做等价判定 ;

给定一个下推自动机 ( PDA ) , 无法优化该下推自动机 ( PDA ) , 也无法得到一个最小的下推自动机 ;

两个 下推自动机 ( PDA ) 是否等价 也无法进行判定 ;

3 . 语言 与 计算模型 :

① 正则语言 : 对应的计算模型是 有限自动机 ( FA ) , 包括 确定性有限自动机 ( DFA ) , 非确定性有限自动机 ( NFA ) ;

② 上下文无关语言 : 对应的计算模型是 上下文无关语法 ( CFG ) , 下推自动机 ( PDA ) ;

4 . 自动机演化

① 下推自动机 ( PDA ) : 下推自动机 ( PDA ) 比 确定性有限自动机 ( DFA ) 多了一个栈结构 ;

② 图灵机 : 图灵机 比 下推自动机 多了一个栈 , 图灵机 有 222 个栈结构 ;

③ 自动机扩张 : 再加一个栈 , 333 个栈的效果与 222 个栈的效果基本相同 , 大于等于 222 个栈的效果都是相同的 , 还是图灵机 ;

【计算理论】下推自动机 PDA ( 上下文无关语言 CFL 的 泵引理 | 泵引理反证示例 | 自动机扩展 )相关推荐

  1. 计算理论——正则语言,上下文无关文法,图灵机,可判定性,可规约性

    目录 第一章 正则语言 状态图 自动机的形式化定义 非确定性 正则表达式 泵引理 使用泵引理证明某个语言非正则的方法 第二章 上下文无关文法 上下文无关文法概述 1.上下文无关文法形式化定义 2.上下 ...

  2. 形式语言与自动机 Part.5 上下文无关语言与下推自动机(PDA)

    课程名:形式语言与自动机 作者:Lupinus_Linn 许可证:CC-BY-NC-SA 3.0 创作共用-署名-非商业性-相同方式共享 署名(英语:Attribution,BY):您(用户)可以复制 ...

  3. 形式语言与自动机 第6章 上下文无关语言的性质

    文章目录 第6章 上下文无关语言的性质 CFL 的缩胀定理和 Ogden 定理 CFL 缩胀定理 Ogden 定理 CFL 的封闭性质和判定性质 CFL 封闭性质 CFL 判定性质 CFL 的成员资格 ...

  4. 【计算理论】不可判定性 ( 停机问题 | 图灵机语言是否空集问题 | 图灵机是否等价问题 | 是否存在自动机接受图灵机语言问题 | 莱斯定理 Rice‘s Theorem )

    文章目录 一.不可判定性 ( Undecidability ) 二."停机问题" 不可判定 三."图灵机语言是否空集问题" 不可判定 四."图灵机是否 ...

  5. 【计算理论】计算理论总结 ( 上下文无关文法 CFG 转为下推自动机 PDA 示例 2 ) ★★

    文章目录 一.上下文无关文法 CFG 转为下推自动机 PDA 流程 二.上下文无关文法 CFG 转为下推自动机 PDA 示例 2 参考博客 : [计算理论]上下文无关语法 ( 语法组成 | 规则 | ...

  6. 【计算理论】计算理论总结 ( 上下文无关文法 CFG 转为下推自动机 PDA 示例 1 ) ★★

    文章目录 一.上下文无关文法 CFG 转为下推自动机 PDA 流程 二.上下文无关文法 CFG 转为下推自动机 PDA 示例 1 参考博客 : [计算理论]上下文无关语法 ( 语法组成 | 规则 | ...

  7. 【计算理论】计算理论总结 ( 下推自动机计算过程 | 上下文无关文法 CFG 转为下推自动机 PDA ) ★★

    文章目录 一.下推自动机计算过程 二.上下文无关文法 CFG 转为下推自动机 PDA 流程 参考博客 : [计算理论]上下文无关语法 ( 语法组成 | 规则 | 语法 | 语法示例 | 约定的简写形式 ...

  8. 【计算理论】上下文无关语法 ( CFG ) 转为 下推自动机 ( PDA )

    文章目录 I . 上下文无关语法 ( CFG ) 转为 下推自动机 ( PDA ) II . 下推自动机 ( PDA ) 三个状态 III . 下推自动机 ( PDA ) qstartq_{start ...

  9. 【计算理论】可判定性 ( 可判定性总结 )

    文章目录 一.可判定性总结 二.概览 一.可判定性总结 确定性有限自动机 , 下推自动机 , 图灵机 是目前提到过的计算模型 ; 关于 确定性有限自动机 的所有计算问题都是 可判定的 ; 关于 图灵机 ...

最新文章

  1. 我也没想到 springboot + rabbitmq 做智能家居,会这么简单
  2. 独家 | 数据转换:标准化vs 归一化(附代码链接)
  3. ZooKeeper配置中出现Error contacting service. It is probably not running
  4. matlab多个绘图,合并多个绘图 - MATLAB Simulink - MathWorks 中国
  5. hdu 1575Tr A
  6. mysql要怎么定义环境变量_mysql设置环境变量
  7. Hive 常见问题与技巧【Updating】
  8. (二)深入浅出TCPIP之再识TCP,理解TCP三次握手(上)
  9. python修改密码业务_Python: 修改LDAP密码
  10. 微课|玩转Python轻松过二级(3.1节):列表常用方法
  11. 小程序切换账户拉取仓库文件的appid提示
  12. 相对URL拼接为绝对URL的过程
  13. 如何在内存中存储有序数据?
  14. 算法笔记_面试题_5.验证二叉搜索树
  15. SQL Server 列存储索引强化
  16. vision画流程图的软件_程序流程图用什么软件画?
  17. 485串口测试工具软件_【实例】如何用串口软件调试变频器?
  18. 分享两款免费的流程图、原型图工具
  19. kuangbin专题十二 HDU1069 Monkey and Banana
  20. 利用Python实现腾讯校园招聘状态查询

热门文章

  1. 蓝牙核心协议学习 -- 基带协议(Baseband)
  2. 博弈论(Game Theory)
  3. 安装软件总是遇到“Windows Installer 正在安装”,下载Windows Installer Clean Up安装不了
  4. s7300的db块详细说明_西门子db数据块详解
  5. vue手写列表竖向滚动
  6. nexus 5x刷入twrp 安装xposed框架
  7. 目标检测篇之---YOLO系列
  8. 入侵检测系统 IDS 简析
  9. BZOJ1812 RIV 树形dp
  10. uniapp实现简单的音乐播放器功能