Bonjour,
Je voudrais savoir s'il existe un moyen de comparer les langages générés par deux grammaires formelles, l'un s'incluant dans l'autre, pour mesurer par exemple l'expressivité de l'un par rapport à l'autre (en essayant de calculer la proportion des formules de l'un par rapport à l'autre).
Je donne un exemple de mon idée :
J'ai une grammaire G1 qui définit un langage L1 par le vocabulaire et les règles suivantes :
V1 = {a, b}
Pour tout mot X et Y du langage L1 XY est dans L1.
Ma seconde grammaire G2 définit le langage L2 par :
V2 = {a, b}
Pour tout mot X et Y du langage L2 aXXY est dans L2.
On voit que L2 est strictement inclus dans L1, mais à quel point ?
Je redéfinis ma grammaire G1 pour pouvoir la comparer à G2. Pour cela je partitionne la règle de G1 en un ensemble de règles "disjointes" telles qu'elles soient les plus petites qui existent et parmi lesquelles apparait la règle de G2. Ces règles produisent tous les mots à quatres lettres possibles, donc on rajoute en extension les mots de L1 à moins de trois lettres (ils sont en nombre finis).
On obtient G1' :
V1 = {a, b}
On a les mots a, b, aa, ab, ba, bb, aaa, aab, aba, abb, baa, bab, bba, bbb,
Pour tout mot X et Y du langage L2 aXXY est dans L2.
Pour tout mot X et Y du langage L2 bXXY est dans L2.
Pour tout mot X et Y du langage L2 aXYY est dans L2.
Pour tout mot X et Y du langage L2 bXYY est dans L2.
Pour tout mot X et Y du langage L2 aXYX est dans L2.
Pour tout mot X et Y du langage L2 bXYX est dans L2.
Si on compare G1' et G2 : si on ne tient pas compte des mots à moins de trois lettres (qui sont en nombre fini), à chaque itération on peut dire que G2 produit un mot parmi les 6 mots qu'on peut obtenir par G1. D'une certaine manière G2 produit 1/6 des mots de G1.
On pourrait désigner le nombre 1/6 par "mesure d'expressivité" de G2 par rapport à G1.
Ensuite on peut aller plus loin : mesurer l'expressivité d'un langage L2 par rapport à un langage L1 (qui le contient)... Puis celle de L3 par rapport à L1 (qui le contient), et ainsi comparer L1 et L3.
En faisant une analogie avec les nombres entiers, on peut définir la grammaire G1 qui génère tous les nombres entiers et G2 qui ne génère que les nombres divisibles par 7. Le langage généré par G2 contient 1/7 des mots du langage généré par G1 (puisqu'en partant de zero, tous les 7 entiers successifs 1 seul est divisible par 7). On pourrait aussi dire qu'il y a deux fois moins de nombres pairs que de nombres entiers... etc
Voila en gros l'idée...
Quelqu'un connait-il des liens sur une théorie qui aurait été réalisée la dessus ? Ou peut-être l'approche est trop naïve ? Je cherche des outils qui pourrait m'aider à établir une telle mesure...
Merci d'avance pour vos réactions
-----