Computer science PDA问题>需要帮助吗

Computer science PDA问题>需要帮助吗,computer-science,automata,Computer Science,Automata,我有一个任务来构造PDA,它可以识别语言a={a^MBB^n | m>n}和∑ = {a,b}。。我有点不知道怎么做。。你们能帮我解决这个问题吗?谢谢在Wikipedia页面上查看下推自动机:这是语言{0n1n | n≥0},也就是说,一些数字的零后跟相同数量的1。这与您的任务不完全相同,但相似。根据你的课程材料,你能理解描述吗?您将如何修改它以识别所需的语言?我们不要直接跳到为问题设计PDA上,先尝试理解问题 可以从给定语言生成的少数可能字符串是什么。 嗯,这样的字符串可以是无限的,例如- a

我有一个任务来构造PDA,它可以识别语言a={a^MBB^n | m>n}和∑ = {a,b}。。我有点不知道怎么做。。你们能帮我解决这个问题吗?谢谢

在Wikipedia页面上查看下推自动机:这是语言{0n1n | n≥0},也就是说,一些数字的零后跟相同数量的1。这与您的任务不完全相同,但相似。根据你的课程材料,你能理解描述吗?您将如何修改它以识别所需的语言?

我们不要直接跳到为问题设计PDA上,先尝试理解问题

可以从给定语言生成的少数可能字符串是什么。 嗯,这样的字符串可以是无限的,例如-

aab aaab aaa…b aaaa..bb 这样做的目的是确保a的数量始终大于b的数量,或者我们可以说字符串中b的数量永远不应该超过PDA要接受的字符串中a的数量

现在我们有一个问题

如何确保a的数量大于b的数量

如果我们开始为字符串中的每一个“b”取消a 我们将得出以下结论

a的数量等于b的数量-取消后什么也没有留下 b的数量大于a的数量-取消后我们只剩下几个b a的数量大于b的数量-取消后我们只剩下几个a 如果我们试图在“问题”和上述各点之间建立关系,我们观察到属于上述第3点的字符串是PDA可接受的字符串

现在让我们定义我们的PDA如下

p={q0,q1,qf},{a,b},δ,{a,b,Z0},q0,Z0,{qf}

过渡函数δ:

δ(q0, a, Z0) = (q0,aZ0)  
δ(q0, a, a) = (q0, aa)  
δ(q0, b, a) = (q1, Λ)  
δ(q1, b, a) = (q1, Λ) 
δ(q1, Λ, a) = (qf, Z0) 
δ(q1, b, Z0) = (q2, Z0)  
δ(q1, Λ, Z0) = (q2, Z0)
说明:

我们最初将a存储在堆栈q0状态 当遇到第一个b时,我们从堆栈中弹出a并将状态更改为q1 我们继续从堆栈中弹出a 如果没有剩余的b从堆栈中弹出a,我们将状态更改为qf以指示字符串接受。第3点 若只剩下几个b,但并没有a从堆栈中弹出,我们将状态从q1更改为Q2。第2点 如果堆栈中既没有留下要弹出的a,也没有留下输入字符串中的b,那么我们再次将状态从q1更改为q2Trap。第一点
作业请解释您是如何试图解决问题的,以及您的困境。你好,Jouni,感谢您的回复。。实际上这是我老师的家庭作业。。她让我回答这个问题,但我不知道怎么回答。。因为她没有解释清楚这一章。我对这一章不太了解。@@@老师只是在短时间内解释。我想我需要更多地了解PDA。