Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория автоматов и формальных языков. Учебник.pdf
Скачиваний:
1
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
§ 2.2. Недетерминированные конечные автоматы 71
Второе из этих вычислений можно расширить, применяяε-команды в конфигурациях ( состояния
Так как ни одно вычисление не является допускающим, то aab /∈ L(M ).
q1и
q3, ab
) и (
q3, ε
), но при этом автомат будет чередовать
q3, так что получить допускающее вычисление не удастся.
Множество всех возможных вычислений НКА на некотором слове
удобно представлять в виде дерева.
Оп ределен ие 53.
ПустьM= (Q,Σ
, δ, q0, F
) — НКА,
w ∈
Σ∗—
слово. Д е р е в о в ы ч и с л е н и й для автоматаMна словеw— это дерево, удовлетворяющее следующим условиям:
1) вершины дерева помечены конфигурациями автомата M;
2) корень помечен начальной конфигурацией;
3)
если
c1, . . . , cn— метки вершин на пути из корня в некоторую
вершину (не обязательно в лист), то
c1`M··· `Mcnи все
c
попарно различны;
4)
если
c1— метка корня,
c1`M··· `Mcnи все конфигурации
c
попарно различны, то в дереве есть путь из корня с метками
c1, . . . , cn.
В дереве вычислений вершины помечены конфигурациями авто­мата, а ребро из вершины с меткойcв вершину с меткой что
c `Mc0. Из-за наличия пустых команд в вычислении автомата
c0означает,
конфигурации могут повторяться (например, если в автомате есть команды
p, ε → qиq, ε → p
). Условия 3) и 4) определения «отсекают»
бесконечные ветви дерева.
Используя определение 53, определение распознавания слова мож­но переформулировать следующим образом. АвтоматMраспознаёт словоw, если в дереве вычислений хотя бы одна вершина помечена заключительной конфигурацией. АвтоматMотвергает словоw, если в дереве вычислений ни одна вершина не помечена заключительной конфигурацией.
Пр име р 27.
Снова рассмотрим автоматMиз примера 26 и слова
w1=
aba
i
i
72 Глава 2. Конечные автоматы и регулярные выражения
(q0, aba)
(q1, ba) (q2, ba)
(q2, a) (q3, ba) (q3, a)
(q0, ε) (q2, ε) (q1, a)
Рис. 8. Дерево вычислений НКА из примера 26 на слове w1= aba.
(q0, aab)
(q1, ab) (q2, ab)
(q3, ab) (q0, b)
(q2, b)
(q3, ε)
(q1, ε)
Рис. 9. Дерево вычислений НКА из примера 26 на слове w2= aab.
и
w2=
aab
. На рис. 8 изображено дерево вычислений автомата на слове
aba
. Поскольку в дереве есть заключительная конфигурация ( воспринимает слово на слове
M отвергает aab.
aab
. В этом дереве нет заключительных конфигураций, поэтому
aba
. На рис. 9 изображено дерево вычислений автомата
q2, ε
), то
M
Основной результат об НКА состоит в том, что они распознают в точности те же языки, что и ДКА. Сначала покажем, как устранить из НКА ε-переходы.
Теорема 30.
По любому НКАMможно построить эквивалентный
§ 2.2. Недетерминированные конечные автоматы 73
ему НКА без пустых команд.
Доказательство. Пусть НКА. Рассмотрим вспомогательный графG= ( тогда и только тогда, когда
M
= (Q,Σ
p ∈ δ(q, ε
, δ, q0, F
). Пусть
) — произвольный
Q, E
G∗= (
), где (
Q, E∗) — граф
q, p)∈ E
достижимости дляG. Из построения следует, что для любых двух состоянийpиqизpдостижимоqв графе
p, ε)`
∗
M
(
q, ε
). Теперь построим новый НКАN= (Q,Σ
гда (
G∗тогда и только тогда, ко-
, δ0, q0, F0).
Множество состояний и начальное состояние не меняются. Заключи­тельными состояниями являются те, из которых достижимы старые заключительные состояния:
F0= {q ∈ Q : (q, qf) ∈ E∗для некоторого qf∈ F }.
В частности, из этого определения следует, что автомата определяется следующим образом: только тогда, когда для некоторого состоянияqимеет место (
E∗и
r ∈ δ(q, a
). В частности, сохраняются все непустые команды
F ⊆ F0. Программа
p, a → r ∈ δ0тогда и
p, q)∈
исходного автомата, так как (q, q) ∈ E∗для всех q ∈ Q.
По построению автоматNне содержит пустых команд. Докажем, чтоL(M) =L(N). Сначала рассмотрим пустое слово. ЕслиMраспо­знаётε, то существует состояние а значит, (
q0, qf)
∈ E∗. Тогда по построению
qf∈ F
такое, что (
q0∈ F0, так как из
достижимо заключительное состояние. Поэтому
q0, ε)`
ε ∈ L(N
∗
(
qf, ε
M
q
). Наоборот, пусть автоматNраспознаётε. ПосколькуNне имеет пустых команд, то
q0∈ F0. По построению существует состояние
(q0, qf) ∈ E∗. Тогда (q0, ε) `
Пусть теперьw=
значим
a
. . . anчерез
i+1
∗
(qf, ε) и ε ∈ L(M).
M
a1. . . an— произвольное непустое слово. Обо-
wi. Пусть
w ∈ L(M
). Тогда существует вы-
qf∈ F
такое, что
числение
∗
(q0, w0) `
0
(q
, w0) `M(q1, w1) `
M
0
`M··· `M(qn, wn) `
∗
M
(q
0
, w1) `
1
M
∗
M
0
(q
, wn) = (q
n
0
n
, ε)
),
0
74 Глава 2. Конечные автоматы и регулярные выражения
для некоторых состояний в
δ0есть команды
Кроме того, из
qi, a
i+1
qnдостижимо заключительное состояние автоматаM,
qi,
→ q
0
q
, причём
i
, поэтому (
i+1
q
0
n
∈ F
. По построению
qi, wi)
`N(
q
i+1
, w
i+1
поэтому qn∈ F0. Поэтому для автомата N существует вычисление
(q0, w0) `N(q1, w1) `N··· `N(qn, wn),
следовательно, w ∈ L(N).
Пусть теперь w ∈ L(N). Значит, существует вычисление
(q0, w0) `N(q1, w1) `N··· `N(qn, wn),
где
qn∈ F0. По построению для каждогоiсуществует состояние
∗
∗
M
M
0
(
q
, wi) и (
i
0
(
q
, ε
) для некоторого
n
такое, что (
qn∈ F0, то (
qi, wi)
qn, ε)`
`
вычисления, получаем (q0, w) `
0
q
, wi)
`M(
q
i
∗
0
(q
, ε), то есть w ∈ L(M ).
n
M
i+1
0
q
n
, w
). А поскольку
i+1
∈ F
. Объединяя эти
q
Теперь опишем процедуру детерминизации НКА без ε-команд.
Теорема 31.
По любому НКА безε-команд можно построить экви-
валентный ему ДКА.
Доказательство. ПустьM= (Q,Σ Построим ДКА
N
= (P(Q),Σ
, δ0, {q0}, F0). В качестве состояний
, δ, q0, F
) — НКА безε-команд.
берётся множество всех подмножеств состояний автоматаM. На­чальным состоянием нового автомата будет множество, содержащее единственное состояние
q0. Заключительными состояниями будут те,
которые содержат хотя бы одно старое заключительное состояние:
).
0
i
F0= {Q0⊆ Q : Q0∩ F 6= ∅ }.
Функция переходов определяется следующим образом:
[
δ0(Q0, a) =
q∈Q
δ(q, a).
0
Неформально работу автоматаNможно описать так: при чтении словаw, автоматNпараллельно моделирует все возможные вычис­ления автомата
M
наw. Поскольку множествоQконечно, то для
§ 2.2. Недетерминированные конечные автоматы 75
хранения информации о каждом шаге этих вычислений требуется конечная память. Если после чтенияwНКАMмог попасть в любое из состояний множества стояние
M
Q0. Если после этого на вход подаётся символa, то автомат
мог применить далее любую из команд в любом состоянии из
Поэтому в определении функции
Q0, то ДКАN, прочитавw, перейдёт в со-
Q0.
δ0берётся объединение всех воз-
можных действий автоматаM. ЕслиMвоспринимает словоw, то он может перейти из начального состояния в заключительное. Но тогда автоматNпроследит такой путь в множествах состояний. Он примет слово, если окажется что достижимо хотя бы одно заключительное состояние.
Теперь докажем, чтоL(M) =L(N). Пустьw=
a1a2. . . an(допу-
стимо и n = 0).
Пусть состояний (
(
Q0, Q1, . . . , Qn) — последовательность состояний при работеNнаw.
w ∈ L(M
). Это значит, что существует последовательность
q0, q1, . . . , qn), такая что
qn∈ F,q
i+1
∈ δ(qi, a
). Пусть
i+1
Индукцией по i докажем, что qi∈ Qiдля всех i.
Б а з и с и н д у к ц и и .
q0∈ Q0, так как по построению
Q0=
{q0}
Ш а г и н д у к ц и и . По определению функции δ0получаем
[
Q
= δ0(Qi, a
i+1
i+1
) =
q∈Q
δ(q, a
i
) ⊇ δ(qi, a
i+1
i+1
).
.
На последнем шаге использовался тот факт, что онному предположению. Поскольку q
В частности, приi=nполучаем то
Qn∩ F 6=∅
, а значит, по построению
∈ δ(qi, a
i+1
qn∈ Qn. Но поскольку
qi∈ Qiпо индукци-
i+1
), то q
i+1
∈ Q
i+1
qn∈ F
Qn∈ F0. Следовательно,
w ∈ L(N ).
Пусть теперь w ∈ L(N). Пусть (Q0, Q1, . . . , Qn) — последователь­ность состояний автоматаNпри работе на словеw. Последнее состо­яние является заключительным: построим последовательность состояний (
Qn∈ F0. Обратной индукцией по
q0, q1, . . . , qn) автомата
M
такую, что qi∈ Qi.
.
,
i
76 Глава 2. Конечные автоматы и регулярные выражения
Б а з и с и н д у к ц и и . Так как
Qn∈ F0, то
Qn∩F 6=∅
. В качестве
qnвозьмём любое состояние из множества Qn∩ F .
Ш а г и н д у к ц и и . По определению δ0имеем
[
Q
=
i+1
Поскольку по индукционному предположению ствует состояние q, такое что q
Приi= 0 получаем
q0∈ Q0, то есть первое состояние нашей
q∈Q
i+1
δ(qi, a
i
∈ δ(q, a
).
i+1
q
∈ Q
i+1
). Положим qi= q.
i+1
, то суще-
i+1
последовательности действительно является начальным состоянием автоматаM. Итак, мы построили последовательность состояний авто­матаMтакую, что
qn∈ F,q
i+1
∈ δ(qi, a
) для всехi. Следовательно,
i+1
w ∈ L(M ).
Применяя теоремы 30 и 31, получаем основную теорему об экви­валентности НКА и ДКА.
Теорема 32.
По любому НКА можно построить эквивалентный ему
ДКА.
Конструкция, описанная в теореме 31, приводит к экспоненци­альному увеличению числа состояний автомата: если НКА имеет
n
состояний, то построенный по нему ДКА имеет 2nсостояний. В параграфе 3.2 мы докажем, что эта оценка не улучшается, то есть для любого натурального числаnсуществует НКАMсnсостояни­ями такой, что любой эквивалентный ему ДКА имеет не менее 2
n
состояний (см. также задачи 61 и 63). Однако во многих случаях общая конструкция создаёт много «лишних» состояний, которые не достижимы из начального (см. пример 28). Поэтому можно приме­нить более эффективную процедуру детерминизации. Сначала мы выписываем состояние
{q0}
и находим для него все переходы. На следующих шагах мы строим переходы только для тех состояний, ко­торые были получены на предыдущих шагах. Когда новые состояния перестают появляться, процедура детерминизации завершается.
§ 2.2. Недетерминированные конечные автоматы 77
a
b
q
0
q
1
q
0
q
1
a
ε, a
b
ε
q
2
q
3
a
(а) Исходный автомат
b
(б) Граф пустых переходов.
ε
ε
q
2
ε
q
3
a
Рис. 10. Недетерминированный конечный автомат из примера 28.
Пр име р 28.
Сначала мы должны устранить пустые переходы. На рис. 10б показан граф
пустых переходов (петли не изображены). На рис. 11а показан автомат после удаления пустых переходов. Рёбра, выходящие из состояний q0и q1, не изменились, так как ни из состояния мы повторяем все рёбра выходящие из то добавляется команда достижимы состояния повторяются для то добавляются команды
q3по пустым рёбрам достижимо заключительное состояние
тоже становится заключительным.
Теперь преобразуем полученный автомат безε-команд в детермини­рованный. Для удобства сначала запишем автомат в виде таблицы (см. рис. 11б). Для примера рассмотрим состояние цию из теоремы 31, получаем
Преобразуем НКАMс рис. 10а в эквивалентный ему ДКА.
q0, ни из
q2по пустым рёбрам достижимо состояние
q2, b → q3. Из состояния
q1и
q2, поэтому все рёбра, выходящие из
q3. Так как есть команды
q3, b → q3,
q1не выходят пустые рёбра. Из
q1, поэтому для
q1. Так как есть команда
q3по пустым рёбрам
q1, b → q3,
q3, a → q1и
q2, a → q1и
q2, a → q3,
q3, a → q3. Из состояния
q1, b → q3,
q2, поэтому
{q0, q2}
. Применяя конструк-
q1и
q
q2,
q
2
4
δ0({q0, q2}, a) = δ(q0, a) ∪δ(q2, a) = {q0, q2} ∪ {q1, q3} = {q0, q1, q2, q3},
δ0({q0, q2}, b) = δ(q0, b) ∪δ(q2, b) = {q1} ∪ {q3} = {q1, q3}.
На рис. 12а показан полный автомат, содержащий все 24= 16 состояний.
Теперь построим автомат без недостижимых состояний. На первом шаге мы добавили начальное состояние
{q0}
. Далее мы добавляем состояния, в
78 Глава 2. Конечные автоматы и регулярные выражения
a
b
q
0
q
1
нач q0q0, q
a
a
b
q
2
a, b
a
b
закл q2q1, q
q
3
закл q3q1, q3q0, q
q
1
a b
2
3
q
1
q
3
q
3
3
a, b
(а) Диаграмма автомата.
(б) Таблица автомата.
Рис. 11. Устранение пустых переходов.
которые автомат попадает из двух состояний автомат может попасть в новые состояния
{q1, q3},∅и{q3}
. Продолжая таким же образом, мы получаем автомат, показанный на рис. 12б. Вместо шестнадцати состояний удалось обойтись всего девятью.
Заметим, что полученный автомат не является минимальным. Например,
состояния
{q0, q1, q2, q3},{q0, q1, q3}и{q0, q3}
как они заключительные и все переходы из этих состояний ведут в них же.
{q0}
, — это состояния
{q0, q2}и{q1}
. Из этих
{q0, q1, q2, q3}
можно объединить в одно, так
,
Задачи
60.
Постройте деревья вычислений автоматаMиз примера 26 для всех слов длины не более чем три. Какие из этих слов распознаются автоматомM, а какие отвергаются?
61.
Пусть
Ln=
{ w ∈ { a, b }∗:
Постройте НКА для языка Ln, содержащий n + 1 состояний.
62.
Докажите, что язык НКА, содержащим менее n + 1 состояний.
63.
Докажите, что язык жащим менее 2nсостояний.
64.
Постройте недетерминированные конечные автоматы с указанным числом состояний для следующих языков.
в слове w на n-м месте с конца стоит символ a }
Lnиз предыдущей задачи не распознаётся никаким
Lnиз задачи 61 не распознаётся никаким ДКА, содер-
.
§ 2.2. Недетерминированные конечные автоматы 79
a b
∅ ∅ ∅
нач {q0} {q0, q2} {q1}
{q1} ∅ {q3}
закл {q2} {q1, q3} {q3} закл {q3} {q1, q3} {q0, q3}
{q0, q1} {q0, q2} {q1, q3}
закл {q0, q2} {q0, q1, q2, q3} {q1, q3} закл {q0, q3} {q0, q1, q2, q3} {q0, q1, q3} закл {q1, q2} {q1, q3} {q0, q3} закл {q1, q3} {q1, q3} {q0, q3} закл {q2, q3} {q1, q3} {q0, q3} закл {q0, q1, q2} {q0, q1, q2, q3} {q1, q3} закл {q0, q1, q3} {q0, q1, q2, q3} {q0, q1, q3} закл {q0, q2, q3} {q0, q1, q2, q3} {q0, q1, q3} закл {q1, q2, q3} {q1, q3} {q0, q3} закл {q0, q1, q2, q3} {q0, q1, q2, q3} {q0, q1, q3}
(а) Результат детерминизации.
a b
нач {q0} {q0, q2} { q1}
закл {q0, q2} {q0, q1, q2, q3} {q1, q3}
{q1} ∅ {q3}
закл {q0, q1, q2, q3} {q0, q1, q2, q3} {q0, q1, q3} закл {q1, q3} { q1, q3} {q0, q3}
∅ ∅ ∅
закл {q3} {q1, q3} {q0, q3} закл {q0, q1, q3} {q0, q1, q2, q3} {q0, q1, q3} закл {q0, q3} {q0, q1, q2, q3} {q0, q1, q3}
(б) Результат детерминизации без недостижимых состояний.
Рис. 12. Детерминизация конечного автомата.
80 Глава 2. Конечные автоматы и регулярные выражения
1) L1= { w ∈ { a, b, c }∗: |w| > 1 и последний символ слова w не встречается в w на других позициях }, 5 состояний
2) L2= { w ∈ { a, b }∗: |w| > 4 и двухбуквенный префикс слова w
не равен двухбуквенному суффиксу слова w }, 11 состояний
65. Для следующих НКА постройте эквивалентные им ДКА:
(а) M1= (
q2; q3};
(б) M2= (
q2; q0, ε → q1; q1, a → q3; q1, ε → q2; q2, b → q3; q3, b → q1; q3, b → q2}.
66.
Будем говорить, что НКАM= (Q,Σ если существует состояние множество всех слов, на которых останавливается автоматM. Сформулируйте необходимое и достаточное условие для того, чтобы автоматный языкLбыл множеством S(M ) для некоторого НКА M без ε-переходов.
67.
ПустьM— произвольный НКА. Обозначим черезA(M) множество всех слов, для которых все вычисления автоматаMявляются допускающими, причём хотя бы одно такое вычисление имеется. Докажите, что для любого НКАMязык A(M) является автоматным.
68.
Будем рассматривать обобщённые НКА, которые могут иметь несколько на­чальных состояний. Такой автомат распознаёт словоw, если (
q0— некоторое начальное состояние, а
Докажите, что по любому обобщённому НКА можно построить эквивалентный ему НКА безε-команд с одним начальным состоянием и одним заключительным состоянием.
69.
Докажите, что по любому НКА сnсостояниями можно построить эквива­лентный ему НКА сn+ 1 состоянием и одним начальным состоянием, причём эта оценка не улучшается.
70.
Докажите или опровергните следующее утверждение. Пусть
(Q, Σ, δ, q0, F ) и M0= (Q, Σ, δ, q0, Q \ F ) — два НКА. Тогда L(M0) = Σ∗\ L(M ).
71.
Сколько существует различных НКА сnсостояниями иmвходными симво­лами?
72.
Сколько существует различных языков в алфавите емых некоторым НКА с одним состоянием?
{ q0, q1, q2, q3}, { a, b }, δ1, q0, { q2}
q0, ε → q3;
q1, b → q0;
{ q0, q1, q2, q3}, { a, b }, δ2, q0, { q1, q2}
q ∈ Q
q1, b → q3;
такое, что (
), где
δ1=
{ q0, a → q0;
q2, a → q3;
, δ, q0, F
q0, w)`∗(
qf— некоторое заключительное состояние.
q2, b → q2;
), где
) останавливается на словеw,
q, ε
{ a1, . . . , am}
q3, a → q1;
δ2=
{ q0, a → q0;
). ЧерезS(M) обозначим
q0, w)`∗(
q0, a →
q3, a →
q0, b →
qf, ε
), где
M
, распознава-
=
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]