Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория автоматов и формальных языков. Учебник.pdf
Скачиваний:
1
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
§ 1.2. Операции над языками 21
языка L соответственно:
ПРЕФ(L) = {w : wu ∈ L для некоторого u ∈ Σ∗}; СУФ(L) = {w : uw ∈ L для некоторого u ∈ Σ∗}; ПОДСЛ(L) = {w : uwv ∈ L для некоторых u, v ∈ Σ∗}; ПОДПОСЛ(L) = {w : существует слово u ∈ L
такое, что w — подпоследовательность u };
L−1= {w−1: w ∈ L }.
Следующие две операции являются в некотором смысле обратны-
ми для конкатенации.
Оп ределен ие 18.
вается множество слов, полученных отбрасыванием слов из
П р а в ы м ч а с т н ы м языков
L1и
L2назы-
L2с
конца слов из L1:
L1/L2= {w ∈ Σ∗: wu ∈ L1для некоторого u ∈ L2}.
Л е в ы м ч а с т н ы м языков
L1и
L2называется множество
слов, полученных отбрасыванием слов из L2с начала слов из L1:
L2\L1= {w ∈ Σ∗: uw ∈ L1для некоторого u ∈ L2}.
Определим теперь некоторые более специфические операции.
Оп ределен ие 19. Та с о в к о й двух слов x и y называется мно- жество
ТАС(x, y) = {x1y1. . . xkyk: xi∈ Σ∗, yj∈ Σ∗,
x1. . . xk= x, y1. . . yk= y }.
Тасовкой двух языков L1и L2называется множество
[
ТАС(L1, L2) =
x∈L y∈L
1 2
ТАС(x, y).
22 Глава 1. Формальные грамматики и языки
Пр име р 5.
{abbc, abcb, bcab, bacb, babc } ε · a · b и b · c · ε, а слово abbc получается из разбиений ab и bc.
Тасовкой словabиbcявляется множество
. Например, слово
bacb
получается из разбиений
ТАС(ab, bc
Последние две операции, которые мы введём, — это операции взятия минимума и максимума языка. Содержательно, множество слов изL, которые нельзя укоротить, а
MIN(L
MAX(L
) — это
) — это
множество слов из L, которые нельзя удлинить.
Оп ределен ие 20.
М и н и м у м о м языкаLназывается множе­ство всех слов изL, никакой собственный префикс которых не принадлежит L:
MIN(L) = {w ∈ L : если w = uv, v 6= ε, то u /∈ L }.
М а к с и м у м о м языкаLназывается множество всех слов изL,
не являющихся собственным префиксом никакого слова из L:
MAX(L) = {w ∈ L : wu /∈ L для любого u ∈ Σ+}.
Пр име р 6.
так как ни одно слово языка L1не является префиксом другого.
Пусть
Действительно, в любом собственном префиксе слова
b
не превосходит числа символовa, поэтому он не принадлежит
же
anbm∈ L2для anbm/∈ MIN(L2). Максимум языка anbm∈ L2его продолжение anb
Пусть
L2=
L1=
{anbm: 0
m > n
{anbn:
< n < m }
+ 1, то
m+1
n >0}
anb
. Тогда
. Тогда
m−1
также принадлежит
L2пуст, так как для любого слова
также принадлежит L2.
MIN(L1) =
MIN(L2) =
anb
MAX(L1) =
n+1
{anb
n+1
число символов
L2, поэтому
:
n >0}
L2. Если
Важным понятием в теории формальных языков является замкну­тость класса языков относительно некоторой операции.
) =
L1,
.
Оп ределен ие 21.
сительноn-местной операции
Класс языковLв алфавите Σ з а м к н у т отно-
f :
(Σ∗)n→
Σ, если для любых языков
L1, . . . , Ln∈ L выполняется f(L1, . . . , Ln) ∈ L.
Пр име р 7.
чение рекурсивно перечислимых множеств также рекурсивно перечислимо. Поэтому класс рекурсивно перечислимых языков замкнут относительно
В теории алгоритмов доказывается, что объединение и пересе-
§ 1.2. Операции над языками 23
операций объединения и пересечения. Он не замкнут относительно опера­ции дополнения, так как, например, дополнениеm-полного множества не является рекурсивно перечислимым. Класс рекурсивных языков замкнут относительно всех трёх указанных операций.
Задачи
8. Докажите, что если ε ∈ L, то L∗= L+, а если ε /∈ L, то L+= L∗\ { ε }.
9.
Приведите пример языка, который является итерацией некоторого бесконеч-
ного языка, но не является итерацией никакого конечного языка.
10.
Докажите, что языкLявляется итерацией какого-нибудь языка тогда и
только тогда, когда L∗= L.
11. Докажите, что если L2⊆ L
12. Докажите следующие равенства:
i
для некоторого i ∈ ω, то (L1∪ L2)∗= L
1
∗
1
(а) ϕ(L1· L2) = ϕ(L1) · ϕ(L2);
(б) ϕ(L∗) = (ϕ(L))∗;
(в) ϕ(L1∪ L2) = ϕ(L1) ∪ ϕ(L2);
(г) ϕ−1(
(д) ϕ−1(
L1∩L2) =
L1∪L2) =
ϕ−1(
ϕ−1(
L1)
L1)
∩ϕ−1(
∪ϕ−1(
L2);
L2);
(е) ПРЕФ(L)−1= СУФ(L−1);
(ж) ПРЕФ(ПРЕФ(L)) = ПРЕФ(L);
(з) ПРЕФ(L∗) = L∗ПРЕФ(L);
(и) (L1/L2)/L3= L1/(L2· L3).
13. Докажите следующие включения:
(а)(L1∩L2)
∗
(б) L
1
(в) (L1∩ L2)∗⊆ L
·L3⊆(L1·L3)∩(
∗
∪ L
⊆ (L1∪ L2)∗;
2
L2·L3);
(г) ϕ(L1∩ L2) ⊆ ϕ(L1) ∩ ϕ(L2);
(д) ϕ−1(L1) · ϕ−1(L2) ⊆ ϕ−1(L1· L2).
∗
∗
∩ L
;
1
2
Приведите примеры языков, для которых эти включения являются строгими.
14.
Приведите пример языков
L1и
L2таких, что языки
L1· L2и
L1· L2несрав-
нимы относительно ⊆.
15.
Пустьϕ:Σ∗→
∆∗— гомоморфизм. Какое множество слов является его
ядром?
16.
Назовём гомоморфизмϕ:Σ∗→
a ∈
Σ, такой чтоϕ(b) =bдля всех для некоторых
c, d ∈
∆. Неформально, гомоморфизм является специальным, если
∆∗специальным, если существует символ
b ∈Σ\ { a }
и либоϕ(a) =ε, либоϕ(a) =
cd
он либо удаляет ровно одну букву, либо заменяет её на две, при этом остальные буквы не изменяются. Докажите, что любой гомоморфизм можно представить в виде суперпозиции нескольких специальных гомоморфизмов.
24 Глава 1. Формальные грамматики и языки
17. Найдите тасовку слов w1= abb и w2= aac.
18. Докажите, что классы P, NP, PSPACE замкнуты относительно итерации.
19.
Докажите, что класс рекурсивных языков замкнут относительно неукорачи-
вающих гомоморфизмов, но не замкнут относительно проекций.
20.
К о м м у т а т и в н ы м з а м ы к а н и е м языка
всех слов, полученных из слов языкаLпроизвольными перестановками символов:
КОММ(L) = { w ∈ Σ∗: существует слово u ∈ L такое, что
для любого a ∈ Σ имеет место |w|a= |v|a}.
Докажите, что следующие классы языков замкнуты относительно коммутативного замыкания: класс рекурсивных языков, класс рекурсивно перечислимых языков, NP, PSPACE.
21. Множество п е р в ы х п о л о в и н с л о в языка L определяется как
1
L = { x : xy ∈ L для некоторого y ∈ L, такого что |x| = |y| }.
2
Докажите, что следующие классы языков замкнуты относительно взятия первых половин: класс рекурсивных языков, класс рекурсивно перечислимых языков, P, NP, PSPACE.
22. К в а д р а т н ы м к о р н е м из языка L называется язык
1/2
L
= { w : ww ∈ L }.
L ⊆
Σ∗называется множество
Докажите, что следующие классы языков замкнуты относительно квадратного корня: класс рекурсивных языков, класс рекурсивно перечислимых языков, P, NP, PSPACE.
23.
Ц и к л и ч е с к и м с д в и г о м языкаLназывается множество всех слов,
полученных из слов языка L с помощью циклических сдвигов:
ЦИКЛ(L) = { xy : x, y ∈ Σ∗, yx ∈ L }.
Докажите, что следующие классы языков замкнуты относительно циклического сдвига: класс рекурсивных языков, класс рекурсивно перечислимых языков, P, NP, PSPACE.
24.
Пусть Σ — произвольный алфавит. Докажите, что не существует языка
L ⊆ { a, b }∗такого, что для любой подстановки
f : { a, b } →
Σ выполнялось бы
f(L) = f(a) ∩ f(b).
25.
Приведите пример рекурсивного языкаLтакого, что язык
MAX(L
) не явля-
ется рекурсивно перечислимым.
26.
Приведите пример рекурсивно перечислимого языкаLтакого, что язык
MIN(L) не является рекурсивно перечислимым.
§ 1.3. Полусистемы Туэ 25
§ 1.3. Полусистемы Туэ
Основным предметом изучения теории формальных языков явля­ются различные способы задания языков. Если языкLконечен, то его можно задать, просто перечислив все слова, хотя такой способ и неэффективен. Для бесконечных языков такой подход не работает в принципе, поэтому нужны способы задания произвольных языков с помощью конечных описаний. Мы определим специальное исчис­ление, которое позволяет задавать преобразования слов с помощью конечного множества правил.
Оп ределен ие 22.
П о л у с и с т е м а Т у э — это параT= (Σ
, U
), где Σ — произвольный алфавит, аU— конечное множество пар слов в алфавите Σ.
Элементы множестваUназываются п р а в и л а м и полусистемы
ТуэT. Правило (
α, β)∈ U
будем записывать в виде
α → β
. Слово
α
называется л е в о й ч а с т ь ю правила, аβ— п р а в о й ч а с т ь ю правила.
Оп ределен ие 23.
ш е н и е в ы в о д и м о с т и за один шаг следующим образом:
ПустьT= (Σ
x ⇒Ty
, если существуют слова
, U
) — полусистема Туэ. О т н о -
⇒T⊆
Σ∗×
Σ∗определяется
u, v ∈
Σ∗и
правило α → β ∈ U такие, что x = uαv, y = uβv.
Содержательно, правило
α → β
позволяет заменить в любом слове любое вхождение словаαна словоβ. Если полусистема Туэ ясна из контекста, то мы будем опускать индексTи вместо
⇒Tписать
просто ⇒.
Как и для произвольных отношений, для степень. Отношение шагов. Как обычно, через тивное замыкание отношения замыкание. Отношение
n
⇒
называется отношением выводимости за
T
∗
⇒
обозначается рефлексивное транзи-
T
⇒T, а через
n
x ⇒
y
означает, что из словаxв полусистеме
T
⇒Tопределяетсяn-я
+
⇒
— его транзитивное
T
n
ТуэTможно получить словоy, последовательно применяяnправил.
26 Глава 1. Формальные грамматики и языки
Оп ределен ие 24.
ПустьT= (Σ
, U
) — полусистема Туэ. В ы в о -
д о м в полусистеме ТуэTназывается последовательность слов
(
x0, x1, . . . , xn) в алфавите Σ такая, что
0
6 i 6 n −
y
и з с л о в аx, если
1. Вывод (
x0, x1, . . . , xn) называется в ы в о д о м с л о в а
x0=x,
xn=y. Д л и н о й вывода называется
xi⇒Tx
i+1
для всех
число n, то есть число применений правил в выводе.
Из этого определения следует, что
x ⇒ny
тогда и только то-
гда, когда существует вывод словаyиз словаxдлиныn. Вывод
(x0, x1, . . . , xn) будем записывать в виде
x0⇒Tx1⇒T. . . ⇒Txn.
В частности при n = 0 вывод имеет вид (x0) или x0⇒
Пр име р 8.
ведены четыре вывода в полусистеме Туэ T = (Σ, U ).
Пр име р 9.
ским, если оно имеет вид а затем — символыb. Докажем, что в полусистеме ТуэT= (Σ го слова выводимо каноническое. Будем говорить, что пара ( беспорядок в словеw, если на позициях i и j стоят в неправильном порядке.
Сначала докажем, что если в словеw= то в подслове по
j −i
. Если
Пусть
j − i >
же
a
i+1
есть в подслове a
Теперь докажем, что из произвольного словаwвыводимо каноническое. Проведём доказательство индукцией по числу беспорядков вw. Если их нет, то слово уже каноническое. Пусть в словеwесть беспорядок, тогда по предыдущему утверждениюwимеет вид
Пусть Σ =
aabba ⇒ babba ⇒ aba ⇒ bba
bababa ⇒ baba ⇒ aa ⇒ ba
Пусть Σ =
ai. . . ajесть беспорядок вида (
j −i
= 1, тоj=i+1 и пара (
1. Если
=b, то по индукционному предположению искомый беспорядок
i+1
{a, b },U={(aa, ba),(bab, a),(ab, bb)}
aabba ⇒ abbba ⇒ bbbba
aabba ⇒ babba ⇒ bbbba
{a, b },U={(ba, ab)}
aibj, то есть если сначала в слове идут символыa,
a
i+1
. . . aj.
i < j,w(i
=a, то пара (
) =b,w(j) =a, то есть если символы
i, i
. Назовём слово канониче-
a1. . . anесть беспорядок (
k, k
+ 1). Проведём индукцию
i, j
) образует искомый беспорядок.
+ 1) образует беспорядок. Если
w1baw2. Применяя правило
0
x0.
T
. Ниже при-
, U
) из любо-
i, j
) образует
i, j
),
§ 1.3. Полусистемы Туэ 27
ba → ab
меньше, поэтому по индукционному предположению из него выводимо некоторое каноническое слово w0. Следовательно, w ⇒∗w0.
, получаем
w ⇒ w1abw2. Это слово содержит на один беспорядок
В определении 23 требуется лишь, чтобы левая часть правила встречалась в слове. Если она встречается более чем в одной позиции, то выполнить замену можно в любой из них. Может оказаться, что при замене в разных позициях получится один и тот же результат. Например, если полусистема Туэ содержит единственное правило
aa
, то
aa ⇒ aaa
, но неясно, какой из символовaзаменялся. Чтобы
a →
различать такие случаи, вводится понятие размеченного вывода.
Оп ределен ие 25.
T
= (Σ
, U
) — это последовательность (
при 0
6 i 6 n −
Р а з м е ч е н н ы й в ы в о д в полусистеме Туэ
1 — вхождения,
x0, x1, . . . , x
xn— слово такие, что выполняются
n−1
, xn), где
x
i
два условия:
1) xi= (
uαv, |u|+1, |α|),x
i+1
= (
uβv, j, k
) для некоторого правила
α → β ∈ U и некоторых j, k ∈ ω, u, v ∈ Σ∗при 0 6 i 6 n − 2;
2) x
n−1
= (
uαv, |u|
+ 1
, |α|),xn=
uβv
для некоторого правила
α → β ∈ U и некоторых u, v ∈ Σ∗.
Говоря неформально, размеченный вывод — это вывод, в котором в каждом слове, кроме последнего, отмечено заменяемое подслово. Еслиπ= (( аρ= (
y1, i1, j1)
y1, . . . , y
, . . . ,(y
, yn) — вывод, то будем говорить, что размеченный
n−1
n−1
, i
n−1
, j
)
, yn) — размеченный вывод,
n−1
выводπсоответствует выводуρ, а выводρсоответствует размеченно­му выводуπ. Ясно, что любому размеченному выводу соответствует единственный вывод, а одному выводу могут соответствовать несколь­ко размеченных выводов.
Для удобства при записи размеченного вывода мы будем просто подчёркивать заменяемые подслова.
Пр име р 10.
Выводам из примера 8 соответствуют следующие размечен-
28 Глава 1. Формальные грамматики и языки
ные выводы:
aabba ⇒ babba ⇒ aba ⇒ bba
bababa ⇒ baba ⇒ aa ⇒ ba
Пр име р 11. Пусть Σ = {a, b }, U = {(aa, a), (ab, b) }. Тогда выводу
aab ⇒ ab ⇒ b
соответствуют размеченные выводы
aab ⇒ ab ⇒ b, aab ⇒ ab ⇒ b.
aabba ⇒ abbba ⇒ bbbba
aabba ⇒ babba ⇒ bbbba
Мы предполагаем, что читатель знаком с понятием машины Тью­ринга. Мы приведём определение для уточнения обозначений.
Оп ределен ие 26.
М а ш и н а Т ь ю р и н г а — это пятёркаM=
(Q, Σ, P, q0, qf), где
1) Q — конечное множество с о с т о я н и й;
2)
Σ — конечный алфавит ленты, содержащий п у с т о й с и м ­в о л Λ;
3) P : Q × (Σ \ {qf}) → Q × Σ × {+1, −1, 0 } — п р о г р а м м а;
4) q0∈ Q — н а ч а л ь н о е состояние;
5) qf∈ Q — з а к л ю ч и т е л ь н о е состояние.
Работу машины Тьюринга можно определить с помощью поня­тия ленты — отображения
l : Z →
Σ, в которомl(i) задаёт символ,
хранящийся вi-й ячейке ленты. Однако лента неудобна тем, что она является бесконечным объектом. Поэтому мы определим работу машин Тьюринга в терминах слов Поста.
Оп ределен ие 27.
ринга, #/∈Σ вида #
v
uqav
не заканчивается на Λ. Н а ч а л ь н о е слово Поста — это слово
∪ Q
#, где
Пусть
M
= (Q,Σ
, P, q0, qf) — машина Тью-
— новый символ. С л о в о П о с т а — это слово
q ∈ Q,a ∈Σ,u, v ∈
Σ∗,uне начинается на Λ,
§ 1.3. Полусистемы Туэ 29
вида #
q0aw
#. З а к л ю ч и т е л ь н о е слово Поста — это слово вида
#uqfav#.
Слово Поста служит для представления ленты машины Тьюринга. Слово #
uqav
# означает, что машина Тьюринга находится в состоя­нииqи обозревает символa. Левее обозреваемого символа записано словоu, а правее — словоv. При этом крайние пустые символы не записываются. Заметим, что слово Поста описывает только содержи­мое непустой части ленты, но не задаёт номера ячеек, в которых оно находится.
Оп ределен ие 28.
M
= (Q,Σ
о д и н ш а г
, P, q0, qf) определяется о т н о ш е н и е п е р е х о д а з а
`M. Если
На множестве слов Поста машины Тьюринга
α `Mβ
, то мы говорим, что слово Поста
β
с л е д у е т за словом Постаαили является с л е д у ю щ и м словом Поста. Слово Поста, следующее за #
uqav
#, определяется так (далее
c и d обозначают произвольные символы из алфавита Σ \ {Λ }).
ПустьPсодержит команду
q, a → p, b,
+1. Отношение
`Mопре-
делено в следующей таблице. В первом столбце приведены огра­ничения на словаuиv, а также на символb. Во втором столбце определяется отношение перехода для соответствующего случая.
Условия Отношение ` u = u1c, v = dv
1
u = u1c, v = ε #u1cqa# `M#u1cbpΛ# u = ε, v = dv1, b 6= Λ #qadv1# `M#bpdv1# u = ε, v = dv1, b = Λ #qadv1# `M#pdv1# u = ε, v = ε, b 6= Λ #qa# `M#bpΛ# u = ε, v = ε, b = Λ #qa# `M#pΛ#
ПустьPсодержит команду
делено в следующей таблице.
M
#u1cqadv1# `M#u1cbpdv1#
q, a → p, b, −
1. Отношение
`Mопре-
30 Глава 1. Формальные грамматики и языки
. . . Λ Λ a Λ b a a Λ Λ . . .
. . . Λ Λ a Λ b a a Λ Λ . . .
. . . Λ Λ a Λ b a b Λ Λ . . .
a
q
1
a
q
2
a
q
3
Рис. 1. Ленты машины Тьюринга.
Условия Отношение ` u = u1c, v = dv
1
#u1cqadv1# `M#u1pcbdv1#
M
u = u1c, v = ε, b 6= Λ #u1cqa# `M#u1pcb# u = u1c, v = ε, b = Λ #u1cqa# `M#u1pc# u = ε, b 6= Λ #qav# `M#pΛbv# u = ε, v = ε, b = Λ #qa# `M#pΛ#
ЕслиPсодержит команду
q, a → p, b,
0, то #
uqav#`M#
upbv
#.
Пр име р 12.
соответствуют слова Поста
В третьем слове перед символом # стоит Λ, но это не противоречит опре­делению, так как это обозреваемый символ, а словоvпусто и не закан­чивается на Λ. Если в машине Тьюринга есть команды q2, a → q3, b, +1, то
Теорема 12.
На рис. 1 изображены три ленты машины Тьюринга. Им
#aΛbq1aa#, #aΛbaq2a#, #aΛbabq3Λ#.
#aΛbq1aa# ` #aΛbaq2a# ` #aΛbabq3Λ#.
По любой машине ТьюрингаM= (Q,Σ
q1, a → q2, a,
, P, q0, qf) мож-
+1 и
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]