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

- - 0 --10-,   1 - 0 -, то переход к п.7, иначе переход к п.8.

7. Доопределить неопределенные значения r-го разряда четверкиa, b, g, d так, чтобы  значения этого разряда образовали набор 1100. Переход к п.9.

8. Дополнить коды состояний автомата одним неопределенным разрядом. Увеличить r на единицу. Переход к п.4.

9. Пара переходов (am,as), (ak,al ) развязана. Конец.

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

Рассмотрим пример противогоночного кодирования. Закодируем состояния автомата, таблица переходов которого изображена на рис.3.5.

a1

a2

a3

a4

a5

x1

a2

a2

a5

----

a5

x2

----

a1

a4

a4

----

x3

a1

a2

----

a1

a2

Рис.3.5.

Пары должны быть развязаны в каждом из массивов переходов M1, M2, M3 , происходящих под действием сигналов x1, x2 , x3.

M1                                       M2                                             M3

(a1 ,a2)                                (a2 ,a1)                                       (a1 ,a1)

(a2 ,a2)                                (a3 ,a4)                                       (a2 ,a2)

(a3,a5)                                 (a4,a1)                                        (a4,a1)

(a5,a5)                                                                                   (a5,a2)

Развязывание пар переходов в М1 начнём с первого перехода (а12). Из-за совпадения состояния перехода пары типа (а12), (а22) развязывать не надо. Первая пара переходов, которая должна быть развязана, есть (а12), (а35).

Вводим переменную t1  и образуем по этой переменной четвёрку (0011) для состояний а1, а2, а3, а5. Рассматриваемая пара переходов (а1, а2), (а3, а5), развязана (таблица 3.1).

Таблица 3.1.             t1  

а1     0

а2       0

а3     1

а4      -

а5       1

 


Пара переходов (а12), (а55) соответствует четвёрке (0011), то есть эта пара тоже развязана. Парам переходов (а22), (а35);  (а22), (а55) также соответствует четвёрка (0011), то есть они развязаны.

Далее переходим к рассмотрению пар из множеств М2. В этом множестве подлежат развязыванию пары (а2,а1), (а3,а4) и (а2,а1), (а4,а4). Пара переходов (а21), (а34) образуют четвёрку (001-). Для развязывания доопределим четвёрку  до (0011), для чего состоянию а4 поставим в соответствие t1=1.

Таблица 3.2.            t1  

а1     0

а2       0

а3     1

а4     1

а5       1

 


Паре (а21), (а4,а4) соответствует четвёрка (0011) (таблица 3.2).

Переходим к рассмотрению пар из множества М3. Развязыванию подлежат пары: (а1,а1), (а22);  (а11), (а52);  (а22), (а41);  (а41), (а52).

Из таблицы следует, что парам (а11), (а22) соответствует четвёрка (0000), то есть они развязаны. Вводим переменную t2 и полагаем для а1 значение t2=0, а для а2 значение t2  равно 1 (таблица 3.3).

Для развязывания пар (а11), (а52), которым соответствует четвёрка