Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория автоматов и формальных языков. Учебник.pdf
Скачиваний:
1
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
§ 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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]