[英]Using Pumping Lemma to prove non regularity of a language
这是一般规则...
令
L
为常规语言。 然后,存在一个仅依赖于L
的整数p ≥ 1
,这样长度L
中长度至少为p
每个字符串w
(p
称为“抽取长度”)可以写成w = xyz
(即w
可以分为三子字符串),满足以下条件:
|y| ≥ 1
|xy| ≤ p
对于所有
i ≥ 0, xy^iz ∈ L
...到目前为止,一切都很好。
但是为了证明给定语言是非常规语言,考虑一种情况是否足够(从而使第三点无效)? 例如:
L = {a b^n c^k d^m | k,n,m>0 AND m>n} <-- given language
w = {a b^n c d^m | n=1 AND m=2} = abcdd <-- arbitrary instance of the language
x = a
y = bc
z = dd
当i=2
, xy^iz
将变为abbccdd
,因此n=2
,这意味着m>n
现在为false
。
这足以证明吗?
OT:如何在stackoverflow中编写顶点/上标字符?
为了证明给定语言是非常规语言,考虑一种情况是否足够
是的,这是使用抽水引理时的常见模式。 证明应该是自相矛盾的,首先要假设语言是规则的。 然后,您找到了一个与抽水引理矛盾的语言示例字符串。 抽引式引理对每条弦(在某些条件下) 都会说些什么,因此找到一个反例就足以证明这一矛盾。
给定的语言为L = {ab^nc^kd^m | k,n,m>0 AND m>n}
L = {ab^nc^kd^m | k,n,m>0 AND m>n}
-这意味着该语言的单词中d
s大于b
s。
要回答您的问题:
但是为了证明给定语言是非常规语言,考虑一种情况是否足够(从而使第三点无效)?
这个想法是正确的。 您想要对常规语言使用泵送引理,并且如果您可以证明将泵送引理应用于给定语言的单词会导致该单词不是该语言的单词,那么您已经证明该语言不是常规语言。
从这个意义上说,抽水引诱经常被使用和有用。
这足以证明吗?
您显示的证据是正确的想法,但未正确应用。 你选择了
x = a
y = bc
z = dd
并应用抽水abcbcdd
将导致abcbcdd
,这当然不是语言的一部分,但是现在抽水长度开始起作用了。
你有语言
L = {a b^n c^k d^m | k,n,m>0 AND m>n}
现在,您想查找一个单词,并适当选择p
和子字符串,应用常规语言的Pumping Lemma,并显示结果单词不是该语言的。 然后,您可以得出结论,该语言不是正常语言。
您选择的子字符串不合适。 我在评论您的问题时提到了一个错误。 我将采用一种通用方法:
w = {a b^n c^k d^m | n,p,m > 0 and m > n and n < p }
x = a
y = b^n
z = c^k d^m
因此,使用抽水引理我们可以说以下几点:
|y| >= 1
|y| >= 1
因为根据定义b^n with n > 0
|xy| = |ab^n| <= p
|xy| = |ab^n| <= p
,其中p
是抽气长度 p = n + 1
,即|ab^n|
xy
至少包含ab
,因此p >= 1
|w| >= p
|w| >= p
,因为我们先前将p
设置为n + 1
,并且因为k > 0
和m > n
i >= 0
, xy^iz
在L
中 现在选择一个n + 1 = m
的单词,即单词中的b
总是比d
多一个d
。 这个词在L
,看起来像ab^nc^kd^m
。 现在我们应用Pumping Lemma,这将单词泵到ab^n+1 c^kd^m
。 但这是一个矛盾,因为现在抽出的单词中的b
s与d
s一样多,因此该单词不在语言L
。 我们可以得出结论L
不规则。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.