Алгоритм Кока-Янгера-Касами, модификация для произвольной грамматики — различия между версиями
(Указано ограничение на грамматику) |
|||
Строка 16: | Строка 16: | ||
== Оценка сложности == | == Оценка сложности == | ||
Расчёт вспомогательной динамики занимает <tex>O \left( n^3 \cdot |\Gamma| \cdot M \right)</tex> времени, основной динамики — <tex>O \left( n^2 \cdot |\Gamma| \right)</tex>. Итоговая временная сложность алгоритма равна <tex>O \left( n^3 \cdot |\Gamma| \cdot M \right)</tex>. Алгоритму требуется <tex>O(n^2 \cdot |\Gamma| \cdot M)</tex> памяти. | Расчёт вспомогательной динамики занимает <tex>O \left( n^3 \cdot |\Gamma| \cdot M \right)</tex> времени, основной динамики — <tex>O \left( n^2 \cdot |\Gamma| \right)</tex>. Итоговая временная сложность алгоритма равна <tex>O \left( n^3 \cdot |\Gamma| \cdot M \right)</tex>. Алгоритму требуется <tex>O(n^2 \cdot |\Gamma| \cdot M)</tex> памяти. | ||
+ | |||
+ | [[Категория: Теория формальных языков]] | ||
+ | [[Категория: Контекстно-свободные грамматики]] |
Версия 12:48, 2 марта 2012
Пусть дана контекстно-свободная грамматика грамматика и слово . Требуется выяснить, выводится ли это слово в данной грамматике.
Базовая версия данного алгоритма работает только для грамматик в нормальной форме Хомского. Модифицируем алгоритм для работы на произвольных контекстно-свободных грамматиках без цепных правил и без . -правил
Алгоритм для произвольной грамматики
Обозначим
— максимальную длину правой части правила.Введём вспомогательную динамику:
— можно ли из префикса длины правой части данного правила вывести . Также введём динамику , аналогично базовой версии алгоритма.- База динамики: — вывод терминалов, — -вывод; — -вывод для -префиксов правил.
- Переход: Пусть для всех подстрок динамики уже вычислены. Сначала вычислим вспомогательную динамику: . Это вычисление может обратится к , но на результат это не повлияет, так так в данный момент . Главная динамика выражается так: .
- Завершение: После окончания работы ответ содержится в ячейке , где .
Оценка сложности
Расчёт вспомогательной динамики занимает
времени, основной динамики — . Итоговая временная сложность алгоритма равна . Алгоритму требуется памяти.