簡體   English   中英

用上下文自由語言抽取引理

[英]Pumping Lemma with Context Free Languages

我有語言{a^ib^jc^k | i,j,k>=0 & i>j & j>k} {a^ib^jc^k | i,j,k>=0 & i>j & j>k}我開始假設為我挑選了一些m ,這樣一個字符串

   z = a^m b^(m-1) c^(m-2)

然后將字符串拆分為(z =) uvwxy以便vx不為空且#(vwx)<=m然后當我選擇“ i ”時,我感到困惑。 說我選擇i=1然后我有: uv^1wx^1y並且我不完全確定從哪里開始因為對我而言看起來我可以選擇一種語言中的vwx。

有什么建議么?

我首先選擇稍好的z = a ^(m + 2)b ^(m + 1)c ^(m),其中m是泵送長度。 該字符串顯然在語言中,其長度大於或等於m。 因此,假設語言是CFL,則泵浦引理適用於它。 現在,因為你知道| vwx | <= m和那| vx | > 0,你也知道vwx必須包括(1)只有一個,(2)一些和一些b,(3)只有b,(4)一些b和一些c,或(5)只有c。

單獨處理每個案例。 我會為你做前兩個案例。

情況1:這意味着對於某些s> 0,vx是^(s),因為引理告訴我們| vx | > 0.現在假設你取i = 0.然后引理告訴我們z'= uv ^(0)wx ^(0)y應該仍然屬於該語言。 然而,z'的形式為^(m + 2-s)b ^(m + 1)c ^(m),並且由於s> 0,違反了a的數量必須嚴格大於b的數量。 因此,z'不在語言中,並且這種情況無法提取。

情況2:這意味着對於某些s,t,vx是^(s)b ^(t),使得s + t> 0.假設,再次,你取i = 0.那么z'的形式為a ^ (M + 2-S)b ^(M + 1-t)的C 1-4(米)。 如果t為正,則違反b的數量嚴格大於c的數量的條件。 如果t為零,則s必須為正,在這種情況下,我們退化為情況1.因此,z'不在語言中,並且這種情況無法抽取。

對於處理其他情況,請記住,您可以為每個情況選擇不同的抽水指數。

編輯:(從過去關於這個問題的討論,我決定展示其他三個案例。)

情況3:這意味着對於某些s> 0,vx是b ^(s)。取i = 0.然后z'的形式為a ^(m + 2)b ^(m + 1-s)c ^(米)。 由於s是正的,這違反了b的數量嚴格大於c的數量的條件。 所以z'不在語言中,這種情況不能用。 (你也可以把我等於除了1以外的任何東西,以表明這種情況無法抽出。)

情況4:這意味着對於某些s,t,vx是b ^(s)c ^(t),使得s + t> 0.取i = 2.然后z'的形式為a ^(m + 2) b ^(M + 1 + S)C ^(M + T)。 如果s非零,則違反a的數量嚴格大於b的數量的條件。 如果s為零,那么t必須是非零的,在這種情況下,違反了b的數量嚴格大於c的數量的條件。 所以z'不在語言中,這種情況也無法提供。

情況5:這意味着對於某些s> 0,vx是c ^(s)。取i = 2.然后z'的形式為a ^(m + 2)b ^(m + 1)c ^(m + S)。 由於s是正的,因此違反了b的數量嚴格大於c的數量的條件。 所以z'不在語言中,這種情況不能用。

由於所有五種情況都無法泵送,因此泵送引理告訴我們這種語言不是無上下文的。

注意 :在評論中經過一些反復,我看到我錯了,威廉的答案實際上是正確的。 我會在這里留下這個答案,所以我可以指出我的推理線在哪里失敗了。

我會這樣想的:

為了在抽水后甚至有機會保留在語言定義范圍內,v,w,x必須包含哪些屬性? v和x都不能包含像“ab”或“bc”這樣的子串,否則它們會立即從輸入語言中抽出。 所以v和x中的每一個都必須是空的,所有的a,所有的b或者所有的c。

考慮字符串aaabbc,它在語言中。

如果我們選擇u =“aa”,v =“a”,w = epsilon,x =“b”,y =“bc”,會發生什么? 和泵v和x? 這是我的錯誤:我沒有考慮n = 0的情況,其中v和x實際上是從字符串中刪除的;無論你如何選擇uvwxy,對於n = 0或n> 1的情況,證明都會失敗uvwxy被泵送到uv n wx n y)。

:CFL泵引理可以用來證明一個語言不是上下文無關,但其本身服從泵引理不足以證明語言上下文無關。 有些語言不是CF,但CFL泵浦引理的所有條件仍然存在。 對於這種情況,你可能想看看Ogden的引理 ,一個更強大的測試,看看是否可以用來表明你的語言不是CF.

泵浦引理說,如果一種語言沒有上下文,那么它就會“抽”。 也就是說,如果它的上下文無關,那么:

存在一些最小長度p,因此任何長度為p或更長的字符串s都可以被重寫為s = uvxyz,其中u和y項可以在任何位置重復(包括零)。

典型的用途是證明語言不會抽出,以證明它不是無上下文的。 從你的工作看起來這就是你想要做的事情。

但是泵浦引理的相反之處是錯誤的:有些語言可以提供但不具備上下文。 事實上,你的語言就是這樣的野獸。 換句話說,你的語言不是沒有上下文的,但它確實有用。 (證明這一點的最簡單方法是拆分s,使得v =“a”和y =“b”。)因此,在分析這種語言時,泵浦引理不太可能對你有用。 您可能希望考慮奧格登的引理

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM