Конечные автоматы являются математической моделью устройств, перерабатывающих дискретную входную информацию в режиме "реального времени", т.е. в темпе ее поступления.

На такие устройства в последовательные дискретные моменты времени 1,2, ..., t, t+1,... поступают входные сигналы x(1),x(2), ..., x(t),x(t+1),... и в ответ на них автомат A вырабатывает выходные сигналы y(1) y(2), ..., y(t), y(t+1),.... Конечные автоматы характеризуются двумя особенностями.
y(t), выдаваемый автоматом в момент t, зависит лишь от полученных к этому времени входов x(1),x(2), ..., x(t), т.е. автомат не может предвосхитить будущие входы и заранее на них отреагировать. Таким образом, имеется некоторая t информация в автомате о полученном к этому моменту входе x(1),x(2), ..., x(t) конечна. Это свойство удобно интерпретировать следующим образом: автомат имеет конечное Q и в каждый момент находится в одном из этих состояний. При получении очередного входа состояние может измениться. Таким образом, состояние $$q \in Q$$, в котором находится автомат после получения входной последовательности x(1),x(2), ..., x(t), и представляет информацию об этой последовательности, используемую в дальнейшей работе автомата при определении следующего состояния и выхода.Наше обсуждение приводит к следующему определению конечного автомата с выходом.
Определение 4.1.
включающая следующие компоненты:
Q={q0, ... , qn-1} (n >= 1) - конечное множество - q, когда получает на вход символ a ;q, когда получает на вход символ a.Иногда A и задают как
список из m n команд вида $$q_{i}a_{j} \to \Phi (q_{i},a_{j}) / \psi (q_{i},a_{j})$$.
Другой удобный способ задания функций $$\Phi$$ и $$\psi$$ - табличный.
Каждая из них определяется таблицей
(матрицей) размера n x m, строки которой соответствуют состояниям из Q,
а столбцы - символам из qi и столбца aj стоит состояние $$\Phi (q_{i},a_{j})$$, а во второй - выходной символ $$\psi (q_{i},a_{j})$$.
Еще один способ представления конечного автомата основан на использовании ориентированных размеченных графов.
Определение 4.2. DA=(Q, E) с помеченными ребрами, в котором выделена вершина- q0 и из каждой вершины $$q \in Q$$
выходит $$|\Sigma _{X}|$$ ребер, помеченных парами символов $$a / b (a \in \Sigma _{X}, b \in \Sigma _{Y})$$.
Таким образом, для каждой $$q \in Q$$ и каждого символа $$a \in \Sigma _{X}$$ имеется единственное ребро
с меткой $$a / \psi (q,a)$$ из q в вершину $$q' =\Phi (q,a)$$
Как автомат A перерабатывает входное слово x1x2 ... xt? Он начинает работу
в состоянии q(0)=q0. Затем, получив (прочитав) входной символ x1, переходит в состояние $$q(1)= \Phi (q_{0},x_{1})$$ и выдает символ $$y(1)= \psi (q_{0},x_{1})$$. Далее, получив x2 A
переходит в состояние $$q(2)= \Phi (q(1),x_{2})$$ и выдает символ $$y(2)= \psi (q(1),x_{2})$$ и т.д. Таким образом, работа автомата,
характеризуется последовательностью проходимых им состояний q(0), q(1), ... , q(t), ... и
последовательностью выходных символов y(1), ... , y(t), .... Они определяются следующими
реккурентными соотношениями:
Рассмотрим несколько примеров
Пример 4.1. Сумматор последовательного действия
Мы уже строили схему из функциональных элементов SUMn, реализующую для
фиксированного n суммирование
двух n -разрядных двоичных чисел. Построим теперь конечный автомат SUM,
который сможет складывать два двоичных числа произвольной разрядности. На вход этого автомата
будут последовательно подаваться пары x(i)= (x1(i),x2(i)) соответствующих i -ых (1<= i <= r)
разрядов двух двоичных чисел x1=x1(r) ... x1(2) x1(1) и x2=x2(r) ... x2(2) x2(1), а признаком завершения чисел
будет служить символ x(r+1)= * (если одно из слагаемых короче другого, то будем считать,
что недостающие разряды - нули).
Выходом автомата должна быть последовательность (r+1)
двоичных
разрядов суммы y = x1 + x2:
Таким образом, SUM о первых i разрядах x1 и x2,
чтобы получив их (i+1) -ые разряды (x1(i+1),x2(i+1)), верно определить
выход y(i+1)? Ясно, что для этого достаточно знать, был ли перенос в i -ый
разряд. Поэтому можно зафиксировать Q = {q0, q1},
в котором q0 означает, что переноса не было, а q1 - что перенос был.
Теперь легко построить таблицы, представляющие SUM.
| $$\Phi$$ : | $$Q\setminus \Sigma _{X}$$ | (00) | (01) | (10) | (11) | * |
|---|---|---|---|---|---|---|
q0 |
q0 |
q0 |
q0 |
q1 |
q0 |
|
q1 |
q0 |
q1 |
q1 |
q1 |
q0 |
|
| $$\Psi$$ : | $$Q\setminus \Sigma _{X}$$ | (00) | (01) | (10) | (11) | * |
q0 |
0 |
1 |
1 |
0 |
0 |
|
q1 |
1 |
0 |
0 |
1 |
1 |
Заметим, что после получения символа * автомат SUM переходит в q0 и готов выполнять сложение следующей пары чисел.
(рис 4.1) Диаграмма автомата SUMНа q0 четыре петли, а у вершины q1 - три,
объединены в одну с четырьмя и тремя метками, соответственно. Точно так же слиты два ребра из q1 в q0. Стрелкой указано
Пусть $$\Sigma =\{ a_{1}, \dots , a_{m}\}$$ - это
i=1, ..., n |w|. Имеется одно специальное "пустое" w =w1... wn, а v =v1... vm, то их w1... wnv1... vm длины n+m. Обычно
знак w v
(по аналогии со знаком умножения в алгебре).
Пустое w
справедливо равенство $$w \varepsilon = \varepsilon w = w$$. Операция w, v и u, очевидно, имеет место
равенство: (w v)u = w(v u). Поэтому скобки при записи a3b4c2 - это сокращенная запись aaabbbbcc.
Конечные автоматы часто используются для определения тех или иных свойств L должен
по произвольному w ответить на вопрос " $$w \in L$$? ". Для решения такой
задачи w - "принимающее" или
"отвергающее".
Определение 4.3. Детерминированный конечный автомат (ДКА) -
включающая следующие компоненты:
Q={q0, ... , qn-1} (n >= 1) - конечное множество - q, когда получает на вход символ a.Функцию $$\Phi$$ называют программой автомата A и задают как список из m n команд вида $$q_{i}a_{j} \to \Phi (q_{i},a_{j})$$.
Удобно также задавать функцию $$\Phi$$ с помощью описанной выше таблицы
размера n x m, строки которой соответствуют состояниям из Q,
а столбцы - символам из qi и столбца aj стоит состояние $$\Phi (q_{i},a_{j})$$.
Как и
Определение 4.4. DA=(Q, E) с помеченными ребрами,
в котором выделена вершина- q0 из каждой вершины $$q \in Q$$
выходит $$|\Sigma _{X}|$$ ребер, помеченных символами $$a \in \Sigma$$
так, что для каждой $$q \in Q$$ и каждого символа $$a \in \Sigma$$ имеется единственное ребро
из q в вершину $$q' =\Phi (q,a)$$
с меткой a .
Скажем, что представленный последовательностью
ребер путь p=e1e2 ... et в w=w1w2 ... wt,
если wi - это метка ребра ei (1 >= i >= t). Если q - начальная вершина (состояние)
этого пути, а q' - его заключительная вершина, то будем говорить, что w переводит q в q'.
Работа
Определение 4.5. Назовем (q, w), в которой $$q \in Q$$ и $$w \in \Sigma ^{*}$$.
На множестве
Если $$w=\varepsilon$$, то положим для каждого $$q \in Q$$: $$(q, \varepsilon )$$ $$\vdash_A$$ $$(q, \varepsilon )$$.
Через $$\vdash_A^*$$ обозначим рефлексивное и
Содержательно, $$(q, w) \vdash_A^* (q^\prime, w^\prime)$$ означает, что автомат A, начав работу в состоянии q на w=w1 ... wl, через некоторое конечное число шагов 0 <= k <= l
прочтет первые k символов w и перейдет
в состояние q', а w' =wk+1 ... wl - это непрочтенный остаток w.
Определение 4.6.
ДКА A распознает (допускает, принимает) w, если для некоторого $$q \in F$$
$$(q_0, w) \vdash_A^* (q, \varepsilon),$$ т.е. после обработки w
автомат переходит в принимающее состояние.
LA, A, состоит из всех
Из этого определения, в частности, следует, что $$\varepsilon \in L_{A} \Leftrightarrow q_{0} \in F$$. Один и тот же
Определение 4.7. A и B называются LA = LB
Определение распознавания
Лемма 4.3. Автомат A распознает (допускает, принимает) w, если для некоторого $$q \in F$$
в DA имеется путь из q0 в q, который несет w, т.е. w переводит q0 в заключительное состояние q.
Доказательство можно провести индукцией по длине w (см. задачу 4.3).
Tаким образом, LA, A, состоит из всех DA q0 в заключительные состояния из F.
Наша цель теперь состоит в изучении класса конечно автоматных
Во многих случаях удается доказать, что L конечно автоматный, непосредственно построив
распознающий его автомат.
Для этого нужно постараться разбить множество всех входных
Пример 4.4. Рассмотрим L, состоящий из всех aa и содержат нечетное число символов b.
Для выделения aa, создадим q0, которое первый символ a будет переводить в состояние q1,
а второй символ a будет переводить q1 в состояние q2.
Ясно, что все ab, ba, bb, сами не входят в L
и все их продолжения также ошибочны. Заведем для них "ошибочное" состояние q!.
Остальные b, и те, в которых число таких символов нечетно (они и принадлежат L ).
(рис 4.2) Диаграмма автомата AТак как после получения aa число b четно, то для представления q2, а для представления q3, которое и будет заключительным. В результате получаем автомат,
Проверим работу этого автомата, например, на входном w=aaababa. При его чтении порождается следующая последовательность
Заключительное состояние этого вычисления q2 не является заключительным.
Следовательно, $$w \notin L_{A}$$. Если же мы рассмотрим в качестве входа w1= w b= aaababab, то, продолжив на один шаг приведенное выше вычисление,
получим, что $$(q_0, w_1) \vdash_A^* (q_3, \varepsilon)$$. Следовательно, $$w_{1} \in L_{A}$$.
Мы проверили, что на двух входах автомат A работает верно. Как установить,
что он построен корректно, т.е. верно работает на всех входных L?
Типичная схема доказательства правильности конечного автомата такова:
L(q), который состоит из q0 в q ;Применим эту схему к доказательству правильности, построенного выше автомата A.
Правильность определения L(q0), L(q1) и L(q!) следует
непосредственно из определения A. Самое короткое q0 в q2 - aa, и оно принадлежит L(q2). Аналогично, самое короткое q0 в q3 - aab, и оно принадлежит L(q3).
Предположим теперь, что для каждого w длины <= n выполнено условие (*):
w переводит q0 в $$q_{i} (i=2,3) \Leftrightarrow w \in L(q_{i})$$.
Покажем, что оно будет выполнено и для всех n +1.
Пусть |w|=n+1. Тогда $$w = w' \alpha$$, где $$\alpha \in \{ a, b \}$$.
Так как |w'|=n, то для w' выполнено условие (*).
Поэтому, если w' переводит q0 в q2, то это aa и содержит четное число b. При $$\alpha =a$$ w переводит q0 в q2 и также начинается с aa и содержит четное число b,
а при $$\alpha = b$$ w переводит q0 в q3,
начинается с aa и содержит нечетное число b, т.е. принадлежит L.
Аналогично, если w' переводит q0 в q3, то это aa и содержит нечетное число b. При $$\alpha =a$$ w также переводит q0 в q3 и также начинается с aa и содержит нечетное число b,
а при $$\alpha = b$$ w переводит q0 в q2, оно
начинается с aa и содержит четное число b.
Обратно, если $$\alpha =a$$, то w переводит q0 в $$q_{i} (i=2,3) \Leftrightarrow$$ w' переводит q0 в qi\ (i=2,3) и условие (*) выполнено, так как четность числа
букв b в w и в w' одинакова. Если же $$\alpha = b$$, то из определения автомата A
следует, что w переводит q0 в $$q_{2} \Leftrightarrow$$ w' переводит q0 в q3 и w переводит q0 в $$q_{3} \Leftrightarrow$$ w' переводит q0 в q2.
Так как четность числа букв b в w и в w' разная, то и в этом случае условие (*) выполнено. Для завершения доказательства осталось заметить,
что единственным заключительным состоянием автомата A является q3 и поэтому LA = L(q3) = L.
Пусть $$M_{1} = <\Sigma , Q_{1}, q_{0}^{1}, F_{1}, \Phi _{1}>$$ и $$M_{2} = <\Sigma , Q_{2}, q_{0}^{2}, F_{2}, \Phi _{2}>$$ - два
конечных автомата с общим L1 и L2,
соответственно. Определим по ним автомат M= $$<\Sigma , Q, q_{0}, F, \Phi >$$,
называемый M1 и M2 (M= M1 x M2), следующим образом. $$Q= Q_{1} x Q_{2} =\{ (q, p) | q \in Q_{1}, p \in Q_{2}\}$$, т.е. состояния нового автомата - это пары, первый
элемент которых - состояние первого автомата, а второй - состояние второго автомата. Для каждой такой пары (q,p) и входного символа $$a \in \Sigma$$ определим M является
пара q0= (q01, q02),
состоящая из L1 и L2, которую должен реализовать M.
Теорема 4.1.
M= $$<\Sigma , Q, q_{0}, F_{\setminus }, \Phi >$$ распознает L = L1 \ L2.Доказательство этой теоремы непосредственно выводится из следующего утверждения.
Лемма 4.2. Для любых двух состояний (q,p) и (q', p') автомата M и любого входного w w переводит (q,p) в (q', p') в автомате M тогда и только тогда, когда оно переводит q в q' в автомате M1 и p в p' в автомате M2.
Лемма устанавливается индукцией по длине w.
Следствие4.1.1. Класс конечно автоматных
Недетерминированные конечные автоматы, рассматриваемые в этом параграфе,
являются обобщениями детерминированных: они при чтении очередного символа на входе
могут выбрать в качестве следующего одно из нескольких состояний, а кроме того,
могут изменить состояние без чтения входа. Основной результат, который мы установим,
утверждает, что это обощение не существенно: недетерминированные и детерминированные
конечные автоматы распознают одни и те же
Определение 4.8. Недетерминированный конечный автомат (НКА) -
включающая следующие компоненты:
Q={q0, ... , qn-1} (n >= 1) - конечное множество - Для $$a \in \Sigma$$ значение $$\Phi (q, a)$$ - это множество
состояний в каждое из которых может перейти автомат из состояния q, когда получает на вход символ a. $$\Phi (q, \varepsilon )$$ - это множество
состояний в каждое из которых может перейти автомат из состояния q без чтения символа на входе.
Как и для детерминированных автоматов, q a -> q',
и для каждого состояния $$q' \in \Phi (q, \varepsilon )$$ в программу помещается команда q -> q'. Отличие от детерминированного случая состоит в том,
что для одной пары $$q \in Q$$ и $$a \in \Sigma$$ в программе может быть несколько команд вида q a -> q' или не быть ни одной такой команды. Кроме того, могут
появиться $$\varepsilon$$ -команды (пустые переходы) вида q -> q', означающие возможность непосредственного перехода из q в q' без чтения символа на входе.
При (m+1) -ый столбец,
соответствующий пустому символу $$\varepsilon$$ и на пересечении строки q и столбца $$a \in (\Sigma \cup \{ \varepsilon \} )$$ стоит множество состояний $$\Phi (q,a)$$.
Для недетерминированного автомата $$M = <\Sigma , Q, q_{0}, \Phi >$$
в DM=(Q, E) с выделенной начальной вершиной q0 и множеством заключительных вершин F ребра взаимно-однозначно соответствуют
командам: команде вида q a -> q' $$(a \in \Sigma )$$
соответствует ребро (q,q' ), с меткой a , а команде вида q -> q'
соответствует ребро (q,q' ), с меткой $$\varepsilon$$ .
Скажем, что заданный последовательностью ребер путь p=e1e2 ... eT в DM несет w=w1w2 ... wt (t <= T),
если после удаления из него "пустых" ребер (т.е. ребер с метками $$\varepsilon$$ ) остается последовательность
из t ребер $$p'=e_{j_1}e_{j_2} \ldots e_{j_t}$$, метки которых образуют w , т.е. wi - это метка ребра $$e_{j_i}\ (1 \leq i \leq t)$$.
Очевидно, это эквивалентно тому, что последовательность меток на ребрах пути p
имеет вид $$\varepsilon^{k_1}w_1\varepsilon^{k_2}w_2 \ldots \varepsilon^{k_t}w_t \varepsilon^{k_{t+1}}$$,
где kj >= 0 (j=1,2, ... , t+1) и $$\ t + \sum_{j=1}^{t+1} k_j = T$$.
w переводит q в q' в DM, если в ней имеется путь из q в q' который несет w .
На недетерминированные автоматы естественным образом переносится определение
Определение 4.9. Назовем (q, w), в которой $$q \in Q$$ и $$w \in \Sigma ^{*}$$.
Определим отношение $$\vdash_M$$ перехода из одной
или
$$( w = w^\prime и q^\prime \in \Phi(q,\varepsilon)).$$Как и для ДКА, через $$\vdash_M^*$$ обозначим рефлексивное и
Внешне определение распознавания
Определение 4.10. НКА M распознает (допускает, принимает) w, если для некоторого $$q \in F$$ \ $$(q_0, w) \vdash_M^* (q, \varepsilon).$$
LM, M, состоит из всех
Отличие состоит в том, что у НКА может быть несколько различных способов работы
(путей вычисления) на одном и том же входном w. Считаем, что НКА распознает
(допускает, принимает) это F.
Из определения DM непосредственно следует, что НКА M распознает w, тогда и только тогда, когда существует такое
заключительное состояние $$q \in F$$, что в DM w переводит q0 в q.
Иными словами, в DM имеется путь из q0 в q, на ребрах которого написано w (с точностью до меток $$\varepsilon$$ ).
Пример 4.1. Рассмотрим НКА $$N_{1} = < \{ a, b\} , \{ 0,1,2,3, 4\} , 0, \{ 3\} , \Phi >$$, где
| $$\Phi$$ : | $$Q\setminus \Sigma _{X}$$ | a | b | $$\varepsilon$$ |
|---|---|---|---|---|
0 |
{0,1} |
{0} |
$$\varnothing$$ | |
1 |
$$\varnothing$$ | $$\varnothing$$ | {4} |
|
2 |
{3} |
$$\varnothing$$ | $$\varnothing$$ | |
3 |
$$\varnothing$$ | $$\varnothing$$ | {1} |
|
4 |
$$\varnothing$$ | {2} |
$$\varnothing$$ |
Его
(рис 4.3) Диаграмма автомата N1Рассмотрим работу этого автомата на ababa:
Так как 3 - заключительное состояние, то $$ababa \in L_{N1}$$. Заметим, что у автомата N1 имеются и другие способы
работы на этом
Очевидно, что детерминированные конечные автоматы являются частными
случаями недетерминированных. Естественно спросить, распознают ли недетерминированные
конечные автоматы больший класс
Теорема 4.2. (Детерминизация НКА)
Для каждого НКА M можно эффективно построить такой
ДКА A, что LA = LM.
Доказательство Пусть $$M= <\Sigma , Q, q_{0}, F, \Phi >$$ - НКА. Процедура построения по нему M строится эквивалентный ему
НКА M1, в программе которого отсутствуют переходы по $$\varepsilon,$$ а на втором
этапе по M1 строится A.
Этап 1. Устранение пустых переходов.
Рассмотрим поддиаграму автомата M, в которой оставлены лишь ребра, помеченные $$\varepsilon:$$ $$D_{\varepsilon } =(Q, E_{\varepsilon })$$, где $$E_{\varepsilon } =\{ (q, q') | q' \in \Phi (q,\varepsilon )\}$$.
Пусть $$D_{\varepsilon *} =(Q, E_{\varepsilon }^{*})$$ - это граф достижимости (q в q'}.
Определим НКА $$M_{1}= <\Sigma , Q_{1}, q_{0}, F_{1}, \Phi _{1} >$$ следующим образом: $$Q_{1} = \{ q_{0}\} \cup \{ q | \ существуют \ такие \ q' \in Q и a \in \Sigma , что \ q \in \Phi (q', a) \}$$, т.е. кроме начального остаются лишь те состояния, в которые
входят "непустые" ребра. $$F_{1} =\{ q | \ существует \ такое \ q' \in F, что \ (q,q') \in E_{\varepsilon }^{*} \}$$,
т.е. к заключительным состояниям M добавляются состояния, из которых можно было
попасть в заключительные по путям из $$\varepsilon$$ -ребер.
Для каждой пары $$q' \in Q, a \in \Sigma$$ полагаем $$\Phi _{1}(q,a) =\{ r |\ существует \ такое \ q' \in F , \ что \ (q,q') \in E_{\varepsilon }^{*} и \ r \in \Phi (q',a) \}$$, т.е. в DM1} имеется a -ребро из q в r, если в DM был (возможно пустой) путь из $$\varepsilon$$ -ребер в некоторое состояние q', из которого a -ребро шло в r.
Из этого определения непосредственно следует, что в НКА M1 нет пустых переходов
по $$\varepsilon.$$ Установим эквивалентность M и M1.
Лемма 4.1. $$L_{M_1} = L_M$$.
Доказательство. Пусть w=w1w2... wt - произвольное входное p=e1e2 ... et (e1= (q0=r0,r1), ei=(ri-1,ri), i=2,..., t)
из q0 в некоторое состояние $$r_{t} \in F_{1}$$,
который несет w, т.е. ребро ei помечено символом wi.
Из определения функции $$\Phi _{1}$$ непосредственно следует,
что для любого ребра ei(ri-1, ri) этого пути в DM
имеется путь из ri-1 в ri, начало (возможно пустое) которого состоит
из $$\varepsilon$$ -ребер, а последнее ребро помечено символом wi. Объединив эти пути,
получим в DM путь из q0 в rt , который несет w.
Так как $$r_{t} \in F_{1}$$, то либо $$r_{t} \in F$$, либо в DM имеется путь по $$\varepsilon$$ -ребрам из rt в некоторое состояние $$r' \in F$$. В обоих случаях
в DM имеется путь из q0 в заключительное состояние, который несет w,
и следовательно, $$w \in L_{M}$$.
Обратно, пусть $$w \in L_{M}$$. Тогда в DM имеется путь из q0 в
некоторое заключительное состояние r, который несет w. Пусть r0=q0, а ri - это состояние этого пути, в которое приводит ребро с меткой wi (i= 1,... , t).
Рассмотрим отрезок этого пути между вершинами r_{i-1} и ri. Последнее ребро этого отрезка
имеет метку wi, а все предыдущие (если они имеются) помечены $$\varepsilon.$$
Тогда по определению $$\Phi _{1}$$ в r_{i-1} и ri
имеется ребро с меткой wi. Объединив эти ребра, получим в $$D_{M_1}$$ путь
из q0 в rt. Так как либо $$r_{t}=r \in F$$, либо в DM из rt имеется
путь из $$\varepsilon$$ -ребер в $$r \in F$$, то из определения F1 следует, что $$r_{t} \in F_{1}$$.
Таким образом, $$w \in L_{M_1}$$.
Этап 2. Детерминизация.
Идея детерминизации состоит в том, что состояниями ДКА объявляются подмножества
состояний НКА. Тогда для каждого такого подмножества T и входного символа a
однозначно
определено множество состояний T', в которые НКА может попасть из состояний T
при чтении a.
Определим по НКА $$M_{1}= <\Sigma , Q_{1}, q_{0}, F_{1}, \Phi _{1} >$$ ДКА $$A = <\Sigma , Q^{A}, q_{0}^{A}, F^{A}, \Phi ^{A}>$$ следующим образом.
$$\begin{array}{l} Q^A =\{ Q'\ |\ Q' \subseteq Q_1\},\\ q_0^A =\{ q_0\},\\ F^A =\{ Q'\ |\ Q' \cap F_1 \neq \emptyset \},\\ \Phi^A(Q', a) =\{ q\ |\ \text{ существует такое } q^\prime \in Q', \text{ что } q \in \Phi_1(q^\prime, a) \}. \end{array}$$Ясно, что A - детерминированный конечный автомат.
Следующая лемма устанавливает связь между его вычислениями и вычислениями
исходного НКА.
Лемма 4.4. Для любой пары состояний Q', Q'' из QA и любого
Доказательство. Применим индукцию по длине w.
Базис. Пусть |w|=0, тогда $$w=\varepsilon$$, Q' = Q'' и утверждение выполнено.
Пусть теперь |w|=1 и $$w= a \in \Sigma$$. Тогда утверждение леммы следует непосредственно
из определения $$\Phi ^{A(Q', a)}$$.
Шаг индукции. Предположим, что лемма справедлива для всех <= k,
и пусть |w| = k+1. Выделим в w первый символ: w=aw'.
Пусть $$\tilde{Q}$$ - это такое состояние, что $$(Q', a) \vdash_A \tilde{Q}, \varepsilon)$$.
Тогда $$(\tilde{Q}, w^\prime) \vdash_A^* (Q^{\prime\prime},\varepsilon)$$.
Так как |w'|=k, то по индукционному предположению это эквивалентно
следующему: $$Q^{\prime\prime}= \{ r\ |\ \text{ существует такое } q^\prime \in \tilde{Q}, \text{ что }\ (q,w^\prime) \vdash_{M_1}^* (r, \varepsilon)\}$$.
Но из определения $$\Phi ^{A}$$ следует, что $$\tilde{Q}$$ $$=\{ q | \ существует \ такое \ q' \in Q', \ что \ q \in \Phi _{1}(q', a) \}$$.
Объединив, эти два равенства, получаем: $$Q^{\prime\prime}= \{ r\ |\ \text{ существует такое } q^\prime \in Q^\prime, \text{ что }\ (q,w) \vdash_{M_1}^* (r, \varepsilon)\}$$.
Для завершения доказательства теоремы покажем с помощью леммы 4.4, что $$L_A = L_{M_1}$$.
Действительно, если w переводит состояние q0 в некоторое $$q \in F_{1}$$ в автомате M1, то, положив в лемме Q' ={ q0}, получим, что $$q \in Q''$$
для состояния Q'', такого, что $$(Q', w) \ vdash_{A}^{*} (Q'',\varepsilon )$$. Но тогда $$Q'' \in F^{A}$$
и $$w \in L_{A}$$.
Обратно, если $$w \in L_{A}$$, то для некоторого $$Q'' \in F^{A}$$ имеем $$(\{q_0\}, w) \vdash_A^* (Q^{\prime\prime},\varepsilon)$$. Тогда в Q''
имеется некоторое состояние $$q \in F_{1}$$ и по лемме 4.4 в автомате $$M_1 \ (q_0,w) \vdash_{M_1}^* (q, \varepsilon)\}$$, т.е. $$w \in L_{M1}$$.
Пример 4.2. Применим процедуру из теоремы
о детерминизации к НКА N1 из примера 4.3.
На первом этапе получаем $$E_{\varepsilon }^{*} =\{ (2,0), (1, 4), (3, 1), (4, 1)\}$$ и
НКА M1 без пустых переходов, представленный на следующей
(рис 4.4) Диаграмма автомата M1Заметим, что состояние 4 исчезло, так как в автомате N1 в него можно было
попасть только по $$\varepsilon$$ -переходу.
На втором этапе детерминизируем M1. ДКА A будет иметь 16 состояний: $$Q^{A}=\{ \varnothing , \{ 0\} , \{ 1\} , \{ 2\} , \{ 3\} ,\{ 0,1\} , \{ 0,2\} , \{ 0,3\} , \{ 1,2\} , \{ 1,3\} , \{ 2,3\} , \{ 0,1,2\} ,\{ 0,1,3\} ,\{ 0,2,3\} ,\{ 1,2,3\} ,\{ 0,1,2, 3\} \}$$.
Во M1:
F^A={{3},{0,3}, {1,3}, {0,1,3}, {0,2,3},{1,2,3}, {0,1,2, 3}}.
| $$Q^{A}\setminus \Sigma$$ | a | b |
|---|---|---|
| hline $$\varnothing$$ | $$\varnothing$$ | $$\varnothing$$ |
{0} |
{0,1} |
{0} |
{1} |
$$\varnothing$$ | {2} |
{2} |
{0,1,3} |
{0} |
{3} |
$$\varnothing$$ | {2} |
{0,1} |
{0,1} |
{0,2} |
{0,2} |
{0,1,3} |
{0} |
{0,3} |
{0,1} |
{0,3} |
| $$Q^{A}\setminus \Sigma$$ | a | b |
|---|---|---|
{1,2} |
{0,1,3} |
{0,2} |
{1,3} |
$$\varnothing$$ | {2} |
{2,3} |
{0,1,3} |
{0,2} |
{0,1,2} |
{0,1,3} |
{0,2} |
{0,1,3} |
{0,1} |
{0,2} |
{0,2,3} |
{0,1,3} |
{0,2} |
{1,2,3} |
{0,1,3} |
{0,2} |
{0,1,2,3} |
{0,1,3} |
{0,2} |
(рис 4.5) Диаграмма автомата A На самом деле нас интересуют лишь те состояния, в которые можно
попасть из {0}. Несложный анализ показывает,
что их только три: {0,1}, {0,2 } и {0, 1, 3 }. Остальные состояния не достижимы
из {0} и, следовательно, не влияют на работу автомата A. Их можно отбросить.
Таким образом, в
Замечание. В рассмотренном примере у построенного ДКА A оказалось не
больше состояний, чем у исходного НКА N1.
К сожалению, это не всегда так. Существуют примеры НКА с n состояниями,
для которых 2n состояний.
Задача 4.1. Автомат по продаже кофе имеет щель для получения монет, кнопку, нажатие которой после уплаты достаточной суммы приводит к получению кофе, и накопитель, через который он выдает сдачу покупателю. Автомат принимает монеты достоинством в 1, 2 и 5 рублей.
Чашка кофе стоит 8 руб. Пока полученная сумма недостаточна, горит красная лампочка.
Если сумма, полученная автоматом, >= 8, то зажигается зеленая лампочка и после нажатия
кнопки автомат наливает кофе и, если требуется, дает сдачу. Если автомат получает
монету, когда горит зеленая лампочка, то он немедленно ее возвращает.
Определите
Задача 4.2. Электронные часы имеют табло с указанием часов, минут и секунд и две управляющие кнопки. Одна кнопка переводит часы из нормального режима в режим настройки времени - вначале в настройку часов, затем - минут, затем - секунд, а затем возвращает в нормальный режим. Другая кнопка в нормальном режиме ничего не меняет, а в режиме настройки нажатие на нее увеличивает на единицу число настраеваемых часов, минут или секунд. Постройте автомат, который принимает на вход сигналы нажатия от двух кнопок, а на выходе выдает сигналы изменения режима и увеличения соответствующего числа.
Задача 4.3. Докажите лемму 4.1 индукцией по длине входного
Задача 4.4. Постройте детерминированные конечные автоматы, которые
распознают следующие
L = {w | длина w делится на 5} ;L = {w | w не содержит подслов 'aab' и 'bba'} ;L = {w | w содержит четное число букв а и нечетное число букв b} ;L = {w | число букв а делится на 3, а число букв b на 2 }.Задача 4.5. Выше в примере 4.1 был построен автомат с выходом, выполняющий сложение
двух двоичных чисел. Постройте автомат-
Автомат должен допустить такую последовательность,
если y = y(n) ... y(2)y(1) - это первые n битов суммы двоичных чисел x1= x1(n)... x1(2)x1(1) и x2 = x2(n)... x2(2)x2(1).
Задача 4.7. Докажите лемму 4.2.
Задача 4.8. Докажите, что приведенный на рис. 4.5 автомат A распознает 'aba'.
Задача 4.9. Используя процедуру детерминизации недетерминированных
автоматов из теоремы 4.2, постройте ДКА, эквивалентный заданному НКА M.
Конечные автоматы являются математической моделью устройств, перерабатывающих дискретную входную информацию в режиме "реального времени", т.е. в темпе ее поступления.

На такие устройства в последовательные дискретные моменты времени 1,2, ..., t, t+1,... поступают входные сигналы x(1),x(2), ..., x(t),x(t+1),... и в ответ на них автомат A вырабатывает выходные сигналы y(1) y(2), ..., y(t), y(t+1),.... Конечные автоматы характеризуются двумя особенностями.
y(t), выдаваемый автоматом в момент t, зависит лишь от полученных к этому времени входов x(1),x(2), ..., x(t), т.е. автомат не может предвосхитить будущие входы и заранее на них отреагировать. Таким образом, имеется некоторая t информация в автомате о полученном к этому моменту входе x(1),x(2), ..., x(t) конечна. Это свойство удобно интерпретировать следующим образом: автомат имеет конечное Q и в каждый момент находится в одном из этих состояний. При получении очередного входа состояние может измениться. Таким образом, состояние $$q \in Q$$, в котором находится автомат после получения входной последовательности x(1),x(2), ..., x(t), и представляет информацию об этой последовательности, используемую в дальнейшей работе автомата при определении следующего состояния и выхода.Наше обсуждение приводит к следующему определению конечного автомата с выходом.
Определение 4.1.
включающая следующие компоненты:
Q={q0, ... , qn-1} (n >= 1) - конечное множество - q, когда получает на вход символ a ;q, когда получает на вход символ a.Иногда A и задают как
список из m n команд вида $$q_{i}a_{j} \to \Phi (q_{i},a_{j}) / \psi (q_{i},a_{j})$$.
Другой удобный способ задания функций $$\Phi$$ и $$\psi$$ - табличный.
Каждая из них определяется таблицей
(матрицей) размера n x m, строки которой соответствуют состояниям из Q,
а столбцы - символам из qi и столбца aj стоит состояние $$\Phi (q_{i},a_{j})$$, а во второй - выходной символ $$\psi (q_{i},a_{j})$$.
Еще один способ представления конечного автомата основан на использовании ориентированных размеченных графов.
Определение 4.2. DA=(Q, E) с помеченными ребрами, в котором выделена вершина- q0 и из каждой вершины $$q \in Q$$
выходит $$|\Sigma _{X}|$$ ребер, помеченных парами символов $$a / b (a \in \Sigma _{X}, b \in \Sigma _{Y})$$.
Таким образом, для каждой $$q \in Q$$ и каждого символа $$a \in \Sigma _{X}$$ имеется единственное ребро
с меткой $$a / \psi (q,a)$$ из q в вершину $$q' =\Phi (q,a)$$
Как автомат A перерабатывает входное слово x1x2 ... xt? Он начинает работу
в состоянии q(0)=q0. Затем, получив (прочитав) входной символ x1, переходит в состояние $$q(1)= \Phi (q_{0},x_{1})$$ и выдает символ $$y(1)= \psi (q_{0},x_{1})$$. Далее, получив x2 A
переходит в состояние $$q(2)= \Phi (q(1),x_{2})$$ и выдает символ $$y(2)= \psi (q(1),x_{2})$$ и т.д. Таким образом, работа автомата,
характеризуется последовательностью проходимых им состояний q(0), q(1), ... , q(t), ... и
последовательностью выходных символов y(1), ... , y(t), .... Они определяются следующими
реккурентными соотношениями:
Рассмотрим несколько примеров
Пример 4.1. Сумматор последовательного действия
Мы уже строили схему из функциональных элементов SUMn, реализующую для
фиксированного n суммирование
двух n -разрядных двоичных чисел. Построим теперь конечный автомат SUM,
который сможет складывать два двоичных числа произвольной разрядности. На вход этого автомата
будут последовательно подаваться пары x(i)= (x1(i),x2(i)) соответствующих i -ых (1<= i <= r)
разрядов двух двоичных чисел x1=x1(r) ... x1(2) x1(1) и x2=x2(r) ... x2(2) x2(1), а признаком завершения чисел
будет служить символ x(r+1)= * (если одно из слагаемых короче другого, то будем считать,
что недостающие разряды - нули).
Выходом автомата должна быть последовательность (r+1)
двоичных
разрядов суммы y = x1 + x2:
Таким образом, SUM о первых i разрядах x1 и x2,
чтобы получив их (i+1) -ые разряды (x1(i+1),x2(i+1)), верно определить
выход y(i+1)? Ясно, что для этого достаточно знать, был ли перенос в i -ый
разряд. Поэтому можно зафиксировать Q = {q0, q1},
в котором q0 означает, что переноса не было, а q1 - что перенос был.
Теперь легко построить таблицы, представляющие SUM.
| $$\Phi$$ : | $$Q\setminus \Sigma _{X}$$ | (00) | (01) | (10) | (11) | * |
|---|---|---|---|---|---|---|
q0 |
q0 |
q0 |
q0 |
q1 |
q0 |
|
q1 |
q0 |
q1 |
q1 |
q1 |
q0 |
|
| $$\Psi$$ : | $$Q\setminus \Sigma _{X}$$ | (00) | (01) | (10) | (11) | * |
q0 |
0 |
1 |
1 |
0 |
0 |
|
q1 |
1 |
0 |
0 |
1 |
1 |
Заметим, что после получения символа * автомат SUM переходит в q0 и готов выполнять сложение следующей пары чисел.
(рис 4.1) Диаграмма автомата SUMНа q0 четыре петли, а у вершины q1 - три,
объединены в одну с четырьмя и тремя метками, соответственно. Точно так же слиты два ребра из q1 в q0. Стрелкой указано
Пусть $$\Sigma =\{ a_{1}, \dots , a_{m}\}$$ - это
i=1, ..., n |w|. Имеется одно специальное "пустое" w =w1... wn, а v =v1... vm, то их w1... wnv1... vm длины n+m. Обычно
знак w v
(по аналогии со знаком умножения в алгебре).
Пустое w
справедливо равенство $$w \varepsilon = \varepsilon w = w$$. Операция w, v и u, очевидно, имеет место
равенство: (w v)u = w(v u). Поэтому скобки при записи a3b4c2 - это сокращенная запись aaabbbbcc.
Конечные автоматы часто используются для определения тех или иных свойств L должен
по произвольному w ответить на вопрос " $$w \in L$$? ". Для решения такой
задачи w - "принимающее" или
"отвергающее".
Определение 4.3. Детерминированный конечный автомат (ДКА) -
включающая следующие компоненты:
Q={q0, ... , qn-1} (n >= 1) - конечное множество - q, когда получает на вход символ a.Функцию $$\Phi$$ называют программой автомата A и задают как список из m n команд вида $$q_{i}a_{j} \to \Phi (q_{i},a_{j})$$.
Удобно также задавать функцию $$\Phi$$ с помощью описанной выше таблицы
размера n x m, строки которой соответствуют состояниям из Q,
а столбцы - символам из qi и столбца aj стоит состояние $$\Phi (q_{i},a_{j})$$.
Как и
Определение 4.4. DA=(Q, E) с помеченными ребрами,
в котором выделена вершина- q0 из каждой вершины $$q \in Q$$
выходит $$|\Sigma _{X}|$$ ребер, помеченных символами $$a \in \Sigma$$
так, что для каждой $$q \in Q$$ и каждого символа $$a \in \Sigma$$ имеется единственное ребро
из q в вершину $$q' =\Phi (q,a)$$
с меткой a .
Скажем, что представленный последовательностью
ребер путь p=e1e2 ... et в w=w1w2 ... wt,
если wi - это метка ребра ei (1 >= i >= t). Если q - начальная вершина (состояние)
этого пути, а q' - его заключительная вершина, то будем говорить, что w переводит q в q'.
Работа
Определение 4.5. Назовем (q, w), в которой $$q \in Q$$ и $$w \in \Sigma ^{*}$$.
На множестве
Если $$w=\varepsilon$$, то положим для каждого $$q \in Q$$: $$(q, \varepsilon )$$ $$\vdash_A$$ $$(q, \varepsilon )$$.
Через $$\vdash_A^*$$ обозначим рефлексивное и
Содержательно, $$(q, w) \vdash_A^* (q^\prime, w^\prime)$$ означает, что автомат A, начав работу в состоянии q на w=w1 ... wl, через некоторое конечное число шагов 0 <= k <= l
прочтет первые k символов w и перейдет
в состояние q', а w' =wk+1 ... wl - это непрочтенный остаток w.
Определение 4.6.
ДКА A распознает (допускает, принимает) w, если для некоторого $$q \in F$$
$$(q_0, w) \vdash_A^* (q, \varepsilon),$$ т.е. после обработки w
автомат переходит в принимающее состояние.
LA, A, состоит из всех
Из этого определения, в частности, следует, что $$\varepsilon \in L_{A} \Leftrightarrow q_{0} \in F$$. Один и тот же
Определение 4.7. A и B называются LA = LB
Определение распознавания
Лемма 4.3. Автомат A распознает (допускает, принимает) w, если для некоторого $$q \in F$$
в DA имеется путь из q0 в q, который несет w, т.е. w переводит q0 в заключительное состояние q.
Доказательство можно провести индукцией по длине w (см. задачу 4.3).
Tаким образом, LA, A, состоит из всех DA q0 в заключительные состояния из F.
Наша цель теперь состоит в изучении класса конечно автоматных
Во многих случаях удается доказать, что L конечно автоматный, непосредственно построив
распознающий его автомат.
Для этого нужно постараться разбить множество всех входных
Пример 4.4. Рассмотрим L, состоящий из всех aa и содержат нечетное число символов b.
Для выделения aa, создадим q0, которое первый символ a будет переводить в состояние q1,
а второй символ a будет переводить q1 в состояние q2.
Ясно, что все ab, ba, bb, сами не входят в L
и все их продолжения также ошибочны. Заведем для них "ошибочное" состояние q!.
Остальные b, и те, в которых число таких символов нечетно (они и принадлежат L ).
(рис 4.2) Диаграмма автомата AТак как после получения aa число b четно, то для представления q2, а для представления q3, которое и будет заключительным. В результате получаем автомат,
Проверим работу этого автомата, например, на входном w=aaababa. При его чтении порождается следующая последовательность
Заключительное состояние этого вычисления q2 не является заключительным.
Следовательно, $$w \notin L_{A}$$. Если же мы рассмотрим в качестве входа w1= w b= aaababab, то, продолжив на один шаг приведенное выше вычисление,
получим, что $$(q_0, w_1) \vdash_A^* (q_3, \varepsilon)$$. Следовательно, $$w_{1} \in L_{A}$$.
Мы проверили, что на двух входах автомат A работает верно. Как установить,
что он построен корректно, т.е. верно работает на всех входных L?
Типичная схема доказательства правильности конечного автомата такова:
L(q), который состоит из q0 в q ;Применим эту схему к доказательству правильности, построенного выше автомата A.
Правильность определения L(q0), L(q1) и L(q!) следует
непосредственно из определения A. Самое короткое q0 в q2 - aa, и оно принадлежит L(q2). Аналогично, самое короткое q0 в q3 - aab, и оно принадлежит L(q3).
Предположим теперь, что для каждого w длины <= n выполнено условие (*):
w переводит q0 в $$q_{i} (i=2,3) \Leftrightarrow w \in L(q_{i})$$.
Покажем, что оно будет выполнено и для всех n +1.
Пусть |w|=n+1. Тогда $$w = w' \alpha$$, где $$\alpha \in \{ a, b \}$$.
Так как |w'|=n, то для w' выполнено условие (*).
Поэтому, если w' переводит q0 в q2, то это aa и содержит четное число b. При $$\alpha =a$$ w переводит q0 в q2 и также начинается с aa и содержит четное число b,
а при $$\alpha = b$$ w переводит q0 в q3,
начинается с aa и содержит нечетное число b, т.е. принадлежит L.
Аналогично, если w' переводит q0 в q3, то это aa и содержит нечетное число b. При $$\alpha =a$$ w также переводит q0 в q3 и также начинается с aa и содержит нечетное число b,
а при $$\alpha = b$$ w переводит q0 в q2, оно
начинается с aa и содержит четное число b.
Обратно, если $$\alpha =a$$, то w переводит q0 в $$q_{i} (i=2,3) \Leftrightarrow$$ w' переводит q0 в qi\ (i=2,3) и условие (*) выполнено, так как четность числа
букв b в w и в w' одинакова. Если же $$\alpha = b$$, то из определения автомата A
следует, что w переводит q0 в $$q_{2} \Leftrightarrow$$ w' переводит q0 в q3 и w переводит q0 в $$q_{3} \Leftrightarrow$$ w' переводит q0 в q2.
Так как четность числа букв b в w и в w' разная, то и в этом случае условие (*) выполнено. Для завершения доказательства осталось заметить,
что единственным заключительным состоянием автомата A является q3 и поэтому LA = L(q3) = L.
Пусть $$M_{1} = <\Sigma , Q_{1}, q_{0}^{1}, F_{1}, \Phi _{1}>$$ и $$M_{2} = <\Sigma , Q_{2}, q_{0}^{2}, F_{2}, \Phi _{2}>$$ - два
конечных автомата с общим L1 и L2,
соответственно. Определим по ним автомат M= $$<\Sigma , Q, q_{0}, F, \Phi >$$,
называемый M1 и M2 (M= M1 x M2), следующим образом. $$Q= Q_{1} x Q_{2} =\{ (q, p) | q \in Q_{1}, p \in Q_{2}\}$$, т.е. состояния нового автомата - это пары, первый
элемент которых - состояние первого автомата, а второй - состояние второго автомата. Для каждой такой пары (q,p) и входного символа $$a \in \Sigma$$ определим M является
пара q0= (q01, q02),
состоящая из L1 и L2, которую должен реализовать M.
Теорема 4.1.
M= $$<\Sigma , Q, q_{0}, F_{\setminus }, \Phi >$$ распознает L = L1 \ L2.Доказательство этой теоремы непосредственно выводится из следующего утверждения.
Лемма 4.2. Для любых двух состояний (q,p) и (q', p') автомата M и любого входного w w переводит (q,p) в (q', p') в автомате M тогда и только тогда, когда оно переводит q в q' в автомате M1 и p в p' в автомате M2.
Лемма устанавливается индукцией по длине w.
Следствие4.1.1. Класс конечно автоматных
Недетерминированные конечные автоматы, рассматриваемые в этом параграфе,
являются обобщениями детерминированных: они при чтении очередного символа на входе
могут выбрать в качестве следующего одно из нескольких состояний, а кроме того,
могут изменить состояние без чтения входа. Основной результат, который мы установим,
утверждает, что это обощение не существенно: недетерминированные и детерминированные
конечные автоматы распознают одни и те же
Определение 4.8. Недетерминированный конечный автомат (НКА) -
включающая следующие компоненты:
Q={q0, ... , qn-1} (n >= 1) - конечное множество - Для $$a \in \Sigma$$ значение $$\Phi (q, a)$$ - это множество
состояний в каждое из которых может перейти автомат из состояния q, когда получает на вход символ a. $$\Phi (q, \varepsilon )$$ - это множество
состояний в каждое из которых может перейти автомат из состояния q без чтения символа на входе.
Как и для детерминированных автоматов, q a -> q',
и для каждого состояния $$q' \in \Phi (q, \varepsilon )$$ в программу помещается команда q -> q'. Отличие от детерминированного случая состоит в том,
что для одной пары $$q \in Q$$ и $$a \in \Sigma$$ в программе может быть несколько команд вида q a -> q' или не быть ни одной такой команды. Кроме того, могут
появиться $$\varepsilon$$ -команды (пустые переходы) вида q -> q', означающие возможность непосредственного перехода из q в q' без чтения символа на входе.
При (m+1) -ый столбец,
соответствующий пустому символу $$\varepsilon$$ и на пересечении строки q и столбца $$a \in (\Sigma \cup \{ \varepsilon \} )$$ стоит множество состояний $$\Phi (q,a)$$.
Для недетерминированного автомата $$M = <\Sigma , Q, q_{0}, \Phi >$$
в DM=(Q, E) с выделенной начальной вершиной q0 и множеством заключительных вершин F ребра взаимно-однозначно соответствуют
командам: команде вида q a -> q' $$(a \in \Sigma )$$
соответствует ребро (q,q' ), с меткой a , а команде вида q -> q'
соответствует ребро (q,q' ), с меткой $$\varepsilon$$ .
Скажем, что заданный последовательностью ребер путь p=e1e2 ... eT в DM несет w=w1w2 ... wt (t <= T),
если после удаления из него "пустых" ребер (т.е. ребер с метками $$\varepsilon$$ ) остается последовательность
из t ребер $$p'=e_{j_1}e_{j_2} \ldots e_{j_t}$$, метки которых образуют w , т.е. wi - это метка ребра $$e_{j_i}\ (1 \leq i \leq t)$$.
Очевидно, это эквивалентно тому, что последовательность меток на ребрах пути p
имеет вид $$\varepsilon^{k_1}w_1\varepsilon^{k_2}w_2 \ldots \varepsilon^{k_t}w_t \varepsilon^{k_{t+1}}$$,
где kj >= 0 (j=1,2, ... , t+1) и $$\ t + \sum_{j=1}^{t+1} k_j = T$$.
w переводит q в q' в DM, если в ней имеется путь из q в q' который несет w .
На недетерминированные автоматы естественным образом переносится определение
Определение 4.9. Назовем (q, w), в которой $$q \in Q$$ и $$w \in \Sigma ^{*}$$.
Определим отношение $$\vdash_M$$ перехода из одной
или
$$( w = w^\prime и q^\prime \in \Phi(q,\varepsilon)).$$Как и для ДКА, через $$\vdash_M^*$$ обозначим рефлексивное и
Внешне определение распознавания
Определение 4.10. НКА M распознает (допускает, принимает) w, если для некоторого $$q \in F$$ \ $$(q_0, w) \vdash_M^* (q, \varepsilon).$$
LM, M, состоит из всех
Отличие состоит в том, что у НКА может быть несколько различных способов работы
(путей вычисления) на одном и том же входном w. Считаем, что НКА распознает
(допускает, принимает) это F.
Из определения DM непосредственно следует, что НКА M распознает w, тогда и только тогда, когда существует такое
заключительное состояние $$q \in F$$, что в DM w переводит q0 в q.
Иными словами, в DM имеется путь из q0 в q, на ребрах которого написано w (с точностью до меток $$\varepsilon$$ ).
Пример 4.1. Рассмотрим НКА $$N_{1} = < \{ a, b\} , \{ 0,1,2,3, 4\} , 0, \{ 3\} , \Phi >$$, где
| $$\Phi$$ : | $$Q\setminus \Sigma _{X}$$ | a | b | $$\varepsilon$$ |
|---|---|---|---|---|
0 |
{0,1} |
{0} |
$$\varnothing$$ | |
1 |
$$\varnothing$$ | $$\varnothing$$ | {4} |
|
2 |
{3} |
$$\varnothing$$ | $$\varnothing$$ | |
3 |
$$\varnothing$$ | $$\varnothing$$ | {1} |
|
4 |
$$\varnothing$$ | {2} |
$$\varnothing$$ |
Его
(рис 4.3) Диаграмма автомата N1Рассмотрим работу этого автомата на ababa:
Так как 3 - заключительное состояние, то $$ababa \in L_{N1}$$. Заметим, что у автомата N1 имеются и другие способы
работы на этом
Очевидно, что детерминированные конечные автоматы являются частными
случаями недетерминированных. Естественно спросить, распознают ли недетерминированные
конечные автоматы больший класс
Теорема 4.2. (Детерминизация НКА)
Для каждого НКА M можно эффективно построить такой
ДКА A, что LA = LM.
Доказательство Пусть $$M= <\Sigma , Q, q_{0}, F, \Phi >$$ - НКА. Процедура построения по нему M строится эквивалентный ему
НКА M1, в программе которого отсутствуют переходы по $$\varepsilon,$$ а на втором
этапе по M1 строится A.
Этап 1. Устранение пустых переходов.
Рассмотрим поддиаграму автомата M, в которой оставлены лишь ребра, помеченные $$\varepsilon:$$ $$D_{\varepsilon } =(Q, E_{\varepsilon })$$, где $$E_{\varepsilon } =\{ (q, q') | q' \in \Phi (q,\varepsilon )\}$$.
Пусть $$D_{\varepsilon *} =(Q, E_{\varepsilon }^{*})$$ - это граф достижимости (q в q'}.
Определим НКА $$M_{1}= <\Sigma , Q_{1}, q_{0}, F_{1}, \Phi _{1} >$$ следующим образом: $$Q_{1} = \{ q_{0}\} \cup \{ q | \ существуют \ такие \ q' \in Q и a \in \Sigma , что \ q \in \Phi (q', a) \}$$, т.е. кроме начального остаются лишь те состояния, в которые
входят "непустые" ребра. $$F_{1} =\{ q | \ существует \ такое \ q' \in F, что \ (q,q') \in E_{\varepsilon }^{*} \}$$,
т.е. к заключительным состояниям M добавляются состояния, из которых можно было
попасть в заключительные по путям из $$\varepsilon$$ -ребер.
Для каждой пары $$q' \in Q, a \in \Sigma$$ полагаем $$\Phi _{1}(q,a) =\{ r |\ существует \ такое \ q' \in F , \ что \ (q,q') \in E_{\varepsilon }^{*} и \ r \in \Phi (q',a) \}$$, т.е. в DM1} имеется a -ребро из q в r, если в DM был (возможно пустой) путь из $$\varepsilon$$ -ребер в некоторое состояние q', из которого a -ребро шло в r.
Из этого определения непосредственно следует, что в НКА M1 нет пустых переходов
по $$\varepsilon.$$ Установим эквивалентность M и M1.
Лемма 4.1. $$L_{M_1} = L_M$$.
Доказательство. Пусть w=w1w2... wt - произвольное входное p=e1e2 ... et (e1= (q0=r0,r1), ei=(ri-1,ri), i=2,..., t)
из q0 в некоторое состояние $$r_{t} \in F_{1}$$,
который несет w, т.е. ребро ei помечено символом wi.
Из определения функции $$\Phi _{1}$$ непосредственно следует,
что для любого ребра ei(ri-1, ri) этого пути в DM
имеется путь из ri-1 в ri, начало (возможно пустое) которого состоит
из $$\varepsilon$$ -ребер, а последнее ребро помечено символом wi. Объединив эти пути,
получим в DM путь из q0 в rt , который несет w.
Так как $$r_{t} \in F_{1}$$, то либо $$r_{t} \in F$$, либо в DM имеется путь по $$\varepsilon$$ -ребрам из rt в некоторое состояние $$r' \in F$$. В обоих случаях
в DM имеется путь из q0 в заключительное состояние, который несет w,
и следовательно, $$w \in L_{M}$$.
Обратно, пусть $$w \in L_{M}$$. Тогда в DM имеется путь из q0 в
некоторое заключительное состояние r, который несет w. Пусть r0=q0, а ri - это состояние этого пути, в которое приводит ребро с меткой wi (i= 1,... , t).
Рассмотрим отрезок этого пути между вершинами r_{i-1} и ri. Последнее ребро этого отрезка
имеет метку wi, а все предыдущие (если они имеются) помечены $$\varepsilon.$$
Тогда по определению $$\Phi _{1}$$ в r_{i-1} и ri
имеется ребро с меткой wi. Объединив эти ребра, получим в $$D_{M_1}$$ путь
из q0 в rt. Так как либо $$r_{t}=r \in F$$, либо в DM из rt имеется
путь из $$\varepsilon$$ -ребер в $$r \in F$$, то из определения F1 следует, что $$r_{t} \in F_{1}$$.
Таким образом, $$w \in L_{M_1}$$.
Этап 2. Детерминизация.
Идея детерминизации состоит в том, что состояниями ДКА объявляются подмножества
состояний НКА. Тогда для каждого такого подмножества T и входного символа a
однозначно
определено множество состояний T', в которые НКА может попасть из состояний T
при чтении a.
Определим по НКА $$M_{1}= <\Sigma , Q_{1}, q_{0}, F_{1}, \Phi _{1} >$$ ДКА $$A = <\Sigma , Q^{A}, q_{0}^{A}, F^{A}, \Phi ^{A}>$$ следующим образом.
$$\begin{array}{l} Q^A =\{ Q'\ |\ Q' \subseteq Q_1\},\\ q_0^A =\{ q_0\},\\ F^A =\{ Q'\ |\ Q' \cap F_1 \neq \emptyset \},\\ \Phi^A(Q', a) =\{ q\ |\ \text{ существует такое } q^\prime \in Q', \text{ что } q \in \Phi_1(q^\prime, a) \}. \end{array}$$Ясно, что A - детерминированный конечный автомат.
Следующая лемма устанавливает связь между его вычислениями и вычислениями
исходного НКА.
Лемма 4.4. Для любой пары состояний Q', Q'' из QA и любого
Доказательство. Применим индукцию по длине w.
Базис. Пусть |w|=0, тогда $$w=\varepsilon$$, Q' = Q'' и утверждение выполнено.
Пусть теперь |w|=1 и $$w= a \in \Sigma$$. Тогда утверждение леммы следует непосредственно
из определения $$\Phi ^{A(Q', a)}$$.
Шаг индукции. Предположим, что лемма справедлива для всех <= k,
и пусть |w| = k+1. Выделим в w первый символ: w=aw'.
Пусть $$\tilde{Q}$$ - это такое состояние, что $$(Q', a) \vdash_A \tilde{Q}, \varepsilon)$$.
Тогда $$(\tilde{Q}, w^\prime) \vdash_A^* (Q^{\prime\prime},\varepsilon)$$.
Так как |w'|=k, то по индукционному предположению это эквивалентно
следующему: $$Q^{\prime\prime}= \{ r\ |\ \text{ существует такое } q^\prime \in \tilde{Q}, \text{ что }\ (q,w^\prime) \vdash_{M_1}^* (r, \varepsilon)\}$$.
Но из определения $$\Phi ^{A}$$ следует, что $$\tilde{Q}$$ $$=\{ q | \ существует \ такое \ q' \in Q', \ что \ q \in \Phi _{1}(q', a) \}$$.
Объединив, эти два равенства, получаем: $$Q^{\prime\prime}= \{ r\ |\ \text{ существует такое } q^\prime \in Q^\prime, \text{ что }\ (q,w) \vdash_{M_1}^* (r, \varepsilon)\}$$.
Для завершения доказательства теоремы покажем с помощью леммы 4.4, что $$L_A = L_{M_1}$$.
Действительно, если w переводит состояние q0 в некоторое $$q \in F_{1}$$ в автомате M1, то, положив в лемме Q' ={ q0}, получим, что $$q \in Q''$$
для состояния Q'', такого, что $$(Q', w) \ vdash_{A}^{*} (Q'',\varepsilon )$$. Но тогда $$Q'' \in F^{A}$$
и $$w \in L_{A}$$.
Обратно, если $$w \in L_{A}$$, то для некоторого $$Q'' \in F^{A}$$ имеем $$(\{q_0\}, w) \vdash_A^* (Q^{\prime\prime},\varepsilon)$$. Тогда в Q''
имеется некоторое состояние $$q \in F_{1}$$ и по лемме 4.4 в автомате $$M_1 \ (q_0,w) \vdash_{M_1}^* (q, \varepsilon)\}$$, т.е. $$w \in L_{M1}$$.
Пример 4.2. Применим процедуру из теоремы
о детерминизации к НКА N1 из примера 4.3.
На первом этапе получаем $$E_{\varepsilon }^{*} =\{ (2,0), (1, 4), (3, 1), (4, 1)\}$$ и
НКА M1 без пустых переходов, представленный на следующей
(рис 4.4) Диаграмма автомата M1Заметим, что состояние 4 исчезло, так как в автомате N1 в него можно было
попасть только по $$\varepsilon$$ -переходу.
На втором этапе детерминизируем M1. ДКА A будет иметь 16 состояний: $$Q^{A}=\{ \varnothing , \{ 0\} , \{ 1\} , \{ 2\} , \{ 3\} ,\{ 0,1\} , \{ 0,2\} , \{ 0,3\} , \{ 1,2\} , \{ 1,3\} , \{ 2,3\} , \{ 0,1,2\} ,\{ 0,1,3\} ,\{ 0,2,3\} ,\{ 1,2,3\} ,\{ 0,1,2, 3\} \}$$.
Во M1:
F^A={{3},{0,3}, {1,3}, {0,1,3}, {0,2,3},{1,2,3}, {0,1,2, 3}}.
| $$Q^{A}\setminus \Sigma$$ | a | b |
|---|---|---|
| hline $$\varnothing$$ | $$\varnothing$$ | $$\varnothing$$ |
{0} |
{0,1} |
{0} |
{1} |
$$\varnothing$$ | {2} |
{2} |
{0,1,3} |
{0} |
{3} |
$$\varnothing$$ | {2} |
{0,1} |
{0,1} |
{0,2} |
{0,2} |
{0,1,3} |
{0} |
{0,3} |
{0,1} |
{0,3} |
| $$Q^{A}\setminus \Sigma$$ | a | b |
|---|---|---|
{1,2} |
{0,1,3} |
{0,2} |
{1,3} |
$$\varnothing$$ | {2} |
{2,3} |
{0,1,3} |
{0,2} |
{0,1,2} |
{0,1,3} |
{0,2} |
{0,1,3} |
{0,1} |
{0,2} |
{0,2,3} |
{0,1,3} |
{0,2} |
{1,2,3} |
{0,1,3} |
{0,2} |
{0,1,2,3} |
{0,1,3} |
{0,2} |
(рис 4.5) Диаграмма автомата A На самом деле нас интересуют лишь те состояния, в которые можно
попасть из {0}. Несложный анализ показывает,
что их только три: {0,1}, {0,2 } и {0, 1, 3 }. Остальные состояния не достижимы
из {0} и, следовательно, не влияют на работу автомата A. Их можно отбросить.
Таким образом, в
Замечание. В рассмотренном примере у построенного ДКА A оказалось не
больше состояний, чем у исходного НКА N1.
К сожалению, это не всегда так. Существуют примеры НКА с n состояниями,
для которых 2n состояний.
Задача 4.1. Автомат по продаже кофе имеет щель для получения монет, кнопку, нажатие которой после уплаты достаточной суммы приводит к получению кофе, и накопитель, через который он выдает сдачу покупателю. Автомат принимает монеты достоинством в 1, 2 и 5 рублей.
Чашка кофе стоит 8 руб. Пока полученная сумма недостаточна, горит красная лампочка.
Если сумма, полученная автоматом, >= 8, то зажигается зеленая лампочка и после нажатия
кнопки автомат наливает кофе и, если требуется, дает сдачу. Если автомат получает
монету, когда горит зеленая лампочка, то он немедленно ее возвращает.
Определите
Задача 4.2. Электронные часы имеют табло с указанием часов, минут и секунд и две управляющие кнопки. Одна кнопка переводит часы из нормального режима в режим настройки времени - вначале в настройку часов, затем - минут, затем - секунд, а затем возвращает в нормальный режим. Другая кнопка в нормальном режиме ничего не меняет, а в режиме настройки нажатие на нее увеличивает на единицу число настраеваемых часов, минут или секунд. Постройте автомат, который принимает на вход сигналы нажатия от двух кнопок, а на выходе выдает сигналы изменения режима и увеличения соответствующего числа.
Задача 4.3. Докажите лемму 4.1 индукцией по длине входного
Задача 4.4. Постройте детерминированные конечные автоматы, которые
распознают следующие
L = {w | длина w делится на 5} ;L = {w | w не содержит подслов 'aab' и 'bba'} ;L = {w | w содержит четное число букв а и нечетное число букв b} ;L = {w | число букв а делится на 3, а число букв b на 2 }.Задача 4.5. Выше в примере 4.1 был построен автомат с выходом, выполняющий сложение
двух двоичных чисел. Постройте автомат-
Автомат должен допустить такую последовательность,
если y = y(n) ... y(2)y(1) - это первые n битов суммы двоичных чисел x1= x1(n)... x1(2)x1(1) и x2 = x2(n)... x2(2)x2(1).
Задача 4.7. Докажите лемму 4.2.
Задача 4.8. Докажите, что приведенный на рис. 4.5 автомат A распознает 'aba'.
Задача 4.9. Используя процедуру детерминизации недетерминированных
автоматов из теоремы 4.2, постройте ДКА, эквивалентный заданному НКА M.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.