Esempio di un linguaggio privo di contesto che può comunque essere pompato?


15

Quindi sostanzialmente L soddisfa le condizioni del lemma di pompaggio per i CFL ma non è un CFL (ciò è possibile secondo la definizione del lemma).


È una domanda da fare a casa o sei solo curioso?
Yuval Filmus,

Questo non è un compito, ma mi aspetto di vederlo nell'esame (solo un sospetto, conoscendo il mio professore). E sono sempre curioso :)
user2329564,

2
Avevamo una domanda simile, ma per le lingue normali . Si applica lo stesso tipo di costruzione: prendi un simbolo speciale e considera $ K { $ kk 1 } { a , b } per una lingua cattiva K { a , b } . $$K{$kk1}{a,b}K{a,b}
Hendrik Jan

Risposte:


13

L'esempio classico è . Spettacoli saggi nel suo articolo Un forte lemma di pompaggio per linguaggi senza contesto che né il lemma di pompaggio di Bar-Hillel né il teorema di Parikh (affermando che l'insieme delle lunghezze di parole in un linguaggio senza contesto è semi-lineare) può essere usato per dimostrare che L non è privo di contesto. Anche altri trucchi come l'incrocio con una lingua normale non aiutano. (Il lemma di Ogden, una generalizzazione del lemma di pompaggio di Bar-Hillel, dimostra che LL={aibjck:i,j,k all different}LLnon è privo di contesto.) Fornisce anche un lemma di pompaggio alternativo che equivale alla mancanza di contesto (per i linguaggi calcolabili) e lo usa per dimostrare che non è privo di contesto.L

Di saggi pompaggio lemma afferma che un linguaggio è se e senza contesto solo se v'è una (limitata) grammatica G generatrice L e un intero k tale che ogni volta G genera una "forma sentenziale" s (così s possono includere non-terminali) di lunghezza | s | > k , possiamo scrivere s = u v x y z dove x , v y non sono vuoti, | v x y | kLGLkGss|s|>ks=uvxyzx,vy|vxy|k, E v'è un non terminale tale che G genera u A z e A genera sia v A y ed x .AGuAzAvAyx

Applicando ripetutamente la condizione nel lemma, Wise è in grado di dimostrare che non è privo di contesto, ma i dettagli sono alquanto complicati. Dà anche una condizione equivalente ancora più complicata e la usa per dimostrare che la lingua { a n b a n m : n , m > 0 } non può essere scritta come intersezione finita di linguaggi senza contesto.L{anbanm:n,m>0}

Se non riesci ad accedere al documento di Wise (è dietro un paywall), c'è una versione dattiloscritta che è uscita come un rapporto tecnico dell'università dell'Indiana.


Un linguaggio non privo di contesto che soddisfa le condizioni di pompaggio del lemma di Ogden è dato da Johnsonbaugh e Miller, Converse di pompare i lemmi , e attribuito lì a Boasson e Horvath, su linguaggi che soddisfano il lemma di Ogden . La lingua in questione è Possiamo scrivereL=L1L

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)Σ.
, corrispondente alle due diverse linee. Notare che L 1L 2 = e che L 2 è regolare. Il lemma di Ogden può essere usato per dimostrare che L 1 non è privo di contesto, e quindi nemmeno L , ma non può essere usatodirettamenteper dimostrare che L non è privo di contesto.L=L1L2L1L2=L2L1LL

Non è necessario che ci sia almeno una produzione simile a questa: A -> sententialForm1 A sententialForm2 per rendere possibile qualsiasi pompaggio
user2329564

Beh, più in generale: non è necessario che una B non terminale faccia parte di una forma sentenziale derivabile da A tale che B-> sententialForm1.B.sententialfrom2 sia una produzione di G. Altrimenti come sarebbe certo che una parola di un lunghezza arbitraria può essere pompata da A.
user2329564

Non vedo perché, abbiamo una produzione , che corrisponde al pompaggio. Ad esempio, recuperi immediatamente il lemma di pompaggio poiché S u A z u v i A y i z u v i x y i z . A+vAySuAzuviAyizuvixyiz
Yuval Filmus,

4
Sembra una bella aggiunta al nostro riferimento .
Raffaello

Un'altra cosa che manca è la chiusura sotto "mappature inverse di gsm", vedi planetmath.org/generalizedsequentialmachine . Forse li aggiungerò ad un certo punto.
Yuval Filmus,

8

{ambncndn:m1,n1}as; intersection with the regular L(ab+c+d+) gives a non-CFL (and that can be proved by pumping lemma).


1
This will be a nice addition to the third homework... muahaha
Renato Sanhueza

1
I don't think this is right. If the language starts with only one a, then if you try to pump the a you have to account for the fact that a0 must also be in the language.
MCT

To expand on MCT's comment: consider the word abpcpdp; choose v=a, u=w=x=ε, y=bpcpdp. Then, for i=0, uviwxiy is not in the language, as it doesn't start with an a, so the lemma doesn't hold.
potestasity

2

A simple language is {abncndn:n1}L(aa+b+c+d+). Intersect with L(ab+c+d+) to get a clearly non-CFL, but you can always pump the a, and mimetize the equal-length-ness in the sea of +.


Wise's example is (apparently) immune to these techniques as well, or so he claims.
Yuval Filmus

4
@YuvalFilmus, so it seems. But my example is immune to professors doubting you understood Wise's paper, or wanting a complete proof that it isn't a CFL in the 2-hour limit of the exam ;-)
vonbrand
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.