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

§ 3.2. Взаимозамещаемость 151
Задачи
Л
113.
Докажите, что отношения
лентности.
114.
Докажите, что классы левой и правой взаимозамещаемости в примере 56
определены корректно.
115. Докажите, что все классы в примере 57 определены корректно.
116.
Докажите, что для правоинвариантного отношенияRиз (
не следовать (x, y) ∈ R.
117.
Докажите, что для любого класса Майхилла-Нероуда и любых двух слов
и y имеет место равенство A(xy) = (Ax)y.
118.
Найдите классы по трём отношениям взаимозамещаемости для следующих
языков:
(а) L1= { w ∈ { a, b }∗: w начинается на ab };
(б) L2= { w ∈ { a, b }∗: w заканчивается на ab };
(в) L3= { w ∈ { a, b }∗: w не содержит abb };
(г) L4= { aa, ab, ba, bb } (алфавит равен { a, b }).
119.
Докажите, что языкLявляется регулярным тогда и только тогда, когда
отношение ≡
120.
Докажите, что языкLявляется регулярным тогда и только тогда, когда
П
имеет конечный ранг.
L
отношение ≡Lимеет конечный ранг.
121.
С помощью теоремы Майхилла-Нероуда докажите, что следующие языки
не являются регулярными:
(а) L1= { ww : w ∈ { a, b }∗};
(б) L2= { aibj: i, j > 0, i 6= j };
(в) L3= { ap: p — простое число }.
122. Докажите, что следующие пары языков автоматно отделимы:
n
(а) L1= { a
2
: n > 0 }, L2= { a
(б) L1= { an!: n > 1 }, L2= { a
123.
Докажите, что следующие пары языков не являются автоматно отделимыми:
(а) L1= { aibj: i > j > 0 }, L2= { aibj: 0 < i < j };
(б) L1= { aibj: i, j > 0, j = [log2i] }, L2= { aibj: i, j > 0, j 6= [log2i] }.
124.
Приведите пример трёх попарно непересекающихся языков
что
L1и
L2автоматно отделимы,
являются автоматно отделимыми.
≡
3
n!+1
L
n
L2и
П
,
≡
и
≡Lявляются отношениями эквива-
L
: n > 0 };
: n > 1 }.
L3автоматно отделимы, но
xz, yz)∈ R
L1,
L2,
L3, таких
L1и
может
L3не
x

152 Глава 3. Свойства регулярных языков
125. Рассмотрим два языка
An= { w : |w|a= n, w начинается и заканчивается на a },
Bn= { w : |w|a6 n, w начинается на a и заканчивается на b }.
Докажите, что автомат Mnиз теоремы 66 распознаёт язык (An∪ Bn)∗.
126.
Для каждого числаk, 1
символовaвставим по одному символуb. Кроме того, добавим два словаεиb.
Например, если n = 3, то получатся следующие восемь слов:
Докажите, что получатся 2nслов, никакие два из которых не являются левовзаимозамещаемыми относительно языка L(Mn), где Mn— автомат из теоремы 66.
127.
Произведение автоматов позволяет построить по двум автоматам с
n2состояниями автоматы для объединения и пересечения языков, содержащие
n1n2состояний. Докажите, что эта оценка не улучшается: для любых
существуют ДКА
любой ДКА для языкаL(
состояний.
128.
Докажите, что любой ДКА для языка
nnсостояний.
129. Выведите лемму о разрастании из теоремы Майхилла-Нероуда.
M1и
6 k 6 n −
ε, b, a, ab, aa, aba, aab, abab.
M2с
n1и
M1)
∪ L(M2) (илиL(
1, возьмём слово
n2состояниями соответственно такие, что
M1)
Lnиз задачи 105 содержит не менее
ak. После некоторых
n1и
∩ L(M2)) имеет не менее
n1и
n
n1n
2
2
§ 3.3. Конечные преобразователи
В предыдущей главе мы изучали только способы задания языков. Автоматы, грамматики и регулярные выражения позволяют
разделять все слова на два множества — принадлежащие и не принадлежащие языку. Большой интерес представляют устройства более
общего типа, которые при работе могут выдавать произвольные слова,
а не только двоичные значения «да» или «нет». Простейшим типом
таких устройств являются конечные преобразователи.
Оп ределен ие 71.
шестёрка S = (Q, Σ, ∆, δ, q0, F ), где:
1) Q — множество состояний;
К о н е ч н ы й п р е о б р а з о в а т е л ь — это

§ 3.3. Конечные преобразователи 153
2) Σ — в х о д н о й алфавит;
3) ∆ — в ы х о д н о й алфавит;
4) δ ⊆ Q ×
грамма);
5) q0∈ Q — начальное состояние;
6) F ⊆ Q — множество заключительных состояний.
Если (
p, v ∈ δ.
Так же как и конечные автоматы, конечные преобразователи
можно задавать в виде диаграмм. Вершинами диаграммы конечного
преобразователя является множество состояний. Если в преобразователе есть команда
u, v.
Как и в случае конечного автомата, работа конечного преобразователя определяется в терминах конфигураций. Поскольку преобразователь имеет не только входное слово, но и выходное, то определение
конфигурации и отношения ` несколько усложняется.
Оп ределен ие 72.
ляS= (Q,Σ,∆
u ∈
Σ∗— слово во входном алфавите,
алфавите.
Отношение п е р е х о д а з а о д и н ш а г
дующим образом: (
t ∈ ∆∗такие, что x = wu, y = vt и q, w → p, t ∈ δ.
Σ∗×
∆∗× Q
q, u, v, p)∈ δ
, δ, q0, F
q, u, v)`S(
— конечное множество переходов (про-
, то мы будем записывать это в виде
q, u → p, v
К о н ф и г у р а ц и я конечного преобразовате-
) — это тройка (
, то на ребре (
q, u, v
), где
v ∈
∆∗— слово в выходном
p, x, y
), если существуют
q, p
) пишется метка
q ∈ Q
— состояние,
`Sопределяется сле-
w ∈
q, u →
Σ∗и
Конфигурация (
состояниеq, словоuосталось непрочитанным на входной ленте, а
слово v уже выдано в качестве части результата.
Поскольку у конечных преобразователей есть не только входные,
но и выходные слова, то они распознают не языки, а отношения.
q, u, v
) означает, что преобразователь перешёл в

154 Глава 3. Свойства регулярных языков
Оп ределен ие 73.
ОтношениеR(S), вычисляемое конечным пре-
образователем S, определяется как
R(S) = {(u, v) : (q0, u, ε) `
Конечные преобразователи
∗
(qf, ε, v) для некоторого qf∈ F }.
S
S1и
S2э к в и в а л е н т н ы, если
R(S1) = R(S2).
Если преобразовательSначинает работу в конфигурации (
q0, u, ε
то словоuбудем называть в х о д о м преобразователя. Если выполняется (
q0, u, ε)`
∗
(
qf, ε, v),qf∈ F
S
, то словоvбудем называть в ы х о д о м преобразователя или п е р е в о д о м словаu. Одно и то же
слово может иметь несколько или даже бесконечно много переводов.
Оп ределен ие 74.
ПустьS— конечный преобразователь. О б -
р а з о м слова w ∈ Σ∗называется язык
S(w) = {x ∈ ∆∗: (w, x) ∈ R(S) }.
О б р а з о м языка L ⊆ Σ∗называется язык
[
S(L) =
S(w) =
w∈L
= {x ∈ ∆∗: (w, x) ∈ R(S) для некоторого w ∈ L }.
),
Определённое так отображение
S :
P(Σ∗)→P(∆∗) называется к о -
н е ч н ы м п р е о б р а з о в а н и е м.
Таким образом,S(L) — это множество всевозможных переводов
слов из L.
Пр име р 65.
S1= (Q,Σ,∆
{0,1},F={q3}
Рассмотрим примеры его работы на слове w = aabb:
(q0, aabb, ε) ` (q2, bb, 11) ` (q2, b, 110) ` (q2, ε, 1100);
(q0, aabb, ε) ` (q1, b, 0) ` (q3, b, 00) ` (q1, ε, 0011) ` (q3, ε, 00110).
Рассмотрим в качестве примера конечный преобразователь
, δ, q0, F
), у которогоQ=
. Диаграмма этого преобразователя изображена на рис. 24.
{q0, q1, q2, q3}
, Σ =
{a, b }
, ∆ =

§ 3.3. Конечные преобразователи 155
aab, 0
q
0
q
ε, 00
1
aa, 11
b, ε
q
2
a, 01
ε, 0
b, 11
q
3
b, 0
Рис. 24. Конечный преобразователь из примера 65.
Так как состояние
не является заключительным, но из этого непосредственно не следует, что
1100
/∈ S1(
aabb
), так как могут существовать другие вычисления, выдающие
перевод 1100 и завершающиеся в
aabb
. Сначала заметим, что если
то он не сможет попасть в заключительное состояние, так как оставшаяся
часть слова
может применяться только команда
может проделать произвольное числоε-тактов с состоянии
должен перейти в состояние
для некоторого
уже не вернётся в
выполняет команду
в состоянии
слово вида (00)i0. Итак,
aabb
q1, а затем возвращается в
q3заключительное, то 00110
q3. Найдём множество всех переводов слова
S1читаетaaи переходит в состояние
не содержит символаa. Следовательно, на первом шаге
q0, aab → q1,
q3. При этом он напечатает слово вида (00)i0
i >
0. Если далее
q3, так как в
q3, b → q1,
S1применит команду
q0нетε-команд. Значит, преобразователь
11, после чего снова некоторое время остаётся
q3. При этом он печатает ещё одно
∈ S1(
aabb
). Состояние
0. Затем преобразователь
q1, после чего он
q3, b → q0, ε
, то он
q
q2,
2
S1(aabb) = L(0(00)∗011(00)∗0).
Аналогично можно убедиться, что
видим, что слово может иметь бесконечно много переводов, а может не
иметь ни одного.
Точно так же можно находить образы не отдельных слов, а языков.
Если, например, L = L(a∗ba∗), то S1(L) = L(11001 + 0(00)∗0).
S1(
aaa
) ={1101},
S1(ab) =∅. Мы

156 Глава 3. Свойства регулярных языков
ai, a
q
i
ai, ε
0
ai, ε
q
1
Рис. 25. Конечный преобразователь из примера 66.
Пр име р 66.
тель, вычисляющий отношение
В этом преобразователеQ=
ным и оба состояния являются заключительными. Программа преобразователя содержит 3m команд (для 1 6 i 6 m):
Диаграмма этого преобразователя изображена на рис. 25. Сначала преобразователь читает символы словаxи печатает их. В какой-то момент он
может перейти в состояние
ничего не печатает.
Пусть Σ =
R = {(x, y) : y — префикс x }.
{a1, . . . , am}
{q0, q1}
q0, ai→ q0, ai,
q0, ai→ q1, ε,
q1, ai→ q1, ε.
q1, после чего он дочитывает входное слово, но
. Построим конечный преобразова-
, выходной алфавит совпадает с вход-
Определим теперь важный частный случай конечных преобразователей.
Оп ределен ие 75.
Д е т е р м и н и р о в а н н ы й к о н е ч н ы й
п р е о б р а з о в а т е л ь — это шестёрка S = (Q, Σ, ∆, δ, q0, F ), где:
1) Q — множество состояний;
2) Σ — в х о д н о й алфавит;
3) ∆ — в ы х о д н о й алфавит;
4) δ : Q × Σ → Q × ∆∗— функция переходов (программа);
5) q0∈ Q — начальное состояние;
6) F ⊆ Q — множество заключительных состояний.

§ 3.3. Конечные преобразователи 157
В отличие от произвольного конечного преобразователя, детерминированный преобразователь на каждом шаге может применить
только одну команду. Кроме того, он не может делатьε-тактов,
поэтому любое вычисление конечного преобразователя завершается. Отношение
преобразователя так же, как для конечного преобразователя
жеством переходов
`Sопределяется для детерминированного конечного
S0с мно-
δ0={(
q, a, v, p
) :δ(
q, a
) = (
p, v)}
. Как в общем
случае определяется и отношениеR(S). В силу детерминированности и отсутствияε-команд для каждого входного слова существует
не более одного перевода, поэтому отношениеR(S) является функцией. Иногда мы будем называть преобразователи произвольного
типа недетерминированными, чтобы подчеркнуть, что в них есть
неоднозначность при выборе команды.
Оп ределен ие 76.
образователь. О б р а з о м слова
зывается словоxтакое, что (
ПустьS— детерминированный конечный пре-
w ∈
Σ∗(обозначаетсяS(w)) на-
w, x)∈ R(S
), если оно существует.
О б р а з о м языка L ⊆ Σ∗называется язык
S(L) = { S(w) : w ∈ L }.
Определённое так отображение
S :
P(Σ∗)→P(∆∗) называется д е -
т е р м и н и р о в а н н ы м к о н е ч н ы м п р е о б р а з о в а н и е м.
П р о о б р а з о м слова x ∈ ∆∗называется язык
S−1(x) = {w ∈ Σ∗: (w, x) ∈ R(S) }.
П р о о б р а з о м языка L ⊆ ∆∗называется язык
[
S−1(L) =
S−1(x) =
x∈L
= {w ∈ Σ∗: (w, x) ∈ R(S) для некоторого x ∈ L }.
Определённое таким образом отображение
S−1:
P(∆∗)
→
P(Σ∗)
называется о б р а т н ы м д е т е р м и н и р о в а н н ы м к о н е ч н ы м
п р е о б р а з о в а н и е м.

158 Глава 3. Свойства регулярных языков
Понятие обратного конечного преобразования можно определить
и в общем случае. Существует два варианта такого определения: либо
S−1(L) = {w ∈ Σ∗: S(w) ⊆ L },
либо
[−1]
S
(L) = {w ∈ Σ∗: S(w) ∩L 6= ∅ }.
В первом случае словоwпринадлежит прообразу языкаL, если
все его переводы принадлежатL. В частности, еслиS(w) =∅, то
w ∈ S−1(L). Во втором случае требуется, чтобы хотя бы один перевод
словаwпринадлежалL. Поскольку определение обратного детерминированного преобразования более «естественно», то мы ограничимся
изучением детерминированного случая.
Пр име р 67.
выполняющий сложение двух чисел в двоичной системе. Так как автомат
получает на вход только одно слово, то мы будем записывать числа с помощью двухэтажных символов. Числа будут подаваться на вход, начиная
с младших разрядов. Кроме того, мы отметим конец входного слова специальным символом $. Это необходимо, поскольку при переносе бита в
старший разряд длина суммы может оказаться больше длины исходных чисел. В этом случае преобразователь должен знать, когда нужно напечатать
ведущий бит. Итак, входным алфавитом будет множество
Построим детерминированный конечный преобразователь,
s
{,s
{,s
{,s
{
1
1
1
, $,
0
Σ =
0
0
0
1
а выходным — множество ∆ ={0,1}. Программа задана в следующей
таблице:
s
0
0
{ s
{ s
0
1
{ s
1
0
{
1
$
1
нач q0q0, 0 q0, 1 q0, 1 q1, 0 q2, ε
q1q0, 1 q1, 0 q1, 0 q1, 1 q2, 1
закл q2q3, ε q3, ε q3, ε q3, ε q3, ε
q3q3, ε q3, ε q3, ε q3, ε q3, ε
Преобразователь выполняет обычное сложение чисел «в столбик». Бит
переноса сохраняется в индексе состояний
q0и
q1. Состояние
q2использу-

§ 3.3. Конечные преобразователи 159
ется только как заключительное, а
неправильным входным словам.
q3— как состояние соответствующее
Многие операции на языках являются конечными преобразовани-
ями.
Ле мма 67.
Любой гомоморфизм является детерминированным конечным преобразованием, а обращение любого гомоморфизма является обратным детерминированным конечным преобразованием.
Доказательство. Пусть Σ =
гомоморфизм. ПустьS= (
{q0},Σ,∆, δ, q0, {q0}
{a1, . . . , an}
, и пустьϕ:Σ∗→
) — детерминирован-
∆∗—
ный конечный преобразователь с программой
q0, ai→ q0, ϕ(ai) для 1 6 i 6 n.
Непосредственно проверяется, чтоϕ(L) =S(L) для любого
L ⊆
Σ∗и
что ϕ−1(L) = S−1(L) для любого L ⊆ ∆∗.
Ле мма 68.
Для любого регулярного языкаRотображениеf(L) =
L ∩ R является детерминированным конечным преобразованием.
Доказательство. Пусть ДКА
ёт языкR. Перестроим автомат
S
= (Q,Σ,Σ
q, a → p, a
что (q, w) `
Если
qf∈ F
если
w ∈ L ∩ R
(q0, w, ε) `
, δ0, q0, F
), заменив каждую команду
. Индукцией по длине словаwнепосредственно проверяется,
n
(p, ε) тогда и только тогда, когда (q, w, ε) `
M
w ∈ S(L
. Тогдаv=w, (
∗
(q0, ε, w), поэтому w ∈ S(L).
S
), то (
, то (
q0, v, ε)`∗(
q0, w)`
q0, w)`
∗
M
(
M
= (Q,Σ
M
в конечный преобразователь
qf, ε, w
∗
(
qf, ε
M
qf, ε
) и
) для некоторого
, δ, q0, F
q, a → p
) распозна-
на команду
n
(p, ε, w).
S
) для некоторых
w ∈ L ∩ R
. Наоборот,
qf∈ F
v ∈ L
. Тогда
По определению детерминированные конечные преобразования
являются частным случаем конечных преобразователей. Оказывается,
что обратные детерминированные конечные преобразования также
определяются конечными преобразователями.
,
Ле мма 69.
По любому детерминированному конечному преобразо-
вателюSможно построить конечный преобразователь
S0такой, что

160 Глава 3. Свойства регулярных языков
S−1(L) = S0(L) для любого языка L.
Доказательство. ПустьS= (Q,Σ,∆
, δ, q0, F
) — детерминированный конечный преобразователь. Построим конечный преобразователь
включим в
(
q, u, ε)`
этого утверждения непосредственно следует, что
S0= (Q,∆,Σ
δ0команду
n
(
p, ε, v
S
) тогда и только тогда, когда (
, δ0, q0, F
q, v → p, a
). Для каждой команды
q, a → p, v ∈ δ
. Индукцией поnдоказывается, что
q, v, ε)`
S−1(L) =
n
S
(
0
p, ε, u
S0(L).
). Из
Из лемм 67 и 69 получается
Сл едствие 70.
Обращение любого гомоморфизма является конеч-
ным преобразованием.
В определении конечного преобразователя разрешается считывать
и выдавать сразу несколько символов за один такт. Нетрудно видеть,
что преобразователь можно перестроить так, чтобы на каждом шаге
он считывал и выдавал не более одного символа.
Ле мма 71.
По любому конечному преобразователю можно построить эквивалентный конечный преобразователь такой, что для любой
команды q, u → p, v выполняются неравенства |u| 6 1 и |v| 6 1.
Доказательство. Рассмотрим произвольный конечный преобразовательS= (Q,Σ,∆
(
Q0,Σ,∆, δ0, q0, F
, δ, q0, F
). Построим новый преобразователь
). Сначала заменим каждую команду
S0=
q, a1. . . an→
q, v, n > 1, на команды
q, a1→ q1, ε, q1, a2→ q2, ε, . . . , q
Здесь состояния
q1, . . . , q
уникальны для каждой команды. После
n−1
, an→ p, v.
n−1
этого заменим в получившемся преобразователе каждую команду
q, a → p, b1. . . bm, m > 1, на команды
где
q, ε → p1, b1, p1, ε → p2, b2, . . . , p
p1, . . . , p
— также уникальные состояния. Состояниями
m−1
, a → p, bm,
m−1
будут все состояния S, а также все новые состояния.
Q
0
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
