Тема 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->. В результате получим правила вида А) 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 и тогда грамматика будет в нормальной форме Хомского.