【计算理论】计算理论总结 ( 下推自动机计算过程 | 上下文无关文法 CFG 转为下推自动机 PDA ) ★★
文章目录
- 一、下推自动机计算过程
- 二、上下文无关文法 CFG 转为下推自动机 PDA 流程
参考博客 :
- 【计算理论】上下文无关语法 ( 语法组成 | 规则 | 语法 | 语法示例 | 约定的简写形式 | 语法分析树 )
- 【计算理论】上下文无关语法 ( 代数表达式 | 代数表达式示例 | 确定性有限自动机 DFA 转为 上下文无关语法 )
- 【计算理论】上下文无关语法 CFG ( CFG 设计示例 | CFG 歧义性 | Chomsky 范式 | 上下文无关语法 转为 Chomsky 范式 )
- 【计算理论】下推自动机 PDA 及 计算示例
- 【计算理论】下推自动机 PDA ( 设计下推自动机 | 上下文无关语法 CFG 等价于 下推自动机 PDA )
- 【计算理论】上下文无关语法 ( CFG ) 转为 下推自动机 ( PDA )
- 【计算理论】下推自动机 PDA ( 上下文无关语言 CFL 的 泵引理 | 泵引理反证示例 | 自动机扩展 )
一、下推自动机计算过程
1 . 下推自动机 ( PDA ) 提升了自动机计算能力 : 在上述自动机的基础上 , 提升该自动机的计算能力 , 引入一个新的栈结构 ;
栈特点 : ① 后进先出 , ② 存储能力无限 ;
2 . 下推自动机计算有两个部分 , 一个是字符的读取 , 一个是栈内字符的存取 , 栈内只有最上面的字符会被替换 ;
3 . 下推自动机 ( PDA ) 的指令格式 : 该指令包含了 上述讲的两个操作 ;
1,0→ε1 , 0 \to \varepsilon1,0→ε
① 自动机字符读取 : 左侧的 111 是从带子上读取的字符 ;
② 栈内字符存取操作 : 0→ε0 \to \varepsilon0→ε 是需要在栈上进行的操作 , 将栈顶的 000 取出 , 然后将 ε\varepsilonε 放入到栈中 , 相当于在栈中 , 使用 ε\varepsilonε 将栈顶的 000 替换掉 ;
二、上下文无关文法 CFG 转为下推自动机 PDA 流程
上下文无关文法 CFG 转为下推自动机 PDA 流程 :
① 开始状态 : 开始状态 qstart\rm q_{start}qstart , 跳转到 qloop\rm q_{loop}qloop 状态的指令 ε,ε→K\rm \varepsilon , \varepsilon \to Kε,ε→K , 使用 K\rm KK 替换栈内空字符 ε\varepsilonε , 即将 K\rm KK 放入栈中 ;
② 循环状态 : qloop\rm q_{loop}qloop 状态的指令都是从本状态指向本状态 , 生成两种指令 , 一种是基本指令 , 一种是终端字符指令 ;
基本指令 S→aTb∣b\rm S \to aTb|bS→aTb∣b ,
生成为 " ε,S→aTb\rm \varepsilon , S \to aTbε,S→aTb " 和 " ε,S→b\rm \varepsilon , S \to bε,S→b " 两条指令 , 前面都是读取空字符作为栈读取的信息 ;
终端字符指令 , 如果存在终端字符 a\rm aa 和 b\rm bb , 那么生成 a,a→ε\rm a, a \to \varepsilona,a→ε 和 b,b→ε\rm b, b \to \varepsilonb,b→ε 两条指令 , 含义是读取栈顶 a\rm aa 字符 , 将该字符使用空字符替代 , 即从栈中删除该字符 ;
③ 接受状态 : qloop\rm q_{loop}qloop 状态跳转到 qaccept\rm q_{accept}qaccept 指令是 ε,K→ε\rm \varepsilon , K \to \varepsilonε,K→ε , 栈顶读取到 K\rm KK 字符删除 ;
④ 拆分指令 : 在循环状态 qloop\rm q_{loop}qloop 中的基本指令中存在多字符指令 , 如 ε,S→aTb\rm \varepsilon , S \to aTbε,S→aTb , S\rm SS 读取到空字符 ε\varepsilonε , 使用 aTb\rm aTbaTb 字符替换栈顶的 S\rm SS 字符 , 这是 333 个字符 , 肯定不行 , 需要逐个放进去 , 先放 b\rm bb , 再放 T\rm TT , 最后放 a\rm aa ;
最终分解为
ε,S→b\rm \varepsilon , S \to bε,S→b 读取空字符放入 b\rm bb 到栈顶 ,
ε,ε→T\rm \varepsilon , \varepsilon \to Tε,ε→T 读取空字符放入 T\rm TT 到栈顶 ,
ε,ε→a\rm \varepsilon , \varepsilon \to aε,ε→a 读取空字符放入 a\rm aa 到栈顶 ;
【计算理论】计算理论总结 ( 下推自动机计算过程 | 上下文无关文法 CFG 转为下推自动机 PDA ) ★★相关推荐
- 【计算理论】计算理论总结 ( 上下文无关文法 CFG 转为下推自动机 PDA 示例 2 ) ★★
文章目录 一.上下文无关文法 CFG 转为下推自动机 PDA 流程 二.上下文无关文法 CFG 转为下推自动机 PDA 示例 2 参考博客 : [计算理论]上下文无关语法 ( 语法组成 | 规则 | ...
- 【计算理论】计算理论总结 ( 上下文无关文法 CFG 转为下推自动机 PDA 示例 1 ) ★★
文章目录 一.上下文无关文法 CFG 转为下推自动机 PDA 流程 二.上下文无关文法 CFG 转为下推自动机 PDA 示例 1 参考博客 : [计算理论]上下文无关语法 ( 语法组成 | 规则 | ...
- 【计算理论】上下文无关语法 ( CFG ) 转为 下推自动机 ( PDA )
文章目录 I . 上下文无关语法 ( CFG ) 转为 下推自动机 ( PDA ) II . 下推自动机 ( PDA ) 三个状态 III . 下推自动机 ( PDA ) qstartq_{start ...
- 【计算理论】下推自动机 PDA ( 设计下推自动机 | 上下文无关语法 CFG 等价于 下推自动机 PDA )
文章目录 I . 下推自动机 设计 II . 上下文无关语法 ( CFG ) 等价于 下推自动机 ( PDA ) I . 下推自动机 设计 设计下推自动机 , 可以识别 {wwR:w∈{0,1}∗}\ ...
- 计算理论——正则语言,上下文无关文法,图灵机,可判定性,可规约性
目录 第一章 正则语言 状态图 自动机的形式化定义 非确定性 正则表达式 泵引理 使用泵引理证明某个语言非正则的方法 第二章 上下文无关文法 上下文无关文法概述 1.上下文无关文法形式化定义 2.上下 ...
- 形式语言与自动机——第三章 上下文无关文法与下推自动机
文章目录 3.1 推导树与二义性 3.2 上下文无关文法的改写 3.2.1 CFG的最简化 3.2.2 CFG的变换 3.2.2.1 去除可零化的非终结符 3.2.2.2 去除单产生式 3.2.2.3 ...
- 形式语言与自动机 第5章 上下文无关文法与下推自动机
文章目录 第5章 上下文无关文法与下推自动机 CFG 的化简 无用符号 CNF 和 GNF 范式 CNF 范式 GNF 范式 PDA 与 CFG 下推自动机 CFG →\to→ PDA PDA →\t ...
- 【计算理论】上下文无关语法 CFG ( CFG 设计示例 | CFG 歧义性 | Chomsky 范式 | 上下文无关语法 转为 Chomsky 范式 )
文章目录 一.上下文无关语法 设计 示例 二.上下文无关语法 的歧义性 三.Chomsky 范式 四.上下文无关语法 转为 Chomsky 范式 五.上下文无关语法 转为 Chomsky 范式 示例 ...
- 形式语言与自动机 Part.5 上下文无关语言与下推自动机(PDA)
课程名:形式语言与自动机 作者:Lupinus_Linn 许可证:CC-BY-NC-SA 3.0 创作共用-署名-非商业性-相同方式共享 署名(英语:Attribution,BY):您(用户)可以复制 ...
最新文章
- 【Qt】qss样式表之:QCalendarWidget,日历窗口样式表设置
- Swift URL含有中文的处理
- Struts2.0实现的文件上传(单附件和多附件)以及附件下载功能
- mysql当前时间减一分钟_MySQL数据库事务的机制【总结】
- shell swt 样式_swt shell设置窗口位于屏幕中间
- 连号区间数(2013年第四届c/c++ b组第10题)
- 【pyqt5学习】——items view相关控件(list view、table view)
- 多个Excel文件合并成一个文件
- 修订模式怎么彻底关闭_是时候换掉家里的灯泡了——小米智能灯泡组网实现家庭影院模式...
- Google亲儿子 Nexus/Pixel 手机刷机Root之旅
- VISUAL STUDIO 与 MATLAB实现混合编程
- notepad如何自动对齐_notepad怎么对齐
- c语言中学生信息管理系统中删除学生信息,学生信息管理系统C语言编程
- 免费机器视觉视频教程halcon-百度网盘
- 线性布局和表格布局的嵌套使用
- appcan java_AppCan项目源码
- PHP生成一寸照片代码,ps做一寸证件照的步骤
- css动画效果制作正方体旋转相册
- WinCC在C脚本创建电子签名对话框
- Qt使用QAudioInput、QAudioOutput实现局域网的音频通话