1 / 10

Лекция 9

Лекция 9. Нормальная форма Хомского. Определение 9.1. КС-грамматика G=(N,   S) называется грамматикой в нормальной форме Хомского (или в бинарной нормальной форме), если каждое правило из Р имеет один из следующих видов: 1) А  ВС, где А, В и С принадлежат N, 2) А  а, где а  

jake
Download Presentation

Лекция 9

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Лекция 9 Нормальная форма Хомского

  2. Определение 9.1 • КС-грамматика G=(N,  S) называется грамматикой в нормальной форме Хомского (или в бинарной нормальной форме), если каждое правило из Р имеет один из следующих видов: • 1) А  ВС, где А, В и С принадлежат N, • 2) А  а, где а  • 3) S , если  L(G), причем S в этом случае не встречается в правых частях правил из . • Отметим особенность использования нетерминального символа S в правых частях правил грамматики в нормальной форме Хомского:

  3. 1) если грамматика в нормальной форме Хомского содержит правило S (т.е. пустая цепочка принадлежит языку, порождаемому этой грамматикой), то S не входит в правую часть ни одного правила этой грамматики (хотя правила, лево частью которых является S, могут входить в грамматику, так как в противном случае порождаемый грамматикой язык был бы пустым); • 2) если же грамматика в нормальной форме Хомского не содержит правила S (т.е. пустая цепочка не принадлежит языку, порождаемому этой грамматикой), то в этом случае нетерминальный символ S может входить как в левую часть, так и в правую часть каких-либо правил грамматики.

  4. Алгоритм 9.1 • . Преобразование к нормальной форме Хомского. • Вход: Приведенная КС – грамматика G = (N,  S) • Выход: КС – грамматика G' в нормальной форме Хомского, эквивалентная G, т.е. такая, что L(G’)= L(G) • Метод: Грамматика G’ строится по G следующим образом. • 1) Включить в Р’ каждое правило из Р вида А а • 2) Включить в Р’ каждое правило из Р вида А ВС • 3) Если правило S было в Р, то включить его в Р’ • 4) Для каждого правила из Р вида А X1X2…Xk, где k >2, включить в P’ правила

  5. A X'1<X2…Xk> • <X2…Xk>  X'2<X3…Xk> • <Xk-2Xk-1Xk>  X'k-2<Xk-1…Xk> • <Xk-1Xk>  X'k-1X'k, • где X'i = Xi, если Xi  N ;X'i – новый нетерминал, если Xi; • <Xi…Xk> – новый нетерминал. • 5) Для каждого правила Р вида А X1X2 , где хотя бы один из символов X1 и X2 принадлежит , включить в Р’ правило А X'1X'2. • 6) Для каждого нетерминала вида а’, введенного на шагах (4) и (5) включить в Р’ правило a’  a.

  6. 7) Наконец, пусть N’ – это N вместе со всеми новыми нетерминальными символами, введенными при построении Р’. Тогда искомой грамматикой будет G' = (N’, , P’, S) • Заметим, что поскольку грамматика была приведенной, то в ней не было бесполезных и недостижимых символов, -правил, цепных правил и циклов, причем, если грамматика содержала правило S, то нетерминальный символ S не входил в правую часть ни одного правила исходной грамматики (см. алгоритмы устранения недостижимых и бесполезных символов грамматики, алгоритм преобразования грамматики в грамматику без -правил, а также алгоритм устранения цепных правил).

  7. Пример. Пусть G – приведенная КС – грамматика, определяемая правилами. • (1) S  aAB • (2) S  BA • (3) A  BBB • (4) A  a • (5) B  AS • (6) B  b • Строим Р’ по алгоритму 9.1. При этом сохраняются правила (2), (4), (5), (6). Правило (1) заменим правилами S a’<AB> и <AB>AB, а правило (3) - правилами A B<BB> и <BB> BB . Наконец, добавляем правило а’  а. В результате получаем грамматику:

  8. G’=(N’, {a,b}, P’, S), где N’={S, A, B, <AB>, <BB>, a’}, а Р’ состоит из правил • S  a’<AB> • S  BA • A  B<BB> • A  a • B  AS • B  b • <AB>  AB • <BB>  BB • a’  a

  9. Поскольку в данном случае язык, порождаемый как исходной грамматикой, так и грамматикой в нормальной форме Хомского, не содержит пустой цепочки, то нетерминальный символ S может входить в правую часть правил результирующей грамматики. • Нормальная форма Хомского является простой формой представления грамматики. Кроме того, если грамматика является грамматикой в нормальной форме Хомского, то каждая вершина дерева вывода в такой грамматике будет иметь не более двух потомков.

  10. Задание 12 • Привести пример грамматики, не представленной в нормальной форме Хомского. Преобразовать ее к нормальной форме Хомского.

More Related