Вы находитесь на странице: 1из 20

ГЛАВА 4

Теория автоматов

4.1. Понятие абстрактного автомата


Кроме комбинационных схем, существуют более сложные преобразователи
информации, реакция которых зависит не только от состояния входа в данный
момент, но и от того, что было на входе раньше, от входной истории. Такие
преобразователи называются автоматами.
Автоматом называется дискретный преобразователь информации, способный
под действием входных сигналов переходить из состояния в состояние и
вырабатывать выходные сигналы.
Абстрактный автомат задается с помощью следующей пятерки множеств:
А = { X, Y, S,  , }, где Х = {X1, X2 . . . XM} – входной алфавит автомата или
множество входных символов;
Y = {Y1, Y2 . . . YN} – выходной алфавит автомата или множество выходных
символов;
S = {S0, S1 . . . SK-1} – алфавит или множество внутренних состояний
автомата;
 – функция переходов,  - функция выходов автомата.
Автомат называется конечным, если множества X,Y, S конечны (или счетны).
Автомат функционирует в дискретные моменты времени t = 0, 1, 2 . . . n . . . В
каждый момент времени автомат находится в одном из состояний из множества
S. S0 – начальное состояние автомата (в момент времени t = 0).
Функция переходов  определяет в каждый момент времени t следующее
состояние автомата в зависимости от текущего состояния и входного сигнала
или символа входного алфавита. Другими словами, функция  каждой паре
“состояние – входной сигнал” ставит в соответствие следующее состояние.

85
: SX  S;  - есть отображение декартова произведения SX в S.
Функция переходов может быть записана следующим образом: S t+1 = (St,Xt).
Функция выходов  определяет в каждый момент времени t выходной сигнал
автомата.
Существует две модели автоматов – автомат Мили и автомат Мура. Они
отличаются функцией выходов, которая определяется следующим образом:
Yt =  (St , Xt) - для автомата Мили, или : SXY.
Yt =  (St) - для автомата Мура.
В автомате Мили выходной сигнал в момент времени t зависит как от
входного сигнала в момент времени t, так и от текущего состояния. В автомате
Мура выходной сигнал явно от входного не зависит и определяется только
текущим состоянием.
Состояние – это память автомата о прошлых входных воздействиях.
Автоматы также называют последовательностными машинами (Sequential
Machines), так как входная последовательность преобразуется в
последовательность состояний и выходную последовательность.
Можно сказать, что абстрактный автомат имеет 1 вход и 1 выход. На вход
автомата поступают последовательности букв входного алфавита, на выходе
формируются выходные последовательности.
Слово или цепочка – это конечная последовательность символов (букв)
входного алфавита. Должны выполняться следующие условия (условия
автоматности):
 Длины входных и выходных слов одинаковы;
 Одинаковым начальным отрезкам входных слов соответствуют
одинаковые начальные отрезки выходных слов.

X A Y
{00,01,10,11} {0,1}

Рис. 4.1. Представление автомата как схемы с одним входом и одним выходом
Рассмотрим пример автомата – последовательный сумматор. На вход сумматора
поступают одноименные разряды слагаемых a i и bi, на выходе формируется
разряд суммы Si. Последовательный сумматор является автоматом с памятью –
он должен помнить, был или не был перенос из i-1 разряда.
01/1 01/0

00/0 11/0
0 1 11/1
00/1

10/1 10/0
Рис. 4.2. Граф переходов последовательного сумматора

86
Граф переходов автомата Мили последовательного сумматора изображен на
рис.4.2. Входной алфавит автомата X = {00, 01, 10, 11}, выходной алфавит
автомата Y = {0,1}, алфавит состояний автомата S = {0,1}. Состоянию “0”
соответствует отсутствие переноса, состоянию “1” - наличие переноса.

4.2. Способы задания автоматов


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

4.2.1. Табличный способ задания


.Задание автомата Мили (Табл. 4.1)
Строкам таблицы соответствуют состояния, столбцам – входные сигналы
(буквы). На пересечении i-й строки и j-го столбца записывается состояние, в
которое автомат переходит из состояния Si при подаче на его вход Xj и выходной
сигнал Yp, который вырабатывается при данном переходе.
Табл. 4.1
X X1 X2 … XM
S
S0 (S0,X1)/(S0,X1) (S0,X2)/((S0,X2) … (S0,XM)/(S0,XM)
S1 (S1,X1)/(S1,X1) (S0,X2)/(S1,X2) (S1,XM)/(S1,XM

SK-1 (SK-1,X1)/(SK-1,X1) (SK-1,X2)/(SK-1,X2) (SK-1,XM)/(SK-,XM)

Иногда автомат задают в виде двух таблиц – таблицы переходов и таблицы


выходов. В таблице переходов на пересечении строк и столбцов записываются
следующие состояния, в таблице выходов – соответствующие данным
переходам выходы.
Рассмотрим задание последовательного сумматора:
Табл. 4.2
S X 00 01 10 11
0 0/0 0/1 0/1 1/0
1 0/1 1/0 1/0 1/1

Задание автомата Мура.


В общем случае автомат Мура представлен отмеченной таблицей переходов -
таблицей 4.3. Каждое состояние (строка таблицы) отмечено выходным
сигналом.

87
Табл. 4.3
S X X1 X2 . . . XM Выход
S0 (S0 ,X1) (S0 ,X2) ( S0 ,XM) (S0)
S1 (S1,X1) (S1,X2) ( S1 ,XM) (S1)

Sk-1 (Sk-1,X1) (Sk-1,X2) (Sk-1,XM) (Sk-1)

4.2.2. Задание автомата в виде ориентированного графа


Задание автомата Мили.
Вершинам графа ставятся в соответствие состояния автомата, а ребрам –
переходы. Стрелка указывает направление перехода. Вершины отмечаются
состояниями; на ребре указывается входной сигнал, вызывающий данный
переход, и выходной сигнал, вырабатывающийся при данном переходе. Пример:
задание графа последовательного сумматора (рис.4.2).
Задание автомата Мура.
Каждая вершина графа отмечается состоянием и выходным сигналом. На
ребре указывается только входной сигнал, вызывающий данный переход.
Рассмотрим представление последовательного сумматора в виде автомата
Мура.

11 01
00 S0/0 S1/0 10

00
01
01 00 11 10
10
11

01 S2/1 11
S3/1
10 00

Рис. 4.3. Граф переходов последовательного сумматора


Состояниям S0 и S2 соответствует отсутствие переноса из предыдущего
разряда, состояниям S1 и S3 - наличие переноса.
Отмеченная таблица переходов последовательного сумматора (Табл.4.4.)

Табл. 4.4
S X 00 01 10 11 Output
S0 S0 S2 S2 S1 0
S1 S2 S1 S1 S3 0
S2 S0 S2 S2 S1 1
S3 S2 S1 S1 S3 1

88
4.2.3. Задание автомата в виде матрицы
Автомат задается в виде квадратной матрицы, строки и столбцы которой
отмечены состояниями.
Если из состояния Si автомата Мили есть переход в состояние S j под
действием Xk и при этом вырабатывается YP, то на пересечении i-й строки и j-го
столбца записываются входной и выходной символы X K/YP соответственно.
Автомату Мили соответствует одна матрица.
Автомату Мура ставится в соответствие две матрицы: матрица переходов и
вектор выходных символов. В матрице переходов на пересечении i-й строки и j-
го столбца записывается входной символ, вызывающий переход из состояния Si
в состояние Sj.

4.3. Примеры автоматов


Пример 4.1.
Построим граф переходов детектора входных последовательностей нулей и
единиц. Если на вход автомата поступает последовательность из четырех
единиц, то на выходе автомата появляется “1”. Во всех остальных
ситуациях на выходе автомата – “0”.
X = {0, 1}; Y = {0, 1}. Множество состояний, функцию переходов и
функцию выходов определим при построении графа.
0/0

S0 1/0 S1 1/0 S2 1/0 S3


0/0 1/1

0/0
0/0
Рис. 4. 4. Граф переходов детектора
S = {S0, S1, S2, S3}.
Состояние S0 является начальным и хранит информацию о том, что
последний входной сигнал был нулем. Состояние S 1 хранит информацию о
том, что на вход детектора была подана одна единица, S2 – о том, что на
входе две единицы, S3 помнит предысторию трех единиц. ∎

Пример 4.2.
Рассмотрим построение графа переходов линейного (последователь-
ностного) сумматора. В отличие от последовательного сумматора
одноименные разряды последовательных слагаемых А и В поступают на
вход не одновременно, а поочередно – сначала, например, ai, затем bi. При

89
этом входная последовательность будет следующей: a 0b0a1b1a2b2
Выходная последовательность :
- c0 -c1- c2 Черточка (тире) обозначает, что выход не определен, т.е. не
имеет значения.
0/- 1/- 1/0 1/-
S1 S0 S2 S3 S4
0/0 0/1 0/- 0/0
1/1 1/1
Рис. 4.5. Граф линейного сумматора
Состояние S0 – начальное состояние. В это состояние автомат попадает
после введения четного числа знаков ai, bi, если при вычислении ci не
произошел перенос.
В S1 автомат попадает из S0 при аi=0, выходной сигнал еще не определен.
При переходе из этого состояния ci=bi и переноса нет.
В состояние S3 автомат попадает после подачи на вход b i, если при
вычислении ci произошел перенос в следующий разряд.
В S2 автомат переходит из S0 при ai=1 и из S3 при ai=0. При переходе из
этого состояния ci= bi..
В состояние S4 автомат попадает из S3 при ai=1, выходной сигнал еще не
определен (введено нечетное число знаков). При переходе из этого
состояния ci=bi и перенос есть.
По состоянию, в которое автомат переходит после введения
последовательности длины 2k, можно установить, является ли выходная
последовательность в точности суммой C=А+B или нет. Если последним
оказывается состояние S0, то выходная последовательность представляет
число С; если последним оказывается состояние S 3, то выходная
последовательность представляет число A+B+2 k.
Рассмотренный в данном примере автомат не полностью определен: не
имеющие значения выходы отмечены тире.
Определение: Автомат называется полностью определенным, если для
любой пары “состояние-вход” известны следующее состояние автомата и
выход.
В противном случае автомат является не полностью определенным. ∎

Пример 4.3.
Построить граф автомата Мура, имеющего два входа x1 и x2 и один выход
y. Входной алфавит автомата X={00, 01, 10, 11}, выходной алфавит
Y={0,1}. На выходе автомата появляется y=1, если суммарное число
единиц, подаваемых на входы автомата кратно трем. Во всех остальных
случаях y=0.

90
Построение графа автомата (рис.4.6).
Начальное состояние автомата S0. В этом состоянии автомат вырабатывает
сигнал, равный единице (число 0 делится на 3).

11
01
S0/1 10 S1/0 00
00
01
10
11 11
01
10 S2/0

00
Рис. 4.6. Граф автомата, подсчитывающего число единиц
При поступлении на вход автомата, находящегося в состоянии S0,
комбинаций 01 или 10 автомат переходит в состояние S1. При поступлении на
вход автомата комбинации 11 автомат переходит в состояние S2.
Состояние S1 помнит, что на входе автомата была одна единица, состояние S2
помнит, что было подано две единицы (по модулю 3). Если в состоянии S2 на
вход автомата поступает две единицы (комбинация 11), то автомат переходит в
состояние S1, так как 4(mod3)=1. ∎

4.4. Эквивалентность состояний и автоматов


4.4.1. Реакция и эквивалентность состояний и автоматов
Как уже отмечалось, автомат выполняет преобразование слов входного
алфавита в слова выходного алфавита.
Реакцией автомата в состоянии Si на входную последовательность (слово)
=XiXjXk назовем выходное слово  =YjYkYl . . . , вырабатывающееся на
выходе автомата в ответ на входную последовательность .. Обозначим ее
 ={Si, }.
Найдем реакцию автомата Мили, представленного на рис.4.4. Поведение
автомата опишем с помощью следующих трех строк: первая соответствует
входному слову, вторая – последовательности состояний, третья – выходному
слову.

Табл. 4.5
91
X 0 1 1 0 1 1 1 1 1 0 1
S S0 S S1 S2 S S1 S2 S3 S3 S3 S0 S1
0 0
Y 0 0 0 0 0 0 0 1 1 0 0
Как видно из примера, в ответ на входную последовательность длины k
автомат выдает выходную последовательность длины k и последовательность
состояний той же длины. Начальное состояние не входит в генерируемую
автоматом последовательность состояний.
Рассмотрим реакцию автомата Мура, представленного на рис. 4.6.
Табл. 4.6
X 0 11 10 00 11 01 01 00 10 01 00
0
S S0 S0 S2 S0 S0 S2 S0 S1 S1 S2 S0 S0
Y 1 1 0 1 0 0 1 0 1 0 1 1

Начальное состояние с соответствующим ему выходом не включены в


генерируемую автоматом выходную последовательность и последовательность
состояний, так как они не связаны со входной последовательностью. Реакция
автомата Мура на один такт сдвинута (отстает) по сравнению с реакцией
автомата Мили.
Обозначим через X* - множество всех цепочек из элементов входного
алфавита, а через Y*- множество всех цепочек из элементов выходного
алфавита. Пустую цепочку обозначим буквой . Реакции автомата могут быть
описаны с помощью расширенных функций переходов и выходов автомата. Для
этого функции переходов и выходов автомата определяются на цепочках
символов (словах) входного алфавита. Цепочки будем обозначать греческими
буквами , , … .
X* - множество всех цепочек из элементов входного алфавита.
Расширенными функциями перехода и выхода автомата A называются
функции d*: S´X*®S и l*: S´X*®Y* .
Эти функции определяются следующим образом (=xm xp):
 d*(si , e)=si; d*(si ,xm xp)=d*(d*(si,xm), xp);
 l*(si, e)= e; l*(si,xm xp)={l *(si,xm), l *(d(si,xm), xP)}
{a,b} – конкатенация а и b – ab.
Расширенные функции переходов и выходов определены на множестве
входных последовательностей, в отличие от обычных функций переходов и
выходов, которые определены на множестве входных символов.

4.4.2. Достижимость состояний. Построение графа автомата по словесному


описанию
Если в некоторое состояние автомата не существует пути из начального
состояния, то такое состояние называется недостижимым. Недостижимые
92
состояния автомата можно отбросить, так как они не влияют на поведение
автомата.
Определение:
Состояние Si ÎS называется достижимым, если ($aÎX*) d*(S0, a)=Si.
Состояние SjÎS называется недостижимым, если ( "aÎ X*)d*(S0, a) ¹Sj.
В рассмотренных выше примерах автоматов достижимое множество
состояний автомата строилось с помощью алгоритма, основанного на индукции.
 На первом шаге строятся все состояния автомата, достижимые из
начального состояния автомата некоторой входной цепочкой длины 1.
Обозначим это множество состояний Q1.
 На втором шаге строятся состояния автомата, достижимые из
начального состояния автомата входными цепочками длины 2
(обозначим Q2). Q2 – множество состояний, достижимых из состояний ,
входящих в Q1 при подаче входных слов длины 1.
 На i-м шаге – строится множество состояний автомата, достижимых из
начального состояния входной цепочкой длины i (Qi).
 Для автомата, имеющего конечное число состояний |S|, выполняется
следующее: не более,чем за |S| шагов, будет получено Qk+1 =Qk.
Это множество Qk будет включать все достижимые состояния автомата
A={X,Y,S,,}.

4.5. Эквивалентность автоматов


4.5.1. Понятие произведения автоматов
Заданы автоматы A и B. A={X,YA, SA, dA ,lA) , B={X,YB, SB, dB , l B) .
Прямым произведением автоматов A и B с одинаковым входным алфавитом
X называется автомат A´B = {X, YA´YB,SA´SB,(s0A,s0B), dA´B,lA´B}, где
• ("sAÎSA)("sBÎSB)("xÎX) dA´B((sA,sB),x)=(dA(sA,x), dB(sB,x))
• ("sAÎSA)("sBÎSB)("xÎX) lA´B((sA,sB),x)=(lA(sA,x), lB(sB,x))
Автомат A´B в качестве своих состояний имеет пары состояний исходных
автоматов A и B, начальное состояние – пара начальных состояний A и B.
Выходной алфавит – множество пар выходных символов автоматов
сомножителей.
А YA
X
B YB
Рис. 4.7. Произведение автоматов
Фактически, прямое произведение автоматов – это просто два
невзаимодействующих конечных автомата, синхронно работающих на одном
общем входе.

93
Пример 4.4.
Заданы автоматы A и B.
x2/0
x2/0
x1/1 s0
q0 q1

x1/0 x1/0 x1/1


x2/0

x1/1
q2 s1

x2/1 (б) x2/1


(a)
Рис. 4.8. (а) автомат А, (б) автомат B
Прямое произведение автоматов A×B

q0,s0 x2/(1,1)
x1/(1,1)

x2/(0,0) q1,s1 x1/(1,0)


q2,s1
x1/(1,1) x2/(0,1)
x2/(1,0)
q2,s0 x2/(0,1)
q0,s1
x2/(0,0)
x1/(1,0)

q1,s0 x1/(0,1)
x1/(0,0)

Рис. 4.9. Граф автомата A×B


Автомат, граф которого изображен на рис.4.9, является произведением
автоматов A×B ∎
4.5.2. Теорема об эквивалентности автоматов
Определение. Два автомата А и В с одинаковыми входными и выходными
алфавитами называются эквивалентными, если после установления их в
начальные состояния их реакции на любые одинаковые входные
последовательности совпадают.
Два конечных автомата могут иметь разное число состояний, но их реакция
на одинаковые входные слова может быть одинакова. Однако определить,

94
являются ли эквивалентными автоматы путем перебора их реакций на
всевозможные входные цепочки невозможно.
Предположим, что заданы два автомата A и B и требуется определить,
эквивалентны ли они. Для решения этой задачи используется прямое
произведение автоматов (рис.4.10).
Теорема Мура: (приводится без доказательства)
Два конечных автомата A={X,YA, SA, dA ,lA) и B={X,YB, SB, dB , l B) с
одинаковым входным алфавитом являются эквивалентными тогда и только
тогда, когда для любого достижимого состояния (s A ,sB) прямого произведения
A×B справедливо: ("xÎX) lA(sA,x)= lB(sB,x).

А YA

X F
B
YB
Рис. 4.10. Произведение автоматов и проверка эквивалентности
Если автоматы A и B эквивалентны, то на выходе всегда будет 0.
Автоматы примера 4.4 не являются эквивалентными. В случае эквивалентных
автоматов каждая пара выходных сигналов должна содержать одинаковые
выходные буквы (в данном примере 0 и 1).

4.5.3. Взаимосвязь между моделями Мили и Мура


Для любого автомата Мили существует эквивалентный ему автомат Мура и
наоборот.
Функция выходoв автомата Мура отображает подмножество множества
состояний автомата S на множество Y. Функция выходов автомата Мили
отображает декартово произведение SxX в Y. Так как в остальном определения
моделей Мили и Мура совпадают, то может показаться, что модель Мили
является более общей, чем модель Мура. На самом деле это не так.
Преобразование автомата Мура в автомат Мили
Переход от автомата Мура осуществляется достаточно просто. Задан автомат
Мура, имеющий четыре состояния, граф которого приведен на рис.4.11.
Переход осуществляется следующим образом: так как функция выходов в
автомате Мура на один такт запаздывает по отношению к функции выходов
автомата Мили, то выходной сигнал из вершины, соответствующей состоянию, в
которое автомат переходит, переносится на ребро, отмеченное сигналом,
который вызывает данный переход. Фрагмент перехода показан на рис.4.14.

95
X2

S0/Y1 X1 S1/Y2

X2
X1 X1 X2

S2/Y2 X1 S3/Y3

X2

Рис. 4.11. Граф автомата Мура

SM/YL
XS
SK/YP SM XS/Yp SK

Рис. 4.12. Фрагмент перехода от автомата Мура к автомату Мили

В результате преобразования получим следующий автомат Мили (рис. 4.13).


X2/Y2

X1/Y2 S1
S0

X2/Y2
X2/Y3
X1/Y1 X1/Y3

S2 S3
X1/Y2

X2/Y3

Рис. 4.13. Эквивалентный автомат Мили


Число состояний полученного автомата Мили равно числу состояний
исходного автомата. Очевидно, что преобразование является эквивалентным,
так как в результате его применения происходит только сдвиг на один такт
вперед функции выходов, остальное не изменяется.
Определим реакции 1 и 2 автоматов на входную последовательность
  X1X2X2X1X1X2.

Автомат Мура:
96
X1 X2 X2 X1 X1 X2
S0 S1 S1 S1 S3 S2 S3
1= Y1 Y2 Y2 Y2 Y3 Y2 Y3
Автомат Мили:
X1 X2 X2 X1 X1 X2
S0 S1 S1 S1 S3 S2 S3
2 = Y2 Y2 Y2 Y3 Y2 Y3

Реакция автомата Мили 2 на один такт опережает реакцию автомата Мура


1. Число состояний при переходе от автомата Мура к автомату Мили не
изменяется.
Преобразование автомата Мили в автомат Мура
Переход от автомата Мили к автомату Мура является более сложным. При
этом число состояний полученного автомата может увеличиться.
Каждому состоянию SiS исходного автомата ставится в соответствие
множество пар вида (Si/Yj) автомата Мура, где Yj, выходной сигнал,
вырабатываемый автоматом при переходе в S i. Каждой такой паре в автомате
Мура будет соответствовать состояние, т.е. состояниe S i расщепляется на
столько состояний, сколько различных выходных символов вырабатывается при
переходе в Si.
XS
XS/YP SM1/YP
XK Xi
XK/YP Xj/Yk
SM SP Xi
SP/YK
XT/YL Xi
Xi
Xs/Yp XT Xi
SM2/YL
Xs/Yp
Xi

Рис. 4.14. Фрагмент перехода от автомата Мили к автомату Мура


В приведенном фрагменте состояние S М расщепляется в автомате Мура на два
состояния – SМ1 и SМ2. Все переходы из состояния S М должны быть сохранены
для состояний SМ1 и SМ2 эквивалентного автомата.
Задан автомат Мили (рис.4.15). Входной алфавит X={X 1,X2}, выходной
алфавит Y={Y1,Y2,Y3,Y4}.
Рассмотрим построение графа эквивалентного ему автомата Мура.

97
Состояние S1 расщепляется на два состояния S11/Y2 и S12. Состояние S2
расщепляется на три состояния: S 21/ Y1, S22/Y4 , S23/Y2, Состояния S0 и S3
остаются без изменений.
В результате перехода получен автомат, граф которого представлен на рис.
4.16.

X1/Y1 X2/Y4
X2/Y2 S1
X1/Y1
S0
X1/Y3 S2

X2/Y1 X2/Y2
X1/Y2
S3

Рис. 4.15. Граф исходного автомата Мили

X2
X1
X1
S21/ Y1
X2 S11/Y2
X1
S0/Y1 X1
X2 X2
X2 X2 X2S22/ Y4
X2 X2
S3/ Y2 S12/ Y3
X2 X1
X1 X2 X2
X2 X1
X2
S23/ Y2 X2
X2

X2

Рис. 4.16. Эквивалентный автомат Мура


Определим реакцию обоих автоматов, находящихся в своих начальных
состояниях, на входную последовательность =X1 X2 X1 X1 X2 X2 X2 X1.
Реакция автомата Мили:
X1 X2 X1 X1 X2 X2 X2 X1
S0 S0 S1 S2 S1 S2 S3 S0 S0
1 = Y1 Y2 Y1 Y3 Y4 Y2 Y1 Y1
Реакция автомата Мура:
98
X1 X2 X1 X1 X2 X2 X2 X1
S0 S0 S11 S21 S12 S22 S3 S0 S0
2 = Y1 Y1 Y2 Y1 Y3 Y4 Y2 Y1 Y1

Как видно из примера, реакции автоматов совпадают 1=2 и выходная


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

4.6. Минимизация числа состояний автомата


Задача минимизации состоит в разбиении множества состояний автомата на
классы эквивалентных состояний и замене каждого класса одним состоянием.
Два состояния автомата Si и Sj называются эквивалентными, если их реакция
на любые одинаковые входные последовательности одинакова, т.е. *(Si,) =
*(Sj, ), где  - любая входная последовательность символов XiX.
Обозначим через k входную последовательность длины k. Введем некоторые
определения.
Два состояния Si и Sj называются 1-эквивалентными, если их реакция на
любые входные последовательности длины 1 одинакова: l (Si,XP) = (Sj,XP) для
всех XP X.
Два состояния Si и Sj называются 2-эквивалентными, если их реакция на
любые входные последовательности длины 2 одинакова.
Два состояния Si и Sj называются k-эквивалентными, если их реакция на
любые входные последовательности длины k одинакова: *(Si, k) =*(Sj, k).
Состояния Si и Sj k-эквивалентны тогда и только тогда, когда они 1-
эквивалентны и при любом входе Xp состояния (Si,Xp) и (Sj,Xp) (k-1)-
эквивалентны. Если какие-то состояния k-эквивалентны, то они принадлежат
одному и тому же классу (k-1)-эквивалентности.

4.6.1. Табличный метод минимизации


(метод последовательных разбиений)
При минимизации автомата Мили состояния автомата последовательно
разбиваются на классы 1-, 2- , k-, (k+1)-эквивалентных состояний. Обозначим
эти разбиения P1, P2, . . . Pk, Pk+1. Процесс разбиения на классы прекращается
тогда, когда очередное разбиение совпадет с предыдущим Pk =Pk+1. Разбиение
Pk является финальным.
При минимизации автоматов Мура вводится понятие 0-эквивалентности
состояний: 0-эквивалентными являются любые состояния, отмеченные
одинаковым выходом.
99
Рассмотрим минимизацию автомата Мили на примере.
Задан граф автомата Мили (рис.4.17).
1/0

S1
0/1
0/0
S0
S3
1/0 0/1
0/1
1/0
1/0
S2

Рис. 4.17. Граф минимизируемого автомата

Перейдем к табличной форме задания автомата (Табл.4.7)


Табл. 4.7
S X 0 1
S0 S1/1 S2/0 A1
S1 S3/0 S2/0 B1
S2 S1/1 S0/0 A1
S3 S2/1 S0/0 A1

Классы 1-эквивалентных состояний А1 = {S0,S2,S3}; B1 = {S1}; P1 = {A1,B1}.


Разбиение P1.
Табл. 4.8
`S X 0 1
S0 B1 A1 A2
A1 S2 B1 A1 A2
S3 A1 A1 B2
B1 S1 - - C2
Класс А1 в разбиении P2 расщепляется на два класса А2 и B2. Класс В1
обозначаем C2. A2 = {S0,S2}; B2 = {S3}; C2 = {S1}; P2 = {A2,B2,C2}.
Разбиение P2
Табл. 4.9
S X 0 1
S0 C2 A2 A3
A2 S2 C2 A2 A3
B2 S3 - - B3
C2 S1 - - C3

100
Разбиение P3={A3,B3,C3}; A3={S0,S2};B3={S3}; C3={S1}. Это разбиение
окончательное, так как P2=P3. Состояния S0 и S2 эквивалентны.
Таблица переходов минимизированного автомата (Табл.4.10).
Табл. 4.10
S X 0 1
S02 S1/1 S02/0
S1 S3/0 S02/0
S3 S02/1 S02/0

Граф переходов минимизированного автомата представлен на рис. 4.18.

0/1
S02 S1
1/0

0/1 0/0

1/0 S3

Рис. 4.18. Граф переходов автомата после минимизации


Для эквивалентности двух состояний автомата Мили с k состояниями
достаточно, чтобы совпадали реакции этих состояний на входные
последовательности длины k-1.

Проверка правильности минимизации (Equivalence Checking)


Найдем произведение исходного и минимизированного автоматов автоматов.
Исходный автомат обозначим А, минимизированный автомат обозначим B.

1/0

0/1
0/1 А1
0/0 B0 B1
А0 1/0
1/0 0/1 А3
0/1 0/0
0/1
1/0
1/0 1/0
B2
А2

Рис. 4.19. Графы исходного и минимизированного автоматов

101
Автомат C=AB, являющийся прямым произведением автоматов A и B
представлен на рис. 4.20.
C = {X, YA´YB,SA´SB,(s0A,s0B), dA´B,lA´B}

1/(0,0)

0/(1,1) 0/(1,1)
A0B0 A1B1 A2B2

1/(0,0)
1/(0,0)
0/(1,1)
0/(1,1)

1/(0,0) A2B2

Рис. 4.20. Граф переходов автомата C

Автоматы A и B являются эквивалентными, так как каждая пара выходных


сигналов автoмата-произведения C содержит одинаковые выходные буквы “0”
и “1”.

4.7. Неполностью определенные автоматы


Автомат называется полностью определенным, если для любой пары
состояние – вход известно следующее состояние. Если это условие не
выполняется, то автомат называется частично-определенным или неполностью
определенным (incomplete specified).
Функции переходов (следующего состояния) и функции выходов также будут
неполностью определенными.
Большинство реально используемых автоматов являются неполностью
определенными.
Задача минимизации числа состояний неполностью определенного автомата
является сложной задачей, связанной с большим перебором.

4.8. Задачи
4.1. Построить граф автомата Мили, являющегося детектором входной
последовательности
 110011
 01011

102
 1100011
Перейти от автомата Мили к автомату Мура.
4.2. Построить граф автомата Мура, имеющего два входа x1 и x2, на которые
поступают 0 или 1. На выходе автомата появляется единица, когда
суммарное число единиц на входе делится на 7. В остальных случаях на
выходе автомата нуль.
4.3. Построить граф автомата Мили, который распознает следующие входные
последовательности: ABBA (при этом вырабатывается выходной сигнал 1)
и CCBA (вырабатывается выходной сигнал 2). Во всех остальных случаях
на выходе автомата 0. Входной алфавит автомата X={A,B,C}, выходной
алфавит Y={0,1,2}.
4.4. Минимизировать число состояний автомата, граф которого представлен на
рис.4.21.
x2/1

S1 x2/1
x2/1

S0 S3
x1/0 x1/0

x1/1
S2 x1/1

x2/1
Рис. 4.21.
Представить минимизированный автомат в виде графа.

4.5. Перейти от автомата Мили, граф которого представлен на рис.4.22 к


автомату Мура.

x1/y2
S2 x2/y1
x1/y1 S1
x2/y3
x1/y2
S0 x1/y3
x2/y2 x2/y1 S3
S4
x2/y3
x1/y1

103
Рис. 4.22.
4.6. Минимизировать число состояний автомата Мура. Построить граф
минимизированного автомата.
Табл. 4.11
S X x1 x2 Y
S0 S9 S4 y1
S1 S11 S6 y1
S2 S4 S5 y3
S3 S6 S10 y3
S4 S2 S5 y3
S5 S6 S3 y2
S6 S2 S5 y3
S7 S9 S3 y1
S8 S6 S5 y2
S9 S0 S7 y2
S10 S4 S8 y2
S11 S1 S7 y2

4.7. Преобразовать автомат Мура, представленный в виде графа на рис.4.23, в


эквивалентный ему автомат Мили.

x2
S0/y0 S1/y2 x2
x1

x2 x1
x1

S3/y2 S4/y1 x2
x1
Рис. 4.23.

104