Матрицы переходов

Таблицы переходов

Способы математического описания конечных автоматов

Существуют различные способы задания конечных автоматов. Наиболее известные способы - это таблицы и матрицы переходов, диаграммы переходов и автоматные уравнения.

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

Таблица 1 является таблицей переходов полного синхронного автомата. Из таблицы видно, что автомат имеет четыре состояния входа p1, p2, p3, p4 и четыре внутренних состояния h1, h2, h3, h4. В каждой клетке таблицы указывается номер внутреннего состояния, в которое автомат должен перейти в следующий момент времени.

Если в какой-либо клетке таблицы состояние не указано, то это состояние называется неопределенным, а такой автомат называется недоопределенным.

Недоопределенные автоматы могут существовать только теоретически. Практически же любая реальная схема автомата, построенная из логических элементов, соответствует полностью определенному конечному автомату. Для задания функции выходов автомата в таблицу переходов добавляют дополнительный столбец (автомат Мили) или выходные состояния указываются дополнительно в каждой клетке таблицы (таблицы 2,3 соответственно).

 

Таблица.1 - Таблица переходов

Внутреннее состояние (до перехода) Состояние автомата (после перехода) при установке состояний входа
p1 p2 p3 p4
h1 h1 h3 h2 h1
h2 h2 h1 h4 h2
h3 h3 h3 h3 h2
h4 h4 h1 h2 h4

 

Таблица 2 - Таблица переходов с дополнительным столбцом, указывающим функцию выхода

 

Внутреннее состояние (до перехода) Состояние автомата (после перехода) при установке состояний входа Функция выхода
p1 p2 p3 p4  
h1 h1 h3 h2 h1 Y1
h2 h2 h1 h4 h2 Y2
h3 h3 h3 h3 h2 Y3
h4 h4 h1 h2 h4 Y4

 

Таблица 3 - Таблица переходов с указанием в каждой ячейке таблиц функции выхода после перехода

 

Внутреннее состояние (до перехода) Состояние автомата (после перехода) при установке состояний входа
p1 p2 p3 p4
h1 h1/y1 h3/y2 h2/y1 h1/-
h2 h2/y3 h1/y1 h4/- h2/-
h3 h4/- h3/y4 h3/- h2/y3
h4 h3/y4 h1/- h2/y2 h4/y1

 

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

В результате чего все состояния, располагаемые в клетках таблицы переходов, разделяются на два вида: устойчивые и неустойчивые. В таблице переходов (таблица 4) устойчивые состояния заключены в скобки.

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

 

 

Таблица 4 - Таблица переходов с указанием устойчивых состояний асинхронного автомата

 

Внутреннее состояние (до перехода) Состояние автомата (после перехода) при установке состояний входа
p1 p2 p3 p4
h1 (h1) h3 h2 (h1)
h2 (h2) h1 h4 (h2)
h3 h4 (h3) (h3) h2
h4 h3 h1 h2 (h4)

 

Матрица переходов, используемая для задания автомата, представляет собой квадратную матрицу (таблица 5), строки и столбцы которой соответствуют внутренним состояниям автомата. Элементы матрицы указывают состояние входа автомата, при котором он переходит из внутреннего состояния, соответствующего строке во внутреннее состояние, соответствующее столбцу, а также указывают соответствующее выходное состояние.

 

Таблица 5 - Матрица переходов автомата

 

Исходное внутренние состояние Переход во внутренние состояния
h1 h2 h3 h4
При состояниях входа/выхода
h1 p1/y1 p2/y2 p4/y1 p3/y2
h2 p3/y2 p1/y4 p2/y3 p4/y2
h3 p3/y4 p1/y1 p2/y4 p4/y1
h4 p2/y3 p3/y3 p1/y2 p4/y1