Введение в схемы, автоматы и алгоритмы

          

Недетерминированные конечные автоматы и их детерминизация


Недетерминированные конечные автоматы, рассматриваемые в этом параграфе, являются обобщениями детерминированных: они при чтении очередного символа на входе могут выбрать в качестве следующего одно из нескольких состояний, а кроме того, могут изменить состояние без чтения входа. Основной результат, который мы установим, утверждает, что это обощение не существенно: недетерминированные и детерминированные конечные автоматы распознают одни и те же языки.

Определение 4.8. Недетерминированный конечный автомат (НКА) - распознаватель - это система вида

Недетерминированные конечные автоматы и их детерминизация

включающая следующие компоненты:

  • ? ={a1, … , am} (m
    Недетерминированные конечные автоматы и их детерминизация
    1) - конечное множество - входной алфавит;
  • Q={q0, … , qn-1} (n
    Недетерминированные конечные автоматы и их детерминизация
    1) - конечное множество - алфавит внутренних состояний;
  • q0
    Недетерминированные конечные автоматы и их детерминизация
    Q - начальное состояние автомата;
  • F
    Недетерминированные конечные автоматы и их детерминизация
    Q - множество принимающих (допускающих, заключительных) состояний;
  • ?: Q ? (?
    Недетерминированные конечные автоматы и их детерминизация
    {?})
    Недетерминированные конечные автоматы и их детерминизация
    2Q - функция переходов.

Для a

Недетерминированные конечные автоматы и их детерминизация
? значение ?(q, a) - это множество состояний в каждое из которых может перейти автомат из состояния q, когда получает на вход символ a. ?(q, ?) - это множество состояний в каждое из которых может перейти автомат из состояния q без чтения символа на входе.

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

Недетерминированные конечные автоматы и их детерминизация
Q и a
Недетерминированные конечные автоматы и их детерминизация
? и каждого состояния q'
Недетерминированные конечные автоматы и их детерминизация
?(q, a) в программу помещается команда q a
Недетерминированные конечные автоматы и их детерминизация
q', и для каждого состояния q'
Недетерминированные конечные автоматы и их детерминизация
?(q, ?) в программу помещается команда q
Недетерминированные конечные автоматы и их детерминизация
q'. Отличие от детерминированного случая состоит в том, что для одной пары q
Недетерминированные конечные автоматы и их детерминизация
Q и a
Недетерминированные конечные автоматы и их детерминизация
? в программе может быть несколько команд вида q a
Недетерминированные конечные автоматы и их детерминизация
q' или не быть ни одной такой команды. Кроме того, могут появиться ?-команды (пустые переходы) вида q
Недетерминированные конечные автоматы и их детерминизация
q', означающие возможность непосредственного перехода из q в q' без чтения символа на входе.

При табличном задании функции ? в таблице появляется (m+1)-ый столбец, соответствующий пустому символу ? и на пересечении строки q и столбца a

Недетерминированные конечные автоматы и их детерминизация
(?
Недетерминированные конечные автоматы и их детерминизация
{?}) стоит множество состояний ?(q,a).

Для недетерминированного автомата M = <?, Q, q0, ? > в диаграмме DM=(Q, E) с выделенной начальной вершиной q0 и множеством заключительных вершин F ребра взаимно-однозначно соответствуют командам: команде вида q a

Недетерминированные конечные автоматы и их детерминизация
q' (a
Недетерминированные конечные автоматы и их детерминизация
?) соответствует ребро (q,q'), с меткой a , а команде вида q
Недетерминированные конечные автоматы и их детерминизация
q' соответствует ребро (q,q'), с меткой ?.


Скажем, что заданный последовательностью ребер путь p=e1e2 … eT в диаграмме DM несет слово w=w1w2 … wt (t
Недетерминированные конечные автоматы и их детерминизация
T), если после удаления из него "пустых" ребер (т.е. ребер с метками ?) остается последовательность из t ребер
Недетерминированные конечные автоматы и их детерминизация
, метки которых образуют слово w , т.е. wi - это метка ребра
Недетерминированные конечные автоматы и их детерминизация
. Очевидно, это эквивалентно тому, что последовательность меток на ребрах пути p имеет вид
Недетерминированные конечные автоматы и их детерминизация
, где kj
Недетерминированные конечные автоматы и их детерминизация
0 (j=1,2, … , t+1) и
Недетерминированные конечные автоматы и их детерминизация
.

Слово w переводит q в q' в диаграмме DM, если в ней имеется путь из q в q' который несет w .

На недетерминированные автоматы естественным образом переносится определение конфигураций и отношения перехода между ними.

Определение 4.9. Назовем конфигурацией НКА M = <?, Q, q0, F, ?, > произвольную пару вида (q, w), в которой q
Недетерминированные конечные автоматы и их детерминизация
Q и w
Недетерминированные конечные автоматы и их детерминизация
?*. Определим отношение
Недетерминированные конечные автоматы и их детерминизация
перехода из одной конфигурации в другую за один шаг:

Недетерминированные конечные автоматы и их детерминизация


или

Недетерминированные конечные автоматы и их детерминизация


Как и для ДКА, через
Недетерминированные конечные автоматы и их детерминизация
обозначим рефлексивное и транзитивное замыкание отношения
Недетерминированные конечные автоматы и их детерминизация
.

Внешне определение распознавания слов НКА совпадает с определением для ДКА.

Определение 4.10. НКА M распознает (допускает, принимает) слово w, если для некоторого
Недетерминированные конечные автоматы и их детерминизация
\
Недетерминированные конечные автоматы и их детерминизация
.

Язык LM, распознаваемый НКА M, состоит из всех слов, распознаваемых автоматом:

Недетерминированные конечные автоматы и их детерминизация


Отличие состоит в том, что у НКА может быть несколько различных способов работы (путей вычисления) на одном и том же входном слове w. Считаем, что НКА распознает (допускает, принимает) это слово, если хотя бы один из этих способов приводит в заключительное состояние из F.

Из определения диаграммы DM непосредственно следует, что НКА M распознает слово w, тогда и только тогда, когда существует такое заключительное состояние q
Недетерминированные конечные автоматы и их детерминизация
F, что в диаграмме DM слово w переводит q0 в q. Иными словами, в DM имеется путь из q0 в q, на ребрах которого написано слово w (с точностью до меток ?).

Пример 4.1. Рассмотрим НКА N1 = < {a, b}, {0,1,2,3, 4}, 0, {3}, ?>, где

?:Q\?Xab?
0{0,1}{0}
Недетерминированные конечные автоматы и их детерминизация
1
Недетерминированные конечные автоматы и их детерминизация
Недетерминированные конечные автоматы и их детерминизация
{4}
2{3}
Недетерминированные конечные автоматы и их детерминизация
Недетерминированные конечные автоматы и их детерминизация
3
Недетерминированные конечные автоматы и их детерминизация
Недетерминированные конечные автоматы и их детерминизация
{1}
4
Недетерминированные конечные автоматы и их детерминизация
{2}
Недетерминированные конечные автоматы и их детерминизация
Его диаграмма
Недетерминированные конечные автоматы и их детерминизация
представлена ниже на рис. 4.3.

Недетерминированные конечные автоматы и их детерминизация

Рис. 4.3.  Диаграмма автомата N1

Рассмотрим работу этого автомата на слове ababa:



Недетерминированные конечные автоматы и их детерминизация


Так как 3 - заключительное состояние, то ababa
Недетерминированные конечные автоматы и их детерминизация
LN1. Заметим, что у автомата N1 имеются и другие способы работы на этом слове, не ведущие к заключительному состоянию. Например, он может после чтения каждого символа оставаться в состоянии 0. Но чтобы слово допускалось, достаточно существовать хотя бы одному "хорошему" способу.

Очевидно, что детерминированные конечные автоматы являются частными случаями недетерминированных. Естественно спросить, распознают ли недетерминированные конечные автоматы больший класс языков чем детерминированные? Следующая теорема показывает, что классы языков, распознаваемых НКА и ДКА совпадают.

Теорема 4.2. (Детерминизация НКА)

Для каждого НКА M можно эффективно построить такой ДКА A, что LA = LM.

Доказательство Пусть M= <?, Q, q0, F, ? > - НКА. Процедура построения по нему эквивалентного ДКА состоит из двух этапов: на первом по M строится эквивалентный ему НКА M1, в программе которого отсутствуют переходы по ?, а на втором этапе по M1 строится эквивалентный ДКА A.


Содержание раздела