Изменения

Перейти к: навигация, поиск
м
Алгоритм для произвольной грамматики
Будем решать задачу динамическим программированием. Введём динамику <tex>a\left[A,i,j\right] = \left[A \Rightarrow^{*} w[i..j-1]\right]</tex>, аналогично [[Алгоритм_Кока-Янгера-Касами_разбора_грамматики_в_НФХ|базовой версии]] алгоритма.
Также введём вспомогательный четырехмерный массив <tex>h\left[A \rightarrow \alpha, i, j, k\right] = true / /</tex> тогда и только тогда, когда из префикса длины <tex>k</tex> правой части данного правила можно вывести <tex>w\left[i..j-1\right]</tex>.
Рассмотрим все тройки <tex>\lbrace \langle j, i \rangle \mid j-i=m \rbrace</tex>, где <tex>m</tex> {{---}} константа и <tex>m < n</tex>, и <tex>k</tex> такое, что <tex>k < \left|\alpha\right|</tex>.
390
правок

Навигация