Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория автоматов и формальных языков. Учебник.pdf
Скачиваний:
1
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
§ 7.2. Лемма Огдена 331
то их содержитv, то есть вид
zm=
k+(m−1)pbk+k!+(m−1)qck+2k!
a
ло 2k!/p+ 1. Так как
zm= a
a чаем zm= a
k+2k!bk+k!+2k!p/qck+2k!
Пустьx=
k+(m−1)pbk+k!ck+(m−1)q
cq. Как и в предыдущем случае
k+k!bk+k!ck+k!q/p
p 6
= 0. В этом случае слово
zmимеет
. Выберем в качествеmчис-
p 6 k
, то
m
— целое число. Получается
/∈ L. Снова получилось противоречие.
p >
0. Теперь
zm=
. Выбирая в качествеmчислоk!/p+ 1, полу-
/∈ L.
Итак, во всех случаях получилось противоречие. Значит, предпо-
ложение неверно и язык L не является контекстно-свободным.
Мы видим, что с помощью леммы Огдена удалось доказать, что языкLне контекстно-свободен, так как мы смогли гарантировать, что одно из повторяющихся подслов попадает в блок наименьшей длины.
Как и лемма о разрастании, лемма Огдена не является достаточ­ным условием для того, чтобы язык был контекстно-свободным. В задаче 267 приведён пример языка, который не является контекстно­свободным, но для которого выполняется заключение леммы Огдена.
Лемма Огдена может быть использована для доказательства неод-
нозначности КС-языков. Напомним, что КС-грамматикаGназыва­ется неоднозначной, если некоторое слово имеет в ней более одного дерева вывода, а КС-языкLназывается неоднозначным, если любая порождающая его КС-грамматика неоднозначна. Приведём пример неоднозначного КС-языка.
Теорема 173. Следующий язык L неоднозначен:
L = { aibjck: i, j, k > 0, i = j или j = k }.
Доказательство. Непосредственно проверяется, что язык
L
контекстно-свободен. Для доказательства неоднозначности восполь­зуемся леммой Огдена. Пустьk— константа из леммы Огдена дляL. Можно считать, что k > 2.
Рассмотрим словоz= символыaи рассмотрим разбиениеz=
akbkc
k+k!
∈ L
. Отметим в словеzвсе
uvwxy
из леммы Огдена. Так
332 Глава 7. Свойства КС-языков
какwсодержит выделенную позицию, тоwсодержит символa, а значит, словаuиvцеликом состоят из символовa. Пустьv=
ap.
Определим, где в слове z может располагаться подслово x.
Очевидно, чтоxне может содержать двух разных символов, так как в противном случае порядок символов в
z2нарушен и
z2/∈ L
, что
противоречит лемме Огдена.
Предположим, чтоxсостоит из символовa, то естьx= некоторогоq. Тогда
z2=
k+p+qbkck+k!
a
. По лемме Огдена хотя бы одно из словvиxсодержит выделенную позицию, поэтому иp+
q 6
= 0. Но тогда
z2/∈ L
, так какk+p+
q 6=kиk 6=k+k
aqдля
vx 6=ε
Следовательно, случай x = aqневозможен.
Предположим теперь, чтоxсостоит из символовc, то естьx=
для некоторогоq. Тогда
z2=
k+pbkck+q+k!
a
. Словоxне содержит
c
выделенных позиций, следовательно, словоvсодержит хотя бы одну выделенную позицию, поэтому с леммой Огдена:
z2/∈ L
, так какk+
p 6
= 0. Снова получаем противоречие
p 6=kиk 6=k+q+k
!. Значит,
случай x = cqтакже невозможен.
Остаётся только одна возможность:xсостоит из символовb, то
естьx=
bqдля некоторогоq. Рассмотрим слово
z2=
k+pbk+qck+k!
a
По лемме Огдена оно принадлежит языкуL, значит, либоp=q, либоq=k!. Предположим, что слово
z3=
языкуL, так какk+ 2
k+2pbk+2qck+k!
a
p 6=k
=
+ 2k! иk+ 2k!6=k+k!. Это противоречит
p 6=q
, тогдаq=k!. Рассмотрим
k+2pbk+2k!ck+k!
a
. Оно не принадлежит
лемме Огдена, следовательно, предположение неверно и p = q.
Итак, мы доказали, чтоv=
лемме Огдена существует нетерминалAтакой, что для любого
ap,x=
bpдля некоторого
p >
0. По
m
существует вывод
!.
q
.
S ⇒∗uAy ⇒∗uvmAxmy ⇒∗uvmwxmy.
Положимm=k!/p+ 1. Числоmцелое, потому что существует вывод
S ⇒∗uAy ⇒∗uvmAxmy ⇒∗uvmwxmy = a
k+k!bk+k!ck+k!
p 6 k
. Тогда
. (18)
§ 7.2. Лемма Огдена 333
Теперь рассмотрим словоˆz=
k+k!bkck
a
и выделим в нём все сим-
волыc. Рассуждая таким же образом, мы получим, что в разбиении
ˆz=u1v1w1x1y1выполняется
Полагая
m1=k!
/p1+ 1, мы получим для некоторого нетерминала
v1=
p
1
b
,
x1=
p
1
c
для некоторого
p1.
B
вывод
m
m
S ⇒∗u1By1⇒∗u1v
1
Bx
1
1
⇒∗u1v
Мы получили два вывода для слова
1
y1⇒
∗
m
1
m
1
1
w1x
1
k+k!bk+k!ck+k!
a
y1= a
k+k!bk+k!ck+k!
. Докажем, что
. (19)
им соответствуют разные деревья вывода. Предположим, что обоим выводам соответствует одно и то же дерево выводаT. Предположим, что нетерминалыAиBиз выводов
(18)и(19)
лежат на одной и той же ветви. ЕслиBявляется потомкомA, то символыc, выводимые изB, находятся между символамиaиb, выводимыми изA, что невозможно. Аналогично, еслиAявляется потомкомB, то символы
a
находятся между символамиbиc. Следовательно,AиBнаходятся на разных ветвях (этой случай изображён на рис. 49). Тогда для некоторого слова t существует вывод
S ⇒∗uAtBy1,
а значит, и вывод
S ⇒∗uAtBy1⇒ uvmAxmtv
⇒∗uvmwxmtv
m
1
Bx
1
1
1
y1⇒
m
1
1
w1x
∗
m
1
y1= a
1
k+k!bk+k!ck+k!
m
Добавим сюда выводы A ⇒∗vAx и B ⇒∗v1Bx1. Получим вывод
w1x
m1+1
tv
1
m1+1
1
S ⇒∗uAtBy1⇒ uv
⇒∗uv
m+1wxm+1
m+1Axm+1
m1+1
tv
1
Но последнее слово не принадлежит языкуL, потому чтоp+
Bx
y1= a
m1+1
1
k+k!+pbk+k!+p+p
y1⇒
∗
k+k!+p
1
c
p1> p
p+p1> p1. Получилось противоречие. Следовательно, выводам
и (19) соответствуют разные деревья вывода.
.
1
.
(18)
и
334 Глава 7. Свойства КС-языков
S
A B
u
t
Рис. 49. Дерево вывода слова a
y
1
k+k!bk+k!ck+k!
.
Итак, мы доказали, что в любой КС-грамматике, порождающей языкL, существуют разные деревья вывода для одного слова. Это и значит, что L — неоднозначный язык.
Сл едствие 174.
Класс однозначных КС-языков является собствен-
ным подмножеством класса КС-языков.
Задачи
265.
Докажите лемму Огдена для случая, когда среди вершин
m + 2 правые ветвящиеся.
266. Докажите, что следующий язык не является контекстно-свободным:
i
j
i
j
i
j
i
n
1
1
2
b
2
a
b
e+a+d+)i(
. . . a
267.
L = { a
Пусть
L1={(
обозначены все слова вида алфавите
{ a, b, c, d, e }
, которые либо не начинаются наe, либо не заканчиваются
n
n+1
b
a
e+b+d+)i(
ajдля
: n > 0, 0 < i1< i2< · · · < i
e+c+d+)i:
j >
0). Пусть
i >0}
L2— множество всех слов в
на d, либо содержат одно из подслов ed, da, db, dc, ae, be, ce.
(а) Докажите, что язык L1не является контекстно-свободным.
b1, . . . , b
n+1
(через
a+для краткости
2m+3
, jk> 0 }.
есть
§ 7.3. Свойства замкнутости класса КС-языков 335
(б)
Докажите, что язык него выполняется заключение леммы Огдена.
268. Докажите, что следующие языки контекстно-свободны, но неоднозначны:
(а) L1= { aibjck: i, j, k > 0, i = j или i = k };
(б) L2= { aibjck: i, j, k > 0, i < j или j < k };
(в) L3= { ambmanbn: m, n > 0 } ∪ { ambnanbm: m, n > 0 }.
L1∪ L2не является контекстно-свободным, но для
§ 7.3. Свойства замкнутости класса КС-языков
Как и класс регулярных языков, класс КС-языков замкнут относи­тельно различных операций. Однако многие результаты замкнутости не переносятся на КС-языки. Мы начнём с изучения операции под­становки.
Теорема 175.
Класс КС-языков замкнут относительно подстанов-
ки.
Доказательство. ПустьL— произвольный КС-язык в алфавите
∆ =
{a1, . . . , an}
вите Σ, и пустьf— подстановка такая, чтоf( ПустьG= (N,∆ языкL. Пусть порождающие языки
, пусть
, P, S
Gi= (
Liдля 1
6 i 6 n
— КС-языки в алфа-
ai) =
Liдля всехi.
) — приведённая КС-грамматика, порождающая
Ni,Σ, Pi, ai) дляi= 1
, . . . , n
— КС-грамматики,
L1, . . . , Ln. Мы можем считать, что выполняют-
ся следующие условия:
1) Σ ∩∆ = ∅;
2) N ∩ Ni= ∅ для 1 6 i 6 n;
3) Ni∩ Nj= ∅ для 1 6 i, j 6 n, i 6= j;
4) Ni∩
∆ =
{ai}
, причём
aiявляется начальным нетерминалом
грамматики Gi.
Если условие 1) не выполняется, то можно заменить символы в ал­фавите ∆ на новые, при этом результат подстановки не изменится.
336 Глава 7. Свойства КС-языков
Выполнения условий 2)–4) можно добиться, переименовав при необ­ходимости нетерминалы. Заметим, что терминалы
G
являются нетерминалами грамматик
Gi. Это допустимо, так как
aiграмматики
Σ ∩∆ = ∅.
Грамматика
G0= (
N0,Σ, S, P0) для языкаf(L) получается объ-
единением грамматик G и Gi:
N0= N ∪
n
[
Ni, P0= P ∪
i=1
n
[
i=1
Pi.
Докажем, что L(G0) = f(L).
Предположим, что
v
=
a
a
. . . a
i
i
1
2
w
. . . w
i
1
Так как
. В грамматиках G и Gjсуществуют выводы
i
k
P ⊆ P0и
i
k
w ∈ f(L
∈ Lиw
S ⇒
aj⇒
). Это значит, что существуют слова
∈ Ljдля 1
i
j
∗
a
i
G
1
∗
w
G
j
a
i
2
.
i
j
. . . a
6 j 6 k
,
i
k
такие, чтоw=
Pj⊆ P0, то эти выводы являются выводами и в
грамматике G0. Объединяя их, мы получаем
S ⇒
∗
a
. . . a
0
i
1
G
∗
⇒
w
w
0
i
G
k
. . . w
i
i
1
2
i
k
= w,
поэтому w ∈ L(G0).
Пусть теперь грамматике
w ∈ L(G0), тогда существует дерево вывода
T0в
G0с кронойw. Докажем, что на каждой ветви этого
дерева имеется вершина, помеченная символом алфавита ∆. Пред­положим, что на некоторой ветви нет таких вершин. Индукцией по глубине докажем, что любая вершина помечена нетерминалом изN.
Б а з и с и н д у к ц и и . Корень помечен начальным нетерминалом
S ∈ N.
Ш а г и н д у к ц и и . Если вершинаvпомечена символом
то её сын помечен символом
X ∈∆∪ N
, так как может применяться
A ∈ N
,
§ 7.3. Свойства замкнутости класса КС-языков 337
S
T
a
a
i
1
a
i
i
2
k
. . .
T
1
T
2
T
k
w
i
1
w
i
2
. . .
w
i
k
Рис. 50. Дерево вывода в грамматике G0.
только правило грамматикиG, аε-правил вGнет. Так как меток из
∆ нет, то сын помечен символом из N .
В частности, лист такой ветви также помечен символом изN. Но тогда крона дерева не может быть равнаw. Полученное противоре­чие показывает, что на каждой ветви имеется вершина, помеченная символом
ai∈
∆. Выберем на каждой ветви среди таких вершин ту, которая расположена ближе всего к корню. Пусть метками этих вершин в порядке слева направо будут можно разбить наk+ 1 часть:T— это «верхушка» дерева ниченная вершинами с метками из ∆, а помеченными
a
(рис. 50). ДеревоTявляется деревом вывода в грам-
i
j
a
, a
, . . . , a
i
i
1
2
. Дерево вывода
i
k
T0, огра-
Tj— это деревья с корнями,
матикеG, так как мы выбрали самые высокие вершины с метками из
∆. Деревья
ниже
Tjявляются деревьями вывода в грамматиках
a
правила грамматикиGне могут применяться. Обозначим
i
j
Gj, так как
338 Глава 7. Свойства КС-языков
через w
поэтому
крону дерева Tj. Тогда
i
j
S ⇒
a
i
j
a
a
. . . a
i
i
1
2
∈ L,w
i
k
∗
a
a
i
G
1
∗
⇒
w
G
j
∈ Ljдля 1
i
j
i
i
2
,
j
. . . a
,
i
k
6 j 6 k
, причём
w
i
1
. . . w
=
i
k
w. Это и значит, что w ∈ f(L).
Сл едствие 176.
Класс КС-языков замкнут относительно объеди-
нения, конкатенации, итерации и гомоморфных образов.
Доказательство. Перечисленные операции выражаются через подстановку по лемме 11.
Теперь докажем, что пересечения контекстно-свободного языка с
регулярным снова является КС-языком.
Теорема 177.
Класс КС-языков замкнут относительно пересечения
с регулярными языками.
Доказательство. ПустьL— КС-язык, аR— регулярный язык в алфавите Σ. ПустьLраспознаётся через заключительные состояния МП-автоматом ДКАN= (
M
= (
Q1,Σ,Γ, δ1, q0, z0, F1), и пустьRраспознаётся
Q2,Σ, δ2, p0, F2). МП-автомат для языка
L ∩ R
строится с
помощью произведения:
M0= (Q1× Q2, Σ, Γ, δ, (q0, p0), z0, F1× F2).
Программа δ определяется следующим образом:
1)
если
q, a, z → q0, α ∈ δ1,
p, a → p0∈ δ2, то вδдобавляется
команда
(q, p), a, z → (q0, p0), α;
2)
если
q, ε, z → q0, α ∈ δ1, то для любого
p ∈ Q2вδдобавляется
команда
(q, p), ε, z → (q0, p), α.
§ 7.3. Свойства замкнутости класса КС-языков 339
Индукцией по длине вывода доказывается следующее утверждение:
((
q, p), w, γ)`
(
q0, ε, γ0) и (
нового автомата являются пары вида ( w ∈ L(M0) тогда и только тогда, когда
∗
((
0
M
p, w)`
q0, p0)
, ε, γ0) тогда и только тогда, когда (
∗
(
p0, ε
N
). Так как заключительными состояниями
q, p
), где
w ∈ L(M
q ∈ F1,
) и
w ∈ L(N
q, w, γ)`
p ∈ F2, то
). Это и
M
значит, что L(M0) = L ∩ R.
Если МП-автомат для языкаLявляется однозначным, то построен-
ный в доказательстве теоремы автомат
M0также будет однозначным
(задача 270). Поэтому справедлив следующий результат.
Теорема 178.
Класс однозначных КС-языков замкнут относитель-
но пересечения с регулярными языками.
Наконец, установим замкнутость класса КС-языков относительно
обращения гомоморфизма.
Теорема 179. Класс КС-языков замкнут относительно гомоморф­ных прообразов.
Доказательство. ПустьM= (Q,∆,Γ
, δ, q0, z0, F
) — МП-автомат, распознающий языкLчерез опустошение магазина. По теореме 168 можно считать, что
q0, ε, z0→ q0, ε
, причём в таком случае частях команд. Пустьϕ:Σ∗→ Построим МП-автомат
M
не содержитε-команд, кроме, быть может,
z0не встречается в правых
∆∗— произвольный гомоморфизм.
M0= (
Q0,Σ,Γ∪ {z
0
0
}, δ0, q
0
, z0, F
0
) для языка
ϕ−1(L). Множество состояний Q0определяется как
Q0= Q ∪ {q
Теперь опишем программу автомата
0
манду
q
, ε, z
0
0
→ q0, z0z
0
0
} ∪ {qa: q ∈ Q, a ∈ Σ }.
0
M0. Сначала добавим в
0
. Еслиϕ(a) =
0
b1b2. . . bkдля
k >
δ0ко-
0, то для
каждой последовательности команд автомата M
q, b1, z1→ q1, α1,
q1, b2, z2→ q2, α2,
. . . ,
q
, bk, zk→ p, α
k−1
k
340 Глава 7. Свойства КС-языков
добавим в δ0команды
q, a, z1→ q
a
q
, ε, z2→ q
1
a
, α1,
1
a
2
, α2,
. . . ,
a
q
, ε, zk→ p, αk.
k−1
Еслиϕ(a) =ε, то добавим в
z ∈
Γ. Наконец, для каждого состояния
0
q, ε, z
утверждение: если
→ q, ε
0
. Индукцией по длинеwлегко доказать следующее
p, q ∈ Q,γ, γ0∈
тогда и только тогда, когда ( что
w ∈ Le(
M0) тогда и только тогда, когдаϕ(w)
δ0команды
Γ, то (
q, ϕ(w), γ)`
q, a, z → q, z
q ∈ Q
добавим в
q, w, γz
∗
(
p, ε, γ0). Отсюда следует,
M
для всех
0
∗
)
`
0
M
δ0команду
(
0
∈ Le(M), поэтому
q ∈ Q
p, ε, γ0z
0
0
Le(M0) = ϕ−1(L).
Сл едствие 180. Класс КС-языков образует полное АСЯ.
Сл едствие 181.
Класс КС-языков замкнут относительно конечных
преобразований.
Доказательство. Этот результат получается из теоремы Нива, следствия 176 и теоремы 179.
Сл едствие 182.
Класс КС-языков замкнут относительно обратных
детерминированных конечных преобразований.
Мы уже видели, что класс регулярных языков замкнут относи­тельно пересечения и дополнения. Эти результаты не переносятся на класс КС-языков.
Теорема 183.
Класс КС-языков не замкнут относительно пересе-
чения и дополнения.
Доказательство. Языки
i, j >0}
контекстно-свободны, а их пересечение
L1=
{aibicj:
i, j >0}иL2=
L1∩ L2=
{aibjcj:
{aibici:
i > 0 } не является КС-языком (пример 100).
Если бы класс КС-языков был замкнут относительно дополнения, то он был бы замкнут и относительно пересечения в силу законов де Моргана, так как L1∩ L2= L1∪ L2.
,
)
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]