Prova del lemma di pompaggio per linguaggi senza contesto usando automi pushdown


21

Il lemma di pompaggio per le lingue regolari può essere dimostrato considerando un automa a stati finiti che riconosce la lingua studiata, selezionando una stringa con una lunghezza maggiore del suo numero di stati e applicando il principio del buco del piccione. Il lemma di pompaggio per le lingue senza contesto (così come il lemma di Ogden, che è leggermente più generale), tuttavia, è dimostrato considerando una grammatica senza contesto della lingua studiata, selezionando una stringa sufficientemente lunga e guardando l'albero di analisi.

Data la somiglianza dei due lemmi di pompaggio, ci si aspetterebbe che anche quello senza contesto possa essere dimostrato in modo simile a quello normale considerando un automa pushdown che riconosce la lingua, piuttosto che una grammatica. Tuttavia, non sono riuscito a trovare alcun riferimento a tale prova.

Da qui la mia domanda: esiste una prova del lemma di pompaggio per linguaggi senza contesto che coinvolge solo automi pushdown e non grammatiche?

Risposte:


16

Ho ripensato a questo problema e penso di avere una prova completa. È un po 'più complicato di quanto mi aspettassi. I commenti sono molto graditi! Aggiornamento: ho inviato questa prova su arXiv, nel caso in cui ciò sia utile a qualcuno: http://arxiv.org/abs/1207.2819

Sia un linguaggio senza contesto rispetto a un alfabeto . Sia un automa pushdown che riconosce , con stack alfabeto . Indichiamo conil numero di stati di . Senza perdita di generalità, possiamo supporre che le transizioni di aprano il simbolo più in alto della pila e non spingano alcun simbolo sulla pila o spingano in pila il simbolo più in alto precedente e qualche altro simbolo.Σ A L Γ | A | A ALΣALΓ|A|AA

Definiamoe la lunghezza di pompaggio e mostrerà che tutto tale che ha una decomposizione della forma tale che , e .p = | A | ( | Γ | + 1 ) p w L | w | > p w = u v x y z | v x y | p | v y | 1 n 0 , u v n xp=|A|2|Γ|p=|A|(|Γ|+1)pwL|w|>pw=uvxyz|vxy|p|vy|1n0,uvnxynzL

Sia tale che . Sia un percorso accettante di lunghezza minima per (rappresentato come una sequenza di transizioni di ), denotiamo la sua lunghezza con. Possiamo definire, per, la dimensione della pila nella posizione del percorso accettante. Per tutti , definiamo un livello su come un insieme di tre indici con tale che:| w | > p π w A | π | 0 i < | π | s iowL|w|>pπwA|π|0i<|π|siN > 0 N π i , j , k 0 i < j < k piN>0Nπi,j,k0i<j<kp

  1. si=sk,sj=si+N
  2. per tutte le tali che ,i n j s is ns jninjsisnsj
  3. per tutte le tali che , .j n k s ks ns knjnksksnsk

(Per un esempio di questo, vedere l'immagine per il caso 2 di seguito che illustra un livello ).N

Definiamo il livello di come la massima tale che ha un livelloQuesta definizione è motivata dalla seguente proprietà: se la dimensione dello stack su un percorso diventa maggiore del suo livello , i simboli dello stack più profondi di livelli non verranno mai visualizzati. Ora distingueremo due casi: , nel qual caso sappiamo che la stessa configurazione per lo stato dell'automa e i simboli più in alto dello stack si incontrano due volte nei primi passi di , oppureπ N π N π l l l < p l p + 1 π l p v ylπNπNπlll<plp+1πlpe deve esserci una posizione di impilamento e non di impilamento che può essere ripetuta un numero arbitrario di volte, da cui costruiamo e .vy

Caso 1. . Definiamo le configurazioni di come coppie di uno stato di e una sequenza di simboli di pila (in cui pile di dimensioni inferiori a rappresentate riempiendole con con uno speciale simbolo vuoto, motivo per cui usiamo quando si definisce ). Per definizione, ci sono tali configurazioni, che è inferiore a . Quindi, nei primi primi passi di , la stessa configurazione si incontra due volte in due posizioni diverse, diciamo . Indicato da A A l l l | Γ | + 1 pl<pAAlll|Γ|+1p p p + 1 π i < j i j w i j π ij w = u v x y z y z = ε u = w|A|(|Γ|+1)lpp+1πi<ji^ (resp. ) la posizione dell'ultima lettera di letta al punto (resp. ) di . Abbiamo . Quindi, possiamo considerare con , , , . (Con denotiamo le lettere di da compreso a esclusivo.) Per costruzione, .j^wijπi^j^w=uvxyzyz=ϵ v= w ij x= w j| w | w x y wxy | vxy | pu=w0i^v=wi^j^x=wj^|w|wxywxy|vxy|p

Dobbiamo anche mostrare che , ma questo segue dalla nostra osservazione sopra: i simboli dello stack più profondi di non vengono mai visualizzati, quindi non c'è modo di distinguere configurazioni uguali secondo la nostra definizione e un percorso di accettazione per è costruito da quello di ripetendo i passaggi tra e , volte.l u V n x W i j nn0,uvnxynz=uvnxLluvnxwijn

Infine, abbiamo anche , perché se , quindi, poiché abbiamo la stessa configurazione ai passaggi e in , sarebbe un percorso accettante per , contraddicendo la minimalità di .v = ϵ i j π π = π 0 i π j | π | w π|v|>0v=ϵijππ=π0iπj|π|wπ

(Si noti che questo caso equivale ad applicare il lemma di pompaggio per le lingue normali codificando in modo rigido i simboli di pila più in alto nello stato dell'automa, il che è adeguato perché è abbastanza piccolo da garantire che sia maggiore del numero di stati di questo automa Il trucco principale è che dobbiamo adattarci a -transitions.)l | w | εll|w|ϵ

Caso 2. . Lascia che sia un livello . A qualsiasi dimensione dello stack , , associamo l' ultimo push e il primo pop . Per definizione, e . Ecco un'illustrazione di questa costruzione. Per semplificare il disegno, ometto la distinzione tra le posizioni del percorso e le posizioni delle parole che dovremo fare in seguito. i , j , k p h s ih s j lp ( h ) = max ( { y j | s y = h } ) fp ( h ) = min ( { y j | s y = h } ) i lp ( hlpi,j,kphsihsj lp(h)=max({yj|sy=h}) fp(h)=min({yj|sy=h})j fp ( h ) kilp(h)jjfp(h)k

Illustrazione della costruzione per il caso 2. Per semplificare il disegno, viene fatta la distinzione tra le posizioni del percorso e le posizioni delle parole.

Diciamo che lo stato completo di una pila di dimensioni è il triplo formato da:h

  1. lo stato dell'automa in posizionelp(h)
  2. il simbolo dello stack più in alto nella posizionelp(h)
  3. lo stato dell'automa in posizionefp(h)

Ci sono possibili stati pieni, e stack tra e , quindi, dal principio pidgeonhole, esistono due stack dimensioni con tale che gli stati completi a ed sono gli stessi. Come nel caso 1, definiamo con , , e le posizioni delle ultime lettere di lette nelle posizioni corrispondenti in . Abbiamo fattore dovep + 1 s i s j g , h s ig < h s j g g ) v = w ^ lp ( g ) ^ lp ( h )pp+1sisjg,hsig<hsjg^ lp ( g ) ^ lp ( h ) ^ fp ( h ) ^ fp ( g ) w π w = u v x y z u = w 0 ^ lp (hlp(^g)lp(^h)fp(^h)fp(^g)wπw=uvxyzu=w0lp(^g), , , e .v=wlp(^g)lp(^h) y = w ^ fp ( h ) ^ fp ( g ) z = w ^ fp ( g ) | w |x=wlp(^h)fp(^h)y=wfp(^h)fp(^g)z=wfp(^g)|w|

Questa fattorizzazione assicura che (perché dalla nostra definizione di livelli).k p|vxy|pkp

Dobbiamo anche dimostrare che . Per fare ciò, osserva che ogni volta che ripetiamo , partiamo dallo stesso stato e dallo stesso stack top e non pop sotto la nostra posizione corrente nello stack (altrimenti dovremmo spingere di nuovo nella posizione corrente, violando la massima di ), così possiamo seguire lo stesso percorso in e spingere la stessa sequenza di simboli in pila. Per la massimalità di e la minimalità di , durante la lettura di , non compariamo sotto la nostra posizione corrente nello stack, quindi il percorso seguito nell'automa è lo stesso indipendentemente dal numero di volte che abbiamo ripetutov lp ( g ) A lp ( h ) fp ( h ) x v w v v v fp ( g ) A u v n x y n z wn0,uvnxynzLvlp(g)Alp(h)fp(h)xv. Ora, se ripetiamo tutte le volte che ripetiamo , poiché partiamo dallo stesso stato, poiché abbiamo inserito la stessa sequenza di simboli nello stack con le nostre ripetizioni di , e poiché non facciamo più pop di quello che ha impilati per minimalità di , possiamo seguire lo stesso percorso in e far apparire la stessa sequenza di simboli dallo stack. Quindi, un percorso di accettazione da può essere costruito dal percorso di accettazione per .wvvvfp(g)Auvnxynzw

Infine, abbiamo anche , perché come nel caso 1, se e , possiamo costruire un percorso di accettazione più breve per rimuovendo e .v = ϵ y = ϵ w π lp ( g ) lp ( h ) π fp ( h ) fp ( g )|vy|>1v=ϵy=ϵwπlp(g)lp(h)πfp(h)fp(g)

Quindi, abbiamo una fattorizzazione adeguata in entrambi i casi e il risultato è dimostrato.

(Il merito è di Marc Jeanmougin per avermi aiutato con questa prova.)


7

Sì, è possibile. Potremmo usare il concetto di configurazioni di superficie; sono stati introdotti da Cook molto tempo fa. Con questo dovrebbe essere abbastanza facile ottenere una versione di pompaggio del lemma.

Per quanto riguarda le configurazioni di superficie, quasi tutti gli articoli su LogCFL dovrebbero riportare la sua definizione. Ecco un articolo recente ed ecco una tesi

Forse qualcuno più energico può precisare i dettagli!


Grazie per aver risposto! Sì, è abbastanza naturale osservare la combinazione di stato dell'automa e simbolo dello stack più in alto. Sto ancora pensando a questo problema, e non riesco a capire i dettagli ... L'aiuto è apprezzato. :-)
a3nm,

3

Per completezza, un riferimento a una prova in questa direzione.

A.Ehrenfeucht, HJHoogeboom, G.Rozenberg: sistemi di coppie coordinate. I: parole dyck e pompaggio classico RAIRO, Inf. Theor. Appl. 20, 405-424 (1986)

Astratto. La nozione di un sistema di coppia coordinata [...] corrisponde molto da vicino (è un'altra formulazione) alla nozione di automa a spinta. In questo documento esaminiamo [...] la possibilità di ottenere proprietà di pompaggio di linguaggi senza contesto tramite l'analisi dei calcoli nei sistemi cp. Per fare ciò analizziamo la struttura combinatoria delle parole di Dyck. Le proprietà delle parole di Dyck che studiamo derivano dall'analisi combinatoria dei calcoli nei sistemi cp. Dimostriamo come questa corrispondenza può essere utilizzata per dimostrare il classico lemma del pompaggio.


1

Nel discutere questo problema con Géraud Sénizergues, mi ha indicato questo documento di Sakarovitch che dimostra già questo risultato. La prova sembra risalire a questo articolo di Ogden.

Riferimenti:

  • Sakarovitch, Jacques. Su una propria proprietà di lingue straniere albanesi. (Francese. Sommario inglese). Matematica. Systems Theory 14 (1981), n. 3, 247–288.
  • William F. Ogden. 1969. Teoremi di intercalazione per linguaggi stack. In Atti del primo simposio annuale ACM sulla teoria dell'informatica (STOC '69).
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.