Детерминированные конечные автоматы (ДКА) и автоматные языки
Пусть ?={a1, …, am} - это алфавит, который состоит из конечного множества элементов, называемых символами (буквами).
Слово в алфавите ? - это конечная последовательность символов этого алфавита: w =w1… wn, wi

Языком в алфавите ? называется произвольное множество слов этого алфавита . Язык, включающий все слова в алфавите ? ( в том числе и пустое слово ?), будем обозначать через ?*.
Конечные автоматы часто используются для определения тех или иных свойств слов, т.е. для распознавания языков: автомат, распознающий некоторый язык L должен по произвольному слову w ответить на вопрос " w

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

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

Удобно также задавать функцию ? с помощью описанной выше таблицы размера n ? m, строки которой соответствуют состояниям из Q, а столбцы - символам из входного алфавита ?, и в которой на пересечении строки qi и столбца aj стоит состояние ?(qi,aj).
Как и автоматы-преобразователи, автоматы-распознаватели можно представлять с помощью размеченных ориентированных графов, называемых диаграммами.
Определение 4.4.
Диаграмма ДКА A = <?, Q, q0, ? > - это ориентированный (мульти)граф DA=(Q, E) с помеченными ребрами, в котором выделена вершина-начальное состояние q0 из каждой вершины q




Скажем, что представленный последовательностью ребер путь p=e1e2 … et в диаграмме несет слово w=w1w2 … wt, если wi - это метка ребра ei (1


Работа конечного автомата-распознавателя состоит в чтении входного слова и изменению состояний в зависимости от его символов.
Определение 4.5. Назовем конфигурацией ДКА A = <?, Q, q0, F, ?, > произвольную пару вида (q, w), в которой q


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


Если w=?, то положим для каждого q


Через


Содержательно,



Определение 4.6.
ДКА A распознает (допускает, принимает) слово w, если для некоторого q


Язык LA, распознаваемый (допускаемый, принимаемый) автоматом A, состоит из всех слов, распознаваемых этим автоматом:

Язык называется конечно автоматным, если он распознается некоторым ДКА.
Из этого определения, в частности, следует, что ?



Определение 4.7.
Автоматы A и B называются эквивалентными, если совпадают распознаваемые ими языки, т.е. LA = LB.
Определение распознавания слова и языка можно легко перевести на язык диаграмм.
Лемма 4.3. Автомат A распознает (допускает, принимает) слово w, если для некоторого q

Доказательство можно провести индукцией по длине слова w (см. задачу 4.3).
Tаким образом, язык LA, распознаваемый автоматом A, состоит из всех слов, которые переводят в его диаграмме DA начальное состояние q0 в заключительные состояния из F.
Наша цель теперь состоит в изучении класса конечно автоматных языков.
Во многих случаях удается доказать, что язык L конечно автоматный, непосредственно построив распознающий его автомат. Для этого нужно постараться разбить множество всех входных слов на конечное число классов "однородных", "эквивалентных" слов, т.е. слов, получение которых на входе одинаково влияет на возможность их продолжения до слов распознавемого языка. Затем для каждого такого класса создать состояние автомата и определить переходы между этими состояниями. Часто полезно бывает выделить одно состояние для представления "ошибочных" слов, для которых ни они сами, ни любые их продолжения не входят в язык.