Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория автоматов и формальных языков. Учебник.pdf
Скачиваний:
1
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
§ 3.2. Взаимозамещаемость 141
По отношению ≡Lполучается семь классов:
C1= {ε } C5= {ba } C2= {a } C6= {aba } C3= {b } C7= Σ∗\ { ε, a, b, ab, ba, aba } C4= {ab }
Правильность классов проверяется непосредственно по определению. В этом примере класс и
Bj. Это объясняется тем, что любые два слова, начинающиеся наb,
левовзаимозамещаемы, а любые два слова, заканчивающиеся наb, право­взаимозамещаемы (Lне содержит слов, начинающихся и заканчивающихся на b), но слова b и bb не являются взаимозамещаемыми в середине слова.
C3не является пересечением никаких классов
A
В приведённых примерах оказалось, что число классов взаимоза­мещаемости конечно. Приведём пример языка, для которого имеет место противоположный случай — каждый класс содержит ровно одно слово.
i
Теорема 60.
Σ, содержащем не менее двух букв:L=
ПустьL— множество всех палиндромов в алфавите
{w ∈
Σ∗:w=
w−1}
. Тогда каждый класс Майхилла-Нероуда для языкаLсодержит ровно одно слово.
Доказательство. Нужно доказать, что никакие два различных слова не являются левовзаимозамещаемыми. Пусть
x, y ∈
Σ∗,
x 6=y
Рассмотрим два случая.
Предположим сначала, что словаxиyразличаются некоторым
символом. Выберем самый левый из таких символов. Тогдаx=
y=ubw
, где
a 6=b
. Рассмотрим словоz=
v−1au−1. Получаемxz=
uav
uavv−1au−1∈ L, yz = ubwv−1au−1/∈ L, так как a 6= b.
Теперь предположим, что одно из словx,yявляется собственным
префиксом другого. Пусть для определённостиy=
xau
, где
a ∈
Σ. Пустьb— произвольный символ алфавита Σ, отличный отa(он существует, так как по условию|Σ
| >
2). Рассмотрим словоz=
bx−1.
Тогда xz = xbx−1∈ L, yz = xaubx−1/∈ L, так как a 6= b.
Введём специальный тип отношений на множестве всех слов.
.
,
142 Глава 3. Свойства регулярных языков
Оп ределен ие 68.
п р а в о и н в а р и а н т н ы м , если для любых трёх слов
Отношение
R
на множестве Σ∗называется
x, y, z ∈
∗
Σ
из (x, y) ∈ R следует (xz, yz) ∈ R.
Пр име р 58. Пусть
R1= {(x, y) : x и y заканчиваются на один и тот же символ }.
Это отношение правоинвариантно. Если ( и (
xz, yz)∈ R
Отношение
не является правоинвариантным. Если, например,x= то (
x, y)∈ R2, так как
|yz|b= 2.
. Если же
z 6=ε,xzиyz
R2= {(x, y) : |x|a= |y|b}
|x|a=
|y|b= 2, но (
x, y)∈ Rиz=ε
всегда заканчиваются на один символ.
xz, yz)/∈ R2, так как
, то (
xz, yz
) = (
x, y
aab, y=baab,z=aa
|xz|a= 4,
Докажем два свойства отношения Майхилла-Нероуда.
Ле мма 61.
Для любого языкаLотношение
Л
≡
является правоин-
L
вариантным.
Доказательство. Пустьu— произвольное слово.x(zu) и только тогда, когдаy(zu)
∈ L
в силу левой взаимозамещаемости
∈ L
тогда
словxиy. Используя ассоциативность конкатенации, получаем, что
(xz)
u ∈ L
Ле мма 62.
тогда и только тогда, когда (yz)
Любой языкLявляется объединением нескольких клас-
сов Майхилла-Нероуда по отношению ≡
u ∈ L
Л
.
L
, то есть
xz ≡
Л
yz
.
L
Доказательство. ПустьA— один из классов Майхилла-Нероуда. Пусть
x ∈ L,x ∈ A
, и пустьy— произвольное слово из классаA.
Полагая в определении левой взаимозамещаемостиu=ε, получаем
x ∈ L A ⊆ L
тогда и только тогда, когда
y ∈ L
. Следовательно,
y ∈ L
. Итак, если языкLимеет непустое пересечение с некоторым классом, то он целиком содержит этот класс. ПоэтомуLявляется объединением нескольких классов (возможно, одного класса или даже пустого множества классов в случае L = ∅).
Для классов Майхилла-Нероуда определяется операция умноже-
ния на символы алфавита и на произвольные слова.
)
,
и
§ 3.2. Взаимозамещаемость 143
Оп ределен ие 69.
произвольный символ. П р о и з в е д е н и е классаAи символа
ПустьA— класс Майхилла-Нероуда,
a ∈
Σ —
a
(обозначаетсяAa) — класс, содержащий какое-нибудь слово вида
xa для некоторого x ∈ A.
Произведение классаAи произвольного словаwопределяется
индукцией по длине w.
Б а з и с и н д у к ц и и . Aε = A Ш а г и н д у к ц и и . A(wa) = (Aw)a для любого символа a
Из леммы 61 следует, что определение корректно, то есть класс
Aa не зависит от выбора слова из класса A.
Пр име р 59. Построим таблицу умножения для языка
L = {w ∈ {a, b }∗: w содержит ab }
из примера 56. Из класса классу
A1b=A1. Оставшиеся произведения вычисляются аналогично. В результате
получается следующая таблица умножения:
A2, а слово
A1выберем словоε. Слово
ε · b=b
принадлежит классу
a b A1A2A A2A2A A3A3A
ε · a=a
A1, поэтому
1
3
3
принадлежит
A1a=A2,
Можно заметить, что она очень похожа на таблицу конечного автомата для языкаL. Если объявить состояние распознающий язык L.
A1начальным, а
A1,
A2и
A3состояниями, причём сделать
A3— заключительным, то получится ДКА,
Теперь мы можем получить характеристику регулярных языков в
терминах отношения Майхилла-Нероуда.
Теорема 63
(Теорема Майхилла-Нероуда).ПустьL— произволь-
ный язык в алфавите Σ.
1)
Если языкLраспознаётся некоторым ДКА сnсостояниями, то ранг отношения ≡
Л
не превосходит n.
L
144 Глава 3. Свойства регулярных языков
2)
Если ранг отношения
Л
≡
равенn, то языкLраспознаётся
L
некоторым ДКА с n состояниями.
Доказательство. Докажем первое утверждение теоремы. Пусть
L=L(M
слова, переводящие
), гдеM= (Q,Σ
q0в одно и тоже состояние, левовзаимозамещаемы.
, δ, q0, F
) и
|Q|=n
. Докажем, что любые два
Действительно, пусть
(q0, x) `∗(q, ε),
(q0, y) `∗(q, ε).
Пусть u — произвольное слово. Тогда
(q0, xu) `∗(q, u),
(q0, yu) `∗(q, u),
поэтому далее автомат работает одинаково и либо примет, либо от­вергнет оба слова. Итак, каждому состоянию автомата соответствует некоторый класс Майхилла-Нероуда, причём разным состояниям мо­жет соответствовать один и тот же класс. Поэтому ранг отношения
Л
≡
не превосходит числа состояний. Неравенство может оказаться
L
строгим, то есть разбиение множества Σ∗на классы слов, переводя­щих
q0в одно и то же состояние, может оказаться более мелким, чем
разбиение на классы Майхилла-Нероуда.
Теперь докажем второе утверждение. Пусть сы Майхилла-Нероуда. Будем предполагать, что конечный автоматM= (Q,Σ
, δ, q1, F
) следующим образом. Состоя-
A1, . . . , An— все клас-
ε ∈ A1. Построим
ния автомата соответствуют классам Майхилла-Нероуда:
Q = { q1, q2, . . . , qn}.
Начальное состояние
q1соответствует классу
A1, содержащему пу-
стое слово. Заключительными состояниями являются те и только те, которые соответствуют классам, содержащимся в языке:
F = {qi∈ Q : Ai⊆ L }.
§ 3.2. Взаимозамещаемость 145
Функция переходов соответствует таблице умножения классов на символы:
qi, a → qj∈ δ тогда и только тогда, когда Aia = Aj.
Индукцией по длине словаwдокажем следующее утверждение: Aiw = Ajтогда и только тогда, когда (qi, w) `∗(qj, ε).
Б а з и с и н д у к ц и и . Пустьw=ε. Тогда
Ai=
Ajи
qi=
qj, так
что оба равенства выполняются или не выполняются одновременно.
Ш а г и н д у к ц и и . Пустьw=va, и пусть
определению умножения существует класс
Akтакой, что
Aka=Aj. По индукционному предположению (
построению
(
qi, va)`∗(
состояние ному предположению
qk, a → qj∈ δ
qj, ε
). Тогда по определению работы автомата существует
qk, такое что (
. Поэтому (
qi, v)`∗(
qi, va)`∗(
qk, ε
) и
qk, a → qj∈ δ
Aiv=Ak, а по построению
Ai(va) =
Aiv=Ak,
qi, v)`∗(
qj, ε
). Наоборот, пусть
qk, ε
. По индукцион-
Aka=Aj. Поэтому
Aj. По
), а по
Ai(va) = Aj.
Теперь докажем, чтоL=L(M). Пусть ет класс Майхилла-Нероуда лемме 62
Ai⊆ L
. Так как
Ai, содержащий словоw, причём по
A1содержит пустое слово, то
По доказанному утверждению имеем (
Ai⊆ L
(
, то по построению
q1, w)`∗(
qi, ε
), где
qi∈ F
qi∈ F
, поэтому
. По утверждению
w ∈ L
q1, w)`∗(
w ∈ L(M
w ∈ Ai. Но так как
, тогда существу-
A1w=Ai.
qi, ε
). Но так как
). Наоборот, пусть
qi∈ F , то Ai⊆ L, а значит, w ∈ L.
Можно дать характеристику регулярных языков и в терминах правоинвариантных отношений.
Теорема 64. Следующие три утверждения эквивалентны:
1) язык L является регулярным;
2)
языкLявляется объединением нескольких классов эквивалент­ности по правоинвариантному отношению R конечного ранга;
3) отношение ≡
Л
имеет конечный ранг.
L
146 Глава 3. Свойства регулярных языков
Доказательство. 1)⇒2) По лемме 62 языкLявляется объеди-
нением нескольких классов по отношению
Л
≡
. По теореме Майхилла-
L
Нероуда это отношение имеет конечный ранг, а по лемме 61 оно
правоинвариантно.
2)⇒3) ПустьR— правоинвариантное отношение конечного ранга.
Рассмотрим два произвольных словаxиyтаких, что ( какRправоинвариантно, то для любогоzвыполняется (
R
. Поскольку по условию каждый класс по отношениюRцеликом
содержится либо вL, либо вL, то
yz ∈ L
Л
x ≡
y
L
, то есть
, поэтому классы по отношению
x ≡
Л
y
. Мы доказали, что из (
L
xz ∈ L
≡
тогда и только тогда, когда
Л
получаются объединением
L
x, y)∈ R
x, y)∈ R
. Так
xz, yz)∈
следует
некоторых классов по отношениюR. Так как рангRконечный, то
Л
≡
тем более имеет конечный ранг.
L
3)⇒1) Это одно из утверждений теоремы Майхилла-Нероуда.
Сл едствие 65.
когда отношение ≡
ЯзыкLявляется регулярным тогда и только тогда,
Л
имеет конечный ранг.
L
Теорема Майхилла-Нероуда имеет многочисленные применения в теории формальных языков. Мы рассмотрим три из них. Наибо­лее прямое применение теоремы — доказательство нерегулярности языков.
Пр име р 60.
языкL= зультат с помощью теоремы Майхилла-Нероуда. Предположим, что этот язык регулярный. Тогда по теореме Майхилла-Нероуда отношение левой взаимозамещаемости имеет конечный ранг. Обозначим егоn. Рассмотрим слова
ε, a, aa, . . . , an. Поскольку количество слов превосходитn, то какие-то
два из них являются левовзаимозамещаемыми. Пусть это будут слова
aj,
i 6=j
. Слово
L
. Получилось противоречие, так как
и язык L не является регулярным.
Пр име р 61.
из примера 54. Мы доказывали нерегулярностьLс помощью свойств за­мкнутости. Теорема Майхилла-Нероуда позволяет получить прямое дока-
Мы уже доказывали с помощью леммы о разрастании, что
{aibi:
i >0}
aibiпринадлежит языкуL, значит,
Рассмотрим языкL=
не является регулярным. Докажем этот же ре-
i 6=j
. Значит, предположение неверно,
2
j
{bia
:
ajbiтакже принадлежит
i >0, j >0} ∪ {ai:
aiи
i >0}
§ 3.2. Взаимозамещаемость 147
R
L
1
R
L
2
Рис. 21. Автоматно отделимые языки.
зательство. Если языкLрегулярный, то для него существует конечное число классов Майхилла-Нероуда, обозначим его черезn. Рассмотрим сло­ва
b, ba, baa, . . . , ban. Так как количество этих слов большеn, то среди них
найдутся два левовзаимозамещаемых, пусть это будут
2
n
ba
принадлежит языкуL. Заменяя префикс
ba
n2+j−i
. Так как 0
< j − i 6 n
, то
ba
n2+j−i
n2< n2+
/∈ L
слово тельство см. в примере 51), поэтому
abiи
abj,
i < j
.Слово
baiна
baj, мы получаем
j − i <(n
+ 1)2(доказа-
, что противоречит левой
взаимозамещаемости слов baiи baj.
Теперь покажем, как теорема Майхилла-Нероуда применяется для изучения автоматной отделимости языков. Это понятие аналогично понятию рекурсивной отделимости из теории алгоритмов.
Оп ределен ие 70.
Языки
L1и
L2называются а в т о м а т н о
о т д е л и м ы м и , если существует регулярный языкRтакой, что L1⊆ R, L2⊆ R (рис. 21).
2
3
i
Пр име р 62.
Языки
L1=
{aibi:
i >0}иL2=
{b
a
i
:
i >0}
автоматно
отделимы. В качестве R можно выбрать L(a∗b∗).
Приведём примеры неотделимых языков.
Пр име р 63.
L2=
{w ∈ {a, b }∗:
Поскольку является регулярным.
Пр име р 64.
Рассмотрим языки
|w|a6=|w|b}
L1=
L2, то в качествеRможно выбрать только
L1=
{w ∈ {a, b }∗:
|w|a=
. Они не являются автоматно отделимыми.
L1, но он не
Докажем, что следующие языки не являются автоматно
|w|b}
и
148 Глава 3. Свойства регулярных языков
отделимыми: что
L1⊆ R,L2⊆ R
Майхилла-Нероуда отношение
словаε,a,aa, Пусть это будут
L26⊆ R, так как ajbi∈ L2. Получилось противоречие.
L1=
{aibi:
. . .,an. По меньшей мере два из них левовзаимозамещаемы.
aiи
i >0},L2=
для некоторого регулярного языкаR. По теореме
aj,
i 6=j
. Поскольку
{aibj:
Л
≡
имеет конечный рангn. Рассмотрим
R
i, j >0, i 6=j }
aibi∈ R
, то
. Предположим,
ajbi∈ R
. Но тогда
Последнее применение, которое мы рассмотрим, — получение нижних оценок на число состояний ДКА, распознающего заданный языкL. Если доказать, что отношение
Л
≡
имеет ранг не менееn,
L
то по теореме Майхилла-Нероуда любой ДКА для языкаLдолжен иметь не менее n состояний.
В теореме 31 мы доказали, что по любому НКА сnсостояниями можно построить эквивалентный ему ДКА, содержащий не более 2 состояний. Мы докажем, что эта оценка не улучшается.
Теорема 66.
Для любого натурального числа
n >
0 существует НКА сnсостояниями такой, что любой эквивалентный ему ДКА содержит не менее 2nсостояний.
Доказательство. Для n > 0 определим НКА
Mn= ({q0, . . . , q
}, {a, b }, δ, {q0}, {q0})
n−1
n
со следующей программой:
δ(qi, a) = {q
δ(q
, a) = {q0},
n−1
} при 0 6 i 6 n − 2,
i+1
δ(qi, b) = {q0, qi} для 1 6 i 6 n − 1.
Автомат
Mnсодержит цикл (
q0, q1, . . . , q
, q0), на котором все рёбра
n−1
помечены символомa, а в каждом состоянии отличном от петля с меткойbи ребро с меткойb, возвращающееся в
q0. На рис. 22
изображён НКА M6.
Для каждого множества состояний
ЕслиS=
{q
, q
, . . . , q
i
i
1
2
i
k
},
причём
S ⊆ Q
определим словоw(S).
i1< i2< · ·· < ik, тоw(S) опреде-
q0есть
§ 3.2. Взаимозамещаемость 149
bb
a
q
5
b
b
a
q
4
a
q
0
a
b
q
b
q
3
b
b
a
1
q
a
2
b b
Рис. 22. Конечный автомат M6.
ляется следующим образом:
b, если S = ∅
w(S) =
ai, если S = {qi}
 
a
ik−i
k−1
i
k−1−ik−2
ab
b . . . ba
i2−i
i
1
1
ba
, если k > 1
Докажем, чтоS— это множество состояний, в которые перейти по словуw(S) из состояния в автомате нет команд с левой частью верно, так как существует единственное вычисление ( Для остальных слов заметим, что слово в состояние состояния
q
приi+
i+j
qi,
i 6
= 0, может перейти в
j < n
утверждение обратной индукцией поj: по слову автомат может перейти из q0в состояния q
Б а з и с и н д у к ц и и . Еслиj=
поэтому оно переводит q0только в состояние q
Ш а г и н д у к ц и и . Пусть по слову
мы состояния
q
ik−i
, . . . , q
j
i
j+1−ij
q0. Для словаbэто верно, так как
q0, b
. Для слова
q0, ai)
ajпереводит состояние
, а по символуbавтомат из любого
q0и
qi. Докажем следующее
ik−i
k−1
a
, . . . , q
ik−i
j
k −
1, то слово имеет вид
k−1
ik−i
b . . . ba
a
ik−i
k−1
i
j+1−ij
.
i
j+1−ij
. Прочитав символb, автомат может
Mnможет
aiэто также
`∗(
qi, ε
i
b . . . ba
j+1−ij
.
ik−i
k−1
a
достижи-
).
q
i
,
150 Глава 3. Свойства регулярных языков
Прочитанный префикс Множество состояний
ik−i
k−1
a a a a
ik−i
ik−i
ik−i
k−1
b q
i
k−1
k−1−ik−2
ba
i
k−1
k−1−ik−2
ba
b q
q
ik−i
ik−i
q
i
k−1−ik−2
i
k−1−ik−2
k−1
k−1
, q
0
, q , q
ik−i
ik−i
k−2
k−2
, q
0
. . . . . .
a a a
ik−i
ik−i
ik−i
k−1
k−1
k−1
b . . . ba b . . . ba b . . . ba
i2−i
i2−i
i2−i
1
1
b q
i
1
1
ba
q
q
ik−i
ik−i
i
k
, . . . , q
1
, . . . , q
1
, . . . , q
i2−i
1
, q
i2−i
, q
i
2
0
1
i
1
Рис. 23. Работа НКА Mnна слове w(S).
остаться в любом из этих состояний или попасть в
ij−i
слова поэтому получаются состояния q
j−1
a
индекс каждого состояния увеличивается на
j−1
, . . . , q
ik−i
q0. После прочтения
i
j+1−ij−1
, q
ij−i
j−1
ij− i
.
j−1
В частности, после прочтения всего слова получатся состояния
q
, q
i
k−1
, . . . , q
i
k
(на последнем шаге можно считать, что
i
1
i0= 0). На
рис. 23 работа автомата Mnизображена в виде таблицы.
Теперь докажем, что любой ДКА эквивалентный
Mnимеет не
менее 2nсостояний. По теореме Майхилла-Нероуда достаточно дока- зать, что существует 2nслов, никакие два из которых не являются левовзаимозамещаемыми. В качестве таких слов мы выберем слова
w(S
) для всех
P(Q), то есть 2n. Докажем, чтоw(S)
S 6=T
, то существует состояние этих множеств. Пусть для определённости доказанному утверждению ( Поэтому ( попасть в тельно,w(S)
S ⊆ Q
q0, w(S)a
n−i
q0по слову
n−i
a
∈ L(Mn),w(T)
. Их количество равно мощности множества
Л
6≡
w(T
) при
L
S 6=T
. Так как
qi, принадлежащее только одному из
q0, w(S))`∗(
)
`∗(
q0, ε
), (
q0, w(T)a
n−i
a
можно только из состояния
n−i
a
qi, ε
/∈ L(Mn), то естьw(S)
qi∈ S,qi/∈ T
), (
q0, w(T))6`∗(
n−i
)
6`∗(
. Согласно
q0, ε
), так как
qi. Следова-
Л
6≡
L
qi, ε
w(T
при S 6= T .
,
).
)
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]