Абстрактные цифровые автоматы

Содержание

1. Абстрактные цифровые автоматы

1.1 Основные понятия

1.2 Типы абстрактных автоматов

1.3 Способы задания абстрактных автоматов

1.4 Связь между моделями Мили и Мура

1.5 Эквивалентные автоматы. Эквивалентные преобразования автоматов

1.6 Минимизация числа внутренних состояний автомата

Вывод

Список литературы

Введение

Тема контрольной работы по дисциплине "Прикладная теория цифровых автоматов" - "Абстрактные цифровые автоматы".

Цель работы - ознакомится с основными понятиями абстрактных цифровых автоматов; типами абстрактных автоматов; способами задания абстрактных автоматов; связью между моделями Мили и Мура; эквивалентными автоматами и эквивалентными преобразованиями автоматов; минимизацией числа внутренних состояний автомата и алгоритмом Ауфенкампа-Хона.

1. Абстрактные цифровые автоматы


1.1 Основные понятия

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

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

Общая теория автоматов подразделяется на абстрактную и структурную.

Абстрактная теория автоматов, отвлекаясь от структуры автомата (т.е. не интересуясь способом его построения), изучает лишь поведение автомата относительно внешней среды. Абстрактная теория автоматов близка к теории алгоритмов, являясь по существу ее дальнейшей реализацией.

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

Абстрактный цифровой автомат (ЦА) является математической моделью дискретного управляющего устройства.

Абстрактный ЦА определяется множеством, состоящим из шести элементов:

S={ X,A,Y,,a>o>},

где:

X={x>1>, x>2>,. x>n>} - множество входных сигналов (входной алфавит);

Y={y>1>, y>2>, y>m>} - множество выходных сигналов (выходной алфавит);

А={ a>0>,a>1>, a>2>,. а>N>} - множество состояний (алфавит состояний);

а> - начальное состояние (а>А);

- функция переходов автомата, задающая отображение (ХхА) А, т.е. ставящая в соответствие любой паре элементов декартового произведения (ХхА) элемент множества А;

- функция выходов автомата, задающая либо отображение (XxA) Y, либо отображение AY.

Иными словами, функция переходов показывает, что автомат S, находясь в некотором состоянии а>j>А, при появлении входного сигнала х>j>Х переходит в некоторое состояние а>А. Это можно записать:

a>p>= (a>i>,X>j>).

Функция выходов показывает, что автомат S, находясь в некотором состоянии а>j>А, при появлении входного сигнала х>j>Х выдает выходной сигнал у>k>Y. Это можно записать: у>k> = (a>i>, X>j>).

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

Абстрактный автомат функционирует в дискретном автоматном времени t=0,1,2,. и переходы из состояния в состояние осуществляются мгновенно. В каждый момент t дискретного времени автомат находится в определенном состоянии a (t) из множества А состояний автомата, причем в начальный момент времени t=0 он всегда находится в начальном состоянии а>. В момент времени t, будучи в состоянии a (t), автомат способен воспринять на входном канале сигнал х (t) X, и выдать на выходном канале сигнал y (t) = (a (t), x (t)), переходя в состояние a (t+1) = = (a (t),x (t)). Зависимость выходного сигнала от входного и от состояния означает, что в его составе имеется память.

1.2 Типы абстрактных автоматов

По способу формирования функции выходов выделяют три типа абстрактных автоматов: автомат Мили, автомат Мура, С-автомат. Автомат Мили характеризуется системой уравнений:

y (t) = (a (t), x (t));

a (t+1) = δ (a (t), x (t)). (1-1)

Автомат Мура - системой уравнений:

y (t) = (a (t));

a (t+1) = δ (a (t), x (t)). (1-2)

С-автомат - системой уравнений:

у= y>1>>>y>2>

y>1> (t) = (a (t),x (t));

У>2> (t) = >2> (a (t));

a (t+1) =δ (a (t),x (t)).

Произвольный абстрактный автомат Мили или Мура (рис.1.1.) имеет один входной и один выходной каналы. Произвольный абстрактный С-автомат имеет один входной и два выходны х канала (рис.1.2.).

Рисунок 1.1 - Абстрактный автомат

Рисунок.1.2 Абстрактный С-автомат

Если на вход абстрактного автомата Мили или Мура, установленного в начальное состояние а>, подавать буква за буквой некоторую последовательность букв входного алфавита х (0), х (1),. - входное слово, то на выходе автомата будут последовательно появляться буквы выходного алфавита у (0), у (1),. - выходное слово. Для случая С-автомата на его выходах будут появляться две последовательности: y>1> (0), y>1> (1),. и y>2> (0), y>2> (1),. В абстрактном С - автомате выходной сигнал y>2> (t) = (a (t)) выдается все время, пока автомат находится в состоянии a (t). Выходной сигнал y>1> (t) =λ>1> (a (t),x (t)) выдается во время действия входного сигнала x (t) при нахождении С-автомата в состоянии a (t).

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

Выделяют полностью определенные и частичные автоматы.

Полностью определенным называется абстрактный цифровой автомат, у которого функция переходов или функция выходов, или обе эти функции определены для всех пар переходов (x>i>,a>j>).

Частичным называется абстрактный цифровой автомат, у которого функция переходов или функция выходов, или обе эти функции определены не для всех пар переходов (x>i>,a>j>).

Абстрактный цифровой автомат называется инициальным, если на множестве его состояний А выделяется начальное состояние а>.

1.3 Способы задания абстрактных автоматов

Чтобы задать конечный автомат S, необходимо описать все элементы множества: S={ X,A,Y,,,a>o>}. Существует несколько способов задания работы автомата, но наиболее часто используется табличный (матричный), графический, аналитический.

При табличном способе автомат задается двумя таблицами: таблицей переходов и таблицей выходов, или матрицей соединений. Таблица переходов произвольного полностью определенного автомата строится следующим образом: строки таблицы помечаются буквами входного алфавита автомата, а столбцы таблицы - буквами алфавита состояний автомата; В клетке таблицы переходов, находящейся на пересечении строки, отмеченной входным сигналом x>i>, и столбца отмеченного состоянием a>j>, ставится состояние а>k>, являющееся результатом перехода автомата из состояния a>j> под воздействием входного сигнала х>i>, что определяется выражением a>k>= (a>j>, х>j>).

Таблица 1.1 Таблица переходов автомата

Состояния

а>1>

а>2>

а>k>

входные сигналы

x>1>

(a>1>,x>1>)

(a>2>, x>1>)

.

>, x>1>)

х>j>

(a>1>, х>j>)

(a>2>, х>j>)

>, х>j>)

Пример заполнения таблицы переходов некоторого абстрактного полностью определенного автомата с входным алфавитом X={х>1>, х>2>} - и алфавитом состояний A={a>1>, a>2>, а>3>} представлен в табл.1.2.

Таблица 1.2

А

а>1>

a>2>

а>3>

х

х>1>

а>2>

а>3>

а>1>

x>2>

а>1>

а>1>

a>2>

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

Заполнение остальных клеток аналогично случаю полностью определенного автомата. Вид таблицы переходов не зависит от типа задаваемого автомата (автомат Мили, Мура, С-автомат). Таблицы выходов автоматов Мили, Мура, С-автомата имеют различия.

Таблица выходов полностью определенного автомата Мили строится следующим образом: идентификация столбцов и строк, а также формат таблицы соответствуют таблице переходов полностью определенного автомата. В клетке таблицы выходов, находящейся на пересечении строки, отмеченной входным сигналом X>j>, и столбца, отмеченного состоянием а>, ставится выходной сигнал У>m>, который автомат выдает, находясь в состоянии а>k> при наличии входного сигнала Xj, что определяется выражением Ym=>k>, х>j>).

Таблица 1.3 Таблица выходов абстрактного автомата Мили.

Состояния

a>1>

a>2>

a>k>

Входные сигналы

х>1>

(a>1>,x>1>)

(a>2>, x>1>)

(a>k>, x>1>)

….

.

х>j>

(a>1>,x>j>)

(a>2>, x>j>)

(a>, x>j>)

Пример заполнения таблицы выходов некоторого абстрактного полностью определенного автомата с входным алфавитом X={x>1>, x>2>}, алфавитом состояний A={a>1>, а>2>, а>3>} и выходным алфавитом Y={y>1>, y>2>, y>3>}-представлен в табл.1.4.

Таблица 1.4

a

a>1>

a>2>

a>3>

x

x>1>

у>2>

у>3>

y>1>

x>2>

y>3>

у>1>

у>2>

Таблица выходов полностью определенного автомата Мура строится более просто: каждому состоянию автомата ставится в соответствие свой выходной сигнал. Пример таблицы выходов автомата Мура с алфавитом состояний A={a>1>, а>2>, а>3>} и выходным алфавитом Y={y>1>, y>2>, у>3>} представлен в таблице 1.5.

Таблица 1.5

А

a>1>

a>2>

a>3>

у

y>1>

y>2>

y>2>

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

На практике таблицы переходов и выходов часто совмещают в одну таблицу, называемую отмеченной таблицей переходов автомата. Примеры отмеченных таблиц переходов представлены в табл.1.6. - 1.8 (Общий вид отмеченной таблицы переходов - табл.1.6., отмеченная таблица переходов автомата Мили - табл.1.7., отмеченная таблица переходов автомата Мура - табл.1.8.).

Кроме рассмотренных выше таблиц переходов и выходов произвольный абстрактный автомат может быть задан матрицей соединений.

Матрица соединений является квадратной и содержит столько столбцов (строк), сколько различных состояний содержит алфавит состояний данного автомата. Каждый столбец (строка) матрицы соединений помечается буквой состояния автомата. В клетке, находящейся на пересечении столбца, помеченного буквой а>j> и строки, помеченной буквой a>s> автомата, ставится входной сигнал (или дизъюнкция входных сигналов), под воздействием которого осуществляется данный переход.

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

Таблица 1.6

Состояния

a>1>

a>2>

a>k>

Входные сигналы

x>1>

 (a>1>,x>1>))

 (a>2>,x>1>)

 (a>k>,x>1>)

 (a>1>,x1)

 (a>2>,x>1>)

 (a>k>,x>1>)

x>j>

 (a>1>,x>j>)

 (a>2>, x>j>)

 (а>k>, x>j>)

 (a>1>,x>j>)

 (a>2>, x>j>)

 (а>k>, x>j>)

Таблица 1.7

A

X

a>1>

a>2>

a>3>

x>1>

a>2>/y>2>

a>3>/y>3>

a>1>/у>3>

x>2>

a>1>/у>3>

a>1>/y>1>

a>2>/y>2>

Таблица 1.8

Y

y>1>

y>2>

y>3>

A

X

a>1>

a>2>

a>3>

x>1>

a>2>

a>3>

a>1>

x>2>

a>1>

a>1>

a>2>

Таблица 1.9.

a>1>

a>n>

a>1>

x>j> (y>k>)

a>n>

x>|> (y>m>)

При графическом способе задания абстрактные автоматы представляются ориентированными графами. Графом автомата называется ориентированный связный граф, вершины которого соответствуют состояниям автомата, а дуги между ними - переходам между состояниями. Две вершины a>k> и a>s> соединяются дугой в том случае, если в автомате имеется переход из состояния a>k> в состояние a>s>. Для автомата Мили входной и выходной сигналы проставляются на дуге, соответствующей данному переходу (рис 1.3.), для автомата Мура входной сигнал проставляется на дуге, а выходной - рядом с вершиной, соответствующей состоянию (рис 1.4.).

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

Рисунок 1.3-Граф автомата Мили Рисунок 1.4-Граф автомата Мура

При аналитическом способе задания абстрактные автоматы задаются четверкой объектов:

S={ X,A,Y,F}, где F задает для каждого состояния а>j> автомата отображение (ХхА) - > (AxY). Другими словами, при аналитическом способе задания для каждого состояния автомата а>j> указывается отображение F>ai>, представляющее собой множество всех троек а>, x>m>, y>k>, и таких, что под воздействием входного сигнала x>m> автомат переходит из состояния а>j> в состояние а>, выдавая при этом выходной сигнал y>k>.

Применительно к общему определению абстрактного автомата, последнее равнозначно описанию функций δ и λ в соответствии с выражением: a>p>= δ (a>i>, x>m>), y>= λ (a>i>, x>m>).

Отображение F>ai> записывается следующим образом:

F>ai>{a>p> (X>m>/y>k>),a>i> (X>f>/y>z>) …}.

Для абстрактного автомата Мили (табл.1.7.) аналитическое задание имеет следующий вид:

S={ X,A,Y,F}, X={x>1>,x>2>}, A={a>1>, а>2>, а>3>}, Y={y>1>, y>2>, у>3>},

F>a1>={a>2> (x>1>/y>2>), a>1> (x>2>/у>3>) },

F>>2>={а>3> (x>1>/y>3>), a>1> (x>2>/y>1>) },

F>a>>3>={a>1> (x>1>/y>3>), а>2> (x>2>/y>2>) }.

Следует отметить, что функция F>ai> всегда записывается для исходного состояния.

Определим синхронные и асинхронные автоматы. Состояние а>s> автомата S называется устойчивым cостоянием, если для любого входного сигнала х>j>Х, такого, что а>s>= δ (а>i> Х>m>) имеет место a>s>= δ (a>s>, x>m>).

Автомат S называется асинхронным, если каждое его состояние a>s> А устойчиво. Автомат S называется синхронным, если он не является асинхронным.

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

1.4 Связь между моделями Мили и Мура

Как уже отмечалось, абстрактный автомат работает как преобразователь слов входного алфавита в слова выходного алфавита.

Пусть абстрактный автомат Мили задан графом рис.1.5.

На вход этого автомата, установленного в начальное состояние, поступает входное слово X=x>1>, x>1>, x>2>, x>1>, x>2>, x>2>.

Рисунок 1.5 - Граф автомата Мили

Так как  (a>1>, x>1>) = а>3>, a  (a>1>, x>1>) = y>1>, то под действием первой буквы слова Х входного сигнала x>1> автомат перейдет в состояние a>3> и на выходе его появится сигнал y>1. >Далее,  (а>3>, x>1>) = a>1>, а  (а>3>, x>1>) = у>2>, потому при приходе второго сигнала x>1> автомат окажется в состоянии a>1>, а на выходе его появится сигнал у>2>. Проследив непосредственно по графу или таблицам переходов и выходов дальнейшее поведение автомата, опишем его тремя строчками, первая из которых соответствует входному слову X, вторая - последовательности состояний, которые проходит автомат под действием букв слова X, третья - выходному слову У, которое появляется на выходе автомата:

x>1> x>1 >x>2> x>1> x>2> x>2>

a>1> а>3 >a>1> a>1> а>3> a>2> а>3>

y>1> y>2 >y>1> y>1> y>1> y>2>

Назовем у = (а>1>, X) реакцией автомата Мили в состоянии a>1> на входное слово X. Как видно из примера, в ответ на входное слово длины k автомат Мили выдает последовательность состояний длины к+1 и выходное слово длины k. В общем виде поведение автомата Мили, установленного в состояние а>m>, можно описать следующим образом:

Входное слово

x>i>>1>

x>i>>2>

x>i>>3>

Последовательность состояний

a>m>

a>i2>= (a>m>,x>i1>)

a>i3>= (a>i2>,x>i2>).

Выходное слово

y>i>>1>= (a>m>,x>i>>1>)

y>i2>= (a>i2>,x>i2>)

y>i3>= (a>i3>,x>i3>)

Точно так же можно описать поведение автомата Мура, находящегося в состоянии a>m>, при приходе входного слова x>i>>1>, x>i2>,., х>ik>. Напомним, что в соответствии с (1-2) выходной сигнал в автомате Мура в момент времени t (У (t)) зависит лишь от состояния, в котором находится автомат в момент t (a (t)):

Входное слово

x>i>>1>

x>i>>2>

x>i>>3>

Последовательность состояний

a>m>

a>i2>= (a>m>,x>i1>)

a>i3>= (a>i2>,x>i2>)

a>i4>= (a>i3>,x>i3>)

Выходное слово

y>i>>1>= (a>m>,x>i>>1>)

y>i2>= (a>i2>,x>i2>)

y>i3>= (a>i3>,x>i3>)

y>i>>4>= (a>i>>4>)

Очевидно, что выходной сигнал у>i>>1>=λ (a>m>) в момент времени i>1> не зависит от входного сигнала x>i>>1>, а определяется только состоянием а>m>.

Таким образом, этот сигнал y>i>>1> никак не связан с входным словом, поступающим на вход автомата, начиная с момента i>1>. В связи с этим под реакцией автомата Мура, установленного в состояние a>m> на входное слово X=x>i>>1>, х>i>>2>,., х>ik> будем понимать выходное слово той же длины у= λ (a>m>, Х) =у>i>>2>, у>i>>3>,., y>ik>>+1>.

В качестве примера рассмотрим автомат Мура S5, граф которого изображен на рис.1-6, и найдем его реакцию в начальном состоянии на то же самое входное слово которое мы использовали при анализе поведения автомата Мили S1:

Входное слово

x>1>

x>1>

x>2>

x>1>

x>2>

х>2>

Последовательность состояний

a>1>

a>4>

a>1>

a>1>

a>4>

a>3>

a>5>

Выходное слово

y>1>

y>1>

y>2>

y>1>

y>1>

y>1>

y>2>

Рисунок 1-6 - Граф автомата Мура

Как видно из этого и предыдущего примеров, реакции автоматов S5 и S1 в начальном состоянии на входное слово Х с точностью до сдвига на 1 такт совпадают (реакция автомата Мура обведена линией). Дадим теперь строгое определение эквивалентности полностью определенных автоматов.

Два автомата S>A> и S>B> с одинаковыми входными и выходными алфавитами называются эквивалентными, если после установления их в начальные состояния их реакции на любое входное слово совпадают.

1.5 Эквивалентные автоматы. Эквивалентные преобразования автоматов

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

При описании алгоритмов взаимной трансформации автоматов Мили и Мура в соответствии с изложенным выше мы будем пренебрегать в автоматах Мура выходным сигналом, связанным с начальным состоянием ( (a>1>)).

Рассмотрим сначала преобразование автомата Мура в автомат Мили.

Пусть дан автомат Мура: S>A>={ Х>A>, А>A>, У>A>,>A>,>A>, а>>A>}, где:

Х>A>={х>1>, х>2>,. х>n>}; Y={y>1>, у>2>,. у>m>}; А={ а>0>, а>1>, а>2>,. а>N>}; а>0>>A> = а>0 - >начальное состояние (а>0>>A>А); >A> - функция переходов автомата, задающая отображение (Х>A>хА>A>) - >А>A>; >A> - функция выходов автомата, задающая отображение А>A>->У>A>.

Построим автомат Мили: S>B>={ Х>B>, А>B>, Y>B>,>B>, >B>, а>0>>B>}, у которого А>B>=А>A>; Х>B>=Х>A>; Y>B>=У>A>; >B>=>A>; а>0>>B>=а>0>>A>>.> Функцию выходов >B> определим следующим образом. Если в автомате Мура >A> (а>m>, х>1>) = а>s> и >A> (а>s>) =y>g>, то в автомате Мили >B> (a>m>>,> х>1>) =y>g>

Рисунок 1.7 - Иллюстрация перехода от модели Мура к модели Мили

Переход от автомата Мура к автомату Мили при графическом способе задания иллюстрируется рис.1-7: выходной сигнал y>g> записанный рядом с вершиной (a>s>), переносится на все дуги, входящие в эту вершину.

При табличном способе задания автомата таблица переходов автомата Мили совпадает с таблицей переходов исходного автомата Мура, а таблица выходов получается из таблицы переходов заменой символа a>s>, стоящего на пересечении строки х>f> и столбца а>m>, символом выходного сигнала y>g> отмечающего столбец a>s> в таблице переходов автомата S>A>.

Из самого способа построения автомата Мили S>B> очевидно, что он эквивалентен автомату Мура S>A>. По индукции нетрудно показать, что любое входное слово конечной длины, поданное на входы автоматов S>A> и S>B>, установленных в состояния a>m>, вызовет появление одинаковых выходных слов и, следовательно, автоматы S>A> и S>B> эквивалентны.

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

S>A>={ Х>A>, А>A>,Y>A>, >A>, >A>, a>0>>A>},

где:

Х>A>={x>1>, x>2>,. x>n>}; Y={y>1>, у>2>,. y>m>}; А={ a>0>,a>1>,a>2>,. a>N>}; a>0>>A> = a>0> - начальное состояние (а>0>>A>А); >A> - функция переходов автомата, задающая отображение (Х>A>xА>A>) - >А>A>; >A> - функция выходов автомата, задающая отображение (Х>A>xА>A>) - >Y>A>.

Построим автомат Мура: S>B>={X>B>, A>B>, Y>B>, >B>, >B>, a>0>>B>}, у которого X>B>=X>A>; Y>B>=Y>A>.

Для определения A>B> каждому состоянию a>s>А>A> поставим в соответствие множество A>s> всевозможных пар вида (a>s>, y>g>)

Функцию выходов >B> определим следующим образом. Каждому состоянию автомата Мура S>B>, представляющему собой пару вида (a>s>,y>g>), поставим в соответствие выходной сигнал y>g>.

Если в автомате Мили S>A>> >был переход >A> (a>m>, x>f>) = a>s> и при этом выдавался выходной сигнал >A> (a>m>,x>f>) =y>g>, то в S>B> будет переход из множества состояний A>m>, порождаемых a>m>, в состояние (a>s>,y>g>) под действием входного сигнала x>f>.

В качестве начального состояния a>0>>B> можно взять любое из состояний множества A>0>, которое порождается начальным состоянием a>0> автомата S>A>. При этом выходной сигнал в момент времени t=0 не должен учитываться.

Рассмотрим пример. Пусть задан автомат Мили (табл.1.10.)

Таблица 10

Таблица 11

A

x>1>

x>2>

X

А

x>1>

x>2>

a>0>

a>2>/y>1>

a>0>/у>1>

a>0>

b>0>

a>2>/y>1>

b>01>

a>0>/y>1>

b>02>

a>1>

a>0>/y>1>

а>2>/y>2>

a>1>

a>0>/y>1> b>11>

а>2>/y>2>

b>12>

a>3>

a>0>/y>2>

a>1>/y>1>

a>2>

a>0>/y>2>

b>21>

a>1>/y>1>

b>22>

Поставим в соответствие каждой паре а>i>/x>k> состояние Ь>ik> (i-номер состояния, k-номер входного сигнала), с учетом b>0>.

Составим таблицу переходов автомата Мура, руководствуясь следующими правилами:

1) Выпишем из таблицы 1.11 состояния автомата Мили и соответствующие каждому из них множества состояний автомата Мура (b>ik>):

а>0>= {b>0>, b>02>, b>11>, b>21>}; a>1>= {b>22>}; а>2>= {b>01>, b>12>};

2) Если состояние автомата Мура b>ik> входит в множество, соответствующее состоянию а>p> автомата Мили, то в строку таблицы переходов автомата Мура для состояния b>ik> следует записать строку из таблицы переходов автомата Мили, соответствующую состоянию а> (из 1.10.).

3) Функцию выходов автомата Мура определим следующим образом: >B> (b>ik>) =>A> (а>i>, x>k>). Для начального состояния b>0> значение выходного сигнала можно выбрать произвольно, но порождаемый начальным состоянием a>0> (с учетом понятия эквивалентности состояний). Результирующая таблица переходов и выходов автомата Мура эквивалентного автомату Мили, заданному таблицей 1.10 представлена в таблице 1.12.

4) Найдем в таблице 1.12 эквивалентные состояния и удалим их (заменим на представителя класса эквивалентности).

Если выходной сигнал возле b>0> доопределить y>1>, то окажется, что в данной таблице переходов находится 3 эквивалентных состояния (b>0>,b>11>,b>02>). Заменив класс эквивалентности одним представителем (b>0>), получим окончательную таблицу переходов (табл.1.13).

Таблица 1.12

x>1>

x>2>

Y

b>0>

b>01>

b>02>

y>1>

b>01>

b>21>

b>22>

y>1>

b>02>

b>01>

b>02>

y>1>

b>11>

b>01>

b>02>

y>1>

b>12>

b>21>

b>22>

y>2>

b>21>

b>01>

b>02>

y>2>

b>22>

b>11>

b>12>

y>1>

Таблица 1.13.

x>1>

x>2>

У

b>0>

b>01>

b>0>

y>1>

b>01>

b>21>

b>22>

y>1>

b>12>

b>21>

b>22>

y>2>

b>21>

b>01>

b>0>

y>2>

b>22>

b>0>

b>12>

y>1>

Изложенные методы взаимной трансформации автоматов Мили и Мура показывают, что при переходе от автомата Мура к автомату Мили число состояний автомата не изменяется, тогда как при обратном переходе число состояний в автомате Мура, как правило, возрастает.

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

1.6 Минимизация числа внутренних состояний автомата

Алгоритм Ауфенкампа-Хона.

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

Два состояния автомата a>m> и a>s> называются эквивалентными (a>m> =a>s>), если  (a>m>,X) =  (a>s>,X) для всех возможных входных слов длины X.

Если a>m> и a>s> не эквивалентны, они различимы. Более слабой эквивалентностью является K-эквивалентность. Состояния a>m> и а>s> K-эквивалентны, если  (a>m>, Х>k>) =  (a>s>, Х>k>) для всех возможных входных слов длины К. При минимизации числа внутренних состояний автомата Мили S={X,Y, А, ,, а>0>} используется алгоритм Ауфенкампа-Хона:

1. Находят последовательные разбиения >1>,>2>,…,>k>,>k>>+1>, множества А на классы одно-, двух-,., К-, (К+1) - эквивалентных состояний до тех пор, пока на каком-то (К+1) шаге не окажется, что >k>=>k>>+1>. В этом случае К-эквивалентные состояния являются эквивалентными. Число шагов К, при котором >k>=>k>>+1> не превышает N-1, где N - число внутренних состояний автомата.

2. В каждом классе эквивалентности  выбирают по одному элементу (представителю класса), которые образуют множества А' состояний минимального автомата S'.

3. Функцию переходов ' и выходов ' автомата S' определяют на множестве A'xX.

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

4. В качестве а'>0> выбирается одно из состояний, эквивалентное состоянию а>0>. В частности, удобно принять само состояние а>0>.

При минимизации автомата Мура вводится понятие 0-эквивалентности состояний и разбиения множества состояний на 0-классы: 0-эквивалентными называются любые, одинаково отмеченные выходными сигналами, состояния автомата Мура. В качестве примера рассмотрим минимизацию автомата Мура, заданного таблицей переходов и выходов (Таблица 1.14).

Таблица 1.14

У

y>1>

y>1>

y>3>

y>3>

y>3>

y>2>

y>3>

y>1>

y>2>

y>2>

y>2>

y>2>

А

a>1>

a>2>

a>3>

a>4>

a>5>

a>6>

a>7>

a>8>

a>9>

a>10>

a>11>

a>12>

x>2>

a>10>

a>12>

a>5>

a>7>

a>3>

a>7>

a>3>

a>10>

a>7>

a>1>

a>5>

a>2>

x>2>

a5

a7

a6

a>11>

a>9>

a>11>

a>6>

a>4>

a>6>

a>8>

a>9>

a>8>

Выполним разбиение >0>:

>0>={В>1>, В>2>, В>3>};

B>1>={a>1>, a>2>, a>8>}, В>2>={а>6>, а>9>, а>10>, а>11>, а>12>}, В>3>={а>3>, a>4>, a>5>, a>7>}.

Построим таблицу разбиения >0>:

У

B>1>

В>2>

В>3>

А

a>1>

a>2>

a>8>

a>6>

a>9>

a>10>

a>11>

a>12>

a>3>

а>4>

a>5>

a>7>

х>1>

В>2>

В>2>

В>2>

В>3>

В>3>

B>1>

В>3>

B>1>

В>3>

В>3>

В>3>,

В>3>

х>2>

В>3>

В>3>

В>3>

В>2>

В>2>

B>1>

B>2>

B>1>

В>2>

В>2>

В>2>

В>2>

Выполним разбиение >1>:

>1>={С>1>, С>2>, С>3>, С>4>};

C>1>={a>1>, a>2>, a>8>}, С>2>={а>6>, а>9>, а>11>}, С>3>={ а>10>, a>12>}, С>4>={а>3>, а>4>, a>5>, a>7>}.

Построим таблицу разбиения >1>:

У

С>1>

С>2>

С>3>

С>4>

А

a>1>

a>3>

a>8>

a>6>

a>9>

a>11>

a>10>

a>12>

a>3>

а>4>

a>5>

a>7>

х>1>

С>3>

С>3>

С>3>

С>4>

С>4>

С>4>

C>1>

C>1>

С>4>

C>4>

С>4>

С>4>

х>2>

С>4>

С>4>

С>4>

С>2>

С>2>

С>2>

C>1>

C>1>

С>2>

С>2>

С>2>

С>2>

Выполним разбиение >2>.

>1>={D>1>, D>2>, D>3>, D>4>};

D>1>={a>1>, a>2>, a>8>}, D>2>={а>6>, а>9>, а>11>}, D>3>={ а>10>, a>12>}, D>4>={а>3>, а>4>, a>5>, a>7>}.

Разбиение >2> повторяет разбиение >1> - процедура разбиения завершена.

Выберем произвольно из каждого класса эквивалентности D>1>, D>2>, D>3>, D>4> по одному представителю - в данном случае по минимальному номеру: A'={a>1>, а>3>, a>6>, а>10>}.

Удаляя из исходной таблицы переходов "лишние" состояния, определяем минимальный автомат Мура (табл.1.15.)

Таблица 1.15.

У

y>1>

y>3>

y>2>

y>2>

А

a>1>

a>3>

a>6>

a>10>

х>1>

a>10>

a>3>

a>3>

a>1>

х>2>

a>3>

a>6>

a>6>

a>1>

Вывод

В процессе выполнения контрольной работы мы ознакомились с основными понятиями абстрактных цифровых автоматов; типами абстрактных автоматов; способами задания абстрактных автоматов; связью между моделями Мили и Мура; эквивалентными автоматами и эквивалентными преобразованиями автоматов; минимизацией числа внутренних состояний автомата и алгоритмом Ауфенкампа-Хона - привели примеры.

Список литературы

1. Самофалов К.Г., Романкевич А.М., и др. Прикладная теория цифровых автоматов. - Киев. “Вища школа" 1987.

2. Соловьев Г.Н. Арифметические устройства ЭВМ. - М. “Энергия”. 1978.

3. Савельев А.Я. Прикладная теория цифровых автоматов - М. “Высшая школа”. 1987.

4. Каган Б.М. Электронные вычислительные машины и системы. - М. Энергоатомиздат. 1985.

5. Лысиков Б.Г. Арифметические и логические основы цифровых автоматов. - Минск. “Вышэйшая школа”. 1980.