Способы задания автомата (Лекция)
1. Табличный способ
2. Графический способ задания автомата
Чтобы задать конечный автомат S, необходимо описать все элементы множества S = , т.е. необходимо описать входной, выходной алфавиты и алфавит состояний, а также функции переходов d и выходов l . При этом среди множества A = 0,a1,…, an > необходимо выделить начальное состояния a0, в котором автомат находится в момент времени t = 0. Существует несколько способов задания работы автомата, но наиболее часто используются табличный и графический.
При этом способе автомат Мили описывается двумя таблицами: таблицей переходов и таблицей выходов.
Строки этих таблиц соответствуют входным сигналам x ( t ), а столбцы – состояниям. На пересечении столбца ai и строки xj в таблице переходов ставится состояние as = d [ ai,xj ], в которое автомат перейдет из состояния ai под воздействием сигнала xj ; а в таблице выходов – соответствующий этому переходу выходной сигнал yg = l [ ai,xj ].
Совмещенная таблица переходов и выходов автомата Мили:
Задание таблиц переходов и выходов полностью описывает работу конечного автомата, поскольку задаются не только сами функции переходов и выходов, но и также все три алфавита: входной, выходной и алфавит состояний.
Для задания автомата Мура требуется одна таблица, поскольку в этом автомате выходной сигнал однозначно определяется состоянием автомата.
Отмеченная таблица переходов автомата Мура :
В этой таблице каждому столбцу приписан, кроме состояния ai , еще и выходной сигнал y ( t ) = l ( a ( t )), соответствующий этому состоянию. Таблица переходов автомата Мура называется отмеченной потому, что каждое состояние отмечено выходным сигналом.
Приведем примеры табличного задания автоматов Мили и Мура :
По этим таблицам можно найти реакцию автомата на любое входное слово. Например.
Для автомата Мили: Для автомата Мура :
2. Графический способ задания автомата (задание автомата с помощью графа)
Этот способ основан на использовании ориентированных связных графов. Вершины графов соответствуют состояниям автомата, а дуги – переходам между ними. Две вершины графа ai и as соединяются дугой, направленной от ai к as , если в автомате имеется переход из ai в as , т.е. as = d ( ai , xj ). В автомате Мили дуга отмечается входным сигналом xj , вызвавшим переход, и выходным сигналом yg , который возникает при переходе. Внутри кружочка, обозначающего вершину графа, записывается состояние. Например, для автомата Мили, приведенного выше, граф имеет вид а), а для автомата Мура вид б).
Источник
Табличный способ задания автомата
Автомат Мура задается отмеченной таблицей переходов и выходов. Автомат Мили задается либо совмещенной таблицей переходов и выходов, либо двумя таблицами – таблицей переходов и таблицей выходов. Во всех таблицах строки соответствуют входным сигналам, а столбцы – состояниям. Автомат, заданный табличным способом, всегда детерминирован.
В отмеченной таблице переходов автомата Мура каждый столбец отмечается выходным сигналом. Кроме того, на пересечении строки xi и столбца aj записывается состояние ak, в которое перейдет автомат, находящийся в состоянии aj под действием входного сигнала xi, т. е. δ(aj, xi) = ak.
Рассмотрим пример табличного задания автомата Мура (табл. 1.1). Пусть автомат Мура имеет три входных сигнала, два выходных сигнала и три состояния.
Отмеченная таблица автомата Мура
y | y1 | y2 | y1 |
a x | a0 | a1 | a2 |
x1 | a1 | a1 | a0 |
x2 | a0 | a2 | a1 |
x3 | a2 | a0 | a2 |
Данный автомат является полностью определенным.
Рассмотрим пример табличного задания автомата Мили. Пусть автомат Мили имеет два входных сигнала, три выходных сигнала и три состояния.
В клетку таблицы переходов автомата Мили (табл. 1.2) на пересечении строки хi и столбца aj записывается состояние, в которое перейдет автомат, а в соответствующую клетку таблицы выходов (табл. 1.3) – выходной сигнал, который автомат выдает на этом переходе.
Таблица 1.2 Таблица переходов автомата Мили δ: (A × X) → A | Таблица 1.3 Таблица выходов автомата Мили λ: (A × X) → Y | ||||||
| а0 | а1 | а2 | | а0 | а1 | а2 |
х1 | а1 | а0 | а1 | х1 | y1 | y2 | – |
х2 | а0 | а2 | а1 | х2 | y1 | y3 | y2 |
«–» – значение не определено |
Например, δ(а1, х1) = а0 означает, что автомат, находясь в состоянии а1 при поступлении на вход сигнала х1, перейдет в состояние а0; λ(а1, х1) = y2 означает, что автомат, находясь в состоянии а1 при поступлении на вход сигнала х1, выдаст выходной сигнал y2; λ(а1, х2) = y3 означает, что автомат, находясь в состоянии а1 при поступлении сигнала х2, выдает выходной сигнал y3. Таким образом, находясь в одном и том же состоянии, автомат Мили может выдавать различные сигналы.
В этом случае совмещенная таблица переходов и выходов автомата Мили имеет следующий вид (табл. 1.4).
Совмещенная таблица переходов и выходов автомата Мили
а х | а0 | а1 | а2 |
x1 | а1/y1 | а0/y2 | а1/– |
x2 | а0/y1 | а2/y3 | а1/y2 |
В клетку совмещенной таблицы переходов и выходов автомата Мили на пересечении строки хi и столбца aj записывается состояние, в которое перейдет автомат, а через косую черту – выходной сигнал, который автомат выдает на этом переходе.
Табличный способ обладает невысокой наглядностью, однако автомат, заданный табличным способом, всегда детерминирован. Кроме того, табличное задание автомата позволяет легко перейти к процессу структурного синтеза. Для этого часто используется прямая таблица переходов и выходов автомата.
Рассмотрим пример задания автомата Мура прямой таблицей переходов и выходов. Пусть автомат Мура имеет два входных сигнала, три выходных сигнала и три состояния.
При комбинации (а1, x2) не определены функция переходов d = y(а1) и функция выходов l = j(а1), см. табл. 1.5.
Прямая таблица переходов и выходов автомата Мура
Исходное состояние аi | Входной сигнал xk | Следующее состояние аj, d = y(аi) | Выходной сигнал yn, l = j(аi) |
а0 | x1 | а1 | y1 |
а0 | x2 | а0 | y1 |
а1 | x1 | а2 | y3 |
а1 | x2 | – | – |
а2 | x1 | а1 | y1 |
а2 | x2 | а0 | y1 |
В процессе структурного синтеза на основе данной таблицы строится кодированная прямая таблица переходов и выходов автомата (табл. 1.6). При этом столбец 3 будет представлять собой исходные данные для формирования функции возбуждения элементов памяти автомата, имеющей различный вид при реализации памяти автомата на D-триггерах и на JK-триггерах.
Коды состояний в табл. 1.6 представлены в двоичном формате при помощи позиционного двоичного кода с использованием естественного способа кодирования. Входные и выходные сигналы могут быть закодированы в двоичном формате как с использованием унитарного кодирования, так и с использованием кодирования при помощи позиционного двоичного кода.
Прямая кодированная таблица переходов и выходов автомата Мили
Исходное состояние аi | Входной сигнал xk | Следующее состояние аj, d = y(аi) | Выходной сигнал yn, l = j(аi , xk) |
а0 (код 00) | x1 | а1 (код 01) | y1 |
а0 (код 00) | x2 | а2 (код 10) | y2 |
а1 (код 01) | x1 | а2 (код 10) | y2 |
а1 (код 01) | x2 | – | – |
а1 (код 01) | x1 | а1 (код 01) | y3 |
а2 (код 10) | x2 | а0 (код 00) | y1 |
Дата добавления: 2017-09-19 ; просмотров: 1988 ; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ
Источник
Самостоятельное изучение схемотехники. Абстрактный автомат. Часть 2
Статья написана, собрана и сверстана Brotherofken. Спасибо ему огромное.
В предыдущей статье я попытался изложить все основные определения и принципы, чтобы сделать эту статью максимально понятной. Все не уместилось, так что я настоятельно советую ознакомиться с этими файлами:
Базис, Базис2, Минимизация. Далее в этой статье я оставил несколько разъясняющих пометок курсивом.
В этой статье я попробую объяснить доступным языком что такое абстрактный автомат, способы его представления. Так как теория автоматов полна математики и сложна, постараюсь писать человеческим языком, чтобы неподготовленный читатель смог понять о чём идёт речь.
Электронные цифровые схемы формально можно разделить на 2 класса:
- Комбинационные Схемы (КС) – не обладают памятью. Выходной сигнал формируется в зависимости от комбинации входных данных в фиксированный момент времени (учитывая задержку на преобразования сигналов).Комбинационные схемы, их типы и принципы построения могут быть темой для отдельной статьи, а в качестве примеров можно привести: Управляемые шины, мультиплексоры и демультиплексоры, дешифраторы и шифраторы, преобразователи кодов, комбинационные счетчики и сумматоры и т. д.
- Схемы с памятью – алгоритм их работы зависит от состояния входов и памяти (того, что было в предыдущие моменты времени). Эти схемы описываются с применением теории конечных автоматов. Речь о них и пойдёт далее.
Другими словами первый класс — логические устройства, обрабатывающие входной сигнал. Второй элементы обладающие памятью и реагирующие на сигнал в зависимости от введенных в них данных.
Абстрактный автомат
Автомат должен будет реализовывать некоторые функции, которые заданы разработчиком. Он может быть простым сумматором, может реализовывать какую-либо микрокоманду процессора, выбирать слова из оперативной памяти или заниматься синтаксическим анализом выражения.
В общем виде, не вдаваясь в подробности, абстрактный автомат можно представить следующим образом:
Или, если перейти от иллюстрации к математическому описанию:
A =
Такой автомат функционирует дискретно по времени, то есть значения входов, выходов и внутреннее состояние автомата изменяются в дискретные моменты времени.
Итак мы в общем виде описали что есть Абстрактный автомат. Примером такого автомата может быть триггер, регистр ЭВМ или сумматор.
Выделяют 2 типа автоматов:
- Автоматы Мили. Описывается системой уравнений:
c(t) = δ( a(t), c(t-1) );
b(t) = λ( a(t), c(t-1) ). - Автоматы Мура. Описывается уравнениями:
c(t) = δ( a(t), c(t-1) );
b(t) = λ( a(t), c(t) ).
Как видно состояние автомата c(t) в текущий момент времени является функцией его состояния в предыдущий момент времени и входного сигнала.
Отличаются автоматы видом функции выхода. В автомате Мили выходной сигнал определяется входным сигналом a(t) и состоянием автомата в предыдущий момент времени c(t-1). Выходной сигнал автомата Мура определяется парой входного сигнала a(t) и состояния в данный момент c(t).
Так же можно отметить, что от одного типа можно перейти ко второму и наоборот, причем при переходе от автомата Мили к автомату Мура число внутренних состояний автомата останется прежним, а при обратном переходе число внутренних состояний может возрасти. На этом останавливаться подробно не будем, считая, что синтезировали(нарисовали граф) автомат того типа, который надо.
Итак, на этом с матчастью окончено. Попробуем описать автоматы.
Т.е. автомат типа Мили вырабатывает выходной сигнал когда у него меняется входной, в зависимости от его предыдущего состояния. При этом длительность выходного сигнала не зависит от длительности входного, а только от его присутствия. В автоматах типа Мура выходной сигнал зависит от состояния автомата в текущий момент времени т.е. автомат будет вырабатывать определенный выходной сигнал пока не изменит свое состояние.
Способы задания автоматов
Как мы выяснили в первой части — автомат представляет собой совокупность входного и выходного алфавитов, множества внутренних состояний и функций, определяющих переходы и выходы. Однако, обычно функции δ и λ не заданы, и поведение автомата приходится описывать по-другому.
Есть два основных способа задания автомата:
- При помощи графов.
- При помощи таблиц переходов и выходов.
Графы
Граф автомата – это ориентированный связный граф, вершины которого символизируют внутренние состояния автомата, а дуги – переходы из одного состояния в другое.
Для графа Мили на дугах указываются сходные и выходные буквы. Выходные буквы пишутся над дугами, символизируя то, что выходное состояние зависит от состояния автомата в предыдущий момент времени.
Для графа автомата Мура на дугах записываются только входные буквы, выходные же указываются около вершин.
Важный момент: Если из каждой вершины выходит столько дуг, сколько есть входных букв, то автомат называется полным. Другими словами – если из каждой вершины определены переходы для каждой входной буквы. В наших примерах автомат Мили является полным, а автомат Мура – частичным.
И ещё: Если из одной вершины выходит дуг больше, чем входных букв (то есть 2 и более дуг с одинаковыми входными буквами), то такой автомат называется недетерминированным. Такое может произойти при построении формализованного описания и тогда надо будет произвести переход к детерминированному автомату, но это не всегда можно выполнить. Описание этого процесса я тоже упускаю, сразу нарисовав детерминированный автомат.
На этом о графах всё.
Таблицы переходов и выходов.
Графы нагляднее для человека, а таблицы — для машины. Любой автомат можно представить в виде таблицы переходов и выходов (ТПВ). В ТПВ строками являются внутренние состояния автомата, а столбцами – входные буквы.
Построим ТПВ для наших графов Мили и Мура. Если не определена какая-либо входная или выходная буква, то вместо неё ставится прочерк. Если не определено состояние, то действует это же простое правило.
ТПВ графа Мили
В ТПВ Мили в каждой клетке записаны переходы и выходы. Например, если автомат находится в состоянии С0 и на вход приходит буква a1, то он перейдёт в состояние С1 и на выходе появится буква b3.
ТПВ графа Мура
Для графа Мура строят отмеченную таблицу переходов. Выделяется дополнительный столбец для выходных букв.
В клетке под входной буквой пишется в какое состояние автомат переходит, в крайней правой клетке — какую выходную букву возвращает.
Пример синтеза автомата
При помощи абстрактных автоматов можно описать практически что угодно. Можно описать работу цифровой схемы, а можно – синтаксический или лексический анализатор. Попробуем описать триггер – чем не автомат?
Чтобы задать граф нужно словесное описание алгоритма работы триггера. Читаем:
Кодируем входной и выходной алфавиты:
A =
B =
Строим граф автомата Мили:
Вот такая забавная чебурашка получилась :-). Теперь можно построить таблицу переходов и выходов:
Если расписать эту таблицу преобразовав условные обозначения в фактические, то получим таблицу которая представляет из себя таблицу переходов триггера. Затем её можно упростить:
Нанесём полученную функцию на карту Вейча и минимизируем:
Выпишем, что получилось:
Строим по функции схему (Выполняли домашнее задание?):
Немного непривычно видеть триггер в булевом базисе, поэтому переведём функцию в базис И-НЕ и нарисуем схему в нём:
А на схеме асинхронный RS триггер обозначается вот так:
Теперь если приложить немного старания, то можно самостоятельно синтезировать простую новогоднюю гирлянду.
Источник