Нормальная форма Хомского

Материал из Seo Wiki - Поисковая Оптимизация и Программирование

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

В информатике говорят, что формальная грамматика находится в нормальной форме Хомского, если все её продукции имеют вид

<math>A</math><math>\rightarrow\, </math><math>BC</math> или
<math>A</math><math>\rightarrow\, </math>α или
<math>S</math><math>\rightarrow\, </math>ε

где <math>A</math>, <math>B</math> и <math>C</math> — нетерминалы, α — терминальный символ (представляющий постоянное значение), <math>S</math> — начальный символ, и ε — пустая строка. Также ни <math>B</math>, ни <math>C</math> не может быть начальным символом.

Каждая грамматика в нормальной форме Хомского является контекстно-свободной, и наоборот, каждая контекстно-свободная грамматика может быть эффективно преобразована в эквивалентную грамматику в нормальной форме Хомского.

За исключением возможного правила <math>S</math><math> \rightarrow\, </math>ε (используемого, когда грамматика может порождать пустую строку), все правила грамматики в нормальной форме Хомского неукорачивающие; то есть, в процессе вывода строки каждая цепочка из терминалов и нетерминалов всегда имеет либо ту же длину, что и предыдущая, либо на один элемент больше. Вывод строки длины <math>n</math> всегда занимает ровно <math>2n-1</math> шагов. Кроме того, так как все правила вывода нетерминалов переводят один нетерминал в ровно два нетерминала, дерево разбора, основанное на грамматике в нормальной форме Хомского, составляет собой бинарное дерево, высота которого ограничена длиной строки.

Благодаря этим свойствам, многие доказательства в теории формальных языков и вычислимости используют нормальную форму Хомского. Эти свойства также служат основой различных эффективных алгоритмов — например, CYK-алгоритм, определяющий, может ли данная строка порождаться данной грамматикой, использует нормальную форму Хомского.

Нормальная форма Хомского названа по имени Ноама Хомского, американского лингвиста, предложившего иерархию Хомского.

Альтернативное определение

Некоторые источники определяют нормальную форму Хомского несколько иначе.

Формальная грамматика находится в нормальной форме Хомского, если все её продукции имеют вид

<math>A</math><math> \rightarrow\, </math><math>BC</math> или
<math>A</math><math> \rightarrow\, </math>α

где <math>A</math>, <math>B</math> и <math>C</math> — нетерминалы, и α — терминальный символ. При использовании такого определения <math>B</math> и <math>C</math> могут быть начальными символами.

Это определение отличается от предыдущего, так как исключает возможность порождения пустой строки ε. По прежнему справедливо, что любая контекстно-свободная грамматика, порождающая язык <math>L</math>, может быть эффективно преобразована в нормальную форму Хомского, порождающую <math>L-\{\epsilon\}</math>. Принципиальное преимущество последнего определения в том, что доказательства в целом немного упрощаются, так как каждый шаг вывода никогда не уменьшает длину результирующей строки. Разумеется, его недостаток состоит в том, что требуется отдельное рассмотрение случая, когда грамматика порождает ε.

Список литературы

  • Introduction to the Theory of Computation. — PWS Publishing, 1997. — ISBN 0-534-94728-X (Pages 98–101 of section 2.1: context-free grammars. Page 156.)
  • Introduction to Languages and the Theory of Computation. — McGraw Hill, 2003. — ISBN 0-07-232200-4 (Pages 237–240 of section 6.6: simplified forms and normal forms.)
  • John E. Hopcroft and Jeffrey D. Ullman, Introduction to Automata Theory, Languages and Computation, Addison-Wesley Publishing, Reading Massachusetts, 1979. ISBN 0-201-029880-X. (See chapter 4.)
  • Introduction to Formal Language Theory. — Addison-Wesley, 1978. — ISBN 978-0201029550 (Pages 103–106.)
Личные инструменты

Served in 0.096 secs.