Московский государственный университет имени М.В.Ломоносова
Опубликован: 09.07.2007 | Доступ: свободный | Студентов: 1999 / 567 | Оценка: 4.56 / 4.26 | Длительность: 20:40:00
ISBN: 978-5-9556-0062-8
Специальности: Математик
Лекция 9:

Нормальные формы контекстно-свободных грамматик

< Лекция 8 || Лекция 9: 123 || Лекция 10 >
Аннотация: В данной лекции рассматривается доказательство того, что каждая контекстно-свободная грамматика эквивалентна некоторой контекстно-свободной грамматике специального вида, а именно грамматике в нормальной форме Хомского. Этот факт используется в доказательствах многих теорем о контекстно-свободных языках и является очень важным. Приведены также практические примеры и самостоятельные упражнения

Основная цель этой лекции - доказать, что каждая контекстно-свободная грамматика эквивалентна некоторой контекстно-свободной грамматике специального вида, а именно грамматике в нормальной форме Хомского (раздел 8.3). Этот факт используется дальше в доказательствах многих теорем о контекстно-свободных языках. Два вспомогательных результата, на которые опирается приведение грамматик к нормальной форме Хомского, выделены в отдельные разделы в начале лекции.

В конце лекции доказывается, что каждую контекстно-свободную грамматику можно также привести к нормальной форме Грейбах.

8.1. Устранение бесполезных символов

Определение 8.1.1. Пусть дана порождающая грамматика G \peq \lalg N , \Sigma , P , S \ralg. Символ A \in N называется полезным (useful), если существуют такие слова \alpha \in \ns ^*, \beta \in \ns ^* и w \in \Sigma ^*, что S \overstar{\Rightarrow} \alpha A \beta и \alpha A \beta \overstar{\Rightarrow} w. Символ A \in N называется бесполезным (useless), если он не является полезным. Символ A \in N называется порождающим (generating), если существует такое слово w \in \Sigma ^*, что A \overstar{\Rightarrow} w. Символ A \in N называется достижимым если существуют такие слова \alpha \in \ns ^* и \beta \in \ns ^*, что S \overstar{\Rightarrow} \alpha A \beta.

Лемма 8.1.2. Пусть дана контекстно-свободная грамматика G = \lalg N , \Sigma , P , S \ralg, в которой все символы из N являются порождающими. Пусть N' - множество всех достижимых символов грамматики G, а P' - множество тех правил из P, которые не содержат ни одного символа из множества N \sminus N'. Тогда в контекстно-свободной грамматике \lalg N' , \Sigma , P' , S \ralg все символы из N' являются порождающими. \end{lemma}

Теорема 8.1.3. Пусть дана контекстно-свободная грамматика G = \lalg N , \Sigma , P , S \ralg и L ( G ) \neq \varnothing. Тогда существуют такие множества N' \subseteq N и P' \subseteq P, что в контекстно-свободной грамматике \lalg N' , \Sigma , P' , S \ralg нет бесполезных символов и она эквивалентна исходной грамматике.

Доказательство. На первом этапе удалим все непорождающие символы (удалим также каждое правило, содержащее хотя бы один такой символ). На втором этапе из полученной грамматики удалим все недостижимые символы (и правила, их содержащие). Согласно 8.1.2 на втором этапе ни один порождающий символ не может стать непорождающим.

Пример 8.1.4. Рассмотрим контекстно-свободную грамматику G с правилами

\begin{align*}
S \; & {\to} \; U X , & W \; & {\to} \; Y Z Y , & Y \; & {\to} \; Y Y \\
S \; & {\to} \; V Z , & W \; & {\to} \; aab , & Y \; & {\to} \; a U \\
T \; & {\to} \; aa , & X \; & {\to} \; X a , & Y \; & {\to} \; \varepsilon \\
T \; & {\to} \; bb , & X \; & {\to} \; X b , & Z \; & {\to} \; W \\
U \; & {\to} \; a U a , & X \; & {\to} \; \varepsilon , & Z \; & {\to} \; b .\\
U \; & {\to} \; b U b , \\
V \; & {\to} \; a T b , \\
V \; & {\to} \; b T a ,
\end{align*}
Удалив четыре правила, содержащие непорождающий символ U, получим грамматику G1. В ней символ X является недостижимым. Удалив три правила, содержащие X, получим грамматику G2 с правилами
\begin{align*}
S \; & {\to} \; V Z , & W \; & {\to} \; Y Z Y , & Y \; & {\to} \; Y Y , \\
T \; & {\to} \; aa , & W \; & {\to} \; aab , & Y \; & {\to} \; \varepsilon , \\
T \; & {\to} \; bb , & & & Z \; & {\to} \; W , \\
V \; & {\to} \; a T b , & & & Z \; & {\to} \; b .\\
V \; & {\to} \; b T a ,
\end{align*}
Очевидно, что L(G) = L(G2) и грамматика G2 не содержит бесполезных символов.

Упражнение 8.1.5. Найти контекстно-свободную грамматику без бесполезных символов, эквивалентную грамматике

\begin{align*}
S \; & {\to} \; S R T , \\
S \; & {\to} \; c , \\
R \; & {\to} \; a R a , \\
R \; & {\to} \; b , \\
T \; & {\to} \; a T .
\end{align*}
< Лекция 8 || Лекция 9: 123 || Лекция 10 >
Юлия Маковецкая
Юлия Маковецкая

Упражнение 2.1.25

Евгения Гунченко
Евгения Гунченко

Сдавала тест экстерном, результат получен 74 после принятия данного результата и соответственно оплаты курса, будет ли выдано удостоверение о повышении квалификации?

Наталья Алмаева
Наталья Алмаева
Россия
Николай Щербаков
Николай Щербаков
Россия, Москва