📜  为 L = {a^nba^2n | 构建下推自动机n≥0}

📅  最后修改于: 2022-05-13 01:55:52.451000             🧑  作者: Mango

为 L = {a^nba^2n | 构建下推自动机n≥0}

先决条件:

  • 下推自动机介绍
  • 为给定语言构建下推自动机

问题– 为语言L = { an ba 2n |构建 PDA n≥0}

这意味着 PDA 在 b 之后的 a 应该是 b 之前的两倍,并且应该只有一个 b。

例子:

INPUT : aaabaaaaaa
OUTPUT : Accepted
INPUT : aaaaabaaaa
OUTPUT : Rejected
INPUT : NULL STRING
OUTPUT : Rejected 

方法:

对于我们作为输入符号接收到的每个 a,推动两倍的 a。我们一直重复这个直到我们收到 b。一次,输入符号是 b,跳过 b 并为每个 a 弹出一个 a。

注意:对于每个此类问题,当某个符号的数量是另一个符号的倍数时,关键是使两个符号的计数相等。

1.  At empty stack if we get 'a' as input symbol, push 2 a's to the stack.
2. If we get 'b' as input symbol we move to q1.
3.  For every a that we get as input symbol now, we pop 1 a.
4. If end of string symbol is encountered then transit to q2.

所需的下推自动机:

PDA 用于 a^n b a^2n