formal_language_theory / lectures / unit_4
.pdfЛевосторонний вывод в КС-грамматике
Таким образом, мы можем выстроить левосторонний вывод
A B1 |
|
|
l1 |
|
|
|
l |
2 |
|
B2 ... Bm x1B2 ... Bm … |
|||||||||
l m 1 |
|
|
|
lm |
|
|
|
lm |
|
|
|
|
|
|
|
|
|
||
|
|
|
l m |
|
|
|
|
|
|
… x x |
|
... B |
|
... x |
|
= x |
|||
|
x x |
|
|||||||
lm |
1 |
2 |
|
m lm |
1 2 |
|
m |
|
|
(l +l +…+l = n)*), воспользовавшись частич- |
|||||||||
1 2 |
m |
|
|
|
|
|
|
|
|
ными левосторонними выводами для тех Bi, которые являются нетерминалами, применяя их в последовательности слева направо.
Что и требовалось доказать.
*) Может быть некоторые li равны 0.
31
Цепные правила в КС-грамматиках
Теорема 4.4 о цепных правилах.
Любой контекстно-свободный язык может быть порождён контекстно-свободной грамматикой, не содержащей цепных правил, т. е. правил вида A B, где A и B — нетерминалы.
Доказательство. Пусть G = (VN, VT, P, S) — cfg и L = L(G).
Мы построим новое множество правил P1, прежде всего включив в него все нецепные правила из P.
Ret 39
32
Цепные правила в КС-грамматиках
Затем мы добавим в P1 правила вида A при условии, что существуют выводы вида
|
|
B, где A и B — нетерминалы, а B — |
A |
* |
|
G |
нецепное правило из P.
Заметим, что мы легко можем проверить, существует ли
вывод вида A
|
|
|
||
* |
|
B, поскольку, если |
||
G |
|
|||
A B1 |
B2 ... Bm B |
|||
|
и некоторый нетерминал появляется дважды в этом выводе, то мы можем найти более короткую последовательность
|
|
|
|
цепных правил, которая даёт результат A |
* |
B. |
|
G |
|||
|
|
Таким образом, достаточно рассматривать только те цепные выводы, длина которых меньше, чем число
нетерминалов в VN.
33
Цепные правила в КС-грамматиках
Мы теперь имеем модифицированную
грамматику G1 = (VN, VT, P1, S).
I. Покажем, что L(G1) L(G).
Пусть x L(G |
* |
|
), т. е. S x. |
||
1 |
G |
1 |
Правила, применяемые в этом выводе, все не цепные:
•либо изначально взятые из P,
•либо новые вида A , Bi , i = 1 , 2 , . . . , m , появившиеся благодаря выводу
|
|
|
|
|
. |
||
A G B1 |
G |
B2 G |
... G |
Bm G |
|
||
Следовательно, |
терминальная цепочка |
||||||
|
|
|
|
|
|
|
|
водимая в G1, выводима и в G: S |
* |
|
x. |
||||
G |
|
x, вы-
34
Цепные правила в КС-грамматиках
II. Покажем теперь, что L(G) L(G1).
Пусть x L(G). Рассмотрим левосторонний
вывод S = 0 |
1 ... n= x. |
|
||
|
G |
G |
G |
|
|
|
|
||
Если i |
i + 1 |
для 0 i < n посредством |
||
G |
|
|
|
|
нецепного правила, то i i+ 1. |
|
|||
|
|
|
G |
|
|
|
|
1 |
|
Предположим, |
что |
i i+ 1 |
посредством |
|
|
|
|
G |
|
цепного правила, но что i– 1 i с помощью |
||||
|
|
|
G |
|
нецепного правила при условии, конечно, что i 0.
35
Цепные правила в КС-грамматиках
Предположим также, что
i+ 1 |
i+ 2 |
... i + m 1 |
|
G |
G |
G |
i+ m при |
все посредством цепных правил, а |
|||
помощи нецепного правила. |
|
||
Тогда все i+ 1, i + 2, |
..., i+ m 1 одинаковой |
длины, и поскольку вывод — левосторонний, то нетерминал, заменяемый в каждой из них, должен быть в одной и той же позиции.
36
Цепные правила в КС-грамматиках
S = |
… |
|
B |
B |
|
|
|
|
||||||
0 |
G |
|
i 1 |
G |
1 |
G |
|
2 |
|
G |
... G |
Bm G |
||
|
… |
|
|
i |
|
i + 1 |
|
|
||||||
G |
i + m |
|
|
|
|
|
|
|
|
|
|
|
i + m |
1 |
|
и одни и те же на цепном участке! |
|||||||||||||
|
|
|
||||||||||||
B1 B2 , B2 |
|
|
|
|||||||||||
B3 , …, Bm 1 Bm, Bm= B; B P |
||||||||||||||
не цепное правило. |
|
|
|
|
|
|
|
|||||||
Следовательно, B1 |
P1 и |
|
|
|
|
|||||||||
|
S = |
|
|
… |
|
|
|
|
… |
|||||
|
|
0 |
G 1 |
|
G 1 |
i |
G 1 |
i + m G 1 |
|
|
||||
Но тогда i i + m посредством одного из правил |
||||||||||||||
из P1 \ P. |
|
G |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Подобные рассуждения |
на всех |
участках лево- |
стороннего вывода с цепными правилами, приводят в заключению, что x L(G1).
Из утверждений I и II следует L(G1) = L(G).
37
§ 4.2. Нормальная форма Хомского
Докажем первую из двух теорем о нормальных формах КС-грамматик. Каждая из них утверждает, что все КС-грамматики эквивалентны грамматикам с ограничениями на вид правил в этих нормальных формах.
Теорема 4.5 — НФХ.
Любой КС-язык может быть порождён грамматикой, в которой все правила имеют вид A BC или A a (A, B, C —
нетерминалы, a — терминал).
38
Нормальная форма Хомского
Доказательство. Пусть G — КС-грамматика и L = L(G). В соответствии с теоремой 4.4 мы можем найти эквивалентную cfg
1 |
|
G1 = ( VN , VT, P1, S), |
|
такую, что множество её правил P1 |
не |
содержит ни одного цепного правила. |
|
Построим промежуточную грамматику |
|
2 |
|
G2 = (VN , VT, P2, S) |
|
следующим образом.
39
Нормальная форма Хомского
Рассмотрим правило из P1 |
вида |
A B1B2 ... Bm, |
|
1 |
|
где Bi VN VT, i = 1, 2,..., m, m 2.
Если в нём есть вхождения терминалов, то заменим их на новые нетерминальные символы, для которых введём новые правила с правой частью, представленной этими терминалами.
Пусть пополненное множество нетерми-
налов — |
V |
2 |
, а пополненное множество |
|
N |
||||
|
правил — P2.
40