Я наткнулся на этот рисунок, который показывает, что контекстно-свободные и регулярные языки являются (правильными) подмножествами эффективных задач (предположительно ). Я прекрасно понимаю, что эффективные проблемы являются подмножеством всех разрешимых проблем, потому что мы можем их решить, но это может занять очень много времени.
Почему все контекстно-свободные и регулярные языки эффективно разрешимы? Значит ли это, что их решение не займет много времени (я имею в виду, что мы знаем это без дополнительного контекста)?
Ответы:
Членство в регулярном языке может быть решено за время путем моделирования (минимального) DFA языка (который был предварительно вычислен).O(n)
Контекст членство свободного языка может быть решено в с помощью CYK алгоритма .O(n3)
Существуют разрешимые языки, которых нет в , например, в .E X P T I M E ∖ PP EXPTIME∖P
источник
Уточнение / «мелкий шрифт» в ответе DC: все CFL в форме нормальной формы Хомского могут быть эффективно проанализированы с помощью алгоритма CYK, и все CFL могут быть преобразованы в CNF. Однако преобразование произвольного CFL в CNF может занять экспоненциальное пространство в худшем случае, в зависимости от некоторых алгоритмов. (Я не знаю об алгоритме, который гарантирует преобразование P-времени здесь, кто-нибудь еще? Нужно рассмотреть все крайние / худшие случаи, такие как недетерминированные CFL или неоднозначные .) Состояния Википедии в разделе CNF Порядок преобразований
Поэтому кажется, что могут существовать КЛЛ, которые не могут быть эффективно проанализированы. Большинство языков программирования эффективно конвертируются в CNF (или, возможно, в основном определяются в CNF или почти CNF), поэтому синтаксический анализ CFL для «типичных» языков «практически» в P. Вероятно, существуют некоторые современные исследования этой сложности в наихудшем случае (но это не так. найди на нем последние статьи по беглому поиску). Например, эта более старая (1973 г.) исследовательская работа Greibach также, похоже, указывает на то, что производительность в худшем случае может не ограничиваться P. см., Например.
источник