第七章下推自动机课件.ppt
《第七章下推自动机课件.ppt》由会员分享,可在线阅读,更多相关《第七章下推自动机课件.ppt(49页珍藏版)》请在沃文网上搜索。
1、1形式语言与自动机2主要内容主要内容qPDA描述描述CFL,所以它应该与,所以它应该与CFG等价。等价。qPDA应该包含应该包含FA的各个元素,或者包含那些可以取代的各个元素,或者包含那些可以取代FA的各个元素的功能的元素。的各个元素的功能的元素。q主要内容主要内容PDA的基本概念。的基本概念。PDA的构造举例。的构造举例。用终态接受语言和用空栈接受语言的等价性。用终态接受语言和用空栈接受语言的等价性。PDA是是CFL的接受器。的接受器。37.1基本定义基本定义qL(M)=anbn|n0不是正则语言。不是正则语言。aaaabbbbbbq这导致有限状态控制器中必须有无限状态。这导致有限状态控制器
2、中必须有无限状态。q需要扩充机器的能力。引入一个下推栈。需要扩充机器的能力。引入一个下推栈。4PDA的物理模型qPDA应该含有三个基本结构应该含有三个基本结构存放输入符号串的输入带存放输入符号串的输入带存放文法符号的栈存放文法符号的栈有穷状态控制器。有穷状态控制器。a1a2a3aj ZnZ0FSC栈顶栈顶下下堆堆栈栈5PDA的物理模型qPDA的动作的动作在有穷状态控制器的控制下根据它的当前状态、栈顶符号、在有穷状态控制器的控制下根据它的当前状态、栈顶符号、以及输入符号作出相应的动作,在有的时候,不需要考虑输以及输入符号作出相应的动作,在有的时候,不需要考虑输入符号。入符号。a1a2a3aj Z
3、nZ0FSC栈顶栈顶下下堆堆栈栈6PDA 的定义下推自动机下推自动机(pushdownautomaton,PDA)M=(Q,q0,Z0,F)Q状状态态的的非非空空有有穷穷集集合合。qQ,q 称称为为M 的的一一个个状状态态(state);输输入入字字母母表表(inputalphabet)。要要求求M的的输输入入字字符符串串都都是是上的字符串;上的字符串;栈符号表栈符号表(stackalphabet)。A,叫做一个栈符号;,叫做一个栈符号;Z0Z0叫叫做做开开始始符符号号(startsymbol),是是M启启动动时时候候栈栈内内惟惟一的一个符号。所以,习惯地称其为一的一个符号。所以,习惯地称其为
4、栈底符号栈底符号;q0q0Q,是是M的的开开始始状状态态(initialstate),也也可可叫叫做做初初始始状状态或者启动状态;态或者启动状态;FF Q,是,是M的的终止状态终止状态(finalstate)集合,简称为终态集。集合,简称为终态集。qF,q 称为称为M的终止状态,也可称为接受状态的终止状态,也可称为接受状态(acceptstate),简称为,简称为终态终态。7PDA的定义q状态转移函数(transitionfunction),有时候又叫做,有时候又叫做状态转换函数或者或者移动函数。:Q()(q,a,Z)=(p1,1),(p2,2),(pm,m)表示表示M在状态在状态q,栈顶符号
5、为,栈顶符号为Z时,读入字符时,读入字符a,对于,对于i=1,2,m,可以选择地将状态变成,可以选择地将状态变成pi,并,并将栈顶符号将栈顶符号Z弹弹出,将出,将i 中的符号从右到左依次压入栈中的符号从右到左依次压入栈,然后将读头向右,然后将读头向右移动一个带方格而指向输入字符串的下一个字符。移动一个带方格而指向输入字符串的下一个字符。(q,Z)=(p1,1),(p2,2),(pm,m)表示表示M进行一次进行一次-移动移动(空移动空移动),即,即M在状态在状态q,栈顶符,栈顶符号为号为Z时,无论输入符号是什么,对于时,无论输入符号是什么,对于i=1,2,m,可以,可以选择地将状态变成选择地将状
6、态变成pi,并将栈顶符号并将栈顶符号Z弹出,将弹出,将i 中的符中的符号从右到左依次压入栈号从右到左依次压入栈,读头不移动。,读头不移动。qpa,Z/8符号使用约定q英文字母表较为前面的小写字母,如英文字母表较为前面的小写字母,如a,b,c,表示输入表示输入符号;符号;q英文字母表较为后面的小写字母,如英文字母表较为后面的小写字母,如x,y,z,表示输入表示输入字符串;字符串;q英文字母表的大写字母,表示栈符号;英文字母表的大写字母,表示栈符号;q希腊字母希腊字母,表示栈符号串。表示栈符号串。9即时描述q即时描述即时描述(instantaneousdescription,ID)(q,w,)(Q
7、,*,*)称为称为M 的一个的一个即时描述即时描述。它表示它表示M处于状态处于状态q,w是当前还未处理的输入字符串,是当前还未处理的输入字符串,而且而且M正注视着正注视着w 的首字符,栈中的符号串为的首字符,栈中的符号串为,的最左的最左符号为栈顶符号,最右符号为栈底的符号符号为栈顶符号,最右符号为栈底的符号,较左的符号在,较左的符号在栈的较上面,较右的符号在栈的较下面。栈的较上面,较右的符号在栈的较下面。10即时描述q如如果果(p,)(q,a,Z),a,且且M 在在状状态态q、栈栈顶顶为为Z、读读入入a时,选择进入状态时,选择进入状态p,用,用替换栈顶替换栈顶Z,记为,记为(q,aw,Z)M(
8、p,w,)表示表示M 做一次非空移动,做一次非空移动,ID从从(q,aw,Z)变成变成(p,w,)。q如果如果(p,)(q,Z),则记为,则记为(q,w,Z)M(p,w,)表示表示M 做一次空移动,做一次空移动,ID从从(q,w,Z)变成变成ID(p,w,)。qMn是是M的的n 次幂:次幂:(q1,w1,1)Mn(qn,wn,n)存在存在ID序列,并满足序列,并满足(q1,w1,1)M(q2,w2,2)MM(qn,wn,n)qM*是是M的克林闭包:的克林闭包:(q,w,)M*(p,x,)qM+是是M的正闭包:的正闭包:(q,w,)M+(p,x,)11M 接受的语言qM用用终态接受终态接受的语言
9、的语言L(M)=w|(q0,w,Z0)*(p,)且且pFqM 用用空栈接受空栈接受的语言的语言N(M)=w|(q0,w,Z0)*(p,)12例题构造构造PDAM,能够接受语言,能够接受语言L(M)=anbn|n0。设设PDAM=(Q,q0,Z0,F)其中:其中:Q=q0,q1,q2,=a,b,=Z0,A,F=q0定义如下:定义如下:(q0,a,Z0)=(q1,AZ0)(q1,a,A)=(q1,AA)(q1,b,A)=(q2,)(q2,b,A)=(q2,)(q2,Z0)=(q0,)q0q1a,Z0/AZ0q2,Z0/b,A/b,A/a,A/AAq当输入字符串是当输入字符串是ab 时,时,M 的工
10、作过程是:的工作过程是:(q0,ab,Z0)(q1,b,AZ0)(q2,Z0)(q0,)q当输入字符串是当输入字符串是aaabbb 时,时,M 的工作过程是:的工作过程是:(q0,aaabbb,Z0)(q1,aabbb,AZ0)(q1,abbb,AAZ0)(q1,bbb,AAAZ0)(q2,bb,AAZ0)(q2,b,AZ0)(q2,Z0)(q0,)13例7-1考虑接受语言考虑接受语言L=w2wT|w0,1*的的PDA的设计。的设计。解法解法1:利用利用GNF先设计产生先设计产生L的的CFGG1:G1:S2|0S0|1S1再将此文法转化成再将此文法转化成GNF:G2:S2|0SA|1SBA0B
11、114例7-1考察句子考察句子0102010的最左派生和我们希望相应的的最左派生和我们希望相应的PDAM的动作:的动作:派生派生M应该完成的动作应该完成的动作S0SA从从q0启动,读入启动,读入0,将,将S弹出栈,将弹出栈,将SA压入栈,状态不变压入栈,状态不变01SBA在状态在状态q0,读入,读入1,将,将S弹出栈,将弹出栈,将SB压入栈,状态不变压入栈,状态不变010SABA在状态在状态q0,读入,读入0,将,将S弹出栈,将弹出栈,将SA压入栈,状态不变压入栈,状态不变0102ABA在状态在状态q0,读入,读入2,将,将S弹出栈,将弹出栈,将压入栈,状态不变压入栈,状态不变01020BA在
12、状态在状态q0,读入,读入0,将,将A弹出栈,将弹出栈,将压入栈,状态不变压入栈,状态不变010201A在状态在状态q0,读入,读入1,将,将B弹出栈,将弹出栈,将压入栈,状态不变压入栈,状态不变0102010在状态在状态q0,读入,读入0,将,将A弹出栈,将弹出栈,将压入栈,状态不变压入栈,状态不变S2|0SA|1SBA0B115例7-1根据分析,可得如下根据分析,可得如下PDA:M1=(q0,0,1,2,S,A,B,1,q0,S,)。1(q0,0,S)=(q0,SA)1(q0,1,S)=(q0,SB)1(q0,2,S)=(q0,)1(q0,0,A)=(q0,)1(q0,1,B)=(q0,)
13、此时有:此时有:N(M1)=L。考虑用终态接受时,考虑用终态接受时,M2=(q0,q1,0,1,2,S,A,B,Z0,Z,2,q0,Z0,q1)2(q0,0,Z0)=(q0,SAZ)2(q0,1,Z0)=(q0,SBZ)2(q0,2,Z0)=(q1,)2(q0,0,S)=(q0,SA)2(q0,1,S)=(q0,SB)2(q0,2,S)=(q0,)2(q0,0,A)=(q0,)2(q0,1,B)=(q0,)2(q0,Z)=(q1,)此时有:此时有:N(M2)=L(M2)=L。演示:演示:011020110,看栈的变化情况。,看栈的变化情况。S2|0SA|1SBA0B116例7-1解法解法2:根
14、据根据2,将前后分为,将前后分为“记载记载”和和“匹配匹配”两个阶段两个阶段注意到注意到L=w2wT|w0,1*,所以,所以PDAM3的工作可以分成两大阶段:的工作可以分成两大阶段:(1)在在读到字符读到字符2之前之前,为,为“记载记载”阶段阶段:每读到一个符号就在栈中做一次相:每读到一个符号就在栈中做一次相应的记载。应的记载。例如,读到例如,读到0,就在栈中压入一个栈符号,就在栈中压入一个栈符号A;读到;读到1,在栈中压入符号,在栈中压入符号B。(2)在在读到读到2以后以后,再读到字符时,就应该,再读到字符时,就应该进入进入“匹配匹配”阶段阶段:由于栈的:由于栈的“先先进后出进后出”特性正好
15、与特性正好与wT相对应,所以,用栈顶符号逐一地与输入字符匹相对应,所以,用栈顶符号逐一地与输入字符匹配。配。在当前栈顶符号为在当前栈顶符号为A时,如果读到的字符为时,如果读到的字符为0,表示匹配成功;如果读,表示匹配成功;如果读到的字符为到的字符为1时,表示匹配失败,此时便得知输入的字符串不是句子。时,表示匹配失败,此时便得知输入的字符串不是句子。在当前栈顶符号为在当前栈顶符号为B时,如果读到的字符为时,如果读到的字符为1,表示匹配成功;如果读到,表示匹配成功;如果读到的字符为的字符为0时,表示匹配失败,此时便得知输入的字符串不是句子。时,表示匹配失败,此时便得知输入的字符串不是句子。当发现输
16、入字符串不是句子时,可以让当发现输入字符串不是句子时,可以让PDA停机停机不再有下一个动作,不再有下一个动作,也可以让它进入一个也可以让它进入一个“陷阱陷阱”状态。状态。17例7-1M3=(q0,q1,q2,qf,qt,0,1,2,A,B,Z0,3,q0,Z0,qf)q0为开始状态,为开始状态,q1为记录状态,为记录状态,q2为匹配状态,为匹配状态,qf为终止状态,为终止状态,qt陷阱状态陷阱状态3(q0,0,Z0)=(q1,AZ0)3(q0,1,Z0)=(q1,BZ0)3(q0,2,Z0)=(qf,)3(q1,0,A)=(q1,AA)3(q1,1,A)=(q1,BA)3(q1,0,B)=(q
17、1,AB)3(q1,1,B)=(q1,BB)3(q1,2,A)=(q2,A)3(q1,2,B)=(q2,B)3(q2,0,A)=(q2,)3(q2,0,B)=(qt,)3(q2,1,B)=(q2,)3(q2,1,A)=(qt,)3(q2,Z0)=(qf,)此时有:此时有:N(M3)=L(M3)=L。18例7-1q如果不追求让如果不追求让PDA同时用终止状态和空栈接受同样的语同时用终止状态和空栈接受同样的语言,还可以言,还可以删除状态删除状态qf。这样我们可以得到。这样我们可以得到PDAM4。qM4=(q0,q1,q2,0,1,2,A,B,Z0,4,q0,Z0,)4(q0,0,Z0)=(q1,A
18、Z0)4(q0,1,Z0)=(q1,BZ0)4(q0,2,Z0)=(q2,)4(q1,0,A)=(q1,AA)4(q1,1,A)=(q1,BA)4(q1,0,B)=(q1,AB)4(q1,1,B)=(q1,BB)4(q1,2,A)=(q2,A)4(q1,2,B)=(q2,B)4(q2,0,A)=(q2,)4(q2,1,B)=(q2,)q是否可以构造是否可以构造PDA,用于识别,用于识别w2w|w0,1*?原因:原因:无法将一个栈的内容在该栈中实现倒序操作无法将一个栈的内容在该栈中实现倒序操作。19例7-2 构造接受L=wwT|w0,1*的 PDAM=(q0,q1,qf,0,1,A,B,Z0,q
19、0,Z0,qf)q0处理句子的处理句子的w 部分,部分,q1处理句子的处理句子的wT 部分,部分,qf终止状态终止状态(q0,0,Z0)=(q0,AZ0)记下最开始读到的待匹配的记下最开始读到的待匹配的0(q0,1,Z0)=(q0,BZ0)记下最开始读到的待匹配的记下最开始读到的待匹配的1(q0,0,B)=(q0,AB)记下读到的待匹配的记下读到的待匹配的0(q0,1,A)=(q0,BA)记下读到的待匹配的记下读到的待匹配的1(q0,0,A)=(q0,AA),记下读到的待匹配的记下读到的待匹配的0(q1,)遇到遇到wT的首字符的首字符0,并开始匹配,并开始匹配(q0,1,B)=(q0,BB),
20、记下读到的待匹配的记下读到的待匹配的1(q1,)遇到遇到wT的首字符的首字符1,并开始匹配,并开始匹配(q1,0,A)=(q1,)0和和A匹配匹配(q1,1,B)=(q1,)1和和B匹配匹配(q1,Z0)=(qf,)将栈清空,并进入终止状态将栈清空,并进入终止状态(q0,Z0)=(qf,)接受接受差异差异(q0,0,A)=(q0,AA),(q1,)0是是w 中的中的0或者是或者是wT的首字符的首字符0;(q0,1,B)=(q0,BB),(q1,)1是是w 中的中的1或者是或者是wT的首字符的首字符1。207.2PDA与与CFG等价等价 q对于任意对于任意PDAM1,存在,存在PDAM2,使得,
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第七 下推自动机 课件
