Entscheiden Sie, ob eine kontextfreie Sprache von einem deterministischen Pushdown-Automaten akzeptiert werden kann

22

Bei einer kontextfreien Grammatik G existiert ein nicht deterministischer Pushdown-Automat N, der genau die Sprache akzeptiert, die G akzeptiert. (und umgekehrt)

Es kann auch einen deterministischen Pushdown-Automaten D geben, der genau die Sprache akzeptiert, die auch G akzeptiert. Es kommt auf die Grammatik an.

Mit welchem ​​Algorithmus auf den Produktionen von G können wir feststellen, ob D existiert?

Andrew Tomazos
quelle
4
Selbst wenn Sie vorher wissen, dass es einen DPDA für G gibt, gibt es keinen Algorithmus, um ihn zu finden. Sehen Sie hier .
SDCVVC

Antworten:

20

Es gibt keinen Algorithmus, der bei einer kontextfreien Grammatik entscheidet, ob ein DPDA dieselbe Sprache erkennt und berechnet, ob sie existiert.

Denn wenn ein solcher Algorithmus existiert, würden wir in der Lage das zu entscheiden , unentscheidbar Problem der Universalität der eine kontextfreie Grammatik , dh ob eine gegebene kontextfreie Grammatik auf erkennt die ganze Sprache .GΣΣ

Angenommen, es gibt einen solchen Algorithmus . Sei eine kontextfreie Grammatik. Lassen sein . Dann entscheidet der Algorithmus , ob es einen DPDA , der erkennt .ADPDAGLL(G)ADPDAAL

  • Wenn es kein solches DPDA gibt, ist von einem DPDA nicht erkennbar, insbesondere ist es nicht regulär, so dass es nicht .LΣ

  • Wenn ein DPDA existiert, können wir entscheiden, ob gleich da die Universalität für DPDAs entscheidbar ist. Warum? Weil:ALΣ

    • DPDA-Sprachen werden in Ergänzung geschlossen (da DPDAs deterministisch sind)
    • Leere ist für DPDAs entscheidend (weil es für PDAs ist )

Mit wir einen Algorithmus erstellt, der für jede kontextfreie Grammatik entscheidet, ob , was sich als unmöglich erwiesen hat. Daher existiert nicht.ADPDAL(G)=ΣGADPDA

jmad
quelle
Ich verstehe das nicht, sorry. Verwenden Sie Σ, um auf das von G verwendete Alphabet zu verweisen? Und was meinst du mit "ist L die vollständige Sprache "? Wollen Sie damit sagen, dass wir den Algorithmus auf einer Grammatik G ausführen, die generiert , die Sprache eines beliebigen Strings über Σ? Wir würden nicht nur einen DPDA, sondern auch einen einfachen DFA für diese Sprache finden. Die Ergänzung von ist die leere Sprache. Dies wird sowohl von einem DPDA als auch von einem DFA leicht erkannt. Ich vermisse also eindeutig etwas in Ihrer Erklärung. ΣΣΣ
Andrew Tomazos
Ich hoffe das ist jetzt klarer. Beachten Sie, dass ich eine etwas andere Frage beantworte: Ich hätte geschworen, dass Sie gefragt haben, ob wir berechnen könnten , und nicht nur, ob es existiert oder nicht. D
jmad