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

§ 4.2. Моделирование НКА 181
приведён на рис. 27.
Сформулируем инвариант цикла в строках 1–20.
Ле мма 88.
ство Si= {q ∈ Q : (q0, a1. . . ai) `
Для каждого индексаi= 0,1
∗
(q, ε) }.
M
, . . . , n
выполняется равен-
Доказательство. Доказательство проводится индукцией по
(задача 160).
Теорема 89.
Пусть в НКАM= (Q,Σ
, δ, q0, F
) из каждого состояния имеется не болееkпереходов. Тогда время работы алгоритма
МоделированиеНКА на автоматеMи словеwсоставляетO(
mnk
где m = |Q|, n = |w|.
Доказательство. По лемме 88
Sn=
{q ∈ Q
: (
q0, w)`
∗
M
(
q, ε)}
Автомат распознаётwтогда и только тогда, когда для некоторого
q ∈ F
имеет место (
q0, w)`
∗
M
(
q, ε
), а это эквивалентно условию
Sn∩ F 6= ∅.
Теперь оценим время работы алгоритма. Сначала оценим время одной итерации внешнего цикла. Начальное присваивание выполняется
за времяO(mk), так как
|Si| 6 m
и для каждогоqмножествоδ(
q, ai)
содержит не болееkсостояний. Оставшаяся часть цикла выполняет
обход графа в ширину. Время такого обхода составляетO(
гдеE— множество рёбер графа. Так как число состояний равно
и для каждого из них есть не болееkпереходов, то
|E| 6 mk
|Q|+|E|
m
. Итак,
одна итерация внешнего цикла выполняется за времяO(mk). Так
как число итераций равноn+ 1, то общее время работы алгоритма
составляет O(mnk).
i
),
.
),
Сл едствие 90.
выражениюrи словуwпроверяет принадлежность
Существует алгоритм, который по регулярному
w ∈ L(r
) за
время O(mn), где n = |w|, m = |r|.
Доказательство. По следствию 44 можно построить НКАM=
(Q,Σ
, δ, q0, F
стояния имеется не более двух переходов. Автомат
выражениюrза времяO(
) такой, чтоL(M) =L(r),
|r|
) (задача 161), а время моделирования
|Q| 62|r|
и из каждого со-
M
строится по
M

182 Глава 4. Алгоритмические проблемы для регулярных языков
Algorithm МоделированиеНКА
Input: M = (Q, Σ, δ, q0, F ) — НКА,
w = a1a2. . . an— слово в алфавите Σ.
Output: «да», если w ∈ L(M),
«нет», если w /∈ L(M ).
1: for i = 0 to n do
2: if i = 0 then
3: S
4: else
5: S
6: end if
7: Пометить все состояния из S
8: Пометить все состояния из Q \ S
9: A = S
10: while A 6= ∅ do
11: q = первый элемент очереди A;
12: Удалить q из A.
13: for all p ∈ δ(q, ε) do
14: if p новое then
15: Отметить p как старое и добавить его в A.
16: S
17: end if
18: end for
19: end while
20: end for
21: if S
22: return «да»;
23: else
24: return «нет»;
25: end if
= {q0};
0
=[{δ(q, ai) : q ∈ S
i
; A — очередь.
i
= Si∪ {p };
i
∩ F 6= ∅ then
n
};
i−1
как старые.
i
как новые.
i
Рис. 27. Алгоритм моделирования НКА.

§ 4.2. Моделирование НКА 183
наwсоставляетO(mn) по теореме 89. Поэтому общее время также
составляет O(mn).
Пр име р 69.
познаёт ли он слово w1= bba.
Сначала мы помещаем в
достижимые из
что это будут q1и q2, поэтому
Рассмотрим НКА, изображённый на рис. 28. Проверим, рас-
S0состояние
q0. Затем найдём все состояния,
q0по пустым переходам. Из диаграммы автомата видно,
S0= {q0, q1, q2}.
Теперь смоделируем чтение символаb. Для
а в состояниях
q1и
q2, автомат не может читать символb. Поэтому в
q0имеется команда
q0, b → q0,
попадёт только q0. Выполняя обход по пустым переходам, находим
S1= {q0, q1, q2}.
Далее снова считываем символ b. Так как S1= S0, то S2= S1, то есть
S2= {q0, q1, q2}.
Теперь прочитаем последний символa. В автомате есть команды
q1, a → q3и
q2, a → q0, поэтому в
S3попадут состояния
q0, q2, q3. Выполняя
q1, a → q2,
поиск по пустым переходам, получаем
S3= {q0, q1, q2, q3}.
Так как заключительное состояние
q3попало в
S3, тоMраспознаёт слово
bba.
Теперь рассмотрим слово
w2=
abb
. Действуя так же, как в предыдущем
случае, мы найдём последовательность множеств Si:
S0= {q0, q1, q2},
S1= {q0, q1, q2, q3},
S2= {q0, q1, q2},
S3= {q0, q1, q2}.
S
1
Так как
слово abb.
S3не содержит заключительных состояний, то автомат отвергает

184 Глава 4. Алгоритмические проблемы для регулярных языков
b
q
q
ε
0
ε, a
2
q
1
aa
b
q
3
Рис. 28. НКА из примера 69.
Задачи
159.
С помощью моделирования НКА определите, какие из следующих слов
принадлежат языку, задаваемому регулярным выражениемr= (a+b)∗aa(bb+ab
(а) w1= aaabb;
(б) w2= baaabbb;
160. Докажите лемму 88.
161.
Докажите, что построение НКА по регулярному выражениюrпо теореме 43
можно выполнить за время O(|r|), то есть за линейное время.
162.
Модифицируйте алгоритм моделирования НКА так, чтобы в случае положительного ответа он находил какое-нибудь допускающее вычисление автомата
на слове w.
163.
Предложите алгоритм, который по НКАMи словуw=
(а)
наименьшее (наибольшее)iтакое, что
наименьшее (наибольшее) из таких j;
(б)
наименьшее (наибольшее)jтакое, что
наименьшее (наибольшее) из таких j.
(в) w3= aaba;
(г) w4= ababab.
aj. . . ai∈ L(M
aj. . . ai∈ L(M
a1a2. . . anнаходит:
) для некоторогоj, и
) для некоторогоi, и
)∗:
§ 4.3. Минимизация ДКА
В главе 2 мы изучали только возможность задания языков с помощью конечных автоматов или эквивалентных им способов. На
практике большой интерес представляет не только существование

§ 4.3. Минимизация ДКА 185
автомата для языка, но и его сложность, то есть размер программы. В этом параграфе мы покажем, как по ДКА можно построить
эквивалентный ему ДКА наименьшего размера.
Оп ределен ие 79.
м а л ь н ы м, если он имеет наименьшее число состояний среди всех
ДКА эквивалентных M .
Нетрудно видеть, что проблема построения по данному ДКА
эквивалентного ему минимального автомата алгоритмически разрешима. Если
все ДКА, содержащие не болееnсостояний, для каждого из них
проверить его эквивалентность автомату
ный. Однако такая процедура имеет экспоненциальную временн´ую
сложность.
Эффективный алгоритм минимизации автоматов основан на выявлении эквивалентных состояний, то есть таких, которые переводятся
автоматом
заключительные, либо одновременно в незаключительные состояния.
Оп ределен ие 80.
иqэ к в и в а л е н т н ы, если для любого слова
следующее условие:δ(
F . Эквивалентность состояний p и q обозначается p ≡ q.
Состоянияpи
Σ∗длины не болееiвыполняется следующее условие:δ(
тогда и только тогда, когдаδ(
p и q обозначается p ≡iq.
M
M
после прочтения любого слова либо одновременно в
ДКАM= (Q,Σ
содержитnсостояний, то достаточно перебрать
ПустьM= (Q,Σ
p, w)∈ F
q i
- э к в и в а л е н т н ы, если для любого слова
тогда и только тогда, когдаδ(
q, w)∈ F.i
, δ, q0, F
, δ, q0, F
) называется м и н и -
M
и выбрать минималь-
) — ДКА. Состояния
w ∈
Σ∗выполняется
q, w)∈
p, w)∈ F
-эквивалентность состояний
M
w ∈
p
Если для некоторого словаwвыполняетсяδ(
только тогда, когдаδ(
иqне различают словоw. Тогда предыдущее определение можно
сформулировать так: состоянияpиqэквивалентны, если они не
различают никакое слово; состояния p и q i-эквивалентны, если они
не различают никакое слово длины не больше i.
q, w)∈ F
, то будем говорить, что состояния
p, w)∈ F
тогда и
p

186 Глава 4. Алгоритмические проблемы для регулярных языков
Ле мма 91.
Отношения≡и
≡iявляются отношениями эквивалент-
ности.
Доказательство. Три свойства эквивалентности проверяются
непосредственно (задача 164).
Вычисление отношений ≡iосновано на следующей лемме.
Ле мма 92. p ≡
q
тогда и только тогда, когда
i+1
p ≡iq
и для любого
символа a ∈ Σ выполняется δ(p, a) ≡iδ(q, a).
Доказательство. Пусть
p ≡
q
. Тогдаpиqне различают
i+1
никакое слово длины не болееi+ 1, а значит, и никакое слово длины
не болееi, то есть
символа
a ∈
Σ состояния
p ≡iq
. Предположим теперь, что для некоторого
p0=δ(
p, a
) и
q0=δ(
q, a
) неi-эквивалентны.
Это значит, что существует словоvдлины не болееiтакое, что
δ(p0, v)∈ F,δ(q0, v)/∈ F
Его длина не превосходитi+ 1,δ(
δ(q0, v)/∈ F
. Получилось, что
(или наоборот). Рассмотрим словоw=av.
p, w
p 6≡
) =δ(
q
, противоречие. Следовательно,
i+1
p0, v)∈ F,δ(q, w
) =
δ(p, a) ≡iδ(q, a) для всех a ∈ Σ.
Пусть теперь
произвольное словоwдлины не болееi+ 1. Если
q
не различают его в силуi-эквивалентности. Пусть
Тогдаw=
M
на словеw, начиная с состоянийpиq: (
(
q, w)`(q0, v)`i(
p00и
q00либо оба заключительные, либо оба незаключительные, то
p ≡iq,δ(p, a)≡iδ(q, a
av
для некоторого символа
q00, ε
). Так как
|v|=i
) для всехa. Рассмотрим
|w| 6 i
|w|=i
a ∈
Σ. Запустим автомат
p, w)`(p0, v)`i(
, то
p0≡iq0, поэтому состояния
, тоpи
+ 1.
p00, ε
есть p и q не различают и слова длины i + 1.
Теперь докажем, что последовательность отношений
≡0,
≡1,
. . .
перестаёт меняться, начиная с некоторого места.
),
Ле мма 93. Если ≡i= ≡
, то ≡i= ≡
i+1
для всех j > 0.
i+j
Доказательство. Индукция по j.
Б а з и с и н д у к ц и и . Приj= 0 имеем
верно. При j = 1 имеем ≡i= ≡
, это верно по условию.
i+1
≡i=
≡i, что, конечно,
Ш а г и н д у к ц и и . Пустьpиq— произвольные состояния.

§ 4.3. Минимизация ДКА 187
Следующие четыре утверждения эквивалентны:
1) p ≡
2) p ≡
q;
i+j+1
q и δ(p, a) ≡
i+j
δ(q, a) для каждого a ∈ Σ;
i+j
3) p ≡iq и δ(p, a) ≡iδ(q, a) для каждого a ∈ Σ;
4) p ≡
i+1
q.
Утверждения 1) и 2) эквивалентны по лемме 92, утверждения 2)
и 3) — по индукционному предположению, а утверждения 3) и 4) —
снова по лемме 92. Поэтому
p ≡
Ле мма 94.
q. Следовательно, ≡
i+1
В последовательности отношений
совпадающие отношения ≡iи ≡
Доказательство. Отношение
валентности на множествеQ:Fи
p ≡
i+j+1
q
i+j+1
= ≡
i+1
тогда и только тогда, когда
= ≡i.
i+1
≡0, ≡1, . . .
. При этом i 6 |Q| − 2.
найдутся
≡0определяет два класса экви-
Q \ F
. При переходе от
≡iк
≡
i+1
некоторые классы эквивалентности могут распасться на несколько
более мелких. Так как число классов увеличивается по меньшей мере
на 1, то отношение
≡iопределяет не менее 2 +iклассов. Но с другой
стороны число классов не может быть больше числа состояний. Поэтому 2 +
i 6 |Q|иi 6 |Q| −
2. Следовательно, не позднее чем через
|Q| − 2 шагов отношение ≡iперестанет меняться.
Из лемм 93 и 94 следует, что
≡
совпадает со всеми последую-
|Q|−2
щими отношениями. Докажем, что оно совпадает с ≡.
Ле мма 95. Отношения ≡ и ≡
|Q|−2
совпадают.
Доказательство. Еслиpиqне различают никакое слово, то
p ≡iq
то по леммам 93 и 94
различают никакое слово (для словаwможно положитьi=
для любогоi, в том числе
p ≡iq
для любого
p ≡
|Q|−2
q
. Наоборот, если
i > |Q| −
2, поэтомуpиqне
p ≡
|w|
|Q|−2
).
Теперь мы можем описать алгоритм минимизации ДКА. Пусть
M
= (Q,Σ
ношение≡. ПустьˆQ={Q0, . . . , Qk}
лентности по отношению≡. Можно считать, что
, δ, q0, F
) — произвольный ДКА. Вычислим для него от-
— множество классов эквива-
q0∈ Q0. Построим
q
,

188 Глава 4. Алгоритмические проблемы для регулярных языков
новый ДКА
множество тех классов эквивалентности, которые достижимы из
M0= (
Q0,Σ, δ0, Q0, F
). В качестве состояний возьмём
Q
с помощью функции переходов δ0(она описана ниже). Пусть
Q0= {Q0, Q1, . . . , Qn}.
Начальным состоянием будет класс
стояние
q0автоматаM. Заключительными состояниями будут те и
Q0, содержащий начальное со-
только те классы, которые состоят из заключительных состояний:
F0= {Qi∈ Q0: Qi⊆ F }.
Программа определяется следующим образом:
Qi, a → Qj∈ δ0, если
существуют состояния q ∈ Qi, p ∈ Qjтакие, что q, a → p ∈ δ.
Доказательство того, что
M0является минимальным ДКА эк-
вивалентнымM, разобьём на три теоремы. Сначала докажем, что
построенный автомат M0является детерминированным.
Теорема 96. Автомат M0детерминированный.
Доказательство. Проведём доказательство от противного: предположим, что для Qiв M0есть команды
0
Qi, a → Qj, Qi, a → Q
k
для j 6= k. Тогда в автомате M есть команды
p, a → q, r, a → s,
где
p, r ∈ Qi,
q ∈ Qj,
s ∈ Qk. Так как состоянияqиsпопали в
разные классы, то они не эквивалентны, то есть существует слово
v ∈
Σ∗такое, что
Рассмотрим словоw=avи запустим автомат
q0=δ(
q, v)∈ F,s0=δ(
s, v)/∈ F
M
(либо наоборот).
на этом слове из
состояний p и r. Получится
∗
M
∗
M
(q0, ε),
(s0, ε).
(p, w) `M(q, v) `
(r, w) `M(s, v) `

§ 4.3. Минимизация ДКА 189
Значит, состоянияpиrразличают словоw. Но это противоречит тому,
что они попали в один класс эквивалентности. Значит, предположение
неверно и автомат M0детерминированный.
Теперь докажем, что автоматы
MиM0распознают один и тот
же язык.
Теорема 97. Автоматы M и M0эквивалентны.
Доказательство. Пустьw=
в алфавите Σ. Пусть
при работеMнаw, а
при работе
M0наw. Индукцией поiдокажем, что
q0, q1, . . . , qk— последовательность состояний
Q0, Q1, . . . , Qk— последовательность состояний
a1a2. . . ak— произвольное слово
qi∈ Qiдля всех
0 6 i 6 k.
Б а з и с и н д у к ц и и . q0∈ Q0по выбору Q0.
Ш а г и н д у к ц и и . Пусть
автомата в
MиM0есть команды
соответственно. Предположим, что
некоторого
команда
j 6=i
Qi, a
+1. Следовательно, по построению в автомате
→ Qj. Но тогда автомат
i+1
qi∈ Qi. По определению работы
qi, a
q
i+1
i+1
/∈ Q
→ q
i+1
и
i+1
. Тогда
Qi, a
q
i+1
∈ Qjдля
i+1
→ Q
i+1
M0есть
M0недетерминированный,
что противоречит теореме 96. Поэтому предположение неверно и
q
i+1
∈ Q
i+1
.
Теперь докажем, что L(M ) = L(M0).
Пусть
w ∈ L(M
). Тогда
qk∈ F
, поэтому
Qk∩ F 6=∅иQk⊆ F
так как заключительное состояние не может быть эквивалентно незаключительному. Следовательно, Qk∈ F0и w ∈ L(M0).
Пусть
w ∈ L(M0). Тогда
Qk∈ F0. Следовательно,
Qk⊆ Fиqk∈ F
Значит, w ∈ L(M ).
Наконец, докажем, что автомат M0минимальный.
,
.
Теорема 98.
Автомат
M0имеет наименьшее число состояний среди
всех ДКА эквивалентных M.
Доказательство. Проведём доказательство от противного. Предположим, что существует ДКА
L(M00) =L(M) и
|Q00| < |Q0|
. Так как все состояния автомата
M00= (
Q00,Σ, δ00, q
00
, F00) такой, что
0
M
0

190 Глава 4. Алгоритмические проблемы для регулярных языков
достижимы из начального, то для каждого состояния
слово wi∈ Σ∗такое, что
(Q0, wi) `
∗
M
0
(Qi, ε).
Запустим автомат M00на словах w0, . . . , wn. Пусть
00
(q
, wi) `
0
Поскольку
|Q00| < |Q0|
, то среди состояний
шей мере два одинаковых. Пусть
∗
M
00
(q
, ε).
00
i
00
q
, . . . , q
00
q
=
i
0
00
q
. Состояния
j
эквивалентны, поэтому существует слово u, такое что
(Qi, u) `∗(Qf, ε),
(Qj, u) `∗(Qk, ε),
где
Qf∈ F0,
Qk/∈ F0(или наоборот). Запустим автомат
wiu и wju. В результате получим
(Q0, wiu) `∗(Qi, w) `∗(Qf, ε),
(Q0, wju) `∗(Qj, w) `∗(Qk, ε),
Qiсуществует
00
есть по мень-
n
Qiи
Qjне
M0на словах
то есть одно из слов
wiu,wju
автомат
M0принимает, а другое отвер-
гает. Теперь запустим автомат M00на тех же словах. Получаем
00
(q
, wiu) `∗(qi, u),
0
00
(q
, wju) `∗(qj, u).
0
Поскольку
qi=
qj, то далее
M00сработает на обоих словах одинаково
и либо примет, либо отвергнет оба слова. Это противоречит тому,
чтоL(
M0) =L(
M00). Значит, предположение неверно и автомат
M
является минимальным.
Сл едствие 99.
В минимальном ДКА никакие два состояния не
эквивалентны.
0
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
