使用以下语言构建NPDA: L = {w:w∈{a,b} ^ *,a的个数至少是b的个数}
答案 0 :(得分:0)
我们的策略可以是这样:
为什么这样做?如果我们的a大于b,则最终在堆栈上有a。如果a和b的数目相同,我们将在堆栈上得到Z。如果b大于a,我们最终将b放在堆栈上。因此,当输入用尽时,我们会在顶部接受a或Z。
q e s q' s'
q0 a Z q0 aZ
q0 a a q0 aa
q0 a b q0 -
q0 b Z q0 bZ
q0 b a q0 -
q0 b b q0 bb
q0 - a q1 a
q0 - Z q1 Z
q1 - a q1 -
如果输入字符串的a至少等于b,则此PDA在第1季度以一个空堆栈结尾。