Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория автоматов и формальных языков. Учебник.pdf
Скачиваний:
1
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
§ 5.3. Автоматы с магазинной памятью 251
ми способами.
Оп ределен ие 95.
з а к л ю ч и т е л ь н ы е с о с т о я н и я, если ( для некоторого заключительного состояния
МП-автомат
M
распознаёт словоwч е р е з
q0, w, z0)
q ∈ F
∗
`
M
и некоторого
(
q, ε, γ
магазинного слова γ ∈ Γ∗.
Язык, распознаваемый МП-автоматомMчерез заключительные
состояния, — это множество всех слов, распознаваемых
M
через
заключительные состояния (обозначается Lf(M)).
МП-автомат
м а г а з и н а, если (
M
распознаёт словоwч е р е з о п у с т о ш е н и е
q0, w, z0)
∗
`
(
q, ε, ε
M
) для некоторого состояния
q ∈ Q (не обязательно заключительного).
Язык, распознаваемый МП-автоматом
магазина, — это множество всех слов, распознаваемых
M
через опустошение
M
через
опустошение магазина (обозначается Le(M)).
МП-автоматMраспознаёт словоwв о б о и х с м ы с л а х, если
(
q0, w, z0)
∗
`
(
q, ε, ε
M
) для некоторого заключительного состояния
q ∈ F.
Язык, распознаваемый МП-автоматом
M
в обоих смыслах, — это множество всех слов, распознаваемыхMв обоих смыслах (обо­значается L(M )).
)
Отметим, что в общем случае язык, распознаваемый в обоих
смыслах, не равен пересечению Lf(M) ∩Le(M).
Пр име р 84.
L1= {anbn: n > 0 }.
Сначала в состоянии магазине их количество. Когда автомат видит первый символb, он переходит в состояние число символовaиbодинаково, то входное слово закончится в тот же
Построим МП-автомат, распознающий в обоих смыслах язык
q0, a, z0→ q0, az q0, a, a → q0, aa q1, ε, z0→ qf, ε q0, b, a → q1, ε
q0автомат считывает символыaи запоминает в
q1, а далее считываетb, удаляя по одномуaиз магазина. Если
q1, b, a → q1, ε
0
252 Глава 5. Контекстно-свободные грамматики и языки
момент, когда опустеет магазин. Последняя команда переводит автомат в заключительное состояние и опустошает магазин.
Рассмотрим работу автомата на слове aaabbb:
(q0, aaabbb, z0) ` (q0, aabbb, az0) ` (q0, abbb, aaz0) ` (q0, bbb, aaaz0) `
` (q1, bb, aaz0) ` (q1, b, az0) ` (q1, ε, z0) ` (qf, ε, ε)
Так как в последней конфигурации состояние заключительное, а магазин пуст, то автомат распознаёт слово aaabbb в обоих смыслах.
Рассмотрим теперь работу автомата на слове aab:
(q0, aab, z0) ` (q0, ab, az0) ` (q0, b, aaz0) ` (q1, ε, az0)
Так как в заключительной конфигурации магазин непуст, а сделать других шагов автомат не может, то слово aab отвергается автоматом.
Наконец, рассмотрим работу автомата на слове abb:
(q0, abb, z0) ` (q0, bb, az0) ` (q1, b, z0) ` (qf, b, ε)
Слово
abb
также отвергается, поскольку автомат даже не может прочи-
тать его до конца.
Приведём строгое доказательство правильности автомата. Сначала до­кажем вспомогательное утверждение.
1) Для любого натурального n выполняется (q0, an, z0) `∗(q0, ε, anz0).
2) Для любых натуральных m, n таких, что n > m > 0, выполняется
(q0, anbm, z0) `∗(q1, ε, a
n−m
z0).
Докажем первый пункт индукцией по n.
Б а з и с и н д у к ц и и . Еслиn= 0, то получается верное утверждение
(q0, ε, z0) `∗(q0, ε, z0).
Ш а г и н д у к ц и и . Пусть дляnвыполняется (
Тогда (
q0, a, z0→ q0, az0, а при получаем конфигурацию (q0, ε, a
q0, a
n+1
, z0)
`∗(
q0, a, anz0). Приn= 0 далее применяется команда
n >
0 — команда
n+1
z0).
q0, a, a → q0, aa
q0, an, z0)
`∗(
. В обоих случаях
q0, ε, anz0).
Теперь докажем второй пункт индукцией по m для каждого n.
§ 5.3. Автоматы с магазинной памятью 253
Б а з и с и н д у к ц и и . Пустьm= 1. Согласно предыдущему утвер-
ждению имеет место ( q0, b, a → q1, ε, получаем конфигурацию (q1, ε, a
Ш а г и н д у к ц и и . Предположим, что (
Тогда (
q0, anb
m+1
q1, ε, получаем конфигурацию (q1, ε, a
В частности, еслиw= любое слово из языка L распознаётся автоматом.
Теперь докажем обратное утверждение.
1)
Если (
q0, w, z0)
2)
Если (
q0, w, z0)
m, n > 0, при этом n > m.
3) Если (q0, w, z0) `∗(qf, ε, γ), то w = anbnдля некоторого n > 0, γ = ε.
Индукция по числу шагов.
Б а з и с и н д у к ц и и . Если (
γ = z0= a0z0.
Ш а г и н д у к ц и и . Если вычисление имеет ненулевую длину, то нужно отдельно рассмотреть, какая команда применялась на последнем шаге. Возможны пять случаев.
, z0)
q0, anb, z0)
`∗(
q1, b, a
anbn, то (
`∗(
q0, ε, γ
`∗(
q1, ε, γ
`∗(
q0, b, anz0). Применяя далее команду
n−m
z0). Применяя далее команду
n−(m+1)
q0, w, z0)
), тоw=
), тоw=
q0, w, z0)
n−1
q0, anbm, z0)
z0).
`∗(
q1, ε, z0)`(
an,γ=
anbm,γ=
`0(
z0).
`∗(
qf, ε, ε
anz0для некоторого
n−m
a
z0для некоторых
q0, ε, γ
), тоw=ε=
q1, ε, a
q1, b, a →
), поэтому
n−m
n >
z0).
a0,
0.
1)
Пусть на последнем шаге применялась команда
q0, a, z0→ q0, az0.
Тогда вычисление имеет вид
(q0, w0a, z0) `∗(q0, a, z0γ0) ` (q0, ε, az0γ0).
По индукционному предположению z0γ0= anz0, w0= anдля некото-
рогоn. Это может быть только при
γ0=ε,n= 0. Поэтому вычисление
имеет вид (q0, a, z0) ` (q0, ε, az0), а значит, w = a, γ = az0.
2)
Пусть на последнем шаге применялась команда
q0, a, a → q0, aa
вычисление имеет вид
(q0, w0a, z0) `∗(q0, a, aγ0) ` (q0, ε, aaγ0).
По индукционному предположению
рого n. Следовательно, w = w0a = a
w0=
an,
n+1
, γ = aaγ0= a
aγ0=
anz0для некото-
n+1
z0.
. Тогда
254 Глава 5. Контекстно-свободные грамматики и языки
3)
Пусть на последнем шаге применялась команда вычисление имеет вид
(q0, w0b, z0) `∗(q0, b, aγ) ` (q1, ε, γ).
q0, b, a → q1, ε
. Тогда
По индукционному предположению
но, w = w0b = anb, γ = a
4)
Пусть на последнем шаге применялась команда
n−1
z0.
w0=
an,aγ=
anz0. Следователь-
q1, b, a → q1, ε
вычисление имеет вид
(q0, w0b, z0) `∗(q1, b, aγ) ` (q1, ε, γ).
По индукционному предположению
некоторых
m+1
anb
5)
Пусть на последнем шаге применялась команда
m, n >
, γ = a
0, при этом
n−(m+1)
z0, n > m + 1.
w0=
n > m
anbm,
aγ=a
. Следовательно,w=
q1, ε, z0→ qf, ε
n−m
вычисление имеет вид
(q0, w, z0) `∗(q1, ε, z0γ) ` (qf, ε, γ).
По индукционному предположениюw=
некоторых
m, n >
0. Это возможно только приγ=ε,m=n. Но это
anbm,
z0γ0=
a
n−m
и утверждается.
Из пункта 3) утверждения следует, что все распознаваемые слова при-
надлежат языку L. Пр име р 85. Построим МП-автомат для языка
. Тогда
z0для
w0b
=
. Тогда
z0для
L2= {w ∈ {a, b }∗: w = w−1}.
Для краткости мы будем записывать однотипные команды в виде одной команды. В приведённой ниже программеxобозначает любой символ алфавита { a, b }, а y — любой символ алфавита { a, b, z0}.
q0, x, y → q0, xy q1, x, x → q1, ε q0, ε, y → q1, y q1, ε, z0→ qf, ε q0, x, y → q1, y
§ 5.3. Автоматы с магазинной памятью 255
(q0, aba, z0)
(q0, ba, az0) (q1, aba, z0) (q1, ba, z0)
(q0, a, baz0) (q1, ba, az0) (q1, a, az0)
(q0, ε, abaz0) (q1, a, baz0) (q1, ε, baz0) (q1, ε, z0)
(q1, ε, abaz0)
(qf, ε, ε)
Рис. 41. Дерево вычислений для слова aba.
Сначала в состоянии запоминает её в магазине. Затем он угадывает середину слова и переходит в состояние нужно угадать, является ли длина слова чётной или нечётной. После этого в состоянии совпадает с содержимым магазина. На рис. 41 приведено дерево вычислений автоматаMна слове достижима заключительная конфигурация ( рисунке), то автомат распознаёт слово корректности автомата оставляем в качестве упражнения.
q1. Для этого есть две команды, поскольку автомату также
q1автомат считывает вторую половину слова и проверяет, что она
q0автомат считывает левую половину слова и
aba
. Поскольку из начальной конфигурации (
qf, ε, ε
) (она подчёркнута на
aba
. Формальное доказательство
q0, aba, z0)
Докажем, что классы языков, распознаваемых через заключи­тельные состояния, через опустошение магазина и в обоих смыслах, совпадают.
Ле мма 124.
По любому МП-автомату
M
можно построить МП-
автомат M0такой, что Lf(M) = Lf(M0) = Le(M0) = L(M0).
Доказательство. ПустьM= (Q,Σ,Γ
, δ, q0, z0, F
) — произволь-
256 Глава 5. Контекстно-свободные грамматики и языки
ный МП-автомат. Построим новый автомат
M0= (Q ∪ {q
0
, ˜q, qf}, Σ, Γ ∪{ z
0
0
}, δ0, q
0
0
, z
0
0
, {qf}).
0
Оставим в новом автомате все команды автоматаMи добавим сле­дующие команды:
0
, ε, z
0
0
→ q0, z0z
0
1) q
2) q, ε, z → ˜q, z для всех q ∈ F , z ∈ Γ ∪{ z
0
;
0
0
};
0
3) ˜q, ε, z → ˜q, ε для всех z ∈ Γ;
4) ˜q, ε, z
Пусть
0
→ qf, ε.
0
w ∈ Lf(M), то есть (
q0, w, z0)
∗
`
(
q, ε, γ
M
) для некоторого
q ∈ F. Тогда
0
0
(q
, w, z
0
0
) `
0
(q0, w, z0z
M
Наоборот, пусть только правило
q
0
, ε, z
0
магазин — попасть в состояние˜qи далее в
˜q
, автомат
M0сначала должен попасть в некоторое состояниеqиз
0
0
`
M
w ∈ Le(
0
→ q0, z0z
0
∗
) `
M
0
(˜q, ε, γz
(q, ε, γz
0
0
0
) `
0
∗
M
0
) `
M
(˜q, ε, z
0
0
0
0
) `
(qf, ε, ε). (6)
M
0
M0). На первом шаге может применяться
0
. Единственный способ опустошить
0
qf. Но чтобы попасть в
множестваF. После этого он не сможет прочитать ни одного символа. Итак, мы доказали, что вычисление можным. Следовательно, (
q0, w, z0)
(6)
является единственно воз-
∗
`
(
q, ε, γ
) и
M
w ∈ Lf(M). Здесь
мы используем тот факт, что все команды между конфигурациями
(
q0, w, z0) и (
0
z
только при переходе в qf, то Lf(M0) = Le(M0) = L(M0).
0
q, ε, γ
) принадлежат как
δ0, так иδ. Поскольку
M0удаляет
Теперь докажем обратное свойство.
Ле мма 125.
По любому МП-автомату
M
можно построить МП-
автомат M0такой, что Le(M) = Le(M0) = Lf(M0) = L(M0).
§ 5.3. Автоматы с магазинной памятью 257
Доказательство. ПустьM= (Q,Σ,Γ ный МП-автомат. Построим новый автомат M
M0= (Q ∪ {q
0
, qf}, Σ, Γ ∪{ z
0
, δ, q0, z0, F
0
}, δ0, q
0
0
0
, z
0
) — произволь-
0
, {qf}).
0
Оставим в новом автомате все команды автоматаMи добавим сле­дующие команды:
0
1) q
, ε, z
0
2) q, ε, z
Пусть
0
→ q0, z0z
0
0
→ qf, ε для всех q ∈ Q.
0
w ∈ Le(M), то есть (
0
;
0
q0, w, z0)
∗
`
(
q, ε, ε
M
) для некоторого
q ∈ Q. Тогда
0
0
(q
, w, z
0
Наоборот, пусть вычисление
(7)
0
) `
(q0, w, z0z
M
0
w ∈ Lf(
является единственно возможным: на первом шаге можно применить только правило шаге обязательно должно применяться правило тогда (
q0, w, z0)
∗
`
(
q, ε, ε
M
) и
0
0
) `
∗
M
0
(q, ε, z
0
0
0
) `
(qf, ε, ε). (7)
M
M0). Аналогично предыдущей лемме,
0
q
, ε, z
0
0
→ q0, z0z
0
0
, а на последнем
0
0
q, ε, z
→ qf, ε
0
. Но
w ∈ Le(M). Как и в предыдущей лемме
доказывается, что Lf(M0) = Le(M0) = L(M0).
Из лемм 124 и 125 получается
Сл едствие 126. Следующие три класса языков совпадают:
1)
распознаваемые МП-автоматами через заключительные состоя­ния;
2)
распознаваемые МП-автоматами через через опустошение мага­зина;
3) распознаваемые МП-автоматами в обоих смыслах.
Несколько усложнив доказательство леммы 125, можно обойтись
одним дополнительным состоянием.
258 Глава 5. Контекстно-свободные грамматики и языки
Ле мма 127.
автомат
По любому МП-автомату
M0такой, что
Le(M) =
Le(
M
M0) =
можно построить МП-
Lf(
M0) =L(
M0) и
M
содержит только одно дополнительное состояние.
Доказательство. По МП-автоматуM= (Q,Σ,Γ строим новый автомат M
M0= (Q ∪ {qf}, Σ, Γ ∪{ z
0
0
00
, z
0
0
}, δ0, q
0
, z
0
0
, {qf})
0
, δ, q0, z0, F
) по-
со следующими новыми командами:
1) q0, ε, z
2) q0, ε, z
3) q, ε, z
0
→ qf, ε, если ε ∈ Le(M);
0
0
→ q0, z0z
0
00
→ qf, ε для всех q ∈ Q.
0
00
;
0
Доказательство правильности построенного автомата аналогично доказательству из леммы 125.
Задачи
208. Докажите правильность МП-автомата из примера 85.
209.
Постройте МП-автоматы, распознающие в обоих смыслах следующие языки,
и докажите их правильность:
(а) L1— язык правильной расстановки скобок;
(б) L2= { w ∈ { a, b }∗: |w|a= |w|b};
(в) L3= { aibj: 0 < i < j };
(г) L4= { aibj: i, j > 0, i 6= j };
(д) L5= { w ∈ { a, b }∗: |w|a= 2|w|b};
(е) L6= { w#xw−1y : w, x, y ∈ { a, b }∗};
(ж) L7= { x#y : x, y ∈ { a, b }∗, x 6= y };
(з) L8= { a
210. Завершите доказательство леммы 127.
211. Расширенный МП-автомат отличается от обычного тем, что он обозревает
не один символ на вершине магазина, а несколько. Точнее, команды расширенного МП-автомата имеют вид
γ0— слова в магазинном алфавите. Применение такой команды состоит в том, что
автомат считывает символaна входе, переходит из состоянияqв слово γ на вершине магазина на γ0.
i
i
1
2
ba
i
n
b . . . ba
: n > 0, ij< ikдля некоторых j < k }.
q, a, γ → q0, γ0, гдеqи
q0— состояния,
a ∈Σ∪ { ε },γ
q0и заменяет
0
и
§ 5.4. Эквивалентность КС-грамматик и МП-автоматов 259
1)
Дайте точное определение отношения`для расширенных автоматов и определение распознаваемого языка.
2)
Докажите, что по любому расширенному МП-автомату можно построить эквивалентный ему обычный МП-автомат.
212.
Докажите, что по любому МП-автомату можно построить эквивалентный МП-автомат, в котором для любой команды ство |α| 6 2.
213.
Докажите, что по любому МП-автомату можно построить эквивалентный МП-автомат, в котором имеются команды только двух видов: q, a, z → q0, z0z для некоторого магазинного символа z0.
214.
Докажите, что по любому МП-автомату можно построить эквивалентный МП-автомат, в котором магазинный алфавит содержит не более двух символов.
215.
Пусть при работе МП-автоматаMна любом слове длина магазина никогда не превосходит некоторой константыc. Докажите, что тогда языки и L(M ) регулярны.
216.
Обозначим черезP(M) множество всех слов, которые могут оказаться в магазине в процессе работы МП-автоматаM. Докажите, что языкP(M) является регулярным для любого МП-автомата M.
q, a, z → q0, α
выполняется неравен-
q, a, z → q0, ε
Lf(M),
Le(M)
§ 5.4. Эквивалентность КС-грамматик и
и
МП-автоматов
Основной результат о КС-грамматиках и МП-автоматах состоит в том, что они задают один и тот же класс языков. Сначала докажем, что любой КС-язык распознаётся некоторым МП-автоматом.
Теорема 128.
лентный МП-автомат.
Доказательство. ПустьG= (N,Σ грамматика. Построим эквивалентный МП-автомат
Автомат содержит единственное состояние лами являются терминалы и нетерминалы грамматикиG, причём
По любой КС-грамматике можно построить эквива-
, P, S
) — произвольная КС-
M = ({q0}, Σ, Σ ∪N, δ, q0, S, ∅).
q0. Магазинными симво-
260 Глава 5. Контекстно-свободные грамматики и языки
начальным символом магазина является начальный нетерминалS. Функция переходов δ определяется так:
1) если A → α ∈ P , то q0, ε, A → q0, α ∈ δ;
2) если a ∈ Σ, то q0, a, a → q0, ε ∈ δ.
Докажем, что построенный автоматMраспознаёт языкL(G) че­рез опустошение магазина. Непосредственно из конструкции следует, что для любого терминального слова x выполняется
(q0, x, xγ) `
|x|
(q0, ε, γ)
для всехγ(формальное доказательство проводится индукцией по длине x).
Индукцией по длине вывода докажем следующее утверждение:
S ⇒
∗
wα
, где
w ∈
l
Σ∗, аαначинается на нетерминал или пусто,
если то (q0, w, S) `∗(q0, ε, α).
Б а з и с и н д у к ц и и . Если вывод имеет длину 0, тоw=ε,α=
и (q0, ε, S) `0(q0, ε, S).
Ш а г и н д у к ц и и . Пусть
S ⇒
n+1 l
wα
. Пусть на последнем шаге
вывода было применено правило A → β. Тогда вывод имеет вид
n
S ⇒
где
yβγ=wα
. Обозначим черезxсамый длинный терминальный
префикс словаβγ, тогдаw=
yAγ ⇒lyβγ,
l
yxиβγ=xα
. По индукционному
предположению
(q0, y, S) `∗(q0, ε, Aγ).
По построению в автомате есть команда q0, ε, A → q0, β, поэтому
S
(q0, ε, A) ` (q0, ε, β).
Кроме того, согласно сделанному выше замечанию
(q0, x, xα) `∗(q0, ε, α).
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]