logo
Methodics_1

2.4 Связь между математическими моделями цифровых автоматов Мили и Мура

Абстрактный цифровой автомат работает как преобразователь слов входного алфавита в слово в выходном алфавите [5]. Рассмотрим это положение, взяв в качестве примера автомат Мили S1.

На вход этого автомата, установленного в начальное состояние a1, поступает шестибуквенное (шеститактное) слово =z1z1z2z1z2z2.

Проследив по таблицам переходов и выходов или непосредственно по графу поведение цифрового автомата S1, опишем его тремя сроками, первая из которых соответствует входному слову , вторая - последовательности соответствующих этому слову состояний , третья - выходному слову , которое появляется на выходе автомата.

 = (a1, ) - реакция автомата Мили в состоянии a1 на входное слово .

Как видно из этого примера, в ответ на входное слово длиной k символов автомат Мили S1 выдаёт последовательность состояний длины k+1 символов и выходное слово длиной k символов.

В общем виде поведение автомата Мили, установленного в состояние am, можно описать следующим образом:

входное слово zi1 zi2 zi3

последовательность am ai2=(am, zi1) ai3=(ai2, zi2)

состояний

выходное слово wi1=(am, zi1) wi2=(ai2, zi2) wi3=(ai3, zi3).

Точно так же описывается поведение автомата Мура, находящегося в состоянии am, при приходе входного слова zi1, zi2, ... , zik. Учитывая, что выходной сигнал автомата Мура в момент времени t, то есть w(t), зависит лишь от состояния, в котором находится автомат в момент t, то есть от a(t), получим:

Выходной сигнал wi1=(am) в момент времени i1 не зависит от входного сигнала zi1, а определяется только состоянием am. Таким образом, выходной сигнал wi1 не связан с входным словом, поступающим на вход автомата, начиная с момента i1.

По этой причине реакцией автомата Мура, установленного в состояние am, на входное слово  = zi1, zi2, ... , zik является выходное слово той же длины k, с исключением первого символа выходного слова:

 = (am, ) = wi2, wi3, ... , wi(k+1).

В качестве примера рассмотрим автомат Мура S5 , граф которого изображён на рис.26, и определим его реакцию в начальном состоянии a1 на то же самое слово =z1z1z2z1z2z2 , которое использовалось для оценки поведения автомата Мили S1.

Часть выходного слова, выделенная штриховой рамкой, является реакцией автомата Мура на входное слово.

Таким образом, реакции автоматов S5 и S1 в начальном состоянии на входное слово  с точностью до сдвига на один такт совпадают. Эти автоматы являются эквивалентными. Два автомата SA и SB с одинаковыми входными выходным алфавитами называются эквивалентными, если после установки начального состояния, их реакции на любое входное слово совпадают. Отсюда следует, что для любого автомата Мили существует эквивалентный ему автомат Мура и, обратно, для любого автомата Мура существует эквивалентный ему автомат Мили, то есть любой автомат Мили можно трансформировать в эквивалентный ему автомат Мура, а любой автомат Мура можно трансформировать в эквивалентный ему автомат Мили.

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

Рассмотрим преобразование автомата Мура в эквивалентный ему автомат Мили.

Исходный автомат Мура

SA = {AA, XA, YA, A, A, a1A}

где: AA= {a1, ... , am, ... , aM} , XA= {z1, ... , zf, ... , zF}, YA= {w1, ... , wg, ... wG},

A: AAXAAA, A=AAYA, a1A=a1 - начальное состояние.

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

SB ={AB, XB ,YB, B, B, a1B},

имеющий

AB = AA; XB= XA; YB= YA; B=A; a1B= a1A.

Для SB функция выходов B определяется иначе, чем для исходного автомата Мура SA. Если в исходном автомате Мура A(as)= wg, то в эквивалентном автомате Мили B(am, zf)= wg.

Переход от автомата Мура к автомату Мили при графическом описании иллюстрируется рис.27. Выходной сигнал wg, записанный рядом с вершиной as, переносится на все дуги, входящие в эту вершину.

При использовании табличного описания автомата Мура SA, таблица переходов автомата Мили SB совпадает с таблицей переходов SA, а таблица выходов SB получается из таблицы переходов заменой символа as, стоящего на пересечении строки zf и столбца am, символом выходного сигнала wg, отмечающего столбец as в таблице переходов автомата SA.

Пример трансформации автомата Мура S3 (таблица 21) в автомат Мили S6 приведён на рис.28 и в таблице 23 и таблице 24.

Отмеченная таблица переходов автомата Мура S3

Выделение совмещённой таблицы переходов и выходов автомата Мили S6

По процедуре построения автомата Мили SB видно, что он эквивалентен автомату Мура SA.

Действительно, если некоторый входной сигнал zf X поступает на вход автомата SA, находящегося в состоянии am, то он перейдёт в состояние as = A(am, zf) и выдаст выходной сигнал wg = A(as). Соответствующий эквивалентный автомат Мили SB из состояния am также перейдёт в состояние as, поскольку B(am, zf) = A(am, zf) = as и выдаст тот же выходной сигнал wg согласно способу построения функции B . Таким образом, любое входное слово конечной длины, поданное на входы автоматов SA и SB, установленных в состояние am, вызовет появление одинаковых выходных слов и, следовательно, автоматы SA и SB эквивалентны.

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

Преходящим называется состояние, в которое, при представлении автомата в виде графа, не входит ни одна дуга, но которое имеет, по крайней мере, одну выходящую дугу (например - состояние a1 автомата S2 на рис.23).

Рассмотрим преобразование автомата Мили в эквивалентный ему автомат Мура.

Исходный автомат Мили SA = {AA, XA, YA, A, A, a1A}

где: AA= {a1, ... , am, ... , aM} , XA= {z1, ... , zf, ... , zF}, YA= {w1, ... , wg, ... wG}, A реализует отображение AAXA в AA, то есть A: AAXAAA и A=AAYA, a1A=a1 - начальное состояние.

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

SB ={AB, XB ,YB, B, B, a1B},

имеющий

XB= XA; YB= YA.

Для определения AB каждому состоянию as  AA поставим в соответствие множество AS всевозможных пар вида (as, wg), где wg - выходной сигнал, приписанный входящей в as дуге. Это положение иллюстрируется примером преобразования фрагмента автомата Мили на рис.29.

Множество состояний автомата SB, получим как объединение множеств AS (S = 1, ... ,M):

.

Для определения функций выходов B, каждому состоянию эквивалентного автомата Мура, представляющего собой пару вида (as, wg), поставим в соответствие выходной сигнал wg. Если в автомате Мили SA, был переход A(am, zf) = as и при этом выдавался выходной сигнал A(am, zf)= wk, то в эквивалентном автомате Мура SB (рис.30) будет переход из множества состояний Am, порождаемых am, в состояние (as, wk) под действием того же входного сигнала zf.

Как начальное состояние a1B можно взять любое состояние из множества A1, порождаемого начальным состоянием a1 автомата SA.

При последующем сравнении реакций эквивалентных автоматов SA и SB на всевозможные входные слова не должен учитываться выходной сигнал в момент t = 0, связанный с состоянием a1B автомата Мура SB.

Рассмотрим пример преобразования автомата Мили S1, изображённого в виде графа на рис.22 и описанного в таблице 18.

A1 = {(a1,w1),(a1,w2)} = {b1,b2}, где b1 = (a1,w1) b2 = (a1,w2). A2 = {(a2,w1)} = b3.

A3 = {(a3,w1),(a3,w2)} = {b4,b5}, где b4 = (a3,w1) b5 = (a3,w2).

Тогда = {b1, b2, b3, b4, b5}. С каждым состоянием, представляющим теперь пару, свяжем выходной сигнал, являющийся вторым элементом этой пары:

B(b1) = B(b3) = B(b4) = w1; B(b2) = B(b5) = w2.

В качестве начального состояния можно выбрать любое из множества A1. Таким образом строится отмеченная таблица выходов эквивалентного автомата Мура. Оказывается, что это автомат S5, граф которого ранее изображён на рис. 26.

Рассмотрим преобразование автомата Мили в эквивалентный автомат Мура с учётом ранее введённого ограничения на присутствие преходящих состояний. Для примера возьмём автомат Мили S7, граф которого приведён на рис.31.

b2 = (a2, w1); b3 = (a2, w2); b4 = (a3, w1); b5 = (a3, w2); b1 = (a1, - ).

Преходящее состояние в автомате Мили порождает состояние с неопределённым выходным сигналом в эквивалентном автомате Мура.

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

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