首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >下推自动机

问下推自动机
EN

Stack Overflow用户
提问于 2011-12-03 02:32:33
回答 1查看 786关注 0票数 0

为语言a^n b c^n+2,n>0设计下推自动机我被要求实现上述语言的自动机。请帮帮忙?

我尝试在每次将(a)推送到堆栈时弹出2 (c)s,但似乎对奇数个(a)s不起作用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-17 13:06:00

你必须以正常的方式处理A,也就是说,对于每个从你堆叠的磁带中读取的a,直到你读完a,如果你读取了b,保持堆栈的顶部不变,最后你必须处理所有的C。转换函数是:

代码语言:javascript
复制
(q0, a, Z) = (q0, AZ)
(q0, a, A) = (q0, AA)
(q0, b, A) = (q1, A)
(q1, c, A) = (q1, epsilon) (until the amount of a's are equal to the amount of c's)
(q1, c, Z)= (q2, Z) (read the first extra c)
(q2, c, Z)= (q3, Z) (read the second extra c)
(q3, epsilon, Z)= (qf, Z) (qf is the final state)

PDA的图形表示为:

​

​

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8360929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档