Quel est le rapport entre les CFG ambigus et tous les CFG ?
Étant donné que les deux ensembles sont infiniment dénombrables, le rapport n'est pas bien défini. Mais qu'en est-il de la densité asymptotique :
où les symboles terminaux et non terminaux proviennent d'un ensemble dénombrable fixe.
La taille d'une grammaire est toute notion raisonnable de taille pour les grammaires, par exemple
- le nombre total d'occurrences de variables et de terminaux dans les règles de production, ou
- le nombre total d'occurrences de variable, ou
- le nombre total de règles de production, ou
- le nombre de variables distinctes.
(Je suppose que la définition de la taille n'affectera pas la réponse.)
fl.formal-languages
grammars
context-free
user18064
la source
la source
Réponses:
La question dépend du codage exact. Cependant, il semble que dans de nombreux codages raisonnables, comme la longueur tend vers l'infini, le nombre de règles de production (pour une interprétation appropriée du symbole de départ et du terminal ) sera plus d'un avec une probabilité élevée; ici, je veux dire littéralement le même terminal . Si nous considérons cela comme une ambiguïté, je m'attends à ce que "la plupart" des grammaires soient ambiguës. On peut également concocter des situations similaires telles que les règles et chacune apparaissant au moins une fois.S a a S → S S → aS→a S a a S→S S→a
En supposant cette hypothèse générale, que chaque règle concevable (fixe) devrait apparaître avec une forte probabilité que la longueur tend vers l'infini, nous constatons que "la plupart" des grammaires génèrent de manière ambiguë.Σ∗
Par exemple, considérons l'encodage suivant pour les grammaires sur . L'alphabet grammatical est composé des symboles . Les non-terminaux sont indexés par des chaînes binaires d'une longueur d'au moins 2. Les règles sont séparées par des points. Chaque règle est une séquence de chaînes binaires séparées par des points-virgules. La première chaîne binaire est le non-terminal sur le côté gauche, et le reste (le cas échéant) constitue le côté droit; si la première chaîne binaire n'est pas un non-terminal (c'est-à-dire , 0,1), alors le non-terminal de départ est supposé. Le non-terminal de départ est toujours 00.{ 0 , 1 , ; , . } ϵΣ={0,1} {0,1,;,.} ϵ
Sous cet encodage, chaque chaîne de Décrit une grammaire. Une grammaire aléatoire contiendra très probablement de nombreuses copies deet, et en particulier sera ambigu. .00 ; 00. .00 ; 0.{0,1,;,.}∗ .00;00. .00;0.
la source