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

Свойства регулярных языков 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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
