Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Теория автоматов и формальных языков. Учебник.pdf

§ 5.2. Деревья вывода 231
Доказательство. Индукция по n.
Б а з и с и н д у к ц и и . Еслиn= 0, то
α1α2=β, поэтому можно
взять β1= α1, β2= α2, n1= n2= 0.
Ш а г и н д у к ц и и . Пусть α1α2⇒
n+1
β. Вывод имеет вид
G
α1α2⇒Gγ ⇒
n
β
G
для некоторого словаγ. Пусть на первом шаге вывода применяется
правило
диться либо внутри
A → δ
. Заменяемое вхождение нетерминалаAможет нахо-
α1, либо внутри
α2. Рассмотрим первый случай.
Тогда
0
α1= α
1
Aα
00
, γ = α
1
По индукционному предположению существуют слова
0
n
Но тогда α1⇒
0
и n
1
такие, что
2
0
α
δα
1
0
n
00
1
⇒
1
β1, α2⇒
G
0
n
+1
1
β1, поэтому можно взять n1= n
G
Случай, когдаAсодержится внутри
0
00
δα
α2и α
1
1
0
n
2
β2, β1β2= β и n
G
α2, рассматривается анало-
0
00
δα
1
1
α2⇒
0
+ n
1
n
β.
G
β1и
β2и числа
0
= n.
2
0
+ 1, n2= n
1
0
.
2
гично.
Доказанная лемма допускает обобщение на случай произвольного
количества слов.
Ле мма 115
число,G= (N,Σ
произвольные слова. Если
β1, . . . , βk∈
β1. . . βk= β, αi⇒
(Лемма о выводимости конкатенации).Пусть
, P, S
(Σ
) — КС-грамматика,
α1. . . αk⇒
∪ N
)∗и натуральные числа
n
i
βiдля всех 1 6 i 6 k и n1+ ··· + nk= n.
α1, . . . , αk, β ∈(Σ∪ N
n
β
, то существуют слова
G
n1, . . . , nkтакие, что
k >
1 —
)∗—
Доказательство. Индукция по k (задача 194).
Отметим несколько простых следствий.
Сл едствие 116.
n1, . . . , nk, что αi⇒
Если
α1. . . αk⇒
n
i
ε для всех 1 6 i 6 k и n1+ ··· + nk= n.
G
n
ε
, то существуют такие числа
G

232 Глава 5. Контекстно-свободные грамматики и языки
Сл едствие 117.
wi∈
Σ∗, и пусть
n1, . . . , nkтакие, что
Пустьα=
n
α ⇒
β
. Тогда существуют слова
G
w1γ1w2γ2. . . wkγkw
w1A1w2A2. . . wkAkw
=β,
k+1
Ai⇒
, где
k+1
Ai∈ N
γ1, . . . , γkи числа
n
i
γiдля всех
G
1 6 i 6 k и n1+ ··· + nk= n.
Заметим, что лемма о выводимости конкатенации не выполняется для КЗ-грамматик. Действительно, если грамматика содержит
правила
S → aA, aA → ab,
то
aA ⇒∗ab
, но
A 6⇒∗b
. Это объясняется тем, что заменаAна
возможна только при наличии соседнего символаa, а при разбиении
слова aA необходимый для замены контекст исчезает.
Введём ещё одно обозначение.
Оп ределен ие 86.
N
— нетерминал, то через
(N,Σ
, P, A
), полученная изGзаменой начального нетерминала наA.
ЕслиG= (N,Σ
, P, S
) — КС-грамматика,
GAобозначается КС-грамматика
A ∈
GA=
Одно и то же слово может иметь в КС-грамматике много разных
выводов. Однако не все такие выводы различаются «существенно».
Если, например, грамматика содержит правила
,
b
S → AB, A → a, B → b,
то для слова ab есть два вывода:
S ⇒ AB ⇒ aB ⇒ ab,
S ⇒ AB ⇒ Ab ⇒ ab.
Эти выводы различаются только порядком применения правил. Деревья вывода позволяют представлять такие эквивалентные выводы
в виде одного графа.
Оп ределен ие 87.
ПустьG= (N,Σ
, P, S
) — КС-грамматика. Д е р е в о в ы в о д а в грамматикеG— это размеченное упорядоченное
дерево, определяемое индукцией по высоте следующим образом.

§ 5.2. Деревья вывода 233
Одновременно определим к р о н у дерева вывода (обозначается
yield(T )).
Б а з и с и н д у к ц и и .
1)
ЕслиTсостоит из единственной вершины, помеченной нетерминаломS, тоT— дерево вывода в грамматикеGс кроной
yield(T ) = S (см. рис. 34а).
2)
Пусть
S → ε ∈ P
, и пусть деревоTустроено следующим
образом: у корня есть единственный сын, являющийся листом,
корень дерева помечен начальным нетерминаломS, а его сын —
пустым словомε. ТогдаT— дерево вывода в грамматикеGс
кроной yield(T ) = ε (см. рис. 34а).
Ш а г и н д у к ц и и . Пусть
k >
0. Пусть
нетерминал. Пусть
с меткой
yield(Ti) =
Ti— дерево вывода в грамматике
Ti— дерево, состоящее из единственной вершины
Xi, если
Xi— терминал (в этом случае мы считаем, что
Xi). Пусть деревоTполучается добавлением нового
S → X1X2. . . Xk∈ P
, где
G
X
i
Xi∈Σ∪N
, если
Xi—
корня с меткойS, из которого проведены рёбра в корни деревьев
T1, T2, . . . , Tkименно в таком порядке. ТогдаT— тоже дерево вывода
в грамматикеGс кроной
yield(T
) =
yield(T1)
yield(T2)
. . . yield(Tk)
(см. рис. 34б).
Дерево вывода можно определить и без использования индукции.
Оп ределен ие 88.
(N,Σ
, P, S
) — это размеченное упорядоченное деревоT, в котором:
Д е р е в о в ы в о д а в КС-грамматикеG=
1) вершины помечены элементами множества Σ ∪N ∪{ ε };
2) корень помечен начальным нетерминалом S;
3)
если вершинаuпомечена символомX, а её сыновья — символами
X1, X2, . . . , Xkв порядке слева направо, то в грамматике
есть правило X → X1X2. . . Xk;
,

234 Глава 5. Контекстно-свободные грамматики и языки
S S
ε
(а) Базис индукции
S
X
1
T
1
X
2
T
2
X
k
T
k
. . .
yield(T1)
yield(T2)
(б) Индукционный шаг
yield(Tk)
Рис. 34. Индуктивное определение дерева вывода.

§ 5.2. Деревья вывода 235
4)
если у вершиныvесть сын, помеченныйε, то уvнет других
сыновей.
Докажем эквивалентность двух определений дерева вывода.
Теорема 118. Определения 87 и 88 эквивалентны.
Доказательство. ПустьT— дерево вывода по определению 87.
Очевидно, что условие 2) определения 88 выполняется. Выполнение
остальных условий докажем индукцией по глубине вершины.
Б а з и с и н д у к ц и и . Если глубина равна нулю, то вершина
является корнем. Тогда условия 1), 3) и 4) выполняются по определению.
Ш а г и н д у к ц и и . Если глубина вершиныvотлична от нуля,
то она находится в одном из поддеревьев
дерево вывода, в которомvимеет меньшую глубину. Следовательно,
условия 1), 3) и 4) выполняются по индукционному предположению.
Пусть теперьT— дерево вывода по определению 88. Проведём
индукцию по его высоте h.
Б а з и с и н д у к ц и и . Еслиh= 0, то дерево состоит из единственной вершины с меткойSи является деревом вывода по определению 87.
Ш а г и н д у к ц и и . Пусть
сын, помеченныйε, тоTснова является деревом вывода по определению 87. В противном случае сыновьяTпомечены терминалами
и нетерминалами. Вершины, помеченные нетерминалами, являются
корнями деревьев вывода меньшей высоты, так как все вершины
этих деревьев удовлетворяют всем пунктам определения 88. Значит,
эти поддеревья являются деревьями вывода по определению 87. У
вершин, помеченных терминалами, нет сыновей согласно пункту 3)
определения 87. Но тогда деревоTудовлетворяет всем условиям
индукционного шага из определения 87.
h >
0. Если у корня есть единственный
Ti(см. рис. 34б). Но
Ti—
Оп ределен ие 89.
его листья помечены терминалами или пустым словом.
Дерево вывода называется п о л н ы м, если все

236 Глава 5. Контекстно-свободные грамматики и языки
Пр име р 80.
ми Σ =
правилами:
Она порождает множество арифметических выражений, но, в отличие от
грамматики из примера 77, переменные и константы обозначены терминаламиcиvсоответственно. На рис. 35 изображены два дерева вывода
в грамматикеG. Дерево на рис. 35а имеет кронуT+
на содержит нетерминалы, то это дерево не является полным. Дерево на
рис. 35б является полным и имеет крону (v + c) ∗(v + c).
Пр име р 81.
цветные зелёные мысли яростно спят», которое мы вывели в грамматике
из примера 79 (для удобства вершины взяты в рамку).
Рассмотрим КС-грамматикуG= (N,Σ
{c, v,(,),+, ∗}
На рис. 36 изображено дерево вывода предложения «Бес-
, нетерминаламиN=
E → E + T | T
T → T ∗ F | F
F → c | v | (E)
{E, T , F }
, P, E
и со следующими
F ∗ F
) с терминала-
. Так как кро-
Следующая теорема утверждает, что деревья вывода в грамматике
действительно соответствуют выводам.
Теорема 119.
G
= (N,Σ
, P, S
Слово
α ∈
(Σ
∪ N
)∗выводимо в КС-грамматике
) тогда и только тогда, когда существует дерево вывода
в G с кроной α.
Доказательство. Пусть S ⇒nα. Проведём индукцию по n.
Б а з и с и н д у к ц и и . Еслиn= 0, тоα=S. Если на первом
шаге применяется правило
S → ε
, то вывод имеет вид
S ⇒ εиα=ε
В обоих случаях существуют деревья с кроной α (рис. 34а).
Ш а г и н д у к ц и и . Пусть вывод имеет вид
.
S ⇒ X1X2. . . Xk⇒nα.
По лемме о выводимости конкатенации словоαможно представить
n
в видеα=
α1. . . αk, так что
Xi⇒
По индукционному предположению для каждого нетерминала
существует дерево вывода
Tiс кроной
i
αiи
ni< n
для 1
6 i 6 k
αi. Для каждого терминала
X
.
i

§ 5.2. Деревья вывода 237
E
E
+
T T
(а) Дерево вывода словаT+
T
F
E
(
E
+
)
T T F
F
E
T
T
∗
∗
(
E
F
F ∗ F
F
E
+
.
)
T
T F F
F
c v
c
v
(б) Дерево вывода слова (v + c) ∗(v + c).
Рис. 35. Деревья вывода в грамматике для выражений.

238 Глава 5. Контекстно-свободные грамматики и языки
предл
гр_подл гр_сказ
прил
гр_подл
гр_подл
обст
нар
подл
сущ
опр
прил опр
бесцветные зелёные мысли яростно спят
Рис. 36. Дерево вывода русского предложения.
гр_сказ
сказ
глагол

§ 5.2. Деревья вывода 239
Xiпусть
Ti— дерево, состоящее из одного корня с меткой
Xi. Тогда
искомое дерево выводаTсуществует согласно индукционному шагу
определения (рис. 34б).
Обратно, пустьT— дерево вывода высотыhс кронойα. Проведём
индукцию по h.
Б а з и с и н д у к ц и и . Еслиh= 0, то дереву соответствует вывод
S ⇒0S
. Еслиh= 1 и уSесть единственный сын, помеченныйε, то
дереву соответствует вывод S ⇒ ε.
Ш а г и н д у к ц и и . Пусть дерево имеет высотуh+1 (см. рис. 34б).
Тогдаα=
ционному предположению существует вывод
Xi— терминал, то
yield(T1)
. . . yield(Tk). Если
yield(Ti) =
Xiи
Xi— нетерминал, то по индук-
Xi⇒∗yield(Ti). Если
Xi⇒∗yield(Ti). Значит, можно
построить вывод
S ⇒ X1X2. . . Xk⇒∗yield(X1)X2. . . Xk⇒
∗
yield(X1)yield(X2)X3. . . Xk⇒∗. . .
⇒∗yield(X1) . . . yield(Xk) = α, (5)
а значит, S ⇒∗α.
Доказанная теорема устанавливает только то, что множество крон
деревьев вывода совпадает с множеством выводимых слов, однако
она ничего не говорит о том, как связано строение дерева со строением вывода. Чтобы изучить эту связь, сопоставим каждому выводу
соответствующее ему дерево. Говоря неформально, деревоTсоответствует выводуπ, если символам в выводе сопоставляются вершины
дерева, причём сыновьями внутренних вершин являются символы,
на которые в выводе заменялся нетерминал-метка. Дадим точное
определение.
Оп ределен ие 90.
размеченный вывод в КС-грамматикеG= (N,Σ
Пустьπ= ((
x1, i1,1), . . . ,(x
, i
n−1
n−1
, P, S
). Индукцией
,1), xn) —
поnопределим дерево вывода, с о о т в е т с т в у ю щ е еπ. Также для
каждого вхожденияjкаждого нетерминалаAв слово
xnопределим

240 Глава 5. Контекстно-свободные грамматики и языки
соответствующий этому вхождению лист дерева, тоже помеченный
нетерминалом A.
Б а з и с и н д у к ц и и . Еслиn= 1, то вывод имеет вид (S).
Ему соответствует дерево, состоящее только из корня, помеченного
S
. Единственному вхождениюSв слово
x1соответствует корень
дерева.
Ш а г и н д у к ц и и . Пусть размеченному выводу
ρ = ((x1, i1, 1), . . . , (x
n−1
, i
n−1
, 1), xn)
соответствует дерево T . Пусть
π = ((x1, i1, 1), . . . , (x
Пусть
x
получается из
n+1
xnприменением правила
причём вхождению нетерминалаAв
ет листuдереваT. Тогда дерево
, i
n−1
, 1), (xn, in, 1), x
n−1
n+1
A → X1X2. . . Xk,
xnв позиции
inсоответству-
T0, соответствующее выводуπ,
строится следующим образом.
1)
Еслиk= 0, то есть правило имеет вид
A → ε
, то
T0получается
изTдобавлением нового листаvс меткойε, в который ведёт
ребро из вершиныu(см. рис. 37а). Каждому нетерминалу
соответствует тот же лист, что и в дереве T.
2)
Пусть
новых листьев
k >
0. Тогда дерево
v1, . . . , vkс метками
T0получается изTдобавлением
X1, . . . , Xk, в которые ведут
рёбра из вершиныu(см. рис. 37б). Вхождению нетерминала
Xiв подслово
X1. . . Xkсоответствует лист
vi, вхождениям
остальных нетерминалов соответствуют те же листья, что и в
дереве T .
).
k
Непосредственной индукцией поnпроверяется, что дерево, соответствующее размеченному выводуπ, удовлетворяет всем условиям
из определения 88, а значит, является деревом вывода. Также по
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
