automata - PDA 接受包含 a 多于 b 的字符串语言

标签 automata formal-languages pushdown-automaton

Produce a PDA to recognise the following language : the language of strings containing more a's than b's

我已经在这个问题上挣扎了好几天了,我似乎已经完全陷入了心理障碍。任何人都可以为我如何解决这个问题提供一些指导或方向吗?

最佳答案

你的“a多于b”的问题可以通过PDA解决。

您所要做的就是:

  • 当输入为 a 并且堆栈为空或顶部有 a 时,将 a 压入堆栈;如果 b 位于顶部,则弹出 b

  • 当输入为 b 并且堆栈为空或顶部有 b 时,将 b 压入堆栈;如果 a 位于顶部,则弹出 a

  • 最后,当字符串完成时,如果 a 位于堆栈顶部,则进入具有 null 输入的最终状态。否则,a 的数量不会多于 b 的数量。

关于automata - PDA 接受包含 a 多于 b 的字符串语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9930091/

相关文章:

c++ - 为什么不能用 LR(1) 解析器解析 C++?

c - 用 C (DPDA) 编译确定性下推自动机时出错

regex - (a+b)* 和 (a*b*)* 有什么区别?

python - 将某种 XML/Json 文件编译成 Graphiz/有限状态自动机。有什么建议么?

python - 如何在代码中实现有限自动机?

computer-science - 自动机理论死了吗?

regular-language - RE : Odd length string over { 0, 1} 恰好包含两个 0

computer-science - 递归和递归可枚举语言有什么区别

haskell - 在haskell中接受/拒绝下推自动机

c# - 使用正则表达式和下推自动机匹配嵌套括号组