Изменения

Перейти к: навигация, поиск

Удаление бесполезных символов из грамматики

207 байт убрано, 20:18, 29 октября 2016
Нет описания правки
=== Пример ===
Рассмотрим следующую грамматику:<br> 
<tex>
\begin{array}{l l} S\rightarrow Ac\\ A\rightarrow SD\\ D\rightarrow aD\\ A\rightarrow a \end{array}
</tex>
 
# Изначально множество порождающих нетерминалов состоит из одного элемента <tex>A</tex>.
# Добавим в множество нетерминал <tex>S</tex>, так как существует правило <tex>S\rightarrow Ac</tex>, в правой части которого стоят нетерминал <tex>A</tex>, который есть в множестве, и терминал <tex>c</tex>.
=== Пример ===
Рассмотрим следующую грамматику:<br> 
<tex>
\begin{array}{l l}
S\rightarrow AB|CD\\
A\rightarrow EF\\
G\rightarrow AD\\
C\rightarrow c
 
\end{array}
</tex>
# Возьмём множество, состоящее из единственного элемента: <tex>\lbrace S \rbrace</tex>.
=== Пример ===
Пусть нам дана грамматика:<br> 
<tex>
\begin{array}{l l}
S\rightarrow AS|BS|s \\
E\rightarrow EF|FF \\
A\rightarrow a \\
F\rightarrow f
</tex><br>
Удалим правила, содержащие непорождающие нетерминалы: <br>
\end{array}
</tex>.<br>
Удалим правила, содержащие непорождающие нетерминалы и получим грамматику
<tex>
\begin{array}{l l}
S\rightarrow AS|s \\
E\rightarrow EF|FF \\
A\rightarrow a \\
F\rightarrow f
</tex><br>
Теперь удалим недостижимые нетерминалы:<br>
\end{array}
</tex>.<br>
Теперь удалим недостижимые нетерминалы и получим грамматику
<tex>
\begin{array}{l l}
S\rightarrow AS|s \\
A\rightarrow a
\end{array}</tex>.
=== Замечание ===
Шаги алгоритма нельзя менять местами.
Рассмотрим следующую грамматику:<br> 
<tex>
\begin{array}{l l}
S\rightarrow AB|a \\
A\rightarrow b
\end{array}.
</tex>
 
Все нетерминалы в этой грамматике достижимы. Однако, если удалить <tex>B</tex> как непорождающий, то нетерминал <tex>A</tex> станет недостижимым.
== См. также ==
* [[Контекстно-свободные_грамматики,_вывод,_лево-_и_правосторонний_вывод,_дерево_разбора|Контекстно-свободные грамматики]]
* [[Нормальная_форма_Хомского|Нормальная форма Хомского]]
* [http://en.wikipedia.org/wiki/Chomsky_normal_form Chomsky normal form]
== Литература ==
* [http://en.wikipedia.org/wiki/Chomsky_normal_form Wikipedia {{---}} Chomsky normal form]
* ''Хопкрофт Д., Мотвани Р., Ульман Д.'' {{---}} Введение в теорию автоматов, языков и вычислений, 2-е изд. : Пер. с англ. — Москва, Издательский дом «Вильямс», 2002. — 528 с. : ISBN 5-8459-0261-4 (рус.)
[[Категория: Теория формальных языков]]
[[Категория: Контекстно-свободные грамматики]]
188
правок

Навигация