Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория автоматов и формальных языков. Учебник.pdf
Скачиваний:
1
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
Свойства регулярных языков 131
Глава 3

Свойства регулярных языков

§ 3.1. Лемма о разрастании для регулярных
языков
Мы уже доказывали, что множество языков в не более чем счёт­ном алфавите Σ несчётно (теорема 4). С другой стороны, по той же теореме множество регулярных выражений над алфавитом Σ счётно как множество слов в алфавите Σ∪{(,),+ множество регулярных языков в алфавите Σ также счётно, поэтому существуют нерегулярные языки. Однако это доказательство некон­структивно, так как оно не позволяет привести пример конкретного нерегулярного языка. Одним из инструментов для доказательства нерегулярности языков является лемма о разрастании.
Ле мма 56
любого регулярного языкаLсуществует натуральное числоkтакое, что любое слово w = xyz так, что выполняются три условия:
(Лемма о разрастании для регулярных языков).Для
w ∈ L
длины большеkможно представить в виде
, ·,∗}
. Отсюда следует, что
132 Глава 3. Свойства регулярных языков
1) |xy| 6 k;
2) |y| 6= 0;
3) для любого i ∈ ω слово wi= xyiz принадлежит языку L.
Доказательство. ПустьLраспознаётся ДКАM= (Q,Σ Пустьk= длины большеk. Автомат распознаёт его, то есть ( некоторого
|Q| −
1. Рассмотрим произвольное словоw=
qf∈ F
. Пусть при работе наwавтоматMпроходит по-
q0, w)`∗(
, δ, q0, F
a1. . . am∈ L
qf, ε
) для
следовательность состояний (q0, q1, . . . , qm). Эта последовательность содержитm+ 1 состояние. Так как
m > k
, то её длина больше числа состояний автомата. Поэтому некоторое состояние встречается в этой последовательности два раза. Пустьl— наименьшее число, для ко­торого существует для которого
x = a1. . . aj, y = a
j < l
такое, что
qj=
ql. Разобьёмwна три части следующим образом:
. . . al, z = a
j+1
qj=
ql. Пустьj— то число
. . . am. Тогда
l+1
j < l
(q0, x) `∗(qj, ε), (qj, y) `∗(ql, ε), (ql, z) `∗(qm, ε).
Проверим три утверждения.
1)
Все состояния Значит, их число не превосходит
q0, q1, . . . , q
попарно различны по выборуl.
l−1
|Q|=k
+ 1. Следовательно,
|xy| 6 k.
2) Слово y непусто, так как j 6= l.
).
,
3)
По выбору словаyимеем (
qj, y)`∗(
qj, ε
), так как
i = 0, то wi= xz, поэтому
(q0, xz) `∗(qj, z) = (ql, z) `∗(qm, ε).
Если i = 1, то wi= w и wi∈ L. Если же i > 1, то
(q0, xyiz) `∗(qj, yiz) `∗(qj, y
i−1
z) `∗··· `∗(qj, z) `∗(qm, ε).
Во всех случаях получилось xyiz ∈ L.
qj=
ql. Если
§ 3.1. Лемма о разрастании для регулярных языков 133
Неформально, лемма утверждает, что если языкLявляется регу­лярным, то любое достаточно длинное слово на три части
xyz
так, что центральную частьyможно повторять
w ∈ L
можно разбить
произвольное число раз, так что слово «разрастается».
Лемма о разрастании позволяет доказывать, что язык не является
регулярным. Опишем общую схему доказательства.
1)
Предположим, что языкLявляется регулярным, тогда для него существует константа k из леммы о разрастании.
2)
Выберем некоторое конкретное слово
w ∈ L
длины болееk.
Заметим, что w должно зависеть от k.
3)
Докажем, что для л ю б о г о разбиенияw=
xyz
существует
число i такое, что wi/∈ L.
4)
Полученное противоречие с леммой о разрастании доказывает, что язык L не регулярный.
Поскольку в лемме о разрастании речь только идёт о словах боль­шой длины, то при её использовании можно считать, что константа
k
достаточно велика, например,
k >
3. Если утверждение леммы вы­полняется для маленького значенияk, то оно и подавно выполняется для большего значения.
Рассмотрим несколько примеров.
Пр име р 50.
гулярным. Проведём доказательство от противного. Предположим, что язык
L1регулярный. Тогда для него существует константаkиз леммы
о разрастании. Рассмотрим словоw=
длина большеk. По лемме о разрастании его можно представить в виде
w=xyz w
начинается сkсимволовa, а в блокеa. Следовательно,y= Рассмотрим слово так как предположение неверно и язык L1не является регулярным.
Докажем, что язык
так, что
k − j 6=k
|xy| 6 n,|y| 6
w0:
. Но это противоречит лемме о разрастании. Значит,
w0=
L1=
{anbn:
akbk. Оно принадлежит
= 0 и
wi=
xyiz ∈ L1для всех
|xy| 6 n
ajдля некоторого
k−jbk
a
, то словоxyцеликом содержится
. Это слово не принадлежит языку
n >0}
j >
0 (так как
не является ре-
L1, а его
i ∈ ω
. Так как
|y| 6
= 0).
L1,
134 Глава 3. Свойства регулярных языков
Сл едствие 57.
Класс регулярных языков является собственным
подклассом класса КС-языков.
Доказательство. Все регулярные языкм контекстно-свободны, так как они порождаются праволинейными грамматиками. Язык из предыдущего примера контекстно-свободен (см. пример 6), но не является регулярным.
2
k >
{ap:
n
{a
:
n >0}
не является ре-
k >
xyz
0. Итак,
, гдеy=
k2< |w2| <(k
ai, 0
p — простое число }
ap. Его можно представить
w
p+1
1. Пусть
< i 6 k
+ 1)2,
не явля-
p+1
=
xy
Пр име р 51.
Докажем, что язык
L2=
гулярным. Доказательство проводится аналогично предыдущему. Пусть
k
— константа из леммы о разрастании. Можно считать, что
2
k
w=a
. Тогдаwможно представить в видеw=
Рассмотрим слово w2= xyyz. Имеем
|w2| = k2+ i 6 k2+ k < k2+ 2k + 1 = (k + 1)2.
С другой стороны
значит,
w2/∈ L2, так как его длина заключена между соседними квадратами
|w2| > k2, так как
и, следовательно, сама квадратом не является. Получилось противоречие с леммой о разрастании.
Пр име р 52.
Докажем, что язык
L3=
ется регулярным. Пустьk— константа из леммы о разрастании, и пустьp— простое число большееk(такоеpвсегда существует, так как множество про­стых чисел бесконечно). Рассмотрим словоw= в видеw=
xyz
, гдеy=
ai, 0
< i 6 k
. Рассмотрим слово
Имеем
|w
| = p + pk = p(k + 1).
p+1
.
z
.
Это число составное, так как
k >
0 и
p >
1. Значит,
w
p+1
/∈ L3, что
противоречит лемме о разрастании.
Пр име р 53.
Докажем, что язык
L4=
{aibj:
i, j >0, i 6=j }
не является регулярным. Пустьk— константа из леммы о разрастании. Рассмотрим словоw=
Так как
Рассмотрим слово
k!/l
+ 1. Это число целое, так как
k+k!
akb
|xy| 6 k
. Пустьw=
, тоy=
wi=
k+(i−1)lbk+k!
a
xyz
— его разбиение из леммы о разрастании.
alдля некоторогоlтакого, что 0
. Выберем в качествеiчислоi=
l 6 k
, аk! является произведением
< l 6 k
всех натуральных чисел от 1 доk, включаяl. Подставляя это значение
i
в выражение для
wi, получаем
wi=
k+k!bk+k!
a
/∈ L4, что противоречит
.
§ 3.1. Лемма о разрастании для регулярных языков 135
лемме о разрастании. Выбор числаk+k! в качестве количества символов объясняется тем, что k! заведомо делится на длину слова y.
Нерегулярность языка
L4— регулярный язык. ЯзыкL(
язык
L4∩ L(a∗b∗) также регулярный, так как класс регулярных языков
замкнут относительно пересечения и дополнения. Но это язык
L4можно доказать и проще. Предположим, что
a∗b∗) является регулярным, следовательно,
L1из при-
мера 50, а он не является регулярным. Значит, предположение неверно и язык L4также нерегулярный.
Теперь приведём пример, показывающий, что лемма о разрастании
не является достаточным условием регулярности языка.
2
Пр име р 54.
константы выберем числоk= 1. Пусть Еслиw=
p+i−1aq
wi=
b
Тогда wi= a
Однако язык
Пусть
2
q
bpa
2
∈ L4. Если жеw=
p+i−1
L5=
,
i >
0, то можно взятьx=ε,y=b,z=
∈ L4.
L4не регулярный. Действительно, если бы он был регу-
j
{bia
:
i >0, j >0} ∪ { ai:
|w| >
1. Возможны два случая.
ap, то можно взятьx=ε,y=a,z=
i >0}
b
. В качестве
2
p−1aq
. Тогда
a
p−1
лярным, то регулярным был бы и язык
0
L
= L4∩ L(ba(a + b)∗) = {ba
4
Пустьk— константа из леммы о разрастании для
2
j
: j > 0 }.
0
L
. Рассмотрим два
4
случая. Еслиx=ε, тоyначинается наb, поэтомуxzне содержитb, а значит,
xz /∈ L
доказывается, что число нулей в слове а значит,
0
. Если же
4
xyyz /∈ L
x 6=ε
, тоy=
0
. Следовательно, язык
4
al, 0
< l < n
xyyz
не является полным квадратом,
0
L
не регулярный, а значит, язык
4
. Как и в примере 51
L4тоже не регулярный.
Лемма о разрастании утверждает, что в начале достаточно длинно-
го слова существует фрагмент, который можно повторять. Нетрудно показать, что такой фрагмент существует внутри любого достаточно длинного подслова.
b
.
Ле мма 58.
Для любого регулярного языкаLсуществует натураль­ное числоkтакое, что любое слово вида представить в виде
uwv=uxyzv
так, что выполняются три условия:
1) |xy| 6 k;
uwv ∈ L
, где
|w| > k
, можно
136 Глава 3. Свойства регулярных языков
2) |y| 6= 0;
3) для любого i ∈ ω слово wi= uxyizv принадлежит языку L.
Доказательство. См. задачу 108.
Эта обобщённая лемма о разрастании также не является доста­точным условием регулярности языка. В задаче 109 приведён пример нерегулярного языка, для которого выполняется заключение лем­мы 58.
Задачи
106. Докажите, что следующие языки не являются регулярными:
(а) L1= { aibj: 0 < i < j };
(б) L2= { aibj: i > j > 0 };
(в) L3= { w ∈ { a, b }∗: |w|a= 2|w|b};
(г) L4= { bbaibj: 0 < i 6 j };
(д) L5= { a2ib
(е) L6= { a
(ж) L7= { an: n — составное число };
(з) L8= { ai#w : i > 0, w − двоичная запись числа i };
(и) L9= { w ∈ { a, b }∗: w = w−1};
(к) L10= { ww : w ∈ { a, b }∗};
(л) L11= { ambn: числа m и n взаимно просты };
(м) L12= { a
(н) L13= { an: n — степень простого числа }.
107. Определите, какие из следующих языков являются регулярными:
(а) L1= { (ab)i(ab)i: i > 0 };
(б) L2= { (ab)iba(ab)i: i > 0 };
(в) L3= { a
(г) L4= { bna
(д) L5= { a
(е) L6= { uv : u, v ∈ { a, b }∗, |u|a= |v|b};
(ж) L7= { u#v : u, v ∈ { a, b }∗, |u|a= |v|b}.
108. Докажите лемму 58.
3i−5
: i > 1 };
n
2
: n > 0 };
[n√n ]
: n > 0 };
[√n]
: n > 0 };
[log2n]
: n > 0 };
|[40 sin(n2+n)]|
: n > 0 };
§ 3.2. Взаимозамещаемость 137
109.
Пусть
L1={(
слова вида которые содержат одно из подслов bb, bc, cc.
(а) Докажите, что язык L1не является регулярным. (б)
110.
ся некоторыми детерминированными машинами Тьюринга в памятиO(
(а)
(б)
111.
рой одноленточной детерминированной машиной Тьюринга за времяO(
112.
нием конечного числа арифметических прогрессий.
ajдля
Докажите, что язык няется заключение леммы 58.
Докажите, что следующие языки не являются регулярными, но распознают-
язык
L1в алфавите{0,1,#}, состоящий из всех слов вида
где
n >0,xi— двоичная запись числаiбез ведущих нулей, то есть
L = { 0, 0#1, 0#1#10, 0#1#10#11, . . . };
язык
(n)
x
#
x
0
держащая ровноnцифр, включая все ведущие нули, то естьL= { 0#1, 00#01#10#11, . . . }.
Докажите, что язык
Докажите, что множество длин слов регулярного языка является объедине-
ba+)i(
ca+)ic:i >0}
j >
0). Пусть
L2в алфавите{0,1,#}, который состоит из всех слов вида
(n) 1
#
. . .#x
(n) 2n−1
L2— множество всех слов в алфавите
L1∪ L2не является регулярным, но для него выпол-
, где
L1=
{ anbn:
(через
n >0,x
n >0}
a+для краткости обозначены все
{ a, b, c }
log2log2n
x0#
x1#
. . .#xn,
(n)
— двоичная запись числаi, со-
i
из примера 50 распознаётся некото-
n log2n
,
):
).
§ 3.2. Взаимозамещаемость
В этом параграфе мы дадим точную характеристику регулярных языков в терминах отношений эквивалентности.
Оп ределен ие 67.
м е щ а е м ы м и относительно языкаL, если для любого слова имеет место
xu ∈ L
взаимозамещаемость словxиyотносительно языкаLобозначается
Л
x ≡
y.
L
Словаxиyназываются п р а в о в з а и м о з а м е щ а е м ы м и относительно языкаL, если для любого словаuимеет место тогда и только тогда, когда слов x и y относительно языка L обозначается x ≡
Словаxиyназываются в з а и м о з а м е щ а е м ы м и относи-
Словаxиyназываются л е в о в з а и м о з а -
тогда и только тогда, когда
yu ∈ L
. Левая
ux ∈ L
uy ∈ L
. Правая взаимозамещаемость
П
y.
L
u
138 Глава 3. Свойства регулярных языков
тельно языкаL, если для любых словuиvимеет место тогда и только тогда, когда
uyv ∈ L
. Взаимозамещаемость словxи
uxv ∈ L
y относительно языка L обозначается x ≡Ly.
Взаимозамещаемость словxиyотносительноLозначает, что в любом словеwв любой позиции можно заменитьxнаyили наобо­рот, при этом принадлежность слова языкуLне изменится. Левая и правая взаимозамещаемость означают, чтоxиyможно заменять друг на друга в начале или в конце слова соответственно. Отношение левой взаимозамещаемости будем называть также о т н о ш е н и е м М а й х и л л а - Н е р о у д а, а классы эквивалентности по этому отно­шению — к л а с с а м и М а й х и л л а - Н е р о у д а.
Л
Ле мма 59.
Отношения
≡
П
,
≡
и
L
≡Lявляются отношениями экви-
L
валентности.
Доказательство. Три свойства эквивалентности проверяются непосредственно (задача 113).
Пр име р 55.
словаabи слова на другое чётность числа символов не меняется. Словаbaи являются ни лево-, ни правовзаимозамещаемыми, так как приu=εимеем bau ∈ L и uba ∈ L, но babu /∈ L и ubab /∈ L.
ПустьL— все слова чётной длины в алфавите
bbab
являются взаимозамещаемыми, так как при замене одного
{a, b }
. Тогда
bab
не
Из определения сразу следует, что взаимозамещаемые слова явля­ются также левовзаимозамещаемыми и правовзаимозамещаемыми. Поэтому для любого класса взаимозамещаемостиAсуществуют клас­сы левой взаимозамещаемости
AЛи правой взаимозамещаемости
A
П
такие, что A ⊆ AЛ∩ AП.
Пр име р 56.
сти для языка L = {w ∈ {a, b }∗: w содержит ab }.
По отношению ≡
Найдём классы по всем трём отношениям взаимозамещаемо-
Л
получаются следующие три класса:
L
A1= {w : w не содержит ab и не заканчивается на a },
A2= {w : w не содержит ab и заканчивается на a },
A3= {w : w содержит ab }.
§ 3.2. Взаимозамещаемость 139
По отношению ≡
П
также получаются три класса:
L
B1= {w : w не содержит ab и не начинается на b },
B2= {w : w не содержит ab и начинается на b },
B3= {w : w содержит ab }.
Наконец, по отношению ≡Lполучается пять классов:
C1= {w : w не содержит ab, не заканчивается на a и не начинается на b },
C2= {w : w не содержит ab, не заканчивается на a и начинается на b },
C3= {w : w не содержит ab, заканчивается на a и не начинается на b },
C4= {w : w не содержит ab, заканчивается на a и начинается на b },
C5= {w : w содержит ab }.
Докажем для примера, что классы
Л
Для отношений
≡
П
и
≡
L
доказательство аналогично. Сначала докажем,
L
C1, . . . , C5определены корректно.
что любые два слова из одного класса взаимозамещаемы. Пустьuиv— произвольные слова. Сначала заметим, что если одно из словu,vсодержит
ab
, то для любыхx,yоба слова
uxvиuyv
также содержатab, поэтому оба слова принадлежатL. Поэтому остаётся рассмотреть лишь случаи, когда ни u, ни v не содержат ab.
1)
Пусть вид содержатab, так как
ab
x, y ∈ C1. Тогда каждое из этих слов либо пусто, либо имеет
ax0b,ay0b
, где
x0,
y0не содержатab. Тогда ни
u, v, x, y
не содержатab, а на границе двух слов
uxv
также образоваться не могло, потому чтоxиyне начинаются на
b и не заканчиваются на a.
2)
Пусть
bx0b,by0b
и
x, y ∈ C2. Тогда каждое из этих слов имеет вид либоb, либо
, где
x0,
y0не содержатab. Еслиuзаканчивается наa, то
uyv
содержатabна границеuсxиuсy. Если жеuне заканчивается
на a, то оба слова не содержат ab (как в первом случае).
3)
Пусть
ax0a,ay0a uyv
x, y ∈ C3. Тогда каждое из этих слов имеет вид либоa, либо
, где
x0,
y0не содержатab. Еслиvначинается наb, то
содержатabна границеxсvиyсv. Если жеvне начинается
на b, то оба слова не содержат ab.
, ни
uyv
uxv
не
uxv
и
140 Глава 3. Свойства регулярных языков
4)
Пусть
Еслиuзаканчивается наaилиvначинается наb, то оба слова
uyv содержат ab. В противном случае оба слова не содержат ab.
5)
Пусть содержат ab.
Теперь докажем, что никакие два слова из разных классов не являют­ся взаимозамещаемыми. Поскольку отношение эквивалентности, то достаточно привести примеры слов по одному на каж­дый класс, не являющихся взаимозамещаемыми. Выберем следующие пять слов:
z1=ε,
взаимозамещаемыми, проверяется непосредственно:
x, y ∈ C4. Тогдаx=
x, y ∈ C5. Тогдаxиyсодержатab, поэтому
z2=b,
z3=a,
bx0a,y=by0a
z4=ba,
, где
x0,
y0не содержатab.
≡Lявляется отношением
z5=ab. То что они не являются
uxvиuyv
uxv
оба
,
1) az1= a /∈ L, но az2= ab ∈ L;
2) z1b = b /∈ L, но z3b = ab ∈ L;
3) az1= a /∈ L, но az4= aba ∈ L;
4) z1/∈ L, но z5∈ L (u и v пусты);
5) az2= aa ∈ L, но az3/∈ L;
6) z2b = bb /∈ L, но z4b = bab ∈ L;
7) z2/∈ L, но z5∈ L;
8) az3= aa /∈ L, но az4= aba ∈ L;
9) z3/∈ L, но z5∈ L;
10) z4/∈ L, но z5∈ L.
В примере 56 оказалось, что классы взаимозамещаемости явля­ются пересечениями классов левой и правой взаимозамещаемости:
C1=
A1∩B1,
C2=
A1∩B2,
C3=
A2∩B1,
C4=
A2∩B2,
C5=
A3∩B
(остальные пересечения пусты). Как показывает следующий пример,
такое равенство не всегда имеет место.
Пр име р 57.
сти для языка L = {aba } в алфавите Σ = {a, b }.
По отношению ≡
По отношению ≡
Найдём классы по всем трём отношениям взаимозамещаемо-
Л
получается пять классов:
L
A1= {ε } A4= {aba } A2= {a } A5= Σ∗\ { ε, a, ab, aba } A3= {ab }
П
также получается пять классов:
L
B1= {ε } B4= {aba } B2= {a } B5= Σ∗\ { ε, a, ba, aba } B3= {ba }
3
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]