【问题标题】:pushdown automata and arithmetic expressions下推自动机和算术表达式
【发布时间】:2015-10-30 17:49:22
【问题描述】:

我想弄清楚如何在下推自动机中做算术表达式?(PDA)例如 L=W|W=An Bm Cn-m 我想做的是先推 As 然后弹出 Bs ,然后根据剩下的内容弹出 As with C 或 Bs with C 。例如 aaabbc(推 aaa 然后用 Bs bba 弹出,然后用 C 弹出 A 或用 C 弹出 B,这取决于哪个更大。

【问题讨论】:

    标签: computation-theory pushdown-automaton


    【解决方案1】:

    要使语言中的单词w 出现在您的定义中,它必须具有n>=m(否则C^(n-m) 是否定的,这是不可能的)。

    所以,你的自动机基本上需要:

    1. 看到“a”时推入堆栈
    2. 看到“b”时从堆栈中弹出
    3. 看到“c”时从堆栈中弹出。

    还有一些重要的问题:

    • 看到“新”时,您需要在不同状态之间移动 字符。
    • 你的机器人应该接受w=eps(空字)。
    • w=a^b b^n 也在语言中,请务必注意这一点。

    我希望我给了你足够好的线索,让你自己解决它..

    祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-10
      • 2011-01-25
      • 2014-05-22
      • 2014-05-23
      • 1970-01-01
      • 2020-01-15
      • 1970-01-01
      • 2015-07-02
      相关资源
      最近更新 更多