为 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.
所需的下推自动机: