Densità asintotica di grammatiche ambigue senza contesto (CFG)


9

Qual è il rapporto tra CFG ambigui e tutti i CFG ?

Poiché entrambi gli insiemi sono numerabili infiniti, il rapporto non è ben definito. Ma per quanto riguarda la densità asintotica :

limn# ambiguous CFG of size<n# CFG of size<n

dove i simboli terminali e non terminali provengono da un insieme numerabile fisso.

La dimensione di una grammatica è una nozione ragionevole di dimensione per le grammatiche, ad es

  1. il numero totale di occorrenze di variabili e terminali nelle regole di produzione, o
  2. il numero totale di occorrenze della variabile, oppure
  3. il numero totale di regole di produzione, o
  4. il numero di variabili distinte.

(Suppongo che la definizione di dimensione non influirà sulla risposta.)


3
A parte questo, le seguenti nozioni di dimensioni CFG sono state considerate in letteratura: Per quanto riguarda le nozioni di dimensioni grammaticali, in letteratura sono apparsi i seguenti. (1) Numero totale di occorrenze di variabili e terminali su entrambi i lati di tutte le produzioni nella grammatica. (2) Numero di occorrenze variabili su entrambi i lati di tutte le produzioni nella grammatica. (3) Numero di produzioni in grammatica. (4) Numero di variabili distinte nella grammatica.
Martin Berger,

1
Vedi ad esempio: S. Ginsburg, N. Lynch, Complessità dimensionale nei moduli grammaticali senza contesto. J. Gruska, Sulla dimensione delle grammatiche senza contesto. J. Gruska, complessità e non ambiguità di grammatiche e lingue senza contesto. A. Kelemenova, Complessità delle grammatiche di forma normale.
Martin Berger,

1
@Martin, se uno non sta attento, allora ci possono essere infinitamente molte grammatiche sintatticamente diverse di una data dimensione e il rapporto non avrà senso. Il modo sicuro è contare la lunghezza in bit di alcune codifiche fisse di grammatiche.
Kaveh,

1
Probabilmente vuoi definire la densità asintotica come il rapporto dei logaritmi delle rispettive quantità, poiché entrambe le quantità sono esponenziali, probabilmente con basi diverse.
gnocco di mobius

1
@MartinBerger Supponendo che stiamo parlando della stessa cosa, ovvero la definizione di , ciò influirebbe ovviamente sulla densità. Supponiamo che il numero di CFG non ambigui sia e il numero di CFG sia , quindi la densità del log è mentre la densità asintotica è 0. Sono abbastanza sicuro che la densità asintotica sarà 0 o 1, ma è probabile che la densità del log asintotico sia un numero interessante. 1.5 n 2 n l o g 1.5 2logdensity=log(#unambiguousCFGs)/log(#CFGs)1.5n2nlog1.52
gnocco di mobius il

Risposte:


4

La domanda dipende dalla codifica esatta. Tuttavia, sembra che in molte codifiche ragionevoli, poiché la lunghezza tende all'infinito, il numero di regole di produzione (per una interpretazione appropriata del simbolo iniziale e del terminale ) sarà più di uno con alta probabilità; qui intendo letteralmente lo stesso terminale . Se consideriamo questo come ambiguità, allora mi aspetto che la maggior parte delle grammatiche sia ambigua. Possiamo anche inventare situazioni simili come le regole da e ciascuna che appare almeno una volta.S a a S S S aSaSaaSSSa

Supponendo questa ipotesi generale, che ogni regola (fissa) concepibile dovrebbe apparire con alta probabilità mentre la lunghezza tende all'infinito, scopriamo che la "maggior parte delle grammatiche" genera in modo ambiguo.Σ

Ad esempio, considera la seguente codifica per le grammatiche su . L'alfabeto grammaticale è costituito dai simboli . I non terminali sono indicizzati da stringhe binarie di lunghezza pari almeno a 2. Le regole sono separate da stop completi. Ogni regola è una sequenza di stringhe binarie separate da punti e virgola. La prima stringa binaria è il non terminale sul lato sinistro e il resto (se presente) costituisce il lato destro; se la prima stringa binaria non è un non terminale (cioè è , 0,1), si assume il non terminale iniziale. Il non terminale di partenza è sempre 00.{ 0 , 1 , ; , . } ϵΣ={0,1}{0,1,;,.}ϵ

Con questa codifica, ogni stringa in Descrive della grammatica. Una grammatica casuale con alta probabilità conterrà molte copie die, e in particolare sarà ambiguo. .00 ; 00. .00 ; 0.{0,1,;,.}.00;00..00;0.


Sì, considero valide regole come e (che appaiono più di una volta) in una grammatica. In effetti, ciò rende una grammatica banalmente ambigua. Saluti. S aSSSun'
user18064

Ma non è anche il caso che, all'aumentare della dimensione (CFG), il numero di terminali e non terminali aumenti in genere, quindi abbiamo bisogno di più bit per rappresentarli, quindi abbiamo bisogno di più bit per rappresentare le singole regole. Pertanto, aumenta anche il numero di CFG che non sono ambigui per motivi banali (ad es. Solo una regola si adatta al limite delle dimensioni).
Martin Berger,

@Martin Dipende dalla codifica. Forse puoi trovare una codifica a supporto della tua affermazione, ad esempio se la dimensione dell'alfabeto aumenta con la dimensione grammaticale. La mia codifica utilizza una dimensione alfabetica costante, quindi questo effetto non si verifica.
Yuval Filmus,

@MartinBerger Questo è un punto valido per aumentare il numero di simboli terminali e non terminali mentre aumentiamo le dimensioni della grammatica. Per casi d'uso come i linguaggi di programmazione, ha senso.
user18064

@ user18064 I linguaggi di programmazione di solito usano un alfabeto di dimensioni costanti, nella maggior parte dei casi un sottoinsieme di ASCII. Non sono a conoscenza di alcun linguaggio pratico con dimensioni dell'alfabeto illimitate, sebbene si possano facilmente definire.
Yuval Filmus,
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.