Автомат - дискретный преобразователь информации, на вход которого поступают входные последовательности сигналов (входные слова). Он формирует выходные последовательности сигналов на основании своих внутренних состояний и входной последовательности сигналов.
В курсе рассматривается абстрактная теория автоматов.
Нас будет интересовать их поведенческий аспект. Автомат для нас – математическая модель, а не физическое устройство. Автоматы фактически позволяют реализовать логику, зависящую от времени.
Не рассматриваемая здесь структурная теория автоматов занимается реализаций абстрактного автомата с помощью физических сущностей, вроде элементов памяти (например, триггеров) и комбинационных (логических) схем…
Будем иметь в виду две ключевые абстракции:
1. Автомат функционирует в абстрактном времени.
2. Все переходы происходят мгновенно.
Автомат есть система шести объектов:
a = <X, Y, Q, f, j, q0>
X = {x1,...,xn} - конечный входной алфавит (множество входных сигналов).
Y = {y1,...,ym} - конечный выходной алфавит (множество выходных сигналов).
Q = {q0, q1,...,qk} – множество состояния автомата.
Если множество конечно автомат называется конечным.
f (q, x) - функция переходов.
j (q, x) - функция выходов.
q0 Î Q - начальное состояние.
}
Автомат I-го рода (автомат Мили)
q(t) = f(q(t-1), x(t))
y(t) = j(q(t-1), x(t))
}
Автомат II-го рода
q(t) = f(q(t-1), x(t))
y(t) = j(q(t), x(t))
}
Правильный автомат II-го рода (автомат Мура)
q(t) = f(q(t-1), x(t))
y(t) = j(q(t))
Замечание. Для удобства восприятия и сокращения описания будем говорить об автоматах как об автоматических роботоподобных устройствах, хотя на самом деле это, как уже было сказано, лишь математические модели, преобразующие входные слова в выходные и не имеющие дела с физическими сущностями, вроде монет, билетов и т.п.
Пример 1 (автомат Мили):
Построить (синтезировать) автомат, на вход которого могут поступать в любой последовательности и, возможно, с повторениями монеты (как в добрые старые времена) 1; 2 и 3 копейки. Автомат продает билет, если сумма опущенных монет равна 3. В случае превышения суммы автомат возвращает деньги.
Входной алфавит в описании задан явно: Х = {1, 2, 3}.
Выходной алфавит будет содержать буквы (сигналы): Б – выдает билет, В – возвращает деньги, Н – ничего не выдает (это такой специфический выходной сигнал). То есть У = {Б, В, Н}.
Можно представить автомат в виде графа, где вершины представляют состояния, а к каждой стрелке приписана пара входной сигнал/выходной сигнал. То есть размеченные стрелки отражают функции переходов и выходов.
3/В 1/Н 1/Н
2/Б 1/Н
2/Н
3/Б 1/Б 2/Н
2/В 3/Б
От представления автомата в виде графа можно очевидным образом перейти к его табличному представлению, которое также однозначно определяет автомат. Табличное представление предпочтительно для автоматов с большим числом состояний и при представлении автоматов в компьютере.