Przykład bezkontekstowego języka, który mimo to MOŻE być pompowany?


15

Tak więc w zasadzie L spełnia warunki pompowania lematu dla CFL, ale nie jest CFL (jest to możliwe zgodnie z definicją lematu).


Czy to pytanie do pracy domowej, czy jesteś po prostu ciekawy?
Yuval Filmus

To nie jest zadanie domowe, ale spodziewam się, że zobaczę to na egzaminie (tylko przeczucie, znając mojego profesora). I zawsze jestem ciekawy :)
user2329564

2
Mieliśmy podobne pytanie, ale dotyczy to zwykłych języków . Obowiązuje ten sam typ konstrukcji: weź specjalny symbol i rozważ dla nieprzyjemnego języka . $ K { $ kk 1 } { a , b } K { a , b } $$K{$kk1}{a,b}K.{za,b}
Hendrik,

Odpowiedzi:


13

Klasycznym przykładem jest . Mądry pokazuje w swojej pracy Silny lemat pompowania dla języków bezkontekstowych, że ani Barem-Hillela, ani lemona Parikha (stwierdzająca, że ​​zestaw długości słów w języku bezkontekstowym jest półliniowy), mogą być użyte do udowodnienia że nie jest kontekstem. Inne sztuczki, takie jak przecinanie zwykłego języka, również nie pomagają. (Lemat Ogdena, uogólnienie lematu pompującego Bar-Hillela, dowodzi, że nie jest pozbawiony kontekstu.) Zapewnia również alternatywny lemat pompowania, który jest równoważny bezkontekstowości (dla języków obliczalnych) i używa go do udowodnienia że nie jest kontekstem.L.={zajabjotdok:ja,jot,k wszystko inne}LL.L.L.

Wise stany pompowania lematu, że język jest kontekst wolne wtedy i tylko wtedy, gdy jest (bez ograniczeń) gramatyki wytwarzające jest liczbą całkowitą i tak, że gdy generuje „zdań, formy” (a więc mogą obejmować nie-zaciski) o długości , możemy napisać gdzie są niepuste, , a istnieje nieterminalny taki że generuje a generuje zarówno jak i .G L k G s s | s | > k s = u v x y z x , v y | v x y | k A G u A z A v A y xL.solL.ksolss|s|>ks=uvxyzx,vy|vxy|kZAsoluZAzZAvZAyx

Poprzez wielokrotne stosowanie warunku w lemacie, Wise jest w stanie udowodnić, że nie jest pozbawiony kontekstu, ale szczegóły są nieco skomplikowane. Podaje również bardziej skomplikowany równoważny warunek i wykorzystuje go, aby udowodnić, że języka nie można zapisać jako skończonego przecięcia języków bezkontekstowych.{ a n b a n m : n , m > 0 }L.{anbanm:n,m>0}

Jeśli nie możesz uzyskać dostępu do artykułu Wise'a (znajduje się za zapłatą), istnieje wersja napisana na maszynie, która ukazała się jako raport techniczny uniwersytetu Indiana.


Nie kontekstowy język, który spełnia warunek pompowania lematu Ogdena, podają Johnsonbaugh i Miller, Converse pompowania lematów , i przypisuje się go Boassonowi i Horvathowi, W językach spełniających lemat Ogdena . Językiem, o którym mowa, jest Możemy napisać , odpowiadające dwóm różnym . Zauważ, że i że jest regularny. Lemat Ogdena można wykorzystać do udowodnienia, żeL=L1L2L.

L=n1(e+a+d+)n(e+b+d+)n(e+c+d+)n(a+b+c+d)ΣΣ(a+b+c+e)Σ(ed+d(a+b+c)+(a+b+c)e)Σ.
L=L1L2L1L2=L2L1nie jest kontekstem, podobnie jak , ale nie można go użyć bezpośrednio do wykazania, że nie jest kontekstem.LL

Czy nie musi to być co najmniej jedna produkcja wyglądająca tak: A -> sententialForm1 SententialForm2, aby możliwe było dowolne pompowanie
użytkownik2329564

Cóż bardziej ogólnie: czy nie jest konieczne, aby nieterminalny B był częścią formy sentymentalnej pochodzącej z A, tak że B-> sententialForm1.B.sentential from 2 jest produkcją G. W przeciwnym razie, jak byłoby pewne, że słowo dowolną długość można przepompować z A.
użytkownik2329564

Nie rozumiem dlaczego, mamy produkcję , która odpowiada pompowaniu. Na przykład natychmiast odzyskujesz lemat pompowania, ponieważ . S u A z u v i A y i z u v i x y i zA+vAySuAzuviAyizuvixyiz
Yuval Filmus

4
Brzmi jak miły dodatek do naszej referencji .
Raphael

Kolejną rzeczą, której brakuje, jest zamknięcie w „odwrotnych mapowaniach gsm”, patrz planetmath.org/generalizedsequentialmachine . Być może dodam je w pewnym momencie.
Yuval Filmus

8

Jeszcze prościej: . Można zawsze pompie s; przecięcie ze zwykłym L ( a b + c + d + ) daje brak CFL (i można to udowodnić przez pompowanie lematu).{ambncndn:m1,n1}aL(ab+c+d+)


1
Będzie to miły dodatek do trzeciej pracy domowej ... muahaha
Renato Sanhueza

1
Nie sądzę, że to prawda. Jeśli rozpocznie się językiem z jedynie jeden , a następnie, jeśli starają się pompować A trzeba uwagę na fakt, że 0 musi być również w języku. aaa0
MCT

Aby rozwinąć komentarz MCT: rozważ słowo ; wybierz v = a , u = w = x = ε , y = b p c p d p . Zatem dla i = 0 , u v i w x i y nie jest w języku, ponieważ nie zaczyna się od a, więc lemat nie ma miejsca. abpcpdpv=au=w=x=εy=bpcpdpi=0uviwxiy
potestasity,

2

Prostym językiem jest . Przecinaj się z L ( a b + c + d + ), aby uzyskać wyraźnie brak CFL, ale zawsze możesz pompować a i naśladować równość długości w morzu{abncndn:n1}L(aa+b+c+d+)L(ab+c+d+)a .+


Przykład Wise'a jest (najwyraźniej) również odporny na te techniki, a przynajmniej tak twierdzi.
Yuval Filmus

4
@YuvalFilmus, jak się wydaje. Ale mój przykład jest odporny na to, że profesorowie wątpią w zrozumienie pracy Wise'a lub chcą pełnego dowodu, że nie jest to CFL w 2-godzinnym limicie egzaminu ;-)
vonbrand
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.