Алгоритм Кока-Янгера-Касами разбора грамматики в НФХ
Версия от 01:34, 23 февраля 2011; Panichev.Nikolay (обсуждение | вклад) (Новая страница: «Пусть дана грамматика <tex>\Gamma</tex> и слово <tex>w \in \Sigma^{*}</tex>. Требуется выяснить, выводится ли э…»)
Пусть дана грамматика
и слово . Требуется выяснить, выводится ли это слово в данной грамматике.Алгоритм для НФХ-грамматики
Пусть
приведена к НФХ.Представим
, если можно из вывести подстроку . Иначе ..
Базой динамики являются ячейки , которые заполняются истиной, если правило принадлежит грамматике:
.
Переход динамики имеет вид:
.
Пусть на текущем шаге
. Тогда мы смотрим, можно ли вывести подстроку из ячеек матрицы, для которых и .По окончанию динамики ответ будет содержаться в ячейке
, где .
Сложность алгоритма
Необходимо вычислить
булевских величин. На каждую требуется затратить операций, где – количество правил,. Суммируя по всем правилам получаем конечную сложность .Алгоритму требуется
памяти, где – количество нетерминалов грамматики.Минус алгоритма заключается в том, что изначально грамматику необходимо привести к НФХ.