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

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

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










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


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



Скажем, что заданный последовательностью ребер путь p=e1e2 … eT в диаграмме DM несет слово w=w1w2 … wt (t






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




или

Как и для ДКА, через


Внешне определение распознавания слов НКА совпадает с определением для ДКА.
Определение 4.10. НКА M распознает (допускает, принимает) слово w, если для некоторого


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

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

Пример 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. Диаграмма автомата N1
Рассмотрим работу этого автомата на слове ababa:

Так как 3 - заключительное состояние, то ababa

Очевидно, что детерминированные конечные автоматы являются частными случаями недетерминированных. Естественно спросить, распознают ли недетерминированные конечные автоматы больший класс языков чем детерминированные? Следующая теорема показывает, что классы языков, распознаваемых НКА и ДКА совпадают.
Теорема 4.2. (Детерминизация НКА)
Для каждого НКА M можно эффективно построить такой ДКА A, что LA = LM.
Доказательство Пусть M= <?, Q, q0, F, ? > - НКА. Процедура построения по нему эквивалентного ДКА состоит из двух этапов: на первом по M строится эквивалентный ему НКА M1, в программе которого отсутствуют переходы по ?, а на втором этапе по M1 строится эквивалентный ДКА A.