3.4 Связь между автоматами Мили и Мура
Для любого автомата Мили можно построить эквивалентный ему автомат Мура и, обратно, для любого автомата Мура можно построить эквивалентный ему автомат Мили.
Рассмотрим преобразование автомата Мили в автомат Мура. Пусть задан автомат Мили S = (A, Z, W, , , a1), построим автомат Мура S / = (A /, Z /, W /, /, /, a1 /), у которого Z / = Z; W / = W.
Для определения множества A /
необходимо выполнить расщепление
состояний автомата Мили исходя из
следующего. Если автомат Мили при
переходе в некоторое состояние as
может выдавать в разные моменты времени
один из
выходных сигналов из алфавита W
, то такое состояние as
должно быть расщеплено на
состояний. То есть число элементов в
множестве As
равно числу различных выходных сигналов
на дугах автомата S,
входящих в состояние as
(рис.3.8):
As = {(as, w1), (as, w2), (as, w3), ..., (as, wk)}.
As
= {(as,
w1), (as,
w2), (as,
w3)} Рис.3.8.
Построение
множества As
A /
,
где M – число состояний в автомате Мили S.
Такое расщепление состояний автомата Мили необходимо потому, что все состояния эквивалентного ему автомата Мура должны быть отмечены только одним выходным сигналом из алфавита W.
Функцию переходов / и выходов / определим следующим образом. Если в автомате Мили S был переход (am, zf) = as и при этом выдавался выходной сигнал (am, zf) = wg, то в автомате Мура S / (рис.3.9) будет переход из множества состояний Am, порождаемых am, в состояние (as, wg) под действием того же входного сигнала zf.
В качестве начального состояния автомата
Мура
можно взять любое состояние из множества
A1, порождаемого
начальным состоянием a2.
Рис.3.9. Иллюстрация перехода от автомата Мили к автомату Мура
Пример3.4. Преобразовать автомат Мили, изображенный на рис.3.7,а, в автомат Мура.
Решение.
Для автомата Мура Z / = Z = {z1, z2};
W / = W = {w1, w2, w3, w4, w5}.
Построим множество А / для чего найдем множества пар порождаемых каждым состоянием автомата Мили S. Каждую пару обозначим символами b1, b2, ... :
A1 = {(a1, w2),(a1, w4)} = {b1, b2}; A2 = {(a2, w1)} = {b3};
A3 = {(a3, w3),(a3, w5)} = {b4, b5}; A4 = {(a4, w4),(a4, w5)} = {b6, b7}.
A / = {b1, b2, b3, b4, b5, b6, b7}.
Для определения функции / с каждым состоянием вида (as, wg), представляющим собой пару, отождествим выходной сигнал, являющийся вторым элементом этой пары:
/(b1) = w2; /(b2) = /(b6) = w4; /(b3) = w1;
/(b4) = w3; /(b5) = /(b7) = w5.
Поясним построение функции /.
Так как в автомате Мили S есть переход из состояния a1 под действием сигнала z1, в состояние a2 с выдачей w1, то из множества состояний A1 = {b1, b2}, порождаемых а1 в автомате S / должен быть переход в состояние (a2, w1) = b3 под действием сигнала z2. Аналогично из состояний множества A1 = {b1, b2} должен быть переход в состояние (a4, w5) = b7 под действием сигнала z2 и т.д.
В качестве начального состояния можно выбрать одно из состояний, порождаемых а1, например, b2.
На рис.3.10 приведен граф автомата Мура
S /,
эквивалентного автомату Мили S.
Табл. 3.13 - отмеченная таблица переходов
автомата Мура
.
Таблица 3.13
