Décidez si un langage sans contexte peut être accepté par un automate déterministe pushdown


22

Étant donné une grammaire sans contexte G, il existe un automate N non déterministe à refoulement qui accepte exactement le langage que G accepte. (et vice versa)

Il peut également exister un automate déterministe à refoulement qui accepte exactement le langage que G accepte également. Cela dépend de la grammaire.

Par quel algorithme sur les productions de G peut-on déterminer si D existe?


4
Même si vous savez au préalable qu'il existe un DPDA pour G, il n'y a pas d'algorithme pour le trouver. Voyez ici .
sdcvvc

Réponses:


20

Il n'y a pas d'algorithme qui, étant donné une grammaire sans contexte, décide si un DPDA reconnaît le même langage et le calcule s'il existe.

Parce que si un tel algorithme existait, nous serions en mesure de décider du problème indécidable de l'universalité d'un contexte sans grammaire -à- dire si une grammaire sans contexte donné sur Σ reconnaît toute la langue .gΣΣ

Supposons qu'il existe un tel algorithme . Soit une grammaire sans contexte. Laissez soit . Ensuite , l'algorithme décidera s'il y a un DPDA A reconnaissant .UNEPUNEgLL(g)UNEPUNEUNEL

  • S'il n'y a pas un tel DPDA, alors n'est pas reconnaissable par un DPDA, en particulier il n'est pas régulier, il ne peut donc pas être .LΣ

  • Si un DPDA existe, nous pouvons décider si est égal à car l'universalité est décidable pour les DPDA. Pourquoi? Car:UNELΣ

    • Les langues DPDA sont fermées par complémentation (car les DPDA sont déterministes)
    • le vide est décidable pour les DPDA (car c'est pour les PDA )

En utilisant nous avons construit un algorithme pour décider si pour une grammaire sans contexte , ce qui s'est avéré impossible. Par conséquentUNEPUNEL(g)=ΣgUNEPUNE n'existe pas.


Je ne comprends pas ça désolé. Utilisez-vous Σ pour faire référence à l'alphabet utilisé par G? Et qu'est - ce que tu veux dire « est L la pleine langue »? Voulez-vous dire que nous allons exécuter l'algorithme sur une grammaire G qui génère Σ , la langue de toute chaîne sur Σ? Nous trouverions clairement non seulement un DPDA, mais un simple DFA pour cette langue. Le complément de Σ est le langage vide, cela est également facilement reconnu à la fois par un DPDA et un DFA - il me manque donc clairement quelque chose dans votre explication. ΣΣΣ
Andrew Tomazos

J'espère que c'est plus clair maintenant. Notez que je réponds à une question légèrement différente: j'aurais juré que vous aviez demandé si nous pouvions calculer , pas simplement décider s'il existe ou non.
jmad
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.