我在解决/证明这个问题时遇到了麻烦。有什么想法吗?
答案 0 :(得分:10)
L = {a n b m | n> m}是不是常规语言。
是的,问题很棘手,最初几次尝试并值得投票。
抽取引理常规语言的必要属性是用于正式证明语言不是常规语言的工具。
正式定义:Pumping lemma for regular languages
让 L 成为常规语言。然后存在一个 p ≥1的整数,仅取决于 L , L 每个字符串 w 长度至少 p ( p 称为“抽水长度”)可写为 w = xyz (即 w 可分为三个子字符串),满足以下条件:
- | ý | ≥1
- | XY | ≤ p
- 所有 i ≥0, xy i z ∈ L < / LI> 醇>
假设,如果您选择字符串 W = a n b m ,其中(n + m) ≥ p
和n > m + 1
。选择 W 是有效的,但此选项您无法显示该语言不常规语言。因为使用此W
,您总是有 at-least 选择y=a
,以便通过重复 a
来抽取语言中的新字符串 所有 i
的值(对于i = 0和i&gt; 1) 。
在我编写解决方案以证明语言不规律之前。请理解以下几点并注意:我在上面的泵浦引理的正式定义中提出了粗体every string w
和all i
。
阅读:what pumping lemma formal definition says
证明:使用泵浦引理
步骤(1):选择字符串 W = a n b m 其中(n + m) ≥ p
和n = m + 1
。
Is this choice of
W
is valid according to pumping lemma?
是的,此类 W 使用的是语言,因为 a
= n &gt; 的数量为 {{ 1}} = m。 W 的语言足够大&gt; = b
。
步骤(2):现在选择p
为所有 y
生成新字符串。
这次i >= 0
可以选择没有!为什么?
首先,我们知道我们不能在 y 中包含 y
符号,因为它会生成 b
的结果字符串总数中超出模式或的新字符串将超过 b
的总数符号。
第二个,我们无法选择 y =某些 a 的,因为使用a
您将获得一个新字符串其中 i=0
的数量将小于 a
的数量,这在语言中是不可能的。(记住{的数量W中的{1}}只是b
的一个,因此删除结果字符串N(a)= N(b)中的任何均值是不可接受的,因为n> m )
因此,我们可以找到一些足够大的W,但是使用它们我们不能用与常规语言的泵浦引理属性相矛盾的语言生成新的字符串,因此语言{a n b < sup> m | n> m}确实是不常规语言。