Все ли контекстно-свободные и регулярные языки эффективно разрешимы?

12

Я наткнулся на этот рисунок, который показывает, что контекстно-свободные и регулярные языки являются (правильными) подмножествами эффективных задач (предположительно ). Я прекрасно понимаю, что эффективные проблемы являются подмножеством всех разрешимых проблем, потому что мы можем их решить, но это может занять очень много времени.P

Почему все контекстно-свободные и регулярные языки эффективно разрешимы? Значит ли это, что их решение не займет много времени (я имею в виду, что мы знаем это без дополнительного контекста)?

введите описание изображения здесь

Gigili
источник
3
Из любопытства, где вы нашли эту фигуру? Это может помочь в объяснении контекста, поскольку «эффективный» не является формальным понятием, и разные люди могут использовать его для обозначения разных вещей.
Жиль "ТАК - перестань быть злым"
2
Если «эффективный» означает « » (как обычно), «эффективный» не означает «не очень долгое время», так как многочлены также дают огромные значения. Обратите внимание, что основным результатом сложности является то, что существует бесконечная последовательность задач, каждая из которых, по сути, проще, чем следующая. Это верно как внутри, так и снаружи . PPP
Рафаэль
@Raphael: В этом контексте, эффективный - это класс языков, которые разрешимы за полиномиальное время. Я использовал «это могло занять очень много времени» для решаемых проблем, в отличие от неразрешимых, для которых мы не можем найти решения за какое-то конечное время.
Гигили
правильный технический способ сказать, что это определение того, что w∈L, где w - это слово, а L - это язык, в P. ie / aka «распознавание языка»
vzn

Ответы:

15

Членство в регулярном языке может быть решено за время путем моделирования (минимального) DFA языка (который был предварительно вычислен).O(n)

Контекст членство свободного языка может быть решено в с помощью CYK алгоритма .O(n3)

Существуют разрешимые языки, которых нет в , например, в .E X P T I M EPPEXPTIMEP

Дэйв Кларк
источник
2
Вы можете упомянуть алгоритм умножения матриц для неконтекстных грамматик, который имеет лучшее время выполнения, и что этот алгоритм работает очень эффективно (линейно) практически на любой практической неконтекстной
Алекс тен Бринк
@AlextenBrink Я не думаю, что этот вопрос требует более тонкой детализации, чем "многочлен или нет".
Рафаэль
1
Обратите внимание, что вам не нужен минимальный автомат, если он детерминирован. Время выполнения будет по-прежнему равно , поскольку на каждом шаге возможен уникальный «следующий ход». O(n)
Janoma
1
На самом деле, для обычных языков вам даже явно не нужны детерминированные автоматы. Вы моделируете все вычисления параллельно, отслеживая все состояния таким образом, имитируя конструкцию блока питания.
Хендрик Ян
1
@Dave: линейный по длине входной строки для фиксированного регулярного языка, как и другие сложности, приведенные здесь.
Хендрик Ян
1

Уточнение / «мелкий шрифт» в ответе DC: все CFL в форме нормальной формы Хомского могут быть эффективно проанализированы с помощью алгоритма CYK, и все CFL могут быть преобразованы в CNF. Однако преобразование произвольного CFL в CNF может занять экспоненциальное пространство в худшем случае, в зависимости от некоторых алгоритмов. (Я не знаю об алгоритме, который гарантирует преобразование P-времени здесь, кто-нибудь еще? Нужно рассмотреть все крайние / худшие случаи, такие как недетерминированные CFL или неоднозначные .) Состояния Википедии в разделе CNF Порядок преобразований

Более того, раздувание в наихудшем случае по размеру грамматики [примечание 4] зависит от порядка преобразования. Используя | G | чтобы обозначить размер исходной грамматики G, увеличение размера в худшем случае может варьироваться от до , в зависимости от используемого алгоритма преобразования. [6]: 72 2 | G ||G|222|G|

Поэтому кажется, что могут существовать КЛЛ, которые не могут быть эффективно проанализированы. Большинство языков программирования эффективно конвертируются в CNF (или, возможно, в основном определяются в CNF или почти CNF), поэтому синтаксический анализ CFL для «типичных» языков «практически» в P. Вероятно, существуют некоторые современные исследования этой сложности в наихудшем случае (но это не так. найди на нем последние статьи по беглому поиску). Например, эта более старая (1973 г.) исследовательская работа Greibach также, похоже, указывает на то, что производительность в худшем случае может не ограничиваться P. см., Например.

ВЗН
источник