下推自动机通过 alpha、beta 和 gamma 给出字符串

pushdown automaton give strings over alpha, beta and gamma

我了解 PDA 的基础知识,但有一个我没有遇到的问题 before.The 问题是:

考虑以下接受最终状态和空堆栈的 PDA M。 $M = (K,\Sigma, \Gamma,\delta, q_0, Z_0, F)$, $K = q_0,\Sigma = a,b,c , \伽玛 = a,b,c,S,T ,Z_0 = S, F = q_0)$。过渡关系由

给出

$ \delta(q_0, \epsilon, S) = ((q_0, \alpha),(q_0,T))$

$ \delta(q_0, \epsilon, T) = ((q_0, \beta),(q_0,\epsilon))$

$ \delta(q_0, a, a) = ((q_0, \epsilon))$

$ \delta(q_0, b, b) = ((q_0, \gamma))$

$ \delta(q_0, c, c) = ((q_0, \epsilon))$

在 \Gamma$ 上给出字符串 $\alpha、\beta 和 \gamma

我之前看到的所有问题都给出了更直接的转换函数,并且不包括 $\alpha、\beta、\gamma$,所以我不确定这到底意味着什么,因为它们不是输入字母表的一部分。当它说 give strings over $\alpha, \beta, \gamma$ 是否意味着我应该组成我自己的输入字符串?并相应地更改过渡功能还是什么?我不太确定,也无法在网上找到任何东西。任何帮助将不胜感激。

字符串未输入,因为它们位于字母表 $\Gamma$ 之上。您应该只确定 PDA 在第一、第二和第四个子句中放入堆栈的内容。假设这个 PDA 应该接受一种特定的语言。然后你要选择三个字符串,以接受所需语言的方式放在 satck 上。

例如,如果你把它们都填空,那么接受的语言就是只包含空词的语言。

如果您选择 $\alpha = \epsilon$ 那么第一个子句的两个可能的转换是相同的。如果你选择 $\alpha = S$ 那么第一个转换基本上什么都不做;它只是弹出一个 S 然后放回去。

所以寻找您的 PDA 应该接受的语言。