Problème d'adhésion pour certaines classes de grammaires illimitées


9

Considérons une grammaire arbitraire sans contexte sur l'alphabet { 0 , 1 , ¯ 0 , ¯ 1 } . Aux productions de cette grammaire, ajoutez deux productions fixes non contextuelles P : ¯ 0 0 ϵ et ¯ 1 1 ϵ . Appelons la grammaire résultante G P pour " G augmenté des productions P ".G{0,1,0¯,1¯}P0¯0ϵ1¯1ϵGPGP

Est-il possible de donner un algorithme qui prend une grammaire et une chaîne s sur { 0 , 1 , ¯ 0 , ¯ 1 } et décide si s L ( G P ) ?GPs{0,1,0¯,1¯}sL(GP)


Fait intéressant, alors que la réponse semble être «non», je pense que si est régulier, alors L ( G P ) l'est aussi . Essentiellement, un NFA pour L ( G ) peut être transformé en un pour L ( G P ) en ajoutant itérativement ϵ -transitions ( s , ϵ , t ) chaque fois que vous avez des chemins ( s , ˉ 0 , p , 0 , t ) ,L(G)L(GP)L(G)L(GP)ϵ(s,ϵ,t) ou ( s , ϵ , p , ϵ , t ) , et enfin effectuer(s,0¯,p,0,t),(s,0¯,p,ϵ,q,0,t),(s,1¯,p,1,t),(s,1¯,p,ϵ,q,1,t)(s,ϵ,p,ϵ,t) -élimination. ϵ
Klaus Draeger

Oui c'est vrai. En fait, la question découle d'un problème dans l'analyse de programme (ramassage des ordures basé sur la vivacité). Nous avons contourné le problème en rapprochant le CFG à une grammaire fortement régulière (transformation de Mohri-Nederhoff), puis en faisant les simplifications sur le NFA résultant exactement comme Klaus Draeger le mentionne. P
Amit.

Réponses:


5

Cette classe de grammaires est indécidable. Voici une idée approximative de la façon de l'utiliser pour émuler des machines Turing.

À chaque point, le mot partiellement développé actuel ressemblerait à

[tape to the left][head][tape to the right]

Ici:

  • [tape to the left]P0¯1¯
  • [tape to the right]P01
  • [head]

Si{0,1}SiTjSi0T0jSi1T1jSij¯T00¯Sij¯T11¯[tape to the left][tape to the right]

Lorsque la machine s'arrête, la tête doit "consommer" sa bande des deux côtés en "devinant" et en produisant des caractères correspondants. Après cela, il devrait produire un mot vide. En conséquence, un mot vide serait membre d'une telle grammaire si et seulement si la machine de Turing correspondante s'arrêtait.


NN

@ Amit.SI a fourni plus d'explications sur les transitions dans la réponse.
abacabadabacaba
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.