Comment prouver qu'un langage sans contexte est ambiguë indécidable?


19

J'ai lu quelque part qu'une machine Turing ne peut pas calculer cela et c'est donc indécidable mais pourquoi? Pourquoi est-il impossible sur le plan informatique pour une machine de générer l'arbre d'analyse et de prendre une décision? Peut-être que je me trompe et que cela peut être fait?


1
Oui, vous avez raison, une machine Turing ne peut pas décider si une langue sans contexte est ambiguë ou non, et cela peut être réduit à partir du problème de correspondance postérieure , qui est indécidable. Notez qu'un arbre d'analyse peut être infiniment grand et nous ne pouvons pas décider quand nous arrêterons le calcul.
— Hsien-Chih Chang 張顯 之

Hsien-Chih, faites-vous référence à des "arbres d'analyse" pour des mots qui ne sont pas dans la langue (c'est-à-dire des analyses infructueuses), ou essayez-vous de dire que les arbres d'analyse peuvent devenir arbitrairement grands?
— Raphael

Réponses:


22

Nous réduisons du problème de correspondance de la poste . Supposons que nous pouvons, en fait, décider de la langue .{⟨G⟩|G a CFG and L(G) ambiguous}

Étant donné : Construisez le CFG : , (où sont de nouveaux caractères ajoutés à l'alphabet, par exemple, ).α1,…,αm,β1,…,βmG=(V,Σ,R,S)V={S,S1,S2}R={S→S1|S2,S1→α1S1σ1|⋯|αmS1σm|α1σ1|⋯|αmσm,S2→β1S2σ1|⋯|βmS2σm|β1σ1|⋯|βmσm}σiσi=i_

Si le langage est ambigu, il y a dérivation d'une chaîne de deux manières différentes. En supposant, wlog, que les dérivations commencent toutes les deux par la règle , la lecture des nouveaux caractères en arrière jusqu'à leur fin s'assure qu'il ne peut y avoir qu'une seule dérivation, donc ce n'est pas possible. On voit donc que la seule ambiguïté peut provenir d'un et d'un 'start'. Mais alors, en prenant la sous-chaîne de jusqu'au début des nouveaux caractères, nous avons une solution au PCP (puisque les chaînes d'indices utilisées après ces points correspondent).wS→S1S1S2w

De même, s'il n'y a pas d'ambiguïté, le PCP ne peut pas être résolu, car une solution impliquerait une ambiguïté qui ne fait que suivre et , où sont des chaînes de correspondance de et (depuis la correspondance de ). S ⇒ S 2 ⇒ ∗ β ˜ σ α = β α β ˜ σS⇒S1⇒∗ασ~S⇒S2⇒∗βσ~α=βαβσ~

Par conséquent, nous avons réduit le PCP, et comme c'est indécidable, nous avons terminé.

(Faites-moi savoir si j'ai fait quelque chose de stupide!)


1
Essayez \ textrm, comme ceci:{⟨G⟩∣G a CFG and L(G) ambiguous}
— Hsien-Chih Chang 張顯 之
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.