【问题标题】:How to read this PDA?如何阅读这个 PDA?
【发布时间】:2021-03-25 17:56:39
【问题描述】:

这是一个古老的硬件问题,我必须找出每个给定字符串访问 q\loop 状态的次数:

bb: 5

aba: 0

阿爸:8

巴巴布:11

我了解第 1 个字符串如何访问状态 5 次并且第 2 个字符串不被接受,但我不知道第 3 个和第 4 个字符串的过程。如果有人可以遍历第三或第四字符串所访问的状态,我将非常感激,因为我一直卡住

【问题讨论】:

    标签: computation-theory pushdown-automaton


    【解决方案1】:

    这个 PDA 匹配回文。它是如何做到的?它在堆栈上查找P 并将其替换为aPabPb,然后将堆栈上的a 与输入中的a 匹配。 b 也是如此。它不确定地替换P

    让我们来看看#3。我们将关注Q_loop,为简单起见,我将其称为L。堆栈的顶部将是最右边的字符。

    1. 我们第一次到达L,输入是abba,堆栈是$P。我们将不确定地遵循e,P->a 转换。
    2. 输入为abba,堆栈为$aPa。我们将遵循a,a->e 的转换。
    3. 输入:bba,堆栈:$aP。关注e,P->b
    4. 输入:bba,堆栈:$abPb。关注b,b->e
    5. 输入:ba,堆栈:$abP。关注e,P->e
    6. 输入:ba,堆栈:$ab。关注b,b->e
    7. 输入:a,堆栈:$a。关注a,a->e
    8. 输入:e,堆栈,$。关注e,$->e 并接受下一个状态。

    【讨论】:

      猜你喜欢
      • 2012-02-11
      • 2020-12-16
      • 2020-08-14
      • 1970-01-01
      • 1970-01-01
      • 2014-12-18
      • 1970-01-01
      • 1970-01-01
      • 2021-08-28
      相关资源
      最近更新 更多