Complessità di intersezione di lingue regolari come grammatiche senza contesto


20

Date le espressioni regolari R1,,Rn , ci sono limiti non banali sulla dimensione della più piccola grammatica senza contesto per ?R1Rn


??? cercando di visualizzare questo. c'è qualche trucco? l'intersezione di è regolare. si può trovare il DFA minimo (conteggio degli stati wrt) tramite metodi standard che è anche un CFG. Rn
vzn,

@vzn: hai ragione. Il problema è che questo DFA, e quindi il CFG, può essere molto grande. Mi chiedo se si può usare la potenza extra dei CFG per ottenere una descrizione più concisa dell'intersezione.
Max

congettura no. sospettare che ogni CFL che riconosce (cioè equivale a) un RL non usi il suo stack o possa essere convertito in uno che non ha alcun aumento di stati, e il minimo tale PDA (conteggio degli stati wrt) ha le stesse dimensioni del minimo DFA. non ho mai sentito / visto una prova di questo. forse non è difficile? una domanda più semplice, c'è qualche PDA che riconosce un RL che è più piccolo del DFA? non pensare.
vzn,

@vzn: congettura utile, ma falso: lascia che sia il sottoinsieme delle lingue Dyck su due tipi di parentesi in cui la profondità massima di annidamento è k . Esiste un CFG per L k di dimensione O ( k ) , ma il DFA minimo (anche, penso, il minimo NFA) ha dimensione O ( 2 k ) . LkkLkO(k)O(2k)
Max

Le lingue Dyck sono CFL ma non RL ...? ma vedi che stai limitando la massima profondità di annidamento ... quindi puoi costruire quella stessa lingua con le intersezioni RL? quale / dove è la prova che il DFA minimo è così grande? è che afferma ? non definisci un criterio di minimalità o altrove e prendi gli stati come un caso naturale, ma spesso non è l'unico. O(2k)
vzn,

Risposte:


6

Questa è un'ottima domanda e rientra davvero nei miei interessi. Sono contento che tu l'abbia chiesto Max.

Consentitemi di dare DFA con al massimo O ( n ) stati ciascuno. Sarebbe bello se esistesse un PDA con molti stati sub-esponenziali che accetta l'intersezione delle lingue del DFA. Tuttavia, suggerisco che tale PDA potrebbe non esistere sempre.nO(n)

Considera la lingua della copia. Ora limitalo alla copia di stringhe di lunghezza n.

Formalmente, considera -copy : = { x xn:= .{xx|x{0,1}n}

Possiamo rappresentare -copy come l'intersezione di n DFA di dimensioni al massimo O ( n ) . Tuttavia, il DFA più piccolo che accetta n -copy ha 2 Ω ( n ) stati.nnO(n)n2Ω(n)

Allo stesso modo, se ci limitiamo a un alfabeto di stack binario, sospetto che il PDA più piccolo che accetta -copy abbia esponenzialmente molti stati.n

PS Sentiti libero di inviarmi una e-mail se desideri discutere ulteriormente. :)


5

Non penso che ci possano essere limiti inferiori o superiori non banali.
Per limiti inferiori, considerare la lingua per un k fisso . La dimensione della grammatica più piccola senza contesto è logaritmica nella dimensione dell'espressione regolare di L 1 , mentre la dimensione dell'automa più piccolo per L 1 è lineare nella dimensione della regex di L 1 . Questa differenza esponenziale rimane invariata se interseciamo L 1 con altre lingue simili. Per i limiti superiori, considera una lingua L 2 che consiste esattamente in una linguaL1={a2k}kL1L1L1L1
L2deBruijn-Sequenza di lunghezza . È noto che la dimensione di una grammatica più piccola per L 2 è il caso peggiore, ovvero O ( nnL2, quindi la differenza con l'automa "più piccolo" perL2è semplicemente un fattore logaritmico, proposizione 1 inO(nlogn)L2

Un limite inferiore o superiore generale non banale contraddirebbe tali risultati, poiché ciò che è vero per l'intersezione di lingue deve essere vero per l'intersezione di 1 lingua.n1


L'osservazione sulla dimensione della grammatica più piccola per il singolo deBruijn-Sequence è piuttosto interessante. La prego di fornire un riferimento. Grazie.
Michael Wehar,

Inoltre, potrei sbagliarmi, ma sembra che tu abbia affrontato il problema solo per una singola espressione regolare (piuttosto che un prodotto di espressioni regolari)?
Michael Wehar,

@MichaelWehar Sì, ho considerato solo una singola espressione regolare. Perché se dovrebbe essere vero per l'intersezione di lingue, allora certamente deve essere vero per l'intersezione banale. Non so come riformulare la domanda per escludere questi casi. Ho aggiunto il riferimento, avrei dovuto farlo subito, scusa. n
john_leo,

1
Grazie! Sei stato in grado di descrivere un esempio specifico. Ecco una semplice osservazione che porta all'esistenza di tali esempi. Sia dato. Ci sono 2 ^ n stringhe di lunghezza n. Inoltre, non ci sono più di 2 ^ n macchine di Turing con al massimo n / log (n) stati. Pertanto, alcune stringhe x di lunghezza n tali che nessuna macchina di Turing con stati inferiori a n / log (n) accetta la lingua {x}. Pertanto, {x} è accettato da un DFA con n stati e non può essere accettato da un PDA con meno di n / log (n) stati.
Michael Wehar,

5

Consentitemi di dare un secondo giudizio a Michael, questa è davvero una domanda interessante. L'idea principale di Michael può essere combinata con un risultato della letteratura, fornendo così un limite inferiore simile con una prova rigorosa.

Farò riferimento ai limiti della dimensione CFG in termini di numero totale di simboli alfabetici nelle espressioni regolari. Lascia che questo numero sia indicato da k . (Come notato da john_leo, non troveremo alcun limite utile in termini di numero di espressioni regolari che prendono parte all'intersezione.)nk

Né l'OP né Michael hanno ritenuto necessario menzionarlo, ma un limite superiore di (sul numero di stati) per convertire un'intersezione di espressioni regolari in un NFA può essere facilmente dimostrato. Per la cronaca, eccolo qui: converti le espressioni regolari in automi Glushkov, che sono tutti senza ritorno. Quindi applicare la costruzione del prodotto per ottenere un NFA per l'intersezione di queste lingue. (Immagino che si può migliorare la tenuta a 2 k + 1 o così.) Un s -state NFA può essere convertita in una grammatica destra lineare (che è un caso speciale di un CFG) di dimensione O ( s 2 )2k+12k+1sO(s2)(se misuriamo la dimensione della grammatica come numero totale di simboli sul lato sinistro e destro delle produzioni), dando così la dimensione . Questo limite ovviamente sembra orribile se hai in mente applicazioni pratiche. Cercare di dimostrare un limite migliore usando la complessità di transizione non deterministica invece della complessità di stato non deterministica per stimare la dimensione della NFA può valere la pena.O(4k)

L'altra parte sta trovando un linguaggio testimone che può essere sinteticamente espresso come l'intersezione di espressioni regolari, ma è necessariamente ingombrante da descrivere con un CFG. (Qui dobbiamo stabilire un limite inferiore sulla dimensione di tutti i CFG che generano il linguaggio, di cui possono essercene infinitamente molti.) Il seguente argomento fornisce un limite inferiore.2Ω(k/logk)

Considera il linguaggio finito , dove w R indica l'inversione di w . Quindi L n può essere espresso come intersezione delle seguentiespressioni regolari 2 n + 1 :Ln={wwRw{a,b}|w|=n}wRwLn2n+1

  • , per 1 ri=(a+b)ia(a+b)2(ni1)a(a+b)+(a+b)ib(a+b)2(ni1)b(a+b) ;1in
  • , per 1 si=(a+b)a(a+b)2(ni1)a(a+b)i+(a+b)b(a+b)2(ni1)b(a+b)i ;1in
  • =(a+b)3n

Il numero totale di simboli alfabetici in questa intersezione di espressioni è in O ( n 2 ) .kO(n2)

Usando un argomento fornito nella dimostrazione del Teorema 13 in ( 1 ), si può dimostrare che ogni CFG aciclico che genera deve avere almeno 2 n / ( 2 n ) = 2 Ω ( Lnvariabili distinte, se il lato destro di ciascuna regola ha lunghezza al massimo2. Quest'ultima condizione è necessaria per discutere del numero di variabili, poiché possiamo generare un linguaggio finito con una singola variabile. Ma dal punto di vista della dimensione grammaticale, questa condizione non è in realtà una restrizione, poiché possiamo trasformare un CFG in questa forma con solo un ingrandimento lineare delle dimensioni, vedi (2). Si noti che il linguaggio utilizzato da Arvind et al. è sopra un alfabeto di dimensionen, e questo produce un limite dinn/(2n); ma l'argomento prosegue con ovvie modifiche.2n/(2n)=2Ω(k/logk)2nnn/(2n)

O(4n)

Riferimenti:

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.