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

§ 5.4. Эквивалентность КС-грамматик и МП-автоматов 261
Объединяя эти выводы, получаем
(q0, w, S) = (q0, yx, S) `∗(q0, x, Aγ) `
` (q0, x, βγ) = (q0, x, xα) `∗(q0, ε, α).
В частности, еслиα=ε, то из
S ⇒
∗
w
l
следует (
q0, w, S)`∗(
q0, ε, ε
то есть L(G) ⊆ Le(M).
Теперь индукцией по длине вычисления докажем обратное утверждение: если (q0, w, S) `∗(q0, ε, α), то S ⇒
∗
l
wα.
Б а з и с и н д у к ц и и . Если вычисление имеет длину 0, тоw=ε,
α = S и S ⇒
Ш а г и н д у к ц и и . Пусть (
0
S.
l
q0, w, S)`
n+1
(
q0, ε, α
). Рассмотрим
два случая в зависимости от того, команда какого типа была выполнена последней.
Пусть последний шаг былε-тактом. Тогда вычисление имеет вид
(q0, w, S) `n(q0, ε, Aβ) ` (q0, ε, γβ),
где
A ∈ N,β, γ ∈(Σ∪ N
S ⇒
∗
l
wAβ
нию
, а по построению в грамматике есть правило
)∗,γβ=α. По индукционному предположе-
A → γ
Применяя его, получаем вывод
∗
S ⇒
wAβ ⇒lwγβ,
l
то есть S ⇒
∗
l
wα.
Пусть на последнем шаге автомат прочитал некоторый символa.
Тогда вычисление имеет вид
),
.
(q0, va, S) `n(q0, a, aα) ` (q0, ε, α),
гдеva=w. Тогда (
q0, v, S)`∗(
q0, ε, aα
ложению
∗
S ⇒
vaα,
l
то есть снова S ⇒
∗
l
wα.
Полагаяα=ε, мы получаем, что если (
∗
S ⇒
w, то есть Le(M) ⊆ L(G).
l
). По индукционному предпо-
q0, w, S)`∗(
q0, ε, ε
), то

262 Глава 5. Контекстно-свободные грамматики и языки
Пр име р 86. Построим МП-автомат по КС-грамматике для языка
L1= {aibj: 0 < i 6 j }
с правилами
S → T R
T → aT b | ab
R → bR | ε
Получается следующее множество команд:
q0, ε, S → q0, T R q0, ε, R → q0, bR q0, a, a → q0, ε
q0, ε, T → q0, aT b q0, ε, R → q0, ε q0, b, b → q0, ε
q0, ε, T → q0, ab
Рассмотрим для примера левый вывод слова aabbb:
S ⇒lT R ⇒laT bR ⇒laabbR ⇒laabbbR ⇒laabbb
Ему соответствует следующее вычисление автомата:
(q0, aabbb, S) ` (q0, aabbb, T R) ` (q0, aabbb, aT bR) `
` (q0, abbb, T bR) ` (q0, abbb, abbR) ` (q0, bbb, bbR) ` (q0, bb, bR) `
` (q0, b, R) ` (q0, b, bR) ` (q0, ε, R) ` (q0, ε, ε)
Прежде чем доказывать обратное утверждение, сформулируем
несколько лемм.
Ле мма 129.
Пусть (
q, w, γ)`n(
q0, ε, ε
). Тогда для любых
w0∈
Σ∗,
γ0∈ Γ∗выполняется (q, ww0, γγ0) `n(q0, w0, γ0).
Доказательство. Неформально, утверждение верно, так как
в процессе работы автомат не заглядывал дальшеwи глубжеγ.
Поэтому ни
w0, ни
γ0не могут повлиять на вычисление. Формальное
доказательство проводится индукцией по n.
n
Ле мма 130.
Пусть (
qi, wi, γi)
(q1, w1w2. . . wk, γ1γ2. . . γk) `n(q
i
`
(
q
, ε, ε
i+1
, ε, ε), где n = n1+ n2+ ··· + nk.
k+1
) для 1
6 i 6 k
. Тогда

§ 5.4. Эквивалентность КС-грамматик и МП-автоматов 263
Доказательство. Индукция поkс использованием предыдущей
леммы.
Ле мма 131.
w1, w2, числа
(q, w1, α) `
Пусть (
q, w, αβ)`n(
n1, n2и состояние
n
1
(q00, ε, ε), (q00, w2, β) `
q0, ε, ε
). Тогда существуют слова
q00такие, чтоw=
n
2
(q0, ε, ε).
w1w2,n=
n1+
n2,
Доказательство. При чтении словаwавтомат удаляет из мага-
зина словоαβ. Значит, сначала он читает префикс
магазинаα, а затем дочитывает оставшийся суффикс
w1и удаляет из
w2и удаляет
из магазинаβ. Формальное доказательство проводится индукцией
по n.
Ле мма 132.
слова
w1, . . . , wk, числа
w=w1w2. . . wk,n=
Пусть (
q1, w, γ1. . . γk)
`n(
n1, . . . , nkи состояния
n1+
n2+
···+nkи (
q
, ε, ε
k+1
qi, wi, γi)
). Тогда существуют
q2, . . . , qkтакие, что
n
i
`
(
q
, ε, ε
i+1
) для
1 6 i 6 k.
Доказательство. Индукция поkс использованием предыдущей
леммы.
Формальные доказательства этих лемм оставляем в качестве
упражнений (задача 219).
Теперь докажем, что любой МП-автомат распознаёт КС-язык.
Теорема 133.
По любому МП-автоматуMможно построить КС-
грамматику G такую, что Le(M) = L(G).
Доказательство. ПустьM= (Q,Σ,Γ
Построим эквивалентную ему КС-грамматикуG= (N,Σ
миналами грамматики являются все тройки вида [
, δ, q0, z0, F
) — МП-автомат.
, P, S
). Нетер-
q, z, p
], а также
новый символ S:
N = {S } ∪ {[q, z, p] : q, p ∈ Q, z ∈ Γ }.
Начальным нетерминалом являетсяS. Правила грамматики определяются следующим образом:
1) S → [q0, z0, q] ∈ P для всех состояний q ∈ Q;

264 Глава 5. Контекстно-свободные грамматики и языки
2) если q, a, z → p, ε ∈ δ, то [q, z, p] → a ∈ P ;
3) если q, a, z → p, z1. . . zk∈ δ, то
[q, z, qk] → a[p, z1, q1][q1, z2, q2] . . . [q
, zk, qk] ∈ P
k−1
для всех состояний q1, . . . , qk∈ Q.
Индукцией поnдокажем следующее утверждение: (
(p, ε, ε) тогда и только тогда, когда [q, z, p] ⇒
n
w.
l
Пусть сначала (q, w, z) `n(p, ε, ε).
Б а з и с и н д у к ц и и . Пусть (
есть команда
q, w, z → p, ε
[q, z, p] → w. Поэтому [q, z, p] ⇒
Ш а г и н д у к ц и и . Пусть (
q, w, z)`1(
p, ε, ε
). Тогда в автомате
, а значит, в грамматике есть правило
1
w.
l
q, w, z)`
n+1
(
p, ε, ε
). Пусть на первом
шаге применяется команда q, a, z → q1, z1. . . zk, так что
(q, w, z) ` (q1, w0, z1. . . zk) `n(q
гдеw=
aw0, а через
существуют слова
q
обозначено состояниеp. По лемме 132
k+1
w1, . . . , wk, состояния
q2, . . . , qkи числа
k+1
, ε, ε),
такие, что w0= w1w2. . . wk, n = n1+ n2+ ··· + nkи
n
(qi, wi, zi) `
i
(q
, ε, ε) для 1 6 i 6 k. (8)
i+1
q, w, z)`
n1, . . . , n
n
k
Так как ni6 n для всех i, то по индукционному предположению
n
[qi, zi, q
i+1
i
] ⇒
wiдля 1 6 i 6 k.
l
Кроме того, по построению в грамматике есть правило
[q, z, q
] → a[q1, z1, q2][q2, z2, q3] . . . [qk, zk, q
k+1
k+1
].
Применяя это правило и объединяя выводы (8), получаем
[q, z, q
] ⇒la[q1, z1, q2][q2, z2, q3] . . . [qk, zk, q
k+1
k+1
] ⇒
n
l
aw1. . . wk,

§ 5.4. Эквивалентность КС-грамматик и МП-автоматов 265
то есть [q, z, p] ⇒
n+1
l
w.
Теперь докажем утверждение в обратную сторону. Предположим,
что [q, z, p] ⇒
Б а з и с и н д у к ц и и . Пусть [
есть правило [
n
w.
l
q, z, p]→ w
q, z, p]⇒
1
w
. Тогда в грамматике
l
, а значит, в автомате есть команда
q, w, z →
p, ε. Поэтому (q, w, z) `1(p, ε, ε).
Ш а г и н д у к ц и и . Пусть [
q, z, p]⇒
n+1
w
. Пусть на первом шаге
l
применяется правило
[q, z, q
где через q
гдеw=
k+1
[q, z, q
k+1
aw0. По лемме о выводимости конкатенации слово
представить в виде
] → a[q1, z1, q2][q2, z2, q3] . . . [qk, zk, q
k+1
k+1
],
обозначено состояние p. Тогда вывод имеет вид
] ⇒la[q1, z1, q2][q2, z2, q3] . . . [qk, zk, q
k+1
] ⇒
n
l
aw0,
w0можно
w0=
w1. . . wkтак, что для некоторых
n1, . . . , n
таких, что n1+ ··· + nk= n, существуют выводы
n
[qi, zi, q
i+1
i
] ⇒
wiдля 1 6 i 6 k.
l
k
Так как ni6 n для всех i, то по индукционному предположению
n
(qi, wi, zi) `
i
(q
, ε, ε) для 1 6 i 6 k.
i+1
По лемме 130 получаем
(q1, w1. . . wk, z1. . . zk) `n(q
По построению в автомате есть команда
, ε, ε). (9)
k+1
q, a, z → q1, z1. . . zk. Добав-
ляя применение этой команды в начало вычисления (9), получаем
(q, aw1. . . wk, z) ` (q1, w1. . . wk, z1. . . zk) `n(q
то есть (q, w, z) `
n+1
(p, ε, ε).
k+1
, ε, ε),
Теперь докажем, что автомат M и грамматика G эквивалентны.

266 Глава 5. Контекстно-свободные грамматики и языки
Если
w ∈ Le(M), то (
нияq. По доказанному утверждению [
грамматика содержит правило
q0, w, z0)
`∗(
q, ε, ε
) для некоторого состоя-
q0, z0, q]⇒
S →[q0, z0, q
∗
w
. По построению
l
], поэтому
S ⇒
∗
w
l
w ∈ L(G).
q, ε, ε
∗
l
S →
) и
Если
w ∈ L(G
), то вывод словаwимеет вид
S ⇒l[
q0, z0, q]⇒
для некоторого состоянияq, так как все правила дляSимеют вид
[
q0, z0, q
]. Тогда по доказанному утверждению (
q0, w, z0)
`∗(
w ∈ Le(M).
Пр име р 87. Построим КС-грамматику по МП-автомату для языка
L2= {aibj: i > j > 0 }
с программой
и
w
q0, a, z0→ q0, az
q0, a, a → q0, aa q1, ε, a → q2, ε q2, ε, z0→ qf, ε
q0, b, a → q1, ε
Рассмотрим команду
вой части непусто, то в грамматику добавляются правила вида [
a[q0, a, p][p, z0, q
16). Рассмотрим теперь команду
удаляет символ из магазина, то добавляется одно правило [
Применяя эту процедуру ко всем командам автомата, мы получаем приведённое ниже множество правил. Вместоpиqнужно подставить все
состояния из множества {q0, q1, q2, qf}:
Грамматика содержит 4 + 16 + 16 + 5 = 41 правило, однако можно
заметить, что многие нетерминалы не могут встречаться в выводах терминальных слов. Так, например, нетерминал [
автомата из состояния
миналы, мы получим следующие десять правил:
] для
[q0, z0, q] → a[q0, a, p][p, z0, q] [q1, a, q2] → ε
[q0, a, q] → a[q0, a, p][p, a, q] [q2, a, q2] → ε
[q0, a, q1] → b [q2, z0, qf] → ε
q0, a, z0→ q0, az0. Так как магазинное слово в пра-
p, q ∈ {q0, q1, q2, qf}
S → [q0, z0, q] [q1, a, q1] → b
qfв
q1, b, a → q1, ε q2, ε, a → q2, ε
0
q0, z0, q]→
(число таких правил равно 42=
q0, b, a → q1, ε
q1, что невозможно. Удаляя бесполезные нетер-
. Поскольку эта команда
q0, a, q1]
qf, z0, q1] соответствует переходу
→ b
.

§ 5.4. Эквивалентность КС-грамматик и МП-автоматов 267
S → [q0, z0, qf] [q0, a, q1] → b
[q0, z0, qf] → a[q0, a, q2][q2, z0, qf] [q1, a, q1] → b
[q0, a, q1] → a[q0, a, q1][q1, a, q1] [q1, a, q2] → ε
[q0, a, q2] → a[q0, a, q1][q1, a, q2] [q2, a, q2] → ε
[q0, a, q2] → a[q0, a, q2][q2, a, q2] [q2, z0, qf] → ε
Рассмотрим, например, словоw=
aaabb
. Допускающее вычисление
на w имеет вид
(q0, aaabb, z0) ` (q0, aabb, az0) ` (q0, abb, aaz0) ` (q0, bb, aaaz0) `
` (q1, b, aaz0) ` (q1, ε, az0) ` (q2, ε, z0) ` (qf, ε, ε)
Этому вычислению соответствует следующий вывод в КС-грамматике:
S ⇒
l
⇒l[q0, z0, qf] ⇒
⇒la[q0, a, q2][q2, z0, qf] ⇒
⇒laa[q0, a, q1][q1, a, q2][q2, z0, qf] ⇒
⇒laaa[q0, a, q1][q1, a, q1][q1, a, q2][q2, z0, qf] ⇒
⇒laaab[q1, a, q1][q1, a, q2][q2, z0, qf] ⇒
⇒laaabb[q1, a, q2][q2, z0, qf] ⇒
⇒laaabb[q2, z0, qf] ⇒
l
l
l
l
l
l
l
⇒laaabb
Сформулируем несколько следствий из теорем 128 и 133.
Сл едствие 134.
Класс КС-языков совпадает с классом языком,
распознаваемых МП-автоматами.
M
Сл едствие 135.
Для любого КС-языкаLсуществует МП-автомат
M такой, что Le(M) = L и M содержит одно состояние.
Сл едствие 136.
Для любого КС-языкаLсуществует МП-автомат
M такой, что Lf(M) = L и M содержит два состояния.
Доказательство. К автомату из предыдущего следствия нужно
применить лемму 127.

268 Глава 5. Контекстно-свободные грамматики и языки
В параграфе 5.2 мы ввели понятие однозначной КС-грамматики.
Аналогичное понятие можно ввести и для МП-автоматов.
Оп ределен ие 96.
МП-автоматMназывается о д н о з н а ч н ы м,
если для любого распознаваемого им словаwсуществует единственное допускающее вычисление.
Строго говоря, в этом определении необходимо указать, о каком
из определений распознаваемого языка идёт речь. Мы всегда будем
отмечать это отдельно.
Ле мма 137. Следующие классы языков совпадают:
1)
распознаваемые однозначными МП-автоматами через заключительные состояния;
2)
распознаваемые однозначными МП-автоматами через опустошение магазина;
3)
распознаваемые однозначными МП-автоматами в обоих смыслах.
Доказательство. В доказательстве лемм 124 и 125 мы проверили,
что вычислению автоматаMсоответствует единственное вычисление
автомата M0. Отсюда следует справедливость леммы.
Мы докажем, что однозначные МП-автоматы распознают в точности однозначные КС-языки. Фактически, мы проверим, что конструкции из теорем 128 и 133 преобразуют однозначную грамматику
в однозначный автомат и обратно.
Теорема 138.
По любой однозначной КС-грамматике можно по-
строить эквивалентный ей однозначный МП-автомат.
Доказательство. Построим по грамматикеG= (N,Σ
томатM= (
доказательстве теоремы 128: если
и
q0, a, a → q0, ε
Мы уже доказывали, что из (
{q0},Σ,Σ∪N, δ, q0, S, ∅
для любого
a ∈
Σ. Будем рассматривать язык
q0, w, S)`∗(
) так же, как это было сделано в
A → α ∈ P
, то
q0, ε, α
q0, ε, A → q0, α ∈ δ
) следует
, P, S
Le(M).
S ⇒
) ав-
∗
wα
l
,
.

§ 5.4. Эквивалентность КС-грамматик и МП-автоматов 269
Индукцией по длине вычисления проверяется следующее свойство:
если (q0, w, γ) `∗(q0, ε, ε), то γ ⇒
∗
w.
l
Предположим, что автоматMнеоднозначный. Тогда для некоторого словаwсуществуют два различных допускающих вычисления
c0` c1` ·· · ` cnи
0
c
= (
k
q0, w
0
0
, γ
). Так как в последних конфигурациях магазины пу-
k
k
c
0
` c
0
` ·· · ` c
1
0
. Пусть
m
ck= (
q0, wk, γk),
0
сты, то ни одно из вычислений не может быть собственным префиксом
другого. Предположим, что вычисления впервые различаются вi-й
конфигурации: cj= c
0
при j < i, ci6= c
j
0
. Они имеют вид
i
(q0, w0, γ0) `∗(q0, w
(q0, w0, γ0) `∗(q0, w
где
w0=w,
γ0=S,
терминальный символ не может находиться на вершине магазина
i−1
i−1
wn=
, γ
) ` (q0, wi, γi) `∗(q0, wn, γn),
i−1
0
, γ
i−1
w
) ` (q0, w
0
=ε,
m
i
γn=
0
, γ
) `∗(q0, w
i
0
γ
m
=ε. Заметим, что
0
0
, γ
),
m
m
γ
i−1
Действительно, в таком случае автомат мог бы сделать только один
шаг — прочитать этот символ, поэтому вычисления бы не различались
вi-й конфигурации. Поэтому в обоих вычислениях автомат делает
ε-такт. Итак,
w = vw
γ
= Aγ, γi= αγ, γ
i−1
i−1
= vwi= vw
0
,
i
0
= α0γ,
i
для некоторых v ∈ Σ∗, γ ∈ (Σ ∪N )∗, A ∈ N , причём α 6= α0. Тогда
(q0, v, S) `∗(q0, ε, γ
i−1
),
(q0, ε, A) ` (q0, ε, α),
(q0, ε, A) ` (q0, ε, α0),
откуда
∗
S ⇒
vγ
, A ⇒lα, A ⇒lα0. (10)
i−1
l
0
Из (q0, wi, γi) `∗(q0, ε, ε) и (q0, w
∗
γi⇒
l
0
, γ
) `∗(q0, ε, ε) следует
i
i
0
wi, γ
∗
⇒
w
i
i
l
0
. (11)
.

270 Глава 5. Контекстно-свободные грамматики и языки
Но w
= wi= w
i−1
0
. Объединяя выводы (10) и (11), мы получаем
i
S ⇒
S ⇒
∗
vγ
⇒lvαγ = vγi⇒
i−1
l
∗
vγ
⇒lvα0γ = vγ
i−1
l
0
⇒
i
∗
vwi= w,
l
∗
0
vw
i
l
= w.
Итак, мы построили два левых вывода для словаw. Эти выводы
различаются наi-м шаге, так как
γi6=γ
0
. Это противоречит однознач-
i
ности грамматики G. Следовательно, автомат M однозначный.
В следующей лемме описана структура различающихся левых
выводов.
Ле мма 139.
Пусть в КС-грамматикеG= (N,Σ
, P, S
) существуют
два разных левых вывода:
A ⇒lw1α1⇒lw2α2⇒l. . . ⇒lw
0
где
либо
wi, w
wi6=w
A ⇒lw
0
, w ∈
i
Σ∗,
0
, либо
i
0
α
1
1
A ∈ N,αi, α
αiи
⇒lw
α
0
α
2
0
i
частности, одно из слов αi, α
n−1αn−1
0
⇒l. . . ⇒lw
2
0
∈ N∗. Тогда существует такоеi, что
i
0
m−1
начинаются на разные нетерминалы (в
0
может быть пустым).
i
α
0
m−1
⇒lw,
⇒lw,
Доказательство. Если выводы имеют разную длину, например,
m < n
, то
αmне содержит нетерминалов, а
0
α
содержит, поэтому
m
утверждение выполняется. Пусть выводы имеют одинаковую длину.
Проведём индукцию по длине вывода.
Б а з и с и н д у к ц и и . Если длина обоих выводов равна 1, то
они имеют вид
случай невозможен. Если выводы имеют вид
и
A ⇒lu0B0⇒lu0v0=w, то обязательно
A ⇒lw
, а значит, совпадают. Следовательно, такой
A ⇒luB ⇒luv=w
uB 6=u0B0, поэтому либо
u 6= u0, либо B 6= B0.
Ш а г и н д у к ц и и . Если
wi6=w
ждение выполняется. Предположим, что
0
для некоторогоi, то утвер-
i
wi=
0
w
для всехi. Так как
i
выводы различны и имеют одинаковую длину, то существует такоеi,
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
