Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
125
Добавлен:
16.04.2015
Размер:
761.33 Кб
Скачать

Универсальная грамматика Хомского типа 0

По правилам группы (IV) каждый символ из vi преобразуется в [ , 9] и [ , 8]. Последний символ сдвигается влево, пока не окажется слева от B.

Когда [ , 8] достигнет [ , 4], вводится символ . Тем самым, стертая правилами

группы (III) строка ui заменяется на vi .

Если vi = , то вместо правил группы (IV)

используется правило (20).

Таким

образом, получаем шаг вывода

w w',

использующий правило ui vi.

111

Универсальная грамматика Хомского типа 0

Эта процедура может повторяться благодаря правилам группы (VI).

Если w' содержит вспомогательные символы, то по правилам группы (VII) все их можно стереть, оставив лишь терминальные.

Следовательно, L(G) L(Gu, code(G)).

112

Универсальная грамматика Хомского типа 0

Для того чтобы доказать обратное включение, заметим, что удалить нетерминальный символ A можно лишь в том случае, когда между A и C стоит терминальная строка.

Каждый шаг вывода обязан начинаться с введения символа Q. Стирание этого символа влечёт появление нетерминального символа [ , 1], который в свою очередь может пропасть лишь при замене его на [ , 9].

Эти операции возможны тогда и только тогда, когда подстрока ui удаляется из w.

Удаление [ , 9] возможно лишь после записи строки vi на месте стертой ui . Появляющийся при этих действиях символ R можно удалить, только когда строка приобретет вид

Aw'CDui Evi D ... Duk Evk DF.

113

Универсальная грамматика Хомского типа 0

Тем самым моделируется шаг вывода, использующий правило ui vi.

Все выводы другого вида заблокированы

всхеме Gu .

Таким образом, получено включение

L(Gu , code(G)) L(G),

что завершает доказательство равенства

L(Gu , code(G)) = L(G).

114

Универсальная грамматика Хомского типа 0

Заметим, что построенная выше универсальная грамматика Gu кодирует то, как используется грамматика G в процессе вывода: выбор правила, удаление вхождения его левого члена, запись на это место правого члена правила, проверка того, состоит ли полученная строка лишь из терминальных символов.

115

Пример 7.1. Так как в общем случае code(G) = ASCDu1Ev1Du2Ev2D ... DukEvkDF,

то для грамматики G = ({S}, {a}, {S a}, S) имеем code(G) = ASCDSEaDF. Группа правил

(I)(1) C BQ,

(2) Q Q для N T {D, B}

вводит нетерминальный символ Q, который выбирает правило вывода ui vi, расположенное справа от нетерминального символа D (по правилу (3)). Результат применения правил группы (I) показан выше.

Итак, начинаем вывод с цепочки ASCSEaDF.

( 0 )

(1)

 

A S C D S E a D F A S BQD S E a D F (1)

(1)

(3)

( 2 )

A S B [S, 2] D [S, 1] E a D F

По группе (II) правил первый символ ( = S) слова ui преобразуется в [ , 1] (в нашем случае [S, 1]), и нетерминальный символ [ , 2] (в нашем случае [S, 2]), который движется влево, пока не окажется слева от B. В нашем случае эта ситуация уже достигнута.

116

Пример 7.1.

Затем [ , 2] превращается в [ , 3] (в нашем случае [S, 3]) с помощью правила

 

(5) B[ ,2] [ ,3] B для N T,

 

 

 

 

 

 

 

= A S B [S, 2] D [S, 1] E a D F

( 2 )

(5)

 

 

( 3 )

( 2 ) A S [S, 3] B D [S, 1] E a D F

 

 

 

 

 

Если в w = S [S, 3] (символы между A и B) есть вхождение = S, то по правилу

(7) [ ,3] [ ,4] для N T,

вводится нетерминальный символ [ , 4] для того, чтобы закодировать эту информацию:

(7)

( 4 )

( 3 ) A [S, 4] B D [S, 1] E a D F

Третья группа правил преобразует все символы x из i в (x, 1) (в нашем примере это уже достигнуто); затем каждый такой символ x удаляется справа от (x, 4), в случае, когда такой элемент действительно появляется в том же самом порядке (в нашем примере на этом шагу ничего не происходит).

117

Пример 7.1.

= A [S, 4] BD [S, 1]E a D F

(4)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Из (IV) применимо только (13):

 

 

 

 

(13)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(4) A [S, 4]BD[S, 7]E[a, 9][a, 8]DF (5)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Из (IV) применимо (15):

 

 

 

 

 

(15)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(5) A[S, 4]BDSE[a, 9] [a, 8]DF (6)

 

 

 

 

(IV) (13) [ , 1]E [ , 7]E[ , 9] [ , 8] для , N T,

 

 

 

 

 

 

 

 

 

 

 

 

 

Из (IV) применимо (18):

 

 

(6) A[S, 4]BDSE[a, 8] [a, 9] DF (7)

(14) [ , 1] [ , 7] [ , 7] для , N T,

 

(15) D[ , 7]

D для N T,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Из (IV) применимо (17):

 

(16) [ , 9]

[ , 8] [ , 9] [ , 9] для , N T,

 

 

(17)

[ , 8]

[ , 8] для N T {B, D, E},

N T,

(7) A[S, 4]BDS[a, 8] E [a, 9] DF (8)

(18)

[ , 9] [ , 8] [ , 8] [ , 9] для , N T,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Из (IV) применимо (17):

 

(19) [ , 4] [ , 8] [ , 4] для , N T,

 

 

 

 

 

 

(8) A[S, 4]BD[a, 8] SE [a, 9] DF (9)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Из (IV) применимо (17):

 

 

 

 

 

(9) A[S, 4]B[a, 8] DSE [a, 9] DF (10)

 

 

 

 

 

 

 

 

 

 

 

 

Из (IV) применимо (17):

 

 

 

 

 

(10) A[S, 4] [a, 8] BDSE [a, 9] DF (11)

Из (IV) применимо (19):

(11) Aa [S, 4] BDSE [a, 9] DF (12)

118

Пример 7.1.

= Aa [S, 4] BDSE [a, 9] DF (12)

Из (VI) применимо (21):

(12) Aa [S, 4] BDSERaDF (13)

Из (VI) применимо (23):

(13) Aa [S, 4] BDSREaDF (14)

Из (VI) применимо (23):

(14)Aa [S, 4] BDRSEaDF (15)

Из (VI) применимо (23):

(15)Aa [S, 4] BRDSEaDF (16)

Из (VI) применимо (24):

(16) Aa [S, 4] RCDSEaDF (17)

Из (VI) применимо (25): (17) AaCDSEaDF (18)

(VI) (21) [ , 9] D R D для N T,

(22)[ , 9] R R для N T,

(23)R R для N T {D, E},

(24)BR RC,

(25)[ , 4] R λ для N T,

119

Пример 7.1.

= AaCDSEaDF (18)

Из (VII) применимо (26): (18) aACDSEaDF (19)

Из (VII) применимо (27):

(VII)

(26) A A для T,

 

 

 

 

 

 

 

(19) aHSEaDF (20)

 

(27) AC H,

 

(28) H H для N T {D, E},

 

 

 

 

 

 

 

 

Из (VII) применимо (28):

 

(29) HF λ.

(20) aHEaDF (21)

 

 

 

 

 

 

 

 

 

 

 

Из (VII) применимо (28):

 

 

(21) aHaDF (22)

 

 

 

 

 

 

 

 

 

Из (VII) применимо (28):

 

 

(22) aHDF (23)

 

 

 

 

 

 

 

 

Из (VII) применимо (28):

 

 

(23) aHF (24)

 

 

 

 

 

 

 

Из (VII) применимо (29):

 

 

(24) a (25)

 

 

120

Соседние файлы в папке lectures