基本概念与形式定义
对于PDA而言,其对应的表达能力和上下文无关语法一致。相比于DFA来说,它具有一定“记忆”能力,能够记住以前输入的字符。
形式定义:不确定的下推自动机(NPDA)是一个七元组,其中,
对于转换式
可以用以上的图形表示
若
格局
下推自动机的瞬时工作状况,也可以用格局描述,是一个三元组,即
q:当前状态,
w:待输入的字符串,
a: 下推栈中的所有内容,
转换函数
可以用格局表示为:
构造PDA
构造PDA有两个核心,即其接收的方式。由于PDA的记忆性完全来自于栈的特性,因此,大部分的设计都是基于空栈标识
另外的一种接收方式是基于终态的,即设置一个终止状态,只要转移到终态之后,待输入的字符为空了,那么就接收
例1. 构造PDA,接收语言
另外,我们还可以给出一个定理,来证明空栈接受和终态接受的等价性
其主要思想就是,对于任意一个空栈接受的自动机,我们都可以将其空栈状态指向一个新的
上下文无关文法和下推自动机
由文法产生自动机
即,给定
算法过程描述如下:
1) 将文法的起始符号S放入栈中
2) 重复以下步骤:
3) 如果栈顶是非终结符A,那么从A的生成式中随机选择一个,丢入栈中
4)
如果栈顶是终结符a,那么读入下一个符号,如果匹配,那么回到(2),如果不匹配,那么这个非确定分支被拒绝
5) 如果栈空,且此时输入已经读完,那么接收这个字符串
形式定义如下:
设
- 如果
- 对所有
如果您喜欢我的文章,可以考虑打赏以支持我继续创作.