Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория автоматов и формальных языков. Учебник.pdf
Скачиваний:
1
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
§ 5.4. Эквивалентность КС-грамматик и МП-автоматов 271
что αi6= α
Пусть
0
. Выберем наименьшее из таких i:
i
A ⇒lw1α1⇒
A ⇒lw1α1⇒
αi=
B1. . . Bkβ,α
∗
w
l
∗
w
l
i−1αi−1
i−1αi−1
0
=
i
⇒lwiαi⇒
⇒lwiα
B1. . . Bkβ0, так чтоβи
∗
w
n−1αn−1
l
0
∗
⇒
w
i
m−1
l
α
0 m−1
⇒lw,
⇒lw.
β0не начинаются
на один и тот же нетерминал. По лемме о выводимости конкатенации слово w можно представить в виде
0
w = wiv1. . . vku, w = wiv
. . . v
1
0
u0,
k
так что
∗
Bt⇒
vt, β ⇒
l
Предположим, что для некоторогоtлевые выводы
∗
Bt⇒
0
v
различны, а левые выводы из
t
l
после выводов из префиксы, а в процессе вывода из
∗
u, Bt⇒
l
B1, . . . , B
∗
0
v
t
l
, β0⇒
∗
u0(1 6 t 6 k).
l
Bt⇒
B1, . . . , B
получатся одинаковые терминальные
t−1
одинаковы. Тогда
t−1
Btна некотором шаге на первом
∗
l
vtи
месте окажутся разные нетерминалы либо по индукционному пред­положению, либо из-за того, что выводы имеют разную длину. Если же все левые выводы выводов из
B1, . . . , Bkнетерминальные суффиксы будут равныβи
Bt⇒
∗
l
vtи
Bt⇒
∗
0
v
одинаковы, то после всех
t
l
β0. А эти слова не начинаются на один и тот же нетерминал.
Теперь мы докажем обратный результат.
Теорема 140.
По любому однозначному МП-автомату можно по-
строить эквивалентную однозначную КС-грамматику.
Доказательство. По МП-автоматуM= (Q,Σ,Γ строим КС-грамматикуG= (N,Σ
, P, S
) как в доказательстве теоре-
, δ, q0, z0, F
мы 133. Напомним, что N = {S } ∪ {[q, z, p]: q, p ∈ Q, z ∈ Γ } и
1) S → [q0, z0, q] ∈ P для всех q ∈ Q;
2) [q, z, p] → a ∈ P , если q, a, z → p, ε ∈ δ;
) по-
272 Глава 5. Контекстно-свободные грамматики и языки
3)[q, z, q
]
→ a[p, z1, q1][
k+1
q1, z2, q2]
. . .[q
k−1
, zk, qk]
∈ P
для всех
q1, q2, . . . , qk∈ Q, если q, a, z → p, z1z2. . . zk∈ δ.
Мы уже доказывали, что из [
(
p, ε, ε
). Индукцией по длине вывода легко доказывается следующее
свойство: если
[
q1, z1, q2][
q2, z2, q3]
S ⇒l[
. . .[q
q0, z0, q]⇒
, zk, qk] для некоторого
k−1
q, z, p]⇒nw
∗
wα
, где
l
следует (
q, w, z)`
α ∈ N∗, тоαимеет вид
k >
0 и при этом
(q0, w, z0) `∗(q1, ε, z1z2. . . zk).
Предположим, что грамматика неоднозначна. Пусть для слова
существуют два разных левых вывода
S ⇒lw0α0⇒lw1α1⇒l. . . ⇒lwnαn,
0
где
wi, w
ε, w0= w
Из [
(
q, ε, ε
), (
S ⇒lw
0
∈
Σ∗,
i
0
0
αi, α
= ε, wn= w
q0, z0, q]⇒
q0, w, z0)
0
i
n
w
l
`m(
0
α
0
0
∈ N∗,
0
= w.
m
, [
q0, z0, q0]
q0, ε, ε
⇒lw
α0= [
). Если
0
0
α
⇒l. . . ⇒lw
1
1
q0, z0, q],α
m
⇒
l
m 6=n
0
0
α
,
m
m
0
= [
q0, z0, q0],
0
w
следует, что (
αn=
q0, w, z0)
, то эти два вычисления
0
α
m
`
также различны, что противоречит однозначности автомата. Следо­вательно,m=nи на некотором шаге в выводах должны встретиться разные слова. По лемме 139 существует такоеi, что либо либо
αiи
0
α
начинаются на разные нетерминалы. Рассмотрим два
i
wi6=w
случая.
Сначала предположим, что для
wi6=w
0
для некоторогоi. Выберем
i
наименьшее из таких i, так что
w
=
n
n
0
,
i
Пусть
S ⇒lw0α0⇒
S ⇒lw0α
α
= [q1, z1, q2][q2, z2, q3] . . . [qk, zk, q
i−1
0
α
= [q
i−1
i−1
w
i−1αi−1
l i−1
0
⇒
0
l
0
0
0
, z
, q
1
][q
1
2
0
w
α
i−1
i−1
0
0
0
, z
, q
2
2
3
⇒lwiαi⇒
0
⇒lw
α
i
0
] . . . [q
, z
k
∗
w,
l
0
∗
⇒
w.
i
l
],
k+1
0
0
, q
k+1
].
k
§ 5.4. Эквивалентность КС-грамматик и МП-автоматов 273
Из S ⇒∗w
Так как
wi6=w
i−1αi−1
и S ⇒∗w
(q0, w
i−1
(q0, w
i−1
0
, то в одном выводе применялось правило, порожда-
i
0
α
i−1
следует
i−1
, z0) `∗(q1, ε, z1z2. . . zk),
0
0
0
, z0) `∗(q
, ε, z
1
z
1
2
. . . z
0
k
).
(12)
ющее терминал, а в другом — правило, порождающее только нетер­миналы (возможно,ε-правило). Случай, когда правила порождают различные терминалы, невозможен, так как тогда изSвыводились бы два разных слова. Пусть, например, в первом выводе применялось
0
0
правило [q1, z1, q2] → a, а во втором — правило [q
S ⇒lw0α0⇒
S ⇒lw0α0⇒
∗
l
∗
l
w
i−1[q1
w
i−1
, z1, q2][q2, z2, q3] . . . [qk, zk, q
⇒lw
0
0
[q
0
, z
, q
1
1
2
⇒
a[q2, z2, q3] . . . [qk, zk, q
i−1
0
0
][q
w
l
0
, z
, q
i−1
2
3
[q
] . . . [q
0
, z
2
2
0
, q
2
0
, z
k
0
] . . . [q
3
0
k
, q
1
, z
k+1
0
k+1
0
, z
k
1
, q
] ⇒
] ⇒
0
, q
k
0
] → ε:
2
l
k+1
l
0
k+1
] ⇒
] ⇒
∗
w,
l
∗
w.
l
По лемме о выводимости конкатенацииwможно представить в виде
0
w = w
i−1av2
. . . vkи w = w
[qj, zj, q
j+1
i−1
] ⇒
v
∗
l
. . . v
2
vj, [q
0
так, что
k
0
0
, z
j
j
, q
0
j+1
] ⇒
∗
0
v
,
j
l
поэтому
0
0
(qj, vj, zj) `∗(q
, ε, ε), (q
j+1
Так как в грамматике есть правила [
(q1, a, z1) ` (q2, ε, ε), (q
q1, z1, q2]
, v
j
0
, ε, z
1
, z
j
0
) `∗(q
j
→ a
0
) ` (q
1
0
2
Объединяя вычисления (12), (13) и (14), получаем
(q0, w
i−1av2
. . . vk, z0) `∗(q1, av2. . . vk, z1z2. . . zk) `
` (q2, v2. . . vk, z2. . . zk) `∗(q
0
(q0, w
i−1
2
. . . v
0
, z0) `∗(q
k
v
0
0
0
0
0
, v
. . . v
, z
1
2
` (q
z
1
k
0
0
, v
. . . v
2
2
2
. . . z
0
, z
k
0
k
0
2
) `
. . . z
0
, ε, ε). (13)
j+1
0
0
, z
0
, q
]
→ ε
1
2
, то
и [
q
1
, ε, ε). (14)
, ε, ε),
k+1
0
) `∗(q
k
0
k+1
, ε, ε).
274 Глава 5. Контекстно-свободные грамматики и языки
Эти вычисления различны, так как наi-м шаге в состояниях
0
q
применяются разные команды. Это противоречит однозначности
1
q1и
автомата. Оставшиеся случаи, когда одно или оба правила порождают также нетерминалы рассматриваются аналогично. Во всех случаях вычисления различаются, так как в одном из них автомат делает ε-такт, а в другом — считывает символ.
Теперь предположим, что
ют слова
αiи
0
α
, начинающиеся на разные нетерминалы. Выберем
i
wi=
0
w
для всехi. Тогда существу-
i
наименьшее из таких i, тогда
αi= [q1, z1, q2][q2, z2, q3] . . . [qk, zk, q
0
0
0
0
0
0
][q
, z
, q
2
2
]. Как и ранее, применим лемму о выво-
причём [
α
= [q
i
q1, z1, q2]6= [
, z
, q
1
1
2
0
0
q
0
, z
, q
1
1
2
димости конкатенации, получаемw=
0
3
] . . . [q
0
0
, z
r
r
wiv1. . . vk,w=
, q
k+1
0
r+1
],
],
0
1
. . . v
0
, так
r
wiv
что
[qj, zj, q
j+1
] ⇒
∗
vj, [q
l
0
0
0
, z
, q
j
j
j+1
] ⇒
∗
0
v
,
j
l
следовательно,
0
0
(qj, vj, zj) `∗(q
, ε, ε), (q
j+1
0
, v
, z
j
) `∗(q
j
j
0
j+1
, ε, ε).
Объединяя вычисления, получаем
(q0, wiv1v2. . . vk, z0) `∗(q1, v1v2. . . vk, z1z2. . . zk) `
`∗(q2, v2. . . vk, z2. . . zk) `∗(q
0
0
(q0, wiv
Так как
[
q1, z1, q2] и [
v
1
2
wj=
сы. Так как [ либо
z16=z
0
1
0
. . . v
, z0) `∗(q
r
0
w
для всехj, то
j
0
0
q
0
, z
, q
1
] получились бы разные терминальные префик-
1
2
q1, z1, q2]6= [
. Следовательно, участки вычислений на слове
0
0
0
0
0
, v
v
1
2
`∗(q
. . . v
0
2
, v
1
v1=
0
0
q
0
, z
, q
1
], то либо
1
2
0
, z
z
r
. . . z
1
2
0
0
. . . v
2
, z
r
0
v
, иначе после выводов из
1
0
∗
) `
r
0
. . . z
2
q16=q
∗
0
) `∗(q
r
0
, либо
1
k+1
0
r+1
, ε, ε),
, ε, ε).
q26=q
v1=
0
,
2
0
v
,
1
§ 5.4. Эквивалентность КС-грамматик и МП-автоматов 275
начинающиеся в состояниях
q1и
0
q
, различны, что противоречит
1
однозначности автомата.
Итак, во всех случаях мы получили противоречие. Значит, пред-
положение неверно и грамматика G однозначна.
Из теорем 128 и 133 получаются следствия, аналогичные след-
ствиям 134, 135 и 136.
Сл едствие 141.
Класс однозначных КС-языков совпадает с клас-
сом языком, распознаваемых однозначными МП-автоматами.
Сл едствие 142.
однозначный МП-автомат
Для любого однозначного КС-языкаLсуществует
M
такой, что
Le(M) =LиMсодержит
одно состояние.
Сл едствие 143.
однозначный МП-автомат
Для любого однозначного КС-языкаLсуществует
M
такой, что
Lf(M) =LиMсодержит
два состояния.
Однозначные МП-автоматы позволяют легко доказать, что все
регулярные языки однозначны.
Сл едствие 144.
Любой регулярный язык является однозначным
КС-языком.
Доказательство. Если в ДКА каждую команду
q, a → p
на команду
M
= (Q,Σ
, δ, q0, F
) заменить
q, a, z0→ p, z0, то получится
однозначный МП-автомат N такой, что Lf(N) = L(M ).
Задачи
217. Постройте МП-автомат по КС-грамматике со следующими правилами:
S → AbbS | AA | bb
A → B | SAB | ε | b
B → BB | aB | aaa
218. Постройте КС-грамматику по МП-автомату со следующей программой:
q0, ε, z0→ q1, az q1, ε, a → q1, aa q2, a, a → q2, ε q1, b, a → q1, aa q2, a, z0→ q2, ε
q1, a, a → q2, ε
0
276 Глава 5. Контекстно-свободные грамматики и языки
219. Докажите леммы 129, 130, 131 и 132.
220.
ПустьM— МП-автомат, построенный по КС-грамматикеGс помощью
конструкции из теоремы 128. Докажите, что если (
221.
ПустьG— КС-грамматика, построенная по МП-автоматуMс помощью
конструкции из теоремы 133. Докажите, что если
w ∈
Σ∗,
α ∈ N∗, тоαимеет вид [
q1, z1, q2][
q2, z2, q3]
q0, w, γ)`∗(
S ⇒l[
q0, z0, q]⇒
. . .[q
, zk, qk] для некоторого
k−1
q0, ε, ε
k > 0 и при этом (q0, w, z0) `∗(q1, ε, z1z2. . . zk).
222.
Постройте однозначные МП-автоматы для языка Дика
языка Дика D
0
.
n
Dnи ограниченного
223. Решите задачи 212, 213 и 214 для однозначных МП-автоматов.
), то
∗
γ ⇒
l
∗
wα
, где
l
w
.
Нормальные формы КС-грамматик 277
Глава 6

Нормальные формы КС-грамматик

§ 6.1. Бинарные грамматики
В этой главе мы опишем некоторые способы упрощения КС­грамматик и приведения грамматик к различным нормальным фор­мам. Использование грамматик специального вида позволяет упро­стить некоторые доказательства и алгоритмы анализа КС-языков. Например, приведённые КС-грамматики нужны для доказательства леммы о разрастании, а нормальная форма Хомского используется в алгоритме Кока-Янгера-Касами.
Сначала мы опишем одно полезное преобразование, позволяющее подставлять одни правила грамматики в другие.
Теорема 145
ПустьG= (N,Σ пусть
(N, Σ, P1, S), где
B → γ1| γ2| ··· | γk— всеB-правила изP. Пусть
P1= (P \ { A → αBβ }) ∪{A → αγiβ : 1 6 i 6 k }.
(Теорема о замене нетерминала на все следствия)
, P, S
) — КС-грамматика. Пусть
A → αBβ ∈ P
G1=
, и
.
278 Глава 6. Нормальные формы КС-грамматик
Тогда грамматики G и G1эквивалентны.
Доказательство. Рассмотрим КС-грамматику
G2= (N, Σ, P ∪P1, S),
содержащую все правила грамматикGи будем называть старым, а правила
A → αγiβ
G1. Правило
— новыми (новые
A → αBβ
правила могли содержаться и в исходной грамматике G). Очевидно, чтоL(G)
L(G
) =L(
⊆ L(G2) иL(
G1)
⊆ L(G2). Чтобы доказать равенство
G1), достаточно проверить включенияL(
G2)
⊆ L(G
) и
L(G2) ⊆ L(G1).
Докажем сначала, чтоL( рим вывод
α0⇒
G
2
α1⇒
G
G2)
. . . ⇒
2
⊆ L(G
G
2
). Пусть
αn,
α0=S,
w ∈ L(G2). Рассмот-
αn=w. Нужно
перестроить его в вывод в грамматикеG. Проведём индукцию по числу новых правил в выводе.
Б а з и с и н д у к ц и и . Если новых правил нет, то это уже вывод
в грамматике G.
Ш а г и н д у к ц и и . Пусть новое правило применяется на шаге
αi⇒
Заменим шаг αi⇒
α
. Тогда
i+1
G
2
αi= ξAη, α
α
на два шага
i+1
G
2
= ξαγiβη.
i+1
ξAη ⇒GξαBβη ⇒Gξαγiβη.
В получившемся выводе используется на одно новое правило мень­ше. Следовательно, по индукционному предположению его можно перестроить в вывод в грамматике G.
Теперь докажем включениеL( тогда существует дерево выводаTв это дерево в дерево вывода
T0в грамматике
G2)
⊆ L(G1). Пусть
w ∈ L(G2),
G2с кронойw. Перестроим
G1индукцией по числу
старых правил.
§ 6.1. Бинарные грамматики 279
A
α
(а) Исходное дерево T
β
B
γ
i
(б) Новое дерево T
A
αγiβ
0
Рис. 42. Замена нетерминала на следствия
Б а з и с и н д у к ц и и . Если старых правил нет, тоT— уже дерево
вывода в G1.
Ш а г и н д у к ц и и . Предположим, что в дереве применяется
старое правило
A → αBβ
. Так как крона дерева — терминальное слово, тоBне может быть меткой листа. Следовательно, у вершины с меткойBесть сыновья, помеченные некоторым словом
γi(рис. 42а).
Удалим сына с меткойBи сделаем его сыновей сыновьями вершины с меткойA(рис. 42б). Полученное дерево
T0имеет ту же самую
кронуwи содержит на одно старое правило меньше. По индукци­онному предположению его можно перестроить в дерево вывода в грамматике G1.
В качестве примера применения этой теоремы докажем теорему о
бинарных грамматиках.
Оп ределен ие 97.
б и н а р н о й , если для любого правила
КС-грамматикаG= (N,Σ
A → α ∈ P
, P, S
) называется
выполняется
неравенство |α| 6 2.
Теорема 146.
По любой КС-грамматикеGможно построить экви-
валентную бинарную грамматику G1такую, что |G1| = O(|G|).
Доказательство. Назовём правило
A → α
длинным, если
|α| >
2.
280 Глава 6. Нормальные формы КС-грамматик
Обозначим черезK(G) сумму длин правых частей всех длинных правил. Докажем теорему индукцией по K(G).
Б а з и с и н д у к ц и и . ЕслиK(G) = 0, то длинных правил нет,
следовательно, G — бинарная грамматика.
Ш а г и н д у к ц и и . ПустьK(G)>0, и пусть
A → X1X2. . . Xn—
какое-нибудь длинное правило изP. Добавим новый нетерминал
[
X2. . . Xn] и заменим правило
A → X1[
шуюся грамматику
X2. . . Xn] и [
G0. Если мы применим к двум новым правилам
X2. . . Xn]
A → X1X2. . . Xnна два правила
→ X2. . . Xn. Обозначим получив-
теорему о замене нетерминала на следствия, то мы получим исходную грамматикуGс дополнительным правилом [ Но так как теперь [
X2. . . Xn] не встречается в правых частях правил,
X2. . . Xn]
→ X2. . . Xn.
то это правило можно опустить. В результате получится граммати­каG. Следовательно,L(G) =L( индукционному предположению для
G0). Так какK(
G0)
< K(G
), то по
G0можно построить эквивалент-
ную бинарную грамматику G1.
Теперь оценим размер грамматики
G1. На каждом шаге сумма
длин правых частей всех правил (не только длинных) увеличивается на единицу. Число шагов не превосходит общего числа символов в пра­вых частях, следовательно, сумма длин правых частей увеличивается не более чем в два раза. Поэтому |G1| = O(|G|).
Пр име р 88.
бинарную:
Преобразуем следующую КС-грамматику в эквивалентную
S → ABAB | a B → ε | C | BSA A → Sab | bS C → bAB | SS
Применяя процедуру из теоремы, получаем множество правил
S → A[BAB] | a [BAB] → B[AB] A → S[ab] | bS [AB] → AB B → ε | C | B[SA] [ab] → ab C → b[AB] | SS [SA] → SA
Подчеркнём, что выражения [
ми символами, а не словами большой длины. Обозначения вида [
BAB
], [AB], [ab] и [SA] являются цельны-
X2. . . Xn]
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]