簡體   English   中英

使用Ogden引理與常規泵浦引理用於無上下文語法

[英]Using Ogden’s Lemma versus regular Pumping Lemma for Context-Free Grammars

我正在學習問題中的引理之間的區別。 我能找到的每個引用都使用了這個例子:

{(a^i)(b^j)(c^k)(d^l) : i = 0 or j = k = l}

顯示兩者之間的差異。 我可以找到一個使用常規引理來“反駁”它的例子。

選擇w = uvxyz,st | vy | > 0,| vxy | <= p。 假設w包含相等數量的b,c,d's。

我選擇了:

u,v,x = ε
y = (the string of a's)
z = (the rest of the string w)

抽取y只會增加a的數量,如果| b | = | c | = | d | 起初,它現在還會。

(類似的論據,如果w沒有a。那么只需抽出你想要的任何東西。)

我的問題是,奧格登的引理如何改變這一策略? “標記”有什么作用?

謝謝!

這里一個重要的絆腳石問題是“能夠泵送”並不意味着沒有上下文,而是“無法泵送”表明它不是無環境的。 同樣, 灰色並不意味着你是一頭大象,但作為大象確實意味着你是灰色的......

Grammar context free        => Pumping Lemma is definitely satisfied  
Grammar not context free    => Pumping Lemma *may* be satisfied
Pumping Lemma satisfied     => Grammar *may* be context free
Pumping Lemma not satisfied => Grammar definitely not context free
# (we can write exactly the same for Ogden's Lemma)
# Here "=>" should be read as implies

也就是說,為了證明語言不是上下文,我們必須證明它失敗 (!)以滿足這些語法中的一個。 (即使它滿足兩者,我們還沒有證明它是無上下文的。)

下面是草圖證明L = { a^ib^jc^kd^l where i = 0 or j = k = l}不是無上下文的(雖然它滿足抽水引理,它不滿足Ogden的引理)

無上下文語法的抽取引理:

如果語言L是無上下文的,則存在一些整數p ≥ 1 ,使得任何字符串sL具有|s| ≥ p |s| ≥ p (其中p是泵浦長度)可寫為s = uvxyz
使用子字符串u, v, x, y and z ,這樣:
1. |vxy| ≤ p |vxy| ≤ p
2. |vy| ≥ 1 |vy| ≥ 1 ,和
3.對於每個自然數n uv^nxy^nzL中。

在我們的例子中:

對於L任何s (帶|s|>=p)

  • 如果s包含a當時的選擇v=a, x=epsilon, y=epsilon (和我們沒有矛盾語言是上下文無關)。
  • 如果s不包含a S( w=b^jc^kd^l和之一jkl是非零的,因為|s|>=1 ),則選擇v=b (如果j>0v=c elif k>0 ,否則v=c ), x=epsilony=epsilon (我們與沒有上下文的語言沒有矛盾

(很遺憾: 使用Pumping Lemma,我們無法證明任何關於L事情!
注意:上面的內容基本上就是你在問題中提出的論點。)

奧格登的引理:

如果語言L是無上下文的,則存在一些數字p > 0 (其中p可以是或可以不是抽取長度),使得對於任何長度至少為p in L字符串w以及每種“標記” p或者ww更多位置可以寫成w = uxyzv
使用字符串u, x, y, z,v ,使得:
1. xz至少有一個標記位置,
2. xyz最多有p標記位置,並且
3.對於每個n ≥ 0 ux^nyz^nvL

注:此標記是奧格登引理的重要組成部分,它說:“不但可以每一個元素被‘抽’,但也可以用任意抽p標記位置”。

在我們的例子中:

w = ab^pc^pd^p並標記b s的位置(其中有p ,所以w滿足Ogden引理的要求),讓u,x,y,z,v成為滿足分解的分解來自奧格登引理的條件( z=uxyzv )。

  • 如果xz包含多個符號,則ux^2 yz^2 w不在L ,因為將存在錯誤順序的符號(考慮(bc)^2 = bcbc )。
  • xz必須包含b (通過引理條件1)

這讓我們有五種情況需要檢查(對於i,j>0 ):

  • x=epsilon, z=b^i
  • x=a, z=b^i
  • x=b^i, z=c^j
  • x=b^i, z=d^j
  • x=b^i, z=epsilon

在每種情況下(通過比較b s, c s和d s的數量)我們可以看到ux^2 vy^2 z不在L (並且我們無上下文的語言有矛盾 (!),也就是說, 我們已經證明L不是無上下文的

總而言之, L不是沒有上下文的,但是這不能用泵浦引理來證明 (但可以通過Ogden的引理),因此我們可以這樣說:

Ogden的引理是無背景語言的第二個更強大的引理。

我不太確定如何在這里使用奧格登的引理,但你的“證據”是錯誤的。 當使用泵浦引理來證明語言不是上下文時,你不能選擇拆分為uvxyz。 分裂是“為你”選擇的,你必須證明任何uvxyz都沒有滿足引理。

暫無
暫無

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

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