Comment puis-je montrer que si un PDA accepte une chaîne


8

Comment puis-je montrer que le problème de décider si un PDA accepte une chaîne du formulaire {w!ww{0,1}} est indécidable?

J'ai essayé de réduire ce problème à un autre indécidable, par exemple si deux grammaires sans contexte acceptent la même langue. Cependant, je ne sais pas comment l'utiliser comme sous-programme.

Réponses:


12

Voici mon approche: je montrerai que si vous pouvez décider de votre problème, alors vous pouvez décider du problème de correspondance de Post (PCP), qui est connu pour ne pas être décidable.

Rappelez-vous, le PCP est un problème de décision qui demande si dans un ensemble de 2-tuples P={(x1,y1),,(xn,yn)} vous pouvez construire une séquence (y compris la répétition) de telle sorte que le concaténé xis et le concaténé yis de cette séquence forment le même mot. Notez que l'alphabet doit avoir au moins 2 caractères.

Alors laisse Pêtre une instance du PCP. Considérez la grammaire sans contexte suivante, où nous avons introduit un nouveau symbole de terminalti pour le i-th élément dans P. La grammaire a les règles suivantes:

SX!YXx1Xt1x2Xt2xnXtnXx1Xt1x2Xt2xnXtnεYy1Yt1y2Yt2ynYtnε
(La variable X n'est là que pour exclure S!).

Bien sûr, étant donné n'importe quelle grammaire, nous pouvons trouver un PDA correspondant qui accepte la même langue que la grammaire. Donc, construisez le PDA correspondant, puis utilisez l'algorithme hypothétique de votre problème pour déterminer si ce PDA accepte un mot du formulaireu!v (c'est-à-dire, si l'on peut dériver n'importe quel mot de la forme u!vde cette grammaire). Je vais montrer comment utiliser ces informations pour résoudre l'instance PCPP.

Supposons maintenant que u!vest un mot dans cette grammaire. Le motu comporte deux parties, le suffixe, composé du titerminaux, et le reste appelé préfixe. Il en va de même pourv. On au=vsi et seulement si leurs préfixes et suffixes coïncident. Les suffixes ne coïncident que si nous avons utilisé la même séquence de tuples deP pour construire les mots u et v. Les préfixes deu et v coïncider si la concaténation de la xile sable yis (basé sur la séquence de tuple inversée donnée par le tis) est le même. Par conséquentu=v si et seulement s'il existe une solution pour l'instance PCP P.

De même, s'il existe une solution pour l'instance PCP P, alors à partir de la solution, il est facile de construire un mot de la forme u!v qui est dérivable de cette grammaire.

Il s'ensuit que l'instance PCP P a une solution si et seulement si cette grammaire contient un mot de la forme u!v. S'il y avait un algorithme pour décider de votre problème, nous pourrions l'utiliser pour résoudre PCP. Mais bien sûr, le PCP est connu pour être indécidable, donc votre problème est indécidable aussi.


1
Agréable! Eh bien, certainement plus simple que ma propre solution. +1
Hendrik Jan

1
J'ai du mal à suivre le flux de cette réponse. Pourquoi discutez-vous de l'existence de PDA / grammaire dans le troisième paragraphe? Si j'ai bien lu, vous voulez mapper les instances PCP aux grammaires, réduisant ainsi la question de savoir si PCP est décidable. À cette fin, vous devez également montrer l'inverse du dernier paragraphe, à savoir que si aucun u!uest accepté, le PCP n'a pas de solution. (Belle astuce avec leti, soit dit en passant.)
Raphael

@Raphael, j'ai modifié la réponse pour répondre à votre commentaire. Bons points - merci!
DW

5

L'approche pourrait être la suivante. Essayez de créer un langage sans contexte (= PDA) qui code les étapes de calcul d'une MT, de telle sorte que le calcul complet réussisse s'il y a un mot de la forme que vous décrivez.

Vous devez d'abord coder des configurations distinctes: contenu de la bande + état + position de la tête (vous l'avez vu pour l'équivalence grammaticale). Un langage sans contexte peut encoder une seule étapeCC d'un calcul à condition d'utiliser une image miroir C#m(C), où m(C)désigne l'image miroir (inversion) de $$ C $. (Je suis bâclé ici: vous devrez peut-être distinguer la configuration et sa description.)

Considérons maintenant le langage des étapes distinctes, concaténé avec le langage des configurations dupliquées: C0#C1#m(C2)#C3#m(C4)#C2n1#m(C2n)#Cf! C1#m(C1)#C2#m(C2)#Cn+1#m(Cn+1) avec pour chaque k, C2k1(C2k). Ceci est en dehors du contexte, en plus du codeC0 comme initiale et CF comme configurations finales.

Maintenant, la première partie garantit que nous avons des étapes consécutives, la deuxième partie que les configurations successives sont égales. Si les deux parties correspondent, nous avons un calcul. Ce que nous ne pouvons pas décider.

Telle est l'idée. J'ai peut-être des index erronés, et toute la séquence doit être encodée en binaire, mais cela peut être résolu.


C'est bon je l'ai. Cependant la partie "Considérons maintenant le langage des étapes séparées, concaténé avec le langage des configurations dupliquées ..." pourrait bénéficier d'explications complémentaires. Par exemple, vous pouvez utiliser les bons indices. Quoi qu'il en soit, c'est une bonne idée.
A.Schulz
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.