logo search
кр одмита

7. Конечный автомат и его описание.

7.1. Автомат с памятью

До сих пор рассматривались устройства, не обладающие памятью. Такие устройства в любой момент времени на любую комбинацию входных двоичных сигналов реагируют однозначно, т. е. каждой комбинации двоичных сигналов на входе устройства соответствует определенная комбинация двоичных сигналов на выходе независимо от того, какие сигналы приходили на вход раньше. Отсюда происходят названия «комбинационный автомат» или «комбинационная схема».

Общепринятой моделью поведения такого устройства является система булевых функций. Комбинации двоичных сигналов иногда удобно обозначать абстрактными символами или буквами некоторого заданного алфавита. Пусть имеется входной алфавит А = {a1a2, … , a} и выходной алфавит В = {b1b2, … , b}. Тогда общий вид описания поведения комбинационного автомата можно представить табл. 7.1, где  В. Эта таблица является аналогом таблицы истинности. Она полностью определяет алгоритм функционирования заданного устройства.

Таблица 7.1

Пример задания комбинационного автомата

Вход

Выход

а1

а2

а

Часто алгоритм функционирования устройства бывает таким, что простым соответствием вида табл. 7.1 его задать невозможно. Для его описания необходимо ввести время, и работа устройства рассматривается во времени. Время носит дискретный характер, т. е. течение времени представляется как последовательность моментов. В любой момент времени устройство принимает сигнал на входе и выдает сигнал на выходе. В различные моменты устройство может реагировать на один и тот же входной сигнал по-разному. Пусть, например, на вход устройства с входным и выходным алфавитами А = {a1a2а3a4} и В = {b1b2b3} пришла последовательность сигналов

a1 a1 а3 a2 a2 а4 a3,

а на выходе наблюдается последовательность сигналов

b2 b3 b2 b1 b3 b2 b1.

В первый момент времени устройство на входной сигнал а1 реагировало выходным сигналом b2, а во второй момент на тот же сигнал – сигналом b3. На сигналы а2 и а3 в разные моменты оно реагировало также по-разному, т. е. поведение устройства нельзя описать тем же способом, что использовался для описания поведения комбинационного автомата.

Эта неоднозначность устраняется, если ввести понятие внутреннего состояния или просто состояния. Тогда то, что устройство реагирует на один и тот же сигнал в разные моменты по-разному, можно объяснить так, что оно находится при этом в разных состояниях. Приняв входной сигнал, устройство выдает выходной сигнал и может перейти в другое состояние.

Состояния образуют множество Q  {q1q2, … , q}. Тогда алгоритм функционирования устройства можно представить совокупностью строк вида

(aiqj)  (qsbt),

где ai  А, bt  В, qjqs  Q. Устройство, поведение которого можно задать в таком виде, носит название «автомат с памятью» или «последовательностный автомат». Последний термин заключает в себе смысл отображения входной последовательности в другую.

Соответствие (aiqj)  (qsbt) можно задать таблицей, подобной табл. 7.1, где фактически представлены две функции, определенные на множестве A  Q. Областью значений одной функции является множество Q, другой функции – множество В.

Моделью описанного устройства является конечный автомат, представляющий собой совокупность следующих объектов:

А = {a1a2, … , a} – множество входных символов, или входной алфавит;

В = {b1b2, … , b} – множество выходных символов, или выходной алфавит;

Q  {q1q2, … , q} – множество состояний, или внутренний алфавит;

 : A  Q  Q – функция переходов;

 : A  Q  В – функция выходов.

Для конечного автомата используется обозначение (ABQ,  ). Слово «конечный» подчеркивает, что все три множества, входящие в состав данной модели, конечны. В том виде, в каком эта модель здесь представлена, она носит название «автомат Мили». Другой разновидностью данной модели является автомат Мура, отличающийся от автомата Мили только тем, что функция выходов не зависит от входного символа, т. е. представляет собой отображение  : Q  В.

Значением функции (aq) является состояние q+, в которое переходит автомат из состояния q, если на вход его подан символ а. Значением функции (aq) является выходной символ, выдаваемый автоматом в состоянии q при поступлении на его вход символа а, а значением функции (q) автомата Мура – выходной символ b, который выдает автомат, находясь в состоянии q. Если значения функций (aq) и (aq) определены для любой пары значений аргументов а и q, а в модели Мура функция (q) определена для всех значений q, то автомат является полностью определенным, или полным автоматом. Иногда приходится иметь дело с не полностью определенным, или частичным автоматом, у которого эти функции могут быть определены не везде.

Конечный автомат является абстрактной математической моделью дискретного устройства. Поведение, описанное данной моделью, может быть по-разному реализовано в дискретном устройстве. При синхронной реализации моменты времени, когда определяется состояние, в которое переходит устройство, а в случае автомата Мили и выходной символ, зафиксированы. Технически это осуществляется введением генератора синхронизирующих сигналов, которые инициируют соответствующие действия. Период следования таких сигналов не должен быть меньше чем время, необходимое для завершения переходных процессов в устройстве. Реализованный таким образом конечный автомат называется синхронным автоматом.

При асинхронной реализации указанные моменты времени не фиксированы. Они связаны с моментами, в которые происходит изменение входного сигнала. Реализованный таким образом автомат называется асинхронным автоматом. Если синхронный автомат различает последовательности разной длины из одинаковых входных символов, т. е. может реагировать на них различными выходными последовательностями, то асинхронный автомат воспринимает последовательность одинаковых входных символов любой длины как один символ. В схеме такого устройства генератор синхронизирующих сигналов отсутствует.

В асинхронном автомате переход из состояния в состояние происходит за некоторый конечный промежуток времени, в течение которого не должен меняться входной сигнал. При действии любого входного сигнала автомат приходит в некоторое устойчивое состояние, из которого он не выходит до конца действия данного сигнала. При этом должно выполняться требование прямого перехода, которое формально выражается следующим образом: если (aqi) = qj, то (aqj) = qj. Иногда допускается выполнение следующей цепочки переходов: (aqi) = qr, (aqr) = qs, … , (aqt) = qj, (aqj) = qj.