Нормальная форма Хомского
Несколько определений
Определение: |
Грамматикой в нормальной форме Хомского (Chomsky normal form) называется контекстно-свободная грамматика, в которой могут содержатся правила только следующего вида:
, , где , — терминал, — нетерминалы, — стартовая вершина, — пустая строка, стартовая вершина не содержится в правых частях правил. |
Приведение грамматики к нормальной форме Хомского
Теорема: |
Любую контекстно-свободную грамматику можно привести к нормальной форме Хомского. |
Доказательство: |
Рассмотрим контекстно-свободную грамматику . Для приведения ее к нормальной форме Хомского необходимо выполнить пять шагов. На каждом шаге мы строим новую , которая допускает тот же язык, что и .
Таким образом, мы получили грамматику в нормальной форме Хомского, которая допускает тот же язык, что и .Заметим, что размеры грамматики при таком порядке действий возрастают полиномиально. При удалении длинных правил из каждого правила длины могло появиться новых правил, причем их длина не превышает двух. На этом шаге размер грамматики возрастает не более, чем вдвое.При удалении -правил из грамматики, содержащей правила длины 0, 1 и 2, размеры грамматики могли вырасти не больше, чем в 3 раза.Всего цепных правил в грамматике не больше, чем Наконец, на последнем шаге может произойти добавление не более, чем , где — число нетерминалов. При удалении цепных правил мы берем каждую из цепных пар и производим добавление нецепных правил, выводимых из второго нетерминала в паре. Если максимальная суммарная длина всех правил, выводимых из какого-либо нетерминала, равна , то размер грамматики возрастет не больше, чем на . ( — алфавит грамматики) новых правил, причем все они будут длины 1. |
Пример
Рассмотрим грамматику для языка правильных скобочных последовательностей:
.- Удалим длинные правила и получим грамматику .
- Удалим ε правила - .
- Удалим цепные правила - .
- Заменим терминалы на нетерминалы - .