【计算理论】下推自动机 PDA ( 上下文无关语言 CFL 的 泵引理 | 泵引理反证示例 | 自动机扩展 )
文章目录
- 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.上下文无关文法形式化定义 2.上下 ...
- 形式语言与自动机 Part.5 上下文无关语言与下推自动机(PDA)
课程名:形式语言与自动机 作者:Lupinus_Linn 许可证:CC-BY-NC-SA 3.0 创作共用-署名-非商业性-相同方式共享 署名(英语:Attribution,BY):您(用户)可以复制 ...
- 形式语言与自动机 第6章 上下文无关语言的性质
文章目录 第6章 上下文无关语言的性质 CFL 的缩胀定理和 Ogden 定理 CFL 缩胀定理 Ogden 定理 CFL 的封闭性质和判定性质 CFL 封闭性质 CFL 判定性质 CFL 的成员资格 ...
- 【计算理论】不可判定性 ( 停机问题 | 图灵机语言是否空集问题 | 图灵机是否等价问题 | 是否存在自动机接受图灵机语言问题 | 莱斯定理 Rice‘s Theorem )
文章目录 一.不可判定性 ( Undecidability ) 二."停机问题" 不可判定 三."图灵机语言是否空集问题" 不可判定 四."图灵机是否 ...
- 【计算理论】计算理论总结 ( 上下文无关文法 CFG 转为下推自动机 PDA 示例 2 ) ★★
文章目录 一.上下文无关文法 CFG 转为下推自动机 PDA 流程 二.上下文无关文法 CFG 转为下推自动机 PDA 示例 2 参考博客 : [计算理论]上下文无关语法 ( 语法组成 | 规则 | ...
- 【计算理论】计算理论总结 ( 上下文无关文法 CFG 转为下推自动机 PDA 示例 1 ) ★★
文章目录 一.上下文无关文法 CFG 转为下推自动机 PDA 流程 二.上下文无关文法 CFG 转为下推自动机 PDA 示例 1 参考博客 : [计算理论]上下文无关语法 ( 语法组成 | 规则 | ...
- 【计算理论】计算理论总结 ( 下推自动机计算过程 | 上下文无关文法 CFG 转为下推自动机 PDA ) ★★
文章目录 一.下推自动机计算过程 二.上下文无关文法 CFG 转为下推自动机 PDA 流程 参考博客 : [计算理论]上下文无关语法 ( 语法组成 | 规则 | 语法 | 语法示例 | 约定的简写形式 ...
- 【计算理论】上下文无关语法 ( CFG ) 转为 下推自动机 ( PDA )
文章目录 I . 上下文无关语法 ( CFG ) 转为 下推自动机 ( PDA ) II . 下推自动机 ( PDA ) 三个状态 III . 下推自动机 ( PDA ) qstartq_{start ...
- 【计算理论】可判定性 ( 可判定性总结 )
文章目录 一.可判定性总结 二.概览 一.可判定性总结 确定性有限自动机 , 下推自动机 , 图灵机 是目前提到过的计算模型 ; 关于 确定性有限自动机 的所有计算问题都是 可判定的 ; 关于 图灵机 ...
最新文章
- 我也没想到 springboot + rabbitmq 做智能家居,会这么简单
- 独家 | 数据转换:标准化vs 归一化(附代码链接)
- ZooKeeper配置中出现Error contacting service. It is probably not running
- matlab多个绘图,合并多个绘图
- MATLAB Simulink
- MathWorks 中国
- hdu 1575Tr A
- mysql要怎么定义环境变量_mysql设置环境变量
- Hive 常见问题与技巧【Updating】
- (二)深入浅出TCPIP之再识TCP,理解TCP三次握手(上)
- python修改密码业务_Python: 修改LDAP密码
- 微课|玩转Python轻松过二级(3.1节):列表常用方法
- 小程序切换账户拉取仓库文件的appid提示
- 相对URL拼接为绝对URL的过程
- 如何在内存中存储有序数据?
- 算法笔记_面试题_5.验证二叉搜索树
- SQL Server 列存储索引强化
- vision画流程图的软件_程序流程图用什么软件画?
- 485串口测试工具软件_【实例】如何用串口软件调试变频器?
- 分享两款免费的流程图、原型图工具
- kuangbin专题十二 HDU1069 Monkey and Banana
- 利用Python实现腾讯校园招聘状态查询