Упражнение 2.1.25 |
Нормальные формы контекстно-свободных грамматик
8.2. Устранение эпсилон-правил
Теорема 8.2.1. Пусть язык является контекстно-свободным. Тогда язык порождается некоторой контекстно-свободной грамматикой без - правил.
Доказательство. Пусть дана контекстно-свободная грамматика , порождающая язык L. Проведем серию преобразований множества P.
Если для каких-то , , и множество P содержит правила и , но не содержит правила , то добавим это правило в P. Повторяем эту процедуру, пока возможно.
Теперь исключим из множества P все правила вида . Полученная грамматика порождает язык .
Пример 8.2.2. Рассмотрим язык L, порождаемый грамматикой
Язык порождается грамматикойУпражнение 8.2.3. Найти контекстно-свободную грамматику без -правил, эквивалентную грамматике
8.3. Нормальная форма Хомского
Определение 8.3.1. Грамматика в нормальной форме Хомского ( грамматика в бинарной нормальной форме, квадратичная грамматика, grammar in Chomsky normal form) - контекстно-свободная грамматика , в которой каждое правило имеет один из следующих трех видов: , , , где , , , .
Пример 8.3.2. Грамматика
является грамматикой в нормальной форме Хомского.Теорема 8.3.3. Каждая контекстно-свободная грамматика эквивалентна некоторой грамматике в нормальной форме Хомского.
Доказательство. Пусть дана контекстно-свободная грамматика . Проведем ряд преобразований этой грамматики так, что порождаемый ею язык остается неизменным.
Если правая часть какого-нибудь правила содержит символ S, то заменим грамматику на грамматику
где S0 - новый символ, не принадлежащий множеству .Заменим во всех правилах каждый терминальный символ a на новый нетерминальный символ Ta и добавим к множеству P правила для всех .
Устраним правила вида , где , заменив каждое из них на ряд более коротких правил (при этом добавляются новые нетерминальные символы).
Теперь устраним все правила вида , где A не является начальным символом. Это можно сделать так же, как в доказательстве теоремы 8.2.1.
Если для каких-то , и множество P содержит правила и , но не содержит правила , то добавим это правило в P. Повторяем эту процедуру, пока возможно. После этого исключим из множества P все правила вида .
Пример 8.3.4. Грамматика
эквивалентна следующей грамматике в нормальной форме Хомского:Теорема 8.3.5. Если контекстно-свободный язык не содержит пустого слова, то он порождается некоторой грамматикой, в которой каждое правило имеет один из следующих двух видов: , , где , , , .
Упражнение 8.3.6. Найти контекстно-свободную грамматику в нормальной форме Хомского, эквивалентную грамматике