形式语言与自动机 下推自动机
下推自动机是啥?:
下面是他的模型:
如何运转?:
下面是标准定义,属实有点复杂:
注意状态转移函数成分极其复杂,要考虑现有状态,要考虑输入符号,还要考虑栈。
一些约定:
大写的是栈里的,小写的是输入带上的。
例子:
例子:
这里有一个问题:输入0001111怎么办?:
确实进入q2了,毕竟只要栈空了就会进去,但是还要输入一个1,当前处于的状态q1,q2都没有定义在栈空了的情况输入1会发生什么,直接进入deadState.
例子:
下推自动机接受那些语言?:
终态接受就是在一个状态上接受,不管栈的情况。(虽然进入这个状态本身可能需要栈是空的)以空栈接受就是状态是普通的状态,只有在空栈的时候才会接受。
注意:Y是单个字符不是整个字符串。加上X0是因为中途栈可能会出现Z0也没了的情况(这在状态终点的PDA中是可能的),这样会直接进入终态,所以不行,要再加一个保险,反正X0是绝对不可能在Pf阶段没得(那原本的那个终态接受就不成立),只有在最后不分青红皂白全部弹出的时候才会没。
这个好理解多了:X0冒头了直接转到Pf。这个X0只是指示作用,好像拿走了也不会误会。
这里解释一下:为什么这些图里面都是看到空栈就跟见了鬼一样直接跑到接收状态去?不怕字符串还没输入完吗?不怕,因为继续输入原本的接收状态也会没。
下推自动机和上下文无关文法的等价性。
看不太懂?来看例子:
可以发现,一上来还没有开始读字符串,看到栈开头有一个S,这个PDA就开始自动工作,把S的所有可能性(顺带其衍生物的可能性)都考虑了。表面上看一片正常,但这个小小的PDA里面已经蕴藏了S的全部可能,也就是这个上下文无关文法的全部可能,只要输入的字符串符合其中一个,某一个栈就会空,然后就成了。
这个原理的构造方法我们已经知道了。证明我们就省略了,反正之前已经讲过了。
当然也有另一种方法:
例子:
那怎么通过PDA构造CFG呢?:
我们可以从第一步开始看:Q0Z0p是q0到p中途还要弹出z0所使用的字符串。这个字符串假如输入PDA肯定是能过的,同时我们把它构造成了S派生的字符串,也就是说这一部分是没有问题的。
阀(1,a,X)是一个集合,因为PDA是不定的嘛,可以有多个下个状态,所以有了一个集合。而设某一个下个状态是(p,Y1Y2……),那qXrn,也就是从q到rn首先要输入a,状态变成p,栈里的字符串变成了Y1Y2……,然后就是显而易见。
Y1Y2……四大皆空了更好,那显然qXp想要弹出X并进入p只要一个a就可以了。
有点复杂,先看例子:(没写接收状态就是空栈接受)
首先是看S可以直接派生的。显然这两个具体是什么我们不能直接看出来。
那我们就用之前的公式寻找突破口。要求q0Z0q0,可以先到q0再到q0,也可以先到q1再到q0.这样我们就有了两个表达式。加起来有四个。
第一级问题解决了,但出现了q0Xq0,q0Xq1,q1Xq0,q1Xq1四个未知的东西,怎么说?
这个时候已经没有从未出现过的变量了,这个体系可以自圆其说(肯定不是最简的)。
消除无用符号:
确定形下推自动机:
这个没有空的转移,没有多条线路。有点奇怪的是能力和PDA不一样。
没有了栈不就是DFA吗,但DPDA有栈的话显然还可以有更多选择,因此DPDA还要更大一些。
N(P)就是把P的一部分满足前缀性质的拿出来。
语言之间的关系:
CFL>DCFL>Regular(CFL是上下文无关语言,也就是下推自动机的语言,regular是正则)
形式语言与自动机 下推自动机相关推荐
- 形式语言与自动机 Part.5 上下文无关语言与下推自动机(PDA)
课程名:形式语言与自动机 作者:Lupinus_Linn 许可证:CC-BY-NC-SA 3.0 创作共用-署名-非商业性-相同方式共享 署名(英语:Attribution,BY):您(用户)可以复制 ...
- 计算理论 形式语言与自动机_下推式自动机(PDA)| 计算理论
计算理论 形式语言与自动机 Pushdown Automaton (PDA) is a kind of Automaton which comes under the theory of Comput ...
- 形式语言与自动机 Part 3.有限自动机
课程名:形式语言与自动机 作者:Lupinus_Linn 许可证:CC-BY-NC-SA 3.0 创作共用-署名-非商业性-相同方式共享 署名(英语:Attribution,BY):您(用户)可以复制 ...
- 形式语言与自动机 Part.4 正则语言,2DFA,MealyMoore机
课程名:形式语言与自动机 作者:Lupinus_Linn 许可证:CC-BY-NC-SA 3.0 创作共用-署名-非商业性-相同方式共享 署名(英语:Attribution,BY):您(用户)可以复制 ...
- 形式语言与自动机 Part.6 图灵机
课程名:形式语言与自动机 作者:Lupinus_Linn 许可证:CC-BY-NC-SA 3.0 创作共用-署名-非商业性-相同方式共享 署名(英语:Attribution,BY):您(用户)可以复制 ...
- 形式语言与自动机 Part.1绪论, Part.2 语言与文法
课程名:形式语言与自动机 作者:Lupinus_Linn 许可证:CC-BY-NC-SA 3.0 创作共用-署名-非商业性-相同方式共享 署名(英语:Attribution,BY):您(用户)可以复制 ...
- 形式语言与自动机及其在NLP中的应用
摘要 形式语言与自动机是计算机科学的理论基础,对于计算机科学与技术专业人才的计算思维能力培养极其重要.本文首先从Chomsky谱系出发,对形式语言的概念和类别进行了阐述,然后按照形式文法与自动机之间的 ...
- 形式语言与自动机学习复述笔记
形式语言与自动机学习复述笔记 文章目录 形式语言与自动机学习复述笔记 本文说明 文法 文法的乔姆斯基分类 有穷自动机 正则语言 正则文法 关系 正则表达式 正则表达式RE->$\epsilon$ ...
- 【形式语言与自动机】图灵机
[形式语言与自动机]图灵机 一.图灵机 在经过有限状态机的介绍之后,再来看一种功能更强大的机器. 图灵机基本结构 〉 一条分格的无限长的纸带,每格可容纳一个字符 〉 一个读写头,可以在纸带上移动(可以 ...
- 【形式语言与自动机】有限状态机
[形式语言与自动机]有限状态机 一.有限状态机 其需求来自于对语言字符串识别的需要,给定字符串判定它是否属于语法G产生的 L(G), 判断是否属于这个集合. 句子识别 〉 给定一个字符串,判定是否属于 ...
最新文章
- c# oldb连接_C#使用ODBC与OLEDB连接数据库的方法示例
- oracle修改某个表的字段顺序
- 手动将自定制的WebPart部署到 SharePoint 2010 中
- Kotlin 喧嚣过后,谈谈 Java 程序员未来的出路
- vue中集合取第一个_快速学习Vue框架(知识点集合)
- CentOS7安装.NET Core运行环境
- linux防火墙桌面关闭端口,Linux关闭防火墙,开放端口
- 如何在VS2005下生成动态运行时库
- 区块链java项目_JAVA区块链项目实战(示例代码)
- vscode调试cpp环境,手动安装vsix
- Cyclical Quest CF235C
- Visual Studio 2017 智能提示英文怎么切换成中文?
- 【appium】appium自动化入门之基本参数完整版(67个appium基本参数和关键字)
- 前端开发:JS中截取字符串的用法总结
- Spark UI界面原理
- Qt 项目:windows计算器
- IOS开发教程--Xcode6,CLLocationManager无法定位解决方案
- jQuery中国省份地图悬浮层简介js特效代码
- ctfshow-月饼杯WP
- JavaScript系列—性能优化之《网站性能优化实战——从12.67s到1.06s的故事》