这是一般规则......
让
L
成为常规语言。然后存在一个整数p ≥ 1
,仅取决于L
,因此w
长度至少为L
(p
的每个字符串p
都会被调用"抽水长度")可写为w = xyz
(即,w
可分为三个子串),满足以下条件:
|y| ≥ 1
|xy| ≤ p
适用于所有
i ≥ 0, x y^i z ∈ 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
,x y^i z
将成为abbccdd
,因此n=2
,m>n
现在为false
。
这足以证明吗?
OT:你如何在stackoverflow中编写顶点/上标字符?
答案 0 :(得分:2)
为了证明给定的语言是非常规的,考虑一个案例
就足够了
是的,这是使用泵浦引理时的常见模式。证据应该是矛盾的,首先假设语言 是常规的。然后你会在语言中找到一个与泵浦引理相矛盾的示例字符串。抽取引理说明了每个字符串(在某些情况下),所以找到一个反例足以证明这个矛盾。
答案 1 :(得分:1)
所提供的语言为L = {a b^n c^k d^m | k,n,m>0 AND m>n}
- 这意味着此语言中的d
s比b
更多。
回答你的问题:
但是为了证明给定的语言是非常规的,是吗? 足以考虑一个案例(从而使第三个案件无效) 点)?
这个想法是正确的。您希望使用Pumping Lemma for Regular Languages,如果您能证明将Pumping Lemma应用于给定语言的单词会产生一个不在该语言中的单词,那么您已经证明该语言不能是常规语言。 / p>
泵送引理在这个意义上经常使用和有用。
这足以证明吗?
您展示的证据是正确的想法,但未正确应用。你选择了
x = a
y = bc
z = dd
并应用抽水引理会产生abcbcdd
,这当然不是语言的一部分,但现在抽水时间会发挥作用。
你有语言
L = {a b^n c^k d^m | k,n,m>0 AND m>n}
现在,您要查找单词并选择p
和相应的子字符串,应用正则语言的抽取引理,并显示生成的单词不是该语言。然后,您可以得出结论,该语言不规律。
您选择的子字符串不合适。有一个错误,我在评论你的问题时提到过。我会采用一般方法:
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
因此,使用Pumping Lemma,我们可以说以下内容:
|y| >= 1
因为根据定义b^n with n > 0
|xy| = |a b^n| <= p
其中p
是抽水长度p = n + 1
是|a b^n|
xy
至少包含ab
,因此p >= 1
|w| >= p
,因为我们之前已将p
设置为n + 1
,因此k > 0
和m > n
x y^i z
,L
位于i >= 0
现在选择一个n + 1 = m
的单词,即单词中只有一个d
b
。这个词在L
中,看起来像a b^n c^k d^m
。现在我们应用Pumping Lemma,这个单词最多可以a b^n+1 c^k d^m
。但这是一个矛盾,因为现在抽取的字中b
和d
一样多,因此该字不在L
语言中。我们可以得出结论,L
不是常规的。