173
Для автомата, таблицей переходов которого является табл. 22.1, условия
отсутствия опасных состязаний, определяемых парами переходов q
1
→ q
1
,
q
4
→ q
5
; q
1
→ q
1
, q
5
→ q
5
и q
2
→ q
1
, q
4
→ q
5
, могут быть представлены
следующими строками:
q
1
q
2
q
3
q
4
q
5
0 – – 1 1
0 – – – 1
0 0 – 1 1.
Здесь только последняя строка останется в матрице условий. Остальные строки
имплицируются последней строкой и в матрицу условий не включаются.
Будем говорить, что троичная матрица R имплицирует троичную матрицу
S, если для каждой строки матрицы S в матрице R найдется имплицирующая ее
строка.
Задача противогоночного кодирования сводится к нахождению матрицы с
минимальным числом строк, имплицирующей матрицу условий. Столбцы этой
матрицы будут представлять искомые коды состояний, т. е., чтобы получить
матрицу кодирования С, надо транспонировать кратчайшую имплицирующую
форму матрицы условий.
Множество строк матрицы условий называется совместимым, если
существует вектор, имплицирующий каждую строку этого множества. Заметим,
что множество строк, в котором каждая пара строк является совместимой, не
всегда является совместимым множеством. Действительно, пусть имеется три
троичных вектора: и = (0 1 – – 0 1), v = (– 1 0 – 0 –) и w = (– –1 – – 1). Для и и v
общим имплицирующим вектором является (0 1 0 – 0 1), для и и w – вектор
(0 1 1 – 0 1), а для v и w – вектор (– 0 1 – 1 1). Любой имплицирующий вектор
для двух векторов не является таковым для третьего. Совместимое множество
называется максимальным, если оно не является собственным подмножеством
другого совместимого множества.
Чтобы получить кратчайшую имплицирующую форму для троичной
матрицы, надо найти все максимальные совместимые множества ее строк, а
затем получить кратчайшее покрытие строк этими множествами.
Пусть табл. 22.2 представляет таблицу переходов заданного асинхронного
автомата. Для того чтобы учесть требование ортогональности кодов для
различных состояний, можно ввести в таблицу переходов еще один столбец,
где присутствуют все состояния, которые являются устойчивыми. Тогда
выполнение данного требования обеспечивается введением в матрицу условий
строк, не имплицируемых другими строками и выражающих отсутствие
опасных состязаний, которые соответствуют данному столбцу. При этом
табл. 22.2 примет вид табл. 22.3. Заметим, что неортогональные коды могут
оказаться у состояний, которым соответствуют одинаковые строки таблицы
переходов, и введение дополнительного столбца делает все строки различными.
Таблица 22.2