Удаление длинных правил из грамматики
Версия от 23:35, 26 октября 2011; Grechko (обсуждение | вклад)
Задача удаления длинных правил из грамматики возникает при попытке ее приведения к нормальной форме Хомского.
| Определение: |
| Пусть — контекстно-свободная грамматика. Правило называется длинным если |
Постановка задачи
Пусть — контекстно-свободная грамматика, содержащая длинные правила. Требуется построить эквивалентную грамматику , не содержащую длинных правил.
Алгоритм
Расмотрим длинное правило , ,
Добавим в грамматику новых нетерминалов
Добавим в грамматику новое правило:
Удалим из грамматики правило . Проделаем описанную операцию с каждым длинным правилом в .
Пример работы
Покажем, как описанный алгоритм будет работать на следующей грамматике:
Для правила вводим 2 новых нетерминала , и 3 новых правила:
Для правила вводим 1 новыq нетерминал , и 2 новых правила:
В итоге, полученная грамматика будет иметь вид: