Решите, могут ли контекстно-свободные языки быть приняты детерминированным автоматом

22

При наличии не зависящей от контекста грамматики G существует недетерминированный автомат Pushdown N, который принимает именно тот язык, который принимает G. (и наоборот)

Там может также существовать детерминированный магазинный автомат D , который принимает именно язык G принимает слишком. Это зависит от грамматики.

По какому алгоритму на произведениях G мы можем определить, существует ли D?

Андрей Томазос
источник
4
Даже если вы заранее знаете, что есть DPDA для G, нет алгоритма для его поиска. Смотрите здесь .
sdcvvc

Ответы:

20

Не существует алгоритма, который бы давал контекстно-свободную грамматику, определяющий, распознает ли DPDA тот же язык и вычисляет его, если он существует.

Поскольку, если бы существовал такой алгоритм, мы могли бы решить неразрешимую проблему универсальности контекстно-свободной грамматики, т. Е. Распознает ли данная контекстно-свободная грамматика на весь язык Σ ^ * .Σ ΣGΣΣ

Предположим, есть такой алгоритм ADPDA . Пусть G некоторая не зависящая от контекста грамматика. Пусть L будет L(G) . Тогда алгоритм ADPDA будет решить , если есть DPDA распознавания л .AL

  • Если такого DPDA нет, то L не распознается DPDA, в частности он не является регулярным, поэтому он не может быть Σ .

  • Если DPDA существует, то мы можем решить , равно ли потому что универсальность решаема для DPDA. Зачем? Потому что:L ΣALΣ

    • Языки DPDA закрыты при дополнении (поскольку DPDA являются детерминированными)
    • пустота разрешима для DPDA (потому что это для КПК )

Используя мы построили алгоритм, решающий, будет ли для любой не зависящей от контекста грамматики , что оказалось невозможным. Следовательно, не существует. L ( G ) = Σ G A D P D AADPDAL(G)=ΣGADPDA

jmad
источник
Я не понимаю этого извините. Используете ли вы Σ для обозначения алфавита, используемого G? И что вы имеете в виду "является ли L полным языком "? Вы говорите, что мы выполним алгоритм на грамматике G, которая генерирует , язык любой строки над Σ? Мы бы четко нашли не только DPDA, но и простой DFA для этого языка. Дополнением к является пустой язык, это также легко распознается как DPDA, так и DFA - поэтому я явно что-то упускаю в вашем объяснении. ΣΣΣΣΣ
Эндрю Томазос
Надеюсь, теперь это стало понятнее. Обратите внимание, что я отвечаю на немного другой вопрос: я бы поклялся, что вы спросили, можем ли мы вычислить , а не просто решить, существует ли он или нет. D
Джмад