Qual é a proporção de CFGs ambíguos para todos os CFGs ?
Como os dois conjuntos são infinitamente contáveis, a proporção não está bem definida. Mas e a densidade assintótica :
onde símbolos terminais e não terminais provêm de um conjunto contável fixo.
O tamanho de uma gramática é qualquer noção razoável de tamanho para gramáticas, por exemplo,
- o número total de ocorrências de variáveis e terminais nas regras de produção, ou
- o número total de ocorrências de variável ou
- o número total de regras de produção, ou
- o número de variáveis distintas.
(Estou assumindo que a definição de tamanho não afetará a resposta.)
fl.formal-languages
grammars
context-free
user18064
fonte
fonte
Respostas:
A questão depende da codificação exata. No entanto, parece que em muitas codificações razoáveis, como o comprimento tende ao infinito, o número de regras de produção (para uma interpretação apropriada do símbolo inicial S e do terminal a ) será mais de um com alta probabilidade; aqui eu quero dizer literalmente o mesmo terminal a . Se considerarmos isso como ambiguidade, espero que a maioria das gramáticas seja ambígua. Também podemos inventar situações semelhantes, como as regras S → S e SS→ a S uma uma S→ S cada uma aparecendo pelo menos uma vez.S→ a
Assumindo essa hipótese geral, de que toda regra concebível (fixa) deve aparecer com alta probabilidade à medida que o comprimento tende ao infinito, descobrimos que "a maioria" das gramáticas gera de forma ambígua.Σ∗
Como exemplo, considere a seguinte codificação para gramáticas sobre . O alfabeto gramática consiste nos símbolos { 0 , 1 , ; , . } . Os não terminais são indexados por cadeias binárias de comprimento pelo menos 2. As regras são separadas por pontos finais. Cada regra é uma sequência de cadeias binárias separadas por ponto e vírgula. A primeira cadeia binária é a não terminal no lado esquerdo e o restante (se houver) constitui o lado direito; se a primeira cadeia binária não for não-terminal (ou seja, ϵ , 0,1), o não-terminal inicial será assumido. O não terminal inicial é sempre 00.Σ = { 0 , 1 } { 0 , 1 , ; , . } ϵ
fonte