formal_language_theory / lectures / unit_4
.pdfНормальная форма Хомского
Итак, в P2 находятся: Ret 44 правила грамматики G1 вида
(1)A a,
(2)A B1B2 … Bm ,
и новые правила вида
(3) A С1С2 … Сm , m 2, |
Ret 123 |
||
(4) С a, |
|
|
|
где а VT общие терминалы; |
|
||
1 |
(1 |
i m) нетерминалы G1; |
|
A, Bi VN |
|||
C VN2 \ VN1 |
новые нетерминалы G2; |
|
|
2 |
j |
m) нетерминалы, но не все |
|
Cj VN (1 |
|||
|
|
старые, т. е. из VN1 . |
41 |
|
|
|
Нормальная форма Хомского
Пока не все правила грамматики G2 удовлетворяют нормальной форме Хомского: именно правила с длиной правых частей больше 2.
Прежде, чем продолжить преобразование грамматики G2, покажем, что она эквивалентна грамматике G1.
42
Нормальная форма Хомского
I. Докажем, что L(G1) L(G2).
* |
|
Пусть S x. Любой шаг этого вывода в |
|
G1 |
|
грамматике |
G1, на котором используется |
правило
A B1B2 ... Bm P1, m 2,
где не все Bj (1 j m) нетерминалы (в нём есть и терминалы), равносилен в грам-
матике G2 применению нового правила |
|
A C1C2 ... Cm P2 |
|
и нескольких правил вида Cj Bj P2, где |
|
* |
|
Bj VT (1 j m) . Поэтому S x. |
|
G2 |
43 |
|
Нормальная форма Хомского
II. Докажем, что L(G2) L(G1).
Индукцией по длине вывода l покажем, что
если
|
l |
|
A |
|
|
G |
||
|
||
|
2 |
|
1 |
|
для любого A V |
||
|
N |
|
, то A |
||
x, где x V T |
существует вывод
|
|
* |
x. |
G |
|
1 |
|
База. Пусть l = 1.
Так как в выводе A x применятся правило
G2
вида (1) A x P2, где x VT, единственно
возможное, дающее терминал, то оно имеется также и во множестве правил грамматики G1,
а тогда A x.
G1
44
Нормальная форма Хомского
Индукционная гипотеза. Предположим, что утверждение выполняется для всех 1 l n
(n 1).
Индукционный переход. Пусть
|
A |
l |
|
|
|
x, где l = n + 1. |
|||
|
|
G |
|
|
|
|
2 |
|
|
Этот вывод имеет вид: |
|
|||
A C C |
... C |
n |
||
x, где m 2. |
||||
G2 |
1 |
2 |
m |
G2 |
|
|
|
||
Очевидно, что x = x1x2… xm, причём |
||||
l j |
|
|
lj n, j =1, 2,..., m. |
|
Cj xj, 1 |
||||
G |
|
|
|
|
2 |
|
|
|
|
45
Нормальная форма Хомского
2 |
1 |
, то существует только |
Если Cj VN |
\ VN |
одно правило из множества правил P2, которое определяет этот нетерминал: Cj aj для некоторого aj VT. В этом случае aj = xj.
По построению правило
A C1C2 ... Cm P2,
используемое на первом шаге вывода, обязано своим происхождением правилу
A B1B2...Bm P1,
где Bj = Cj , если Cj VN1 , и
Bj = aj , если Cj VN2 \ VN1 .
46
Нормальная форма Хомского
Для Cj
V1 N
мы имеем выводы
l j |
xj , 1 lj n, |
|
|
||
Cj G |
2 |
|
|
|
ипо индукционному предположению
существуют выводы Bj
* G1
xj (1 j m).
Итак, имеем:
|
|
|
|
|
|
* |
|
* |
|
A |
G1 |
B1B2 |
... Bm G |
x1B2 ... |
|
|
|
1 |
|
* x1x2… xm = x.
G1
При A = S получаем, что x L(G1).
|
|
* |
* |
Bm G |
x1x2 … Bm G1 |
1 |
|
как частный случай,
47
Нормальная форма Хомского
Итак, мы доказали промежуточный результат: любой КС-язык может быть порожден КС-грамматикой, каждое правило которой имеет форму
A a или A B1B2 ... Bm, где m 2;
A, B1, B2, ..., Bm — нетерминалы; a — терминал.
Очевидно, что все правила при m 2 имеют такой вид, какого требует нормальная форма Хомского.
48
Нормальная форма Хомского
Остается преобразовать правила для m 3 к надлежащему виду.
Модифицируем G2, добавляя некоторые дополнительные нетерминалы и заменяя некоторые её правила.
49
Нормальная форма Хомского
Именно, по каждому правилу вида
A B1B2 ... Bm P2, где m 3,
создаются новые нетерминалы
D1, D2, ..., Dm – 2 VN2 ,
и оно заменяется множеством правил
{ A B1 D1,
D1 B2 D2,
…
Dm – 3 Bm – 2 Dm – 2, Dm – 2 Bm – 1 Bm }.
Ret 123
50