Jak udowodnić, że język nie jest pozbawiony kontekstu?


88

Dowiedzieliśmy się o klasie języków bezkontekstowych . Charakteryzuje się zarówno gramatykami bezkontekstowymi, jak i automatami pushdown, dzięki czemu łatwo jest pokazać, że dany język jest pozbawiony kontekstu.CFL

Jak jednak pokazać coś przeciwnego? Moja TA była nieugięta, że ​​aby to zrobić, musielibyśmy wykazać dla wszystkich gramatyk (lub automatów), że nie potrafią opisać języka, który jest pod ręką. To wydaje się dużym zadaniem!

Czytałem o lemie pompującym, ale wygląda to na bardzo skomplikowane.


Ntpick: nierozstrzygalne jest pokazanie, czy język jest pozbawiony kontekstu.
reinierpost

1
@reinierpost Nie rozumiem, jak twój komentarz odnosi się do pytania. Chodzi o udowodnienie rzeczy, a nie podejmowanie decyzji (algorytmicznie).
Raphael

Po prostu podkreślam, że nie jest łatwo wykazać, że język jest ogólnie pozbawiony kontekstu . Jeśli jest to łatwe dla frafl, musi to wynikać z pewnych specjalnych warunków, które nie obowiązują w ogóle dla języków, takich jak otrzymanie automatu przesuwania opisującego język.
reinierpost

@reinierpost Ta linia rozumowania wydaje się zakładać, że nierozstrzygalność implikuje (równa się?) trudność do udowodnienia. Zastanawiam się, czy to prawda.
Raphael

Odpowiedzi:


69

Według mojej wiedzy lemat pompujący jest zdecydowanie najprostszą i najczęściej stosowaną techniką. Jeśli jest ci ciężko, wypróbuj najpierw zwykłą wersję , nie jest tak źle. Istnieją inne sposoby dla języków, które są dalekie od kontekstu. Na przykład niezdecydowane języki nie są trywialnie wolne od kontekstu.

To powiedziawszy, interesują mnie również inne techniki niż lemat pompowania, jeśli takie istnieją.

EDYCJA: Oto przykład lematu pompującego: załóżmy, że język jest pozbawiony kontekstu ( jest zbiorem liczb pierwszych). Lemat pompujący ma wiele kwantyfikatorów więc sprawię, że będzie to trochę jak gra:P / L={akkP}P/

  1. Lemat pompowania dajep
  2. Dajesz słowo języka o długości co najmniejpsp
  3. Lemat pompujący przepisuje to w następujący sposób: z pewnymi warunkami ( i )| v x y | p | v y | 1s=uvxyz|vxy|p|vy|1
  4. liczbę całkowitąn0
  5. Jeśli nie jest w , wygrywasz, nie jest pozbawiony kontekstu.L LuvnxynzLL

W tym konkretnym języku dla dowolny (z oraz jest liczbą pierwszą) rade. Wtedy lemat pompujący daje ci z . Nie obalaj kontekstowości, musisz znaleźć takie, żenie jest liczbą pierwszą.a k k p k u v x y z | v y | 1 n | u v n x y n z |sakkpkuvxyz|vy|1n|uvnxynz|

|uvnxynz|=|s|+(n1)|vy|=k+(n1)|vy|

A następnie zrobi: nie jest liczbą pierwszą, tak . Nie można zastosować lematu pompującego, więc nie jest pozbawiony kontekstu.k + k | v y | = k ( 1 + | v y | ) u v n x y n z L Ln=k+1k+k|vy|=k(1+|vy|)uvnxynzLL

Drugim przykładem jest język . Musimy (oczywiście) wybrać ciąg znaków i pokazać, że nie ma możliwości podzielenia go na te pięć części i że każdy wyprowadzony ciąg znaków pozostaje w języku.{www{a,b}}

Ciąg jest odpowiednim wyborem dla tego dowodu. Teraz musimy tylko sprawdzić, gdzie mogą znajdować się i . Najważniejsze jest to, że lub musi mieć coś w sobie (być może jedno i drugie) i że zarówno i (i ) są zawarte w podciągu długości - więc nie mogą być zbyt daleko od siebie. v y v y v y x ps=apbpapbpvyvyvyxp

Ten ciąg ma wiele możliwości, gdzie mogą znajdować się i , ale okazuje się, że kilka przypadków faktycznie wygląda całkiem podobnie.yvy

  1. v y b a b | v y | = k pvya lub . Tak więc oba są zawarte w jednej z sekcji zakreślających s lub s. Jest to stosunkowo łatwy argument, ponieważ nie ma znaczenia, w którym są. Załóżmy, że . vybab|vy|=kp
    • Jeśli są w pierwszym odcinku s, a następnie kiedy pompa, pierwsza połowa nowego łańcucha jest , a drugi jest . Oczywiście nie ma to formy .a p + k b p - k / 2 b k / 2 a p b p w waap+kbpk/2bk/2apbpww
    • Argument dla każdej z trzech innych sekcji działa prawie tak samo, tylko tam, gdzie i kończą się na indeksach.k / 2kk/2
  2. vxy rozciąga się na dwie sekcje. W tym przypadku pompowania w dół jest twoim przyjacielem. Znów jest kilka miejsc, w których może się to zdarzyć (dokładnie 3), ale zrobię tylko jedno ilustracyjne, a reszta powinna być łatwa do zrozumienia.
    • Załóżmy, że leży na granicy pomiędzy pierwszym sekcji i pierwszym sekcji. Niech (nie ma znaczenia dokładnie, gdzie si są w i , ale wiemy, że są w porządku). Następnie, gdy odpompowujemy (tj. Przypadek ), otrzymujemy nowy ciąg , a następnie, jeśli mogą być podzielone na , środek musi być gdzieś w drugim części, a więc pierwsza połowaa b v y = a k 1 b k 2 a b v y i = 0 s = a p - k 1 b p - k 2 a p b p s w w a a p - k 1 b p - k 2 a ( k 1 + k 2 )vxyabvy=ak1bk2abvyi=0s=apk1bpk2apbpswwa a p - ( k 1 + k 2 ) / 2 b p vyapk1bpk2a(k1+k2)/2, a druga połowa to . Oczywiście nie są to te same ciągi, więc nie możemy tam wstawić i .ap(k1+k2)/2bpvy

Pozostałe przypadki powinny być stamtąd dość przejrzyste - są to te same pomysły, po prostu umieszczając i w pozostałych 3 miejscach w pierwszej instancji i 2 miejsca w drugiej instancji. We wszystkich przypadkach można go jednak pompować w taki sposób, że porządkowanie jest wyraźnie pomieszane po podzieleniu łańcucha na pół.yvy


tak naprawdę gra Kozen jest na to sposobem.
Sokrates

45

Lemma Ogdena

Lemma (Ogden). Niech będzie językiem bezkontekstowym. Następnie istnieje stała taka, że ​​dla każdego i dowolnego sposobu oznaczania lub większej liczby pozycji (symboli) jako „pozycji wyróżniających”, wówczas można zapisać jako , tak żeN z L N z z z = u v w x yLNzL Nzzz=uvwxy

  1. vx ma co najmniej jedną wyróżnioną pozycję.
  2. Nvwx ma najwyżej wyróżnionych pozycji.N
  3. Dla wszystkich , .u v i w x i y L.i0uviwxiyL

Przykład. Niech . Załóżmy, że jest pozbawione kontekstu i niech będzie stałą podaną przez lemat Ogdena. Niech (Który należy do ) i załóżmy, że zaznaczamy jako wyróżnione wszystkie pozycje symbolu (tj. Pierwsze pozycji ) . Niech będzie rozkładem spełniającym warunki z lematu Ogdena.L N z = a N b N + N ! c N + 2 N ! L a N z z = u v w x y zL={aibjck:ij,jk,ik}LNz=aNbN+N!cN+2N!LaNzz=uvwxyz

  • Jeśli lub zawierają różne symbole, to , ponieważ będą symbole w niewłaściwej kolejności.x u v 2 w x 2 y Lvxuv2wx2yL
  • Przynajmniej jeden z i może zawierać tylko symbole , ponieważ tylko „s wyodrębniono. Zatem jeśli lub , to . Niech. Następnie , co oznacza, że dzieli. Niech . Następnie powinien należeć do . Jednak . Ponieważ ma dokładnie symbole , tox a a x L ( b ) x L ( c ) v L ( A + ) p = | v | 1 p N p N ! q = N ! / p z = u v 2 q + 1 w x 2 q + 1 y L.vxaaxL(b)xL(c)vL(A+)p=|v|1pNpN!q=N!/pz=uv2q+1wx2q+1yL u w y N - p a z 2 N ! + N a v x c z 2 N ! + N c z L x L ( A + ) x L ( cv2q+1=a2pq+p=a2N!+puwyNpazma symbole . Ale zarówno jak i nie mają , więc ma również symbole , co oznacza , a to przeczy lematowi Ogdena. Podobna sprzeczność występuje, jeśli lub . Stwierdzamy, że nie jest kontekstowe.2N!+Navxcz2N!+NczLxL(A+)L.xL(c)L

Ćwiczenie. Używając Lemmy Ogdena, pokaż, że nie jest pozbawiony kontekstu.L={aibjckd:i=0 or j=k=}

Pompowanie Lemmy

Jest to szczególny przypadek lematu Ogdena, w którym rozróżnia się wszystkie pozycje.

Lemat. Niech będzie językiem bezkontekstowym. Następnie istnieje stała taka, że ​​dla każdego , można zapisać jako , tak żeN z L z z = u v w x yLNzLzz=uvwxy

  1. |vx|>0 .
  2. |vwx|N .
  3. Dla wszystkich , .u v i w x i y L.i0uviwxiyL

Twierdzenie Parikha

To jest nawet bardziej techniczne niż Lemma Ogdena.

Definicja. Niech . Definiujemy przez gdzie jest liczbą wystąpień in .Ψ Σ : Σ N n Ψ Σ ( w ) = ( m 1 , , m n ) , m i a i wΣ={a1,,an}ΨΣ:ΣNn

ΨΣ(w)=(m1,,mn),
miaiw

Definicja. Podzbiór z jest nazywany liniowym, jeśli można go zapisać: SNn

S={u0+1ikaiui: for some set of uiNn and aiN}

Definicja. Podzbiór o nazywa półliniowych , jeżeli jest to związek skończonego zbioru zestawów liniowych.SNn

Twierdzenie (Parikh). Niech będzie językiem nad . Jeśli jest pozbawiony kontekstu, to jest półliniowe.LΣL

ΨΣ[L]={ΨΣ(w):wL}

Ćwiczenie. Korzystając z twierdzenia Parikha, pokaż, że nie jest pozbawione kontekstu.L={0m1n:m>n or (m is prime and mn)}

Ćwiczenie. Korzystając z twierdzenia Parikha, pokaż, że każdy bezkontekstowy język nad pojedynczym alfabetem jest również regularny.


1
Zaakceptowałem odpowiedź jmada, ponieważ pytanie wyraźnie wymienia Pumping Lemma. Bardzo jednak doceniam twoją odpowiedź; zgromadzenie wszystkich głównych metod tutaj jest świetną rzeczą.
Raphael

1
W porządku, ale zauważ, że pompujący lemat jest szczególnym przypadkiem lematu Ogdena ;-)
Janoma

Oczywiście. Jednak większość ludzi najpierw wypróbuje PL; wielu nawet nie zna OL.
Raphael

1
Twierdzenie Ginsburga i Spaniera, oparte na twierdzeniu Parikha, zapewnia niezbędny i wystarczający warunek dla kontekstu-płynności w ograniczonej sprawie. math.stackexchange.com/a/122472
sdcvvc

Czy możesz zdefiniować „wyróżnione pozycje” w kontekście innych operacji? A przynajmniej nieoficjalnie? Znajduję definicję OL skopiowaną dosłownie w wielu różnych miejscach, ale jak dotąd żadna z nich nie chciała wyjaśnić, co to znaczy.
wvxvw

34

Właściwości zamknięcia

Raz masz małą kolekcję zakaz języków bezkontekstowych często można użyć właściwości zamknięcia z tak:CFL

Załóżmy . Następnie, poprzez właściwość zamknięcia X (wraz z Y), . Jest to sprzeczne z który wiemy, że trzymamy, dlatego .LCFLLCFLLCFLLCFL

Jest to często krótsze (i często mniej podatne na błędy) niż użycie jednego z innych wyników, które wykorzystują mniejszą wiedzę. Jest to również ogólna koncepcja, którą można zastosować do wszystkich rodzajów obiektów.

Przykład 1: Przecięcie ze zwykłymi językami

Zwracamy uwagę na język regularny określony przez dowolne wyrażenie regularne .L(e)e

Niech . Tak jakL={ww{a,b,c},|w|a=|w|b=|w|c}

LL(abc)={anbncnnN}CFL

i jest zamknięty pod skrzyżowaniem ze zwykłymi językami, .CFLLCFL

Przykład 2: (odwrotny) homomorfizm

Niech . Z homomorfizmemL={(ab)2ncmd2nm(aba)nm,nN}

ϕ(x)={ax=aεx=bbx=cx=d

mamyϕ(L)={a2nb2na2nnN}.

Teraz z

ψ(x)={aax=ax=cbbx=bandL1={xnbnynx,y{a,c}nN},

otrzymujemy .L1=ψ1(ϕ(L)))

Wreszcie, przecinając ze zwykłym językiem otrzymujemy język .L1L2=L(abc)L3={anbncnnN}

W sumie mamy .L3=L2ψ1(ϕ(L))

Załóżmy teraz, że był pozbawiony kontekstu. Następnie, ponieważ jest zamknięty przeciwko homomorfizmowi, homomorfizmowi odwrotnemu i przecinaniu się z regularnymi zbiorami, jest kontekstu. Ale wiemy (za pomocą Pumping Lemma, jeśli to konieczne), że nie jest kontekstu, więc jest to sprzeczność; pokazaliśmy, że .LCFLL3L3LCFL


Interchange Lemma

Interchange Lemma [1] proponuje niezbędny warunek kontekstowy chudości, który jest jeszcze silniejszy niż lemat ogdena . Na przykład można tego użyć

{xyyzx,y,z{a,b,c}+}CFL

który jest odporny na wiele innych metod. Oto lemat:

Niech . Następnie istnieje stała taka, że ​​dla dowolnej liczby całkowitej , dowolnego zestawu i dowolnej liczby całkowitej przy istnieje ciągi znaków zLCFLcLn2QnLn=LΣnmnm2k|Qn|cLn2ziQn

  1. zi=wixiyi dla ,i=1,,k
  2. |w1|=|w2|==|wk|,
  3. |y1|=|y2|==|yk|,
  4. m|x1|=|x2|==|xk|>m2 i
  5. wixjyiLn dla wszystkich .(i,j)[1..k]2

Zastosowanie go oznacza znalezienie i taki sposób, że 1.-4. przytrzymaj, ale 5. jest naruszone. Przykład zastosowania podany w oryginalnym artykule jest bardzo szczegółowy i dlatego został pominięty tutaj.n,mQn

W tej chwili nie mam ogólnodostępnej referencji, a powyższe sformułowanie pochodzi z preprint [1] z 1981 r. Doceniam pomoc w wyszukiwaniu lepszych referencji. Wygląda na to, że ta sama właściwość została (ponownie) odkryta niedawno [2].


Inne niezbędne warunki

Boonyavatana i Slutzki [3] badają kilka warunków podobnych do lemie pompowania i wymiany.


  1. „Interchange Lemma” dla języków bezkontekstowych W. Ogdena, RJ Rossa i K. Winklmanna (1985)
  2. Wymiana lematów na języki zwykłe i bezkontekstowe T. Yamakami (2008)
  3. Lematy wymiany lub pompowania (DI) dla języków bezkontekstowych R. Boonyavatana i G. Slutzki (1988)


19

Nie ma ogólnej metody, ponieważ zestaw języków bezkontekstowych nie jest częściowo rozstrzygalny (akare). Gdyby istniała ogólna metoda, moglibyśmy użyć jej, aby częściowo zdecydować o tym zestawie.

Sytuacja jest jeszcze gorsza, ponieważ biorąc pod uwagę dwa świetlówki kompaktowe, nie można zdecydować, czy ich przecięcie jest również świetlówką kompaktową.

Odniesienia: Hopcroft i Ullman, „Wprowadzenie do teorii automatów, języków i obliczeń”, 1979.


2
Ciekawym (ale prawdopodobnie bardziej zaawansowanym i otwartym pytaniem) byłoby kategoryzowanie podklasy nie-CFL, które można udowodnić, że nie są CFL przy użyciu określonej metody.
Kaveh

Nie szukam metody obliczalnej , ale techniki sprawdzania pisaków i papieru. To ostatnie niekoniecznie oznacza pierwsze.
Raphael

13

Silniejszą wersją warunku Ogdena ( OC ) jest

Stan Bader-Moury (BMC)

Język spełnia BMC, jeśli istnieje stała taka, że ​​jeśli i oznaczamy w nim pozycje „wyróżniające” pozycje i pozycje „wykluczone”, , wówczas możemy napisać tak aby:LΣnzLd(z)e(z)d(z)>ne(z)+1z=uvwxy

  1. e ( v x ) = 0d(vx)1 ie(vx)=0
  2. d(vwx)ne(vwx)+1 i
  3. dla każdego , jest .u v i w x i y Li0uviwxiyL

Mówimy, że język jeśli spełnia warunek Bader-Moury.LLBMC(Σ)L

Mamy , więc BMC jest ściśle silniejszy niż OC.CFL(Σ)BMC(Σ)OC(Σ)

Odnośnik: Bader, C., Moura, A., A Generalization of Ogden's Lemma. JACM 29, nr 2, (1982), 404–407


2
Dlaczego po prostu nie przejść całą drogę do Dömösi and Kudlek za uogólnienie dx.doi.org/10.1007/3-540-48321-7_18 ...
András Salamon

@ AndrásSalamon: Nie wiedziałem o tym! :-) ... być może możesz opublikować to jako nową odpowiedź, mówiąc, że OC, BMC, PC są tego szczególnymi przypadkami (wszystkie wyróżnione lub brak wykluczonych pozycji).
Vor

możesz go opublikować, nie masz teraz czasu.
András Salamon

Ta odpowiedź skorzystałaby na przykładzie.
Raphael
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.