【问题标题】:PDA for L = {a^nb^m : m ≥ n, m-n is even}L = {a^nb^m : m ≥ n, m-n 为偶数}的 PDA
【发布时间】:2019-03-06 09:59:46
【问题描述】:

为以下语言设计一个 PDA

L = {a^nb^m : m ≥ n, m-n 是偶数}。

【问题讨论】:

  • 到目前为止你尝试了什么,你在哪里卡住了?

标签: automata pushdown-automaton


【解决方案1】:

让我们从 a^n b^m 的 PDA 开始,其中 m >= n。 PDA 可以为它看到的每一个 a 压入一个 a 到堆栈,每看到一个 b 就弹出一个 b,如果它用完 b 而堆栈上还有 a,它会拒绝。

现在,我们还需要做什么来排除 m - n 为奇数的情况?嗯,m - n 是奇数意味着我们在输入中还剩下一些 b。我们可以简单地修改我们的接受状态,以便在进一步的 b 上,它移动到一个新状态(编码奇数 b),然后在下一个 b 上回到接受状态,编码残差 b 必须是偶数的要求。

完整的 PDA 可能如下所示:

q    s    S    q'    S'
q0   a    Z    q0    aZ
q0   a    ax   q0    aax
q0   b    Zx   q2    Z
q0   b    ax   q1    x
q1   b    ax   q1    x
q1   b    Z    q2    Z
q2   b    Z    q1    Z

检查它是否有效,可能存在一些错误。阅读方式是:

从状态 q,输入 s,堆栈配置 S,PDA 可以转换到状态 q',并将堆栈配置更新为 S'。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-18
    • 2021-12-11
    相关资源
    最近更新 更多