[英]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
,使得任何字符串s
在L
具有|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^nz
在L
中。
對於L
任何s
(帶|s|>=p)
:
s
包含a
當時的選擇v=a, x=epsilon, y=epsilon
(和我們沒有矛盾語言是上下文無關)。 s
不包含a
S( w=b^jc^kd^l
和之一j
, k
或l
是非零的,因為|s|>=1
),則選擇v=b
(如果j>0
, v=c
elif k>0
,否則v=c
), x=epsilon
, y=epsilon
(我們與沒有上下文的語言沒有矛盾 ) 。 (很遺憾: 使用Pumping Lemma,我們無法證明任何關於L
事情!
注意:上面的內容基本上就是你在問題中提出的論點。)
如果語言
L
是無上下文的,則存在一些數字p > 0
(其中p
可以是或可以不是抽取長度),使得對於任何長度至少為p
inL
字符串w
以及每種“標記”p
或者w
,w
更多位置可以寫成w = uxyzv
使用字符串u, x, y, z,
和v
,使得:
1.xz
至少有一個標記位置,
2.xyz
最多有p
標記位置,並且
3.對於每個n ≥ 0
ux^nyz^nv
為L
注:此標記是奧格登引理的重要組成部分,它說:“不但可以每一個元素被‘抽’,但也可以用任意抽p
標記位置”。
設w = ab^pc^pd^p
並標記b
s的位置(其中有p
,所以w
滿足Ogden引理的要求),讓u,x,y,z,v
成為滿足分解的分解來自奧格登引理的條件( z=uxyzv
)。
x
或z
包含多個符號,則ux^2 yz^2 w
不在L
,因為將存在錯誤順序的符號(考慮(bc)^2 = bcbc
)。 x
或z
必須包含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.