2
Тема 13: Нормальная форма Хомского Определение : Контекстно-свободная грамматика G находится в нормальной форме Хомского, если все правила имеют один из следующих видов: A->BC, A-> b, где A, B, C — нетерминалы, а, b — терминалы. Эта нормальная форма ещё называется бинарной, так как деревья вывода получаются бинарными. Пример : Грамматика имеющая следующие правила P={1.S->RR, 2.S->AB, 3.R->RR, 4.R->AB, 5.A->a, 6.B->RB, 7.B->b} является в нормальной форме Хомского. Теорема. Каждая грамматика в нормальной форме Хомского (НФХ) является контекстно-свободной и наоборот, каждая контекстно- свободная грамматика (КСГ) может быть эффективно преобразована в эквивалентную грамматику в НФХ. Алгоритм преобразования КС-грамматики в НФХ: Дана КС-грамматика G без непродуктивных и недостижимых символов, без -правил и цепных правил. Проведём ряд преобразований в этой грамматике и построим эквивалентную грамматику G'=(V T , V N , P, S), где изменятся множества V N и P. Языки этих двух грамматик совпадают L(G)=L(G). I этап : Все начальные правила G имеют один из следующих видов: 1.A->b — это правило подходит для НФХ и оставляем ее неизмененной. 2.A->, где ||>1 и — любая последовательность терминалов или нетерминалов, (V T V N ). Эти правила можно представить как A->=X 1 X 2 ...X n , где x 1 ,...,x n (V T V N ) и их мы изменим. 3.Для всех символов X i , которые являются терминалами вводятся новые нетерминальные символы Y i , которые не включены в V N . Тогда

Tema14asdasdasd

Embed Size (px)

DESCRIPTION

asdasdasd

Citation preview

Page 1: Tema14asdasdasd

Тема 13: Нормальная форма Хомского

Определение : Контекстно-свободная грамматика G находится в

нормальной форме Хомского, если все правила имеют один из

следующих видов: A->BC, A-> b, где A, B, C — нетерминалы, а, b —

терминалы. Эта нормальная форма ещё называется бинарной, так как

деревья вывода получаются бинарными.

Пример: Грамматика имеющая следующие правила P={1.S->RR,

2.S->AB, 3.R->RR, 4.R->AB, 5.A->a, 6.B->RB, 7.B->b} является в

нормальной форме Хомского.

Теорема. Каждая грамматика в нормальной форме Хомского (НФХ)

является контекстно-свободной и наоборот, каждая контекстно-

свободная грамматика (КСГ) может быть эффективно преобразована в

эквивалентную грамматику в НФХ.

Алгоритм преобразования КС-грамматики в НФХ:

Дана КС-грамматика G без непродуктивных и недостижимых

символов, без -правил и цепных правил. Проведём ряд преобразований в

этой грамматике и построим эквивалентную грамматику G'=(VT, VN, P, S),

где изменятся множества VN и P. Языки этих двух грамматик совпадают

L(G)=L(G).

I этап:

Все начальные правила G имеют один из следующих видов:

1.A->b — это правило подходит для НФХ и оставляем ее

неизмененной.

2.A->, где ||>1 и — любая последовательность терминалов или

нетерминалов, (VTVN).

Эти правила можно представить как A->=X1X2...Xn, где

x1,...,xn(VTVN) и их мы изменим.

3.Для всех символов Xi, которые являются терминалами вводятся

новые нетерминальные символы Yi, которые не включены в VN. Тогда

правило A->X1X2...Xn становится как A->Y1Y2...Yn, где Yi=Xi, если XiVN и Yi —

это новый символ если XiVT.

4.Создаем множества VN'=VN{Yi} и P'=P\{A->X1...Xn}

{A->Y1...Yn}{Yi->Xi / XiVT}.

5. Повторим это для всех правил типа A->.

В результате получим правила вида

Page 2: Tema14asdasdasd

А) A->b

B) A->Y1...Yn, где YiVN, и n 2.

II этап:

Для правил вида A->Y1...Yn если n=2, то A->Y1Y2 — и есть нормальная

форма Хомского.

Если n>2, то вводим новые n-2 нетерминальных символов: Z1, Z2, ...

Zn-2. Тогда правила вида A->Y1...Yn становится:

A->Y1Z1

Z1->Y2Z2

...

Zn-2->Yn-1Yn.

Множество VN' меняется: VN'=VN'{Zi}.

P'=P'{Z->b}{Zi->Yi+1Zi+1}\{A->Y1Y2...Yn / n>2}.

Произведённые изменения в множестве правил начальной

грамматики обеспечат существование в грамматике G правил

следующего вида:

1. A->b

2. A->Z1Z2, где A, Z1, Z2VN, bVT и тогда грамматика будет в

нормальной форме Хомского.