PDA接受比b和c多的a的语言

时间:2018-10-10 16:20:20

标签: automata formal-languages pushdown-automaton

我的问题与this相似。我想知道是否存在一个PDA,该PDA可以随机接受包含a,b和c的任何单词,其中a的总数大于b的数量且大于c的数量,例如单词“ abcacba”将被接受。

1 个答案:

答案 0 :(得分:2)

这不是上下文无关的语言。证明是针对上下文无关语言的激进引理。假设该语言是上下文无关的。然后,长度大于p的语言中的每个字符串都可以重写为uvxyz,使得| vxy | 0,并且对于每个自然数k,u(v ^ k)x(y ^ k)z也是该语言中的字符串。现在,考虑字符串[a ^(p + 1)] [b ^ p] [c ^ p]。有几种方法可以将其写为uvxyz。让我们考虑子字符串vxy的所有可能情况:

  1. vxy的可泵送部分仅包含a。抽气有效,但是k = 0是一个有效的选择,抽气失败,因为抽气会使a的数量至少减少一个。
  2. vxy的可泵送部分由a和b组成:抽空将减少a而不减小c,这违反了要求。
  3. vxy的可泵送部分仅由b组成:泵送将使b的数量增加到a的固定数量以上,这违反了要求。
  4. vxy的可泵送部分由b和c组成:泵送将增加b和c的数量而不改变a的数量,这违反了要求。
  5. vxy的可泵送部分仅由c组成:泵送将增加c的数量而不改变a的数量,这违反了要求。

因此,在满足抽水引理(一个矛盾)的要求的同时,没有办法将我们的单词写为uvxyz。因此,我们驳斥了该语言是上下文无关的假设。