Алгоритм Кока-Янгера-Касами разбора грамматики в НФХ
Пусть дана грамматика и слово . Требуется выяснить, выводится ли это слово в данной грамматике.
Алгоритм для НФХ-грамматики
Пусть приведена к НФХ.
Представим , если можно из вывести подстроку . Иначе .
.
Базой динамики являются ячейки , которые заполняются истиной, если правило принадлежит грамматике:
.
Переход динамики имеет вид:
.
Пусть на текущем шаге . Тогда мы смотрим, можно ли вывести подстроку из ячеек матрицы, для которых и .
По окончанию динамики ответ будет содержаться в ячейке , где .
Сложность алгоритма
Необходимо вычислить булевских величин. На каждую требуется затратить операций, где – количество правил,. Суммируя по всем правилам получаем конечную сложность .
Алгоритму требуется памяти, где – количество нетерминалов грамматики.
Минус алгоритма заключается в том, что изначально грамматику необходимо привести к НФХ.
