形式语言7.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六章 下推自动机(PDA) 下推自动机是带有一个堆栈的?-NFA,因此它能记住无限量的信息。堆栈上的信息只能用后进先出的方式来访问。 §1 下推自动机的定义 1. 定义 下推自动机是一个七元组 P= ( Q,Σ,Γ,? , q0 , Z0, F ), 其中Q为有穷的状态集合,Σ为输入符号的字母表, Γ 为栈符号的字母表, q0 是初始状态, Z0为初始栈符号(栈底标志),F( ?Q) 是接受(终结)状态集合, ? 是由Q?(Σ?{ ?}) ? ?到2Q? ?*的转移函数。 (q,γ)??(p, a, X)的含义为: 当前状态为p、栈顶符号为X时,若读入字符a (a= ? 时不读) ,则当前状态改为q 、栈顶X替换为γ 。 特别地, (q, aX)??(p, u, X)表示将a 推入栈顶, (q, ?) ? ?(p, u, a)表示将a 从栈顶弹出(移走)。 2. PDA接受的语言 PDA接受语言有两种方式: 1) 以终结方式接受。即运行完毕时,若处于接受状态,则接受输入串,否则拒绝输入串。用此方式接受的语言记为L(P)。 2) 以空栈方式接受。即运行完毕时,若栈为空,则接受输入串,否则拒绝输入串。用此方式接受的语言记为N(P)。 以上两种方式接受的语言一般不相同,即L(P)与N(P)一般不相等。 例1 设计一台下推自动机M接受语言 L={ wcwR: w ?{a,b}* }. 以下设计的P满足L(P)=L。 解决思路:L中的字符串是以c为中心、左右对称的字符串。运行中读输入串分两个阶段: 推入阶段(用状态q0表示)、弹出阶段(用状态q1表示)。 在推入阶段,每读一字符就将其推入堆栈;一旦读到c,马上转入弹出阶段。在弹出阶段,每读一字符即与栈顶元素比较是否相同,相同则将栈顶元素弹出。 结束阶段:读完输入串后,若见到栈底标志,则进入接受状态。 故所求下推自动机P= ( Q,Σ, ?,? ,q0 ,Z0,F), 其中 Q={q0, q1, q2}, Σ={a,b,c}, ?= {a,b,c, Z0}, F={q2}, ?的定义为: ?(q0,a,X)={(q0, aX)}, ?(q0,b,X)={(q0, bX)}, X??; //推入阶段: 对字符读入一个就推入一个 ?(q0,c,X)={(q1, X)} , X?? ; //遇到c则转入弹出阶段 ?(q1,a,a)={(q1, ?)}, ?(q1,b,b)={(q1, ?)}; //弹出阶段:读入字符与栈顶相同就清除栈顶 ?(q1, ?, Z0)={(q2, ?)}. //结束阶段:清除栈底标志,进入接受状态 例2 设计一台下推自动机M接受语言 L={w?{0,1}* : w=wR}. 此语言与例1类似,所不同的是中心位置可能是? 、0或1. 实现思路也类似,所不同的是读字符串到中心位置时,状态q0 读? 、0或1可以转入状态q1 。 故所求PDA P= ( Q,Σ, ?,? ,q0 ,Z0,F), 其中 Q={q0, q1, qf}, Σ={0,1}, ?= {0,1, Z0}, F= {qf}, ?的定义为: ?(q0,0,X)={(q0, 0X)}, ?(q0,1,X)={(q0, 1X)}, X??; ?(q0, ?,X)={(q1, X)}, ?(q0,0,X)={(q1, X)}, ?(q0,1,X)={ (q1, X)} , X?? ; ?(q1,0,0)={(q1, ?)}, ?(q1,1,1)={(q1, ?)}; ?(q1, ?, Z0)={(qf, ?)}. 3. PDA的图形表示 表示方法与有穷自动机类似,只是每个转移上应加上栈顶的变动。 例如,前面的例2可改写为: ( L={w?{0,1}* : w=wR} ) 4. 瞬时描述ID=(q, w, ?) ( ∈Q×Σ*×Γ*): q为当前状态, w为输入串未读过的部分, γ为栈中的内容(从顶(左)往下(右)读) . 5. 相邻的两ID、多步移动后的两ID 若应用转移(q, ?)??(p, a, β)后(p, ay, X?)变为 (q, y, ? ?),则称此两ID 是相邻两ID,记为 (p, ay, X?) ┝ (q, y, ? ?) . 若(p, ay, X?)

文档评论(0)

***** + 关注
实名认证
文档贡献者

本账号下所有文档分享可拿50%收益 欢迎分享

1亿VIP精品文档

相关文档