Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Анализ дискретных устройств объектов информатизации при решении задач информационной безопасности. Учебное пособие
.pdf
Подача очередной буквы х1 из входной последовательности приведёт переход автомата из S0 в S1 (заполняется клетка на пересечении
строки х1 и столбца S0 символом S1). Для устойчивости состояния S1 при
переходе, справа от S1 записываем (S1) в клетке на пересечении строки х
и столбца S1. Это называется доопределением состояний.
Таким же образом заполняются и другие клетки ТПВ с обеспечением устойчивости состояний.
Можно построить по первичной ТПВ первичный ГПВ (рис. 4.8).
Рис. 4.8. Первичный граф переходов-выходов автомата
Для решения следующей задачи по построению автомата можно
предположить, что некоторые состояния автомата могут играть одинаковую роль при его функционировании, и их можно объединить в целях
уменьшения числа состояний автомата.
Минимизация состояний автомата – это уменьшение числа состояний автомата при сохранении закона функционирования, т. е. заданной
входной-выходной последовательности.
Задача минимизации автомата основана на понятии эквивалентных
состояний: два состояния Sm и Sn называются эквивалентными, если
автомат, находящийся в этих состояниях, под воздействием любой
входной последовательности выдает одинаковые выходные последовательности.
81

Два автомата называются эквивалентными, если для каждого со-
k
стояния первого автомата существует эквивалентное состояние второго
автомата и наоборот.
Минимальным среди эквивалентных автоматов является автомат,
имеющий наименьшее число состояний.
Можно сформулировать условия эквивалентности состояний, которые определяются по первичной ТПВ.
Первое условие: в любой строке первичной ТПВ состояниям Sm и Sn
соответствуют одинаковые выходные символы z(t) для автомата первого рода, а для автомата второго рода состояниям Sm и Sn соответствуют
одинаковые символы.
Второе условие: переход из состояний Sm и Sn под воздействием
любого входного символа приводит к одному и тому же или эквивалентному состоянию.
Процесс минимизации автомата выполняется в такой последовательности.
1. Последовательным разбиением первичной ТПВ выделяются все
попарно эквивалентные состояния автомата.
2. Объединяются эквивалентные состояния в отдельные классы
1 2
и выделяется в каждом классе одно состояние.
3. По выделенным состояниям строится вторичная ТПВ. Входные
и выходные символы первичной ТПВ не изменяются, а номера каждого
класса αi заменяются номером выделенного в нем состояния.
Итак, последовательное разбиение предполагает последовательное
включение в классы эквивалентности тех состояний, для которых выполняется первое условие эквивалентности, а затем проверяется второе
условие. Если в классе эквивалентности не выполняется второе условие
для некоторых состояний, необходимо их исключить из данного класса
и повторить проверку для другого варианта разбиения состояний.
Необходимо закончить процесс, если оба условия выполняются в каждом классе эквивалентности.
ляются классы
Пример 4.1. В табл. 4.7 по первому условию эквивалентности выде-
α1 = {S0, S3, S4, S5} и α2 = {S1, S2}.
82

Для проверки второго условия эквивалентности целесообразно
*
преобразовать первичную ТПВ, переставив столбцы по классам и заменив символ состояния на символ его класса (табл. 4.8).
Таблица 4.8
Преобразованная первичная таблица переходов-выходов.
Первое разбиение
α1 α2
х
S0 S3 S4 S5 S7 S2
х0 α1 α1 α1
х1 α
α1 α1 α1
2
х2 α1 α1
х3 α2 α2
Из табл. 4.8 видно, что в классе α2 в каждой строке записаны оди-
наковые классы. Пустые клетки во внимание не принимаются. Из этого
следует, что второе условие эквивалентности выполняется. В классе α1
второе условие выполняется, за исключением S0. Во второй строке α2
помечено звездочкой (α
*
). Это означает необходимость исключения из
2
α1 состояния S0 и повторения проверки.
Еще учитывается одно условие, которое требует после реализации
вход-выходной последовательности возвращать автомат в исходное состояние. Для этого начальное и конечное состояния автомата целесообразно объединять в одном классе.
Итак, на втором шаге получаем α1 = {S0, S5}, α2 = {S1, S2}, α3 = {S3, S4}
(табл. 4.9).
Таблица 4.9
Преобразованная первичная таблица переходов-выходов.
Второе разбиение
α1 α
2
x
S
0
x
0
x
1
x
2
x
3
α1 α1 α1
α2 α2 α3 α3
α3 α3
α2 α2
S
5
S
1
S
2
S
83
α
3
3
S
4

В табл. 4.9 в каждом классе второе условие выполняется. На этом
разбиение завершается.
По табл. 4.9 выберем состояния, представляющие каждый класс,
и определим их как S0, S1 и S3. В результате получим вторичную ТПВ
(табл. 4.10).
Вторичная ТПВ имеет четыре строки x0, x1, x2, x3 и три столбца
S0, S2, S3. Выходные символы переносят из первичной ТПВ. Клетки за-
полняют символами состояний соответствующих им классов.
Таблица 4.10
Вторичная таблица переходов-выходов
S – Z(t)
z
x
x
0
x
1
x
2
x
3
0
S
0
S0 S0
S1 S1 S3
S3 S3
S1
z
1
S
1
z
0
S
3
Вторичная ТПВ представляет функционирование автомата, эквива-
лентного первичной ТПВ. При этом получено минимальное решение
автомата, эквивалентного исходному.
Проверим эквивалентность полученного автомата проверкой реали-
зации вход-выходной последовательности, например по графу переходов-выходов (рис. 4.9).
Рис. 4.9. Вторичная таблица переходов-выходов
84

При построении вторичной ТПВ автомата I рода процедура анало-
гична, только при формировании классов эквивалентности необходимо
учитывать выходные сигналы в каждой строке. Пустые клетки во внимание не принимаются.
Структурный автомат позволяет подробно рассмотреть связи
между составными частями ДУ и определить изменения сигналов на
входах и выходах устройства.
Для этой цели первоначально надо провести кодирование входных
символов Хi и кодирование выходных символов Zj.
Для определения числа входов ДУ необходимо использовать фор-
мальное выражение:
n = int log2 N,
где n – число входов ДУ; int A – ближайшее целое число, не меньшее,
чем А; N – мощность множества Х.
Кодирование выходных символов проводится по аналогичной формуле:
m = int log2 M,
где m – число входов; М – мощность множества Z.
Кодирование состояний автомата Si проводится для определения
числа элементов памяти р по формуле:
р = int log2 Р,
где Р – мощность множества S.
Для рассматриваемого примера в табл. 4.11 представлены результа-
ты кодирования.
Таблица 4.11
Кодирование X, Z, S
X x1 x
x
0
x
1
x
2
0 0 z
0 1 z
1 1
2
Z z
0
1
1
0 S
1 S
S y1y
0
1
S
3
0 0
0 1
1 0
2
x
3
1 0
При кодировании состояний возможно возникновение состязаний
элементов памяти при функционировании автомата. Состязания элементов памяти называют иногда гонками. Это вызывает неустойчивую
работу автомата.
85

Для исключения состязаний элементов памяти необходимо, чтобы
нач кон
S S
нач нов кон
S S S
нов
S
нов
S
нов
S
нач кон
S S
при любых переходах автомата начальное и конечное состояние перехода были закодированы соседними двоичными кодами. Однако достичь этого не всегда возможно и для устойчивости переходов прибегают к увеличению числа состояний автомата, однако эта мера противоречит целям минимизации.
Противогоночное кодирование выполняется следующим образом.
1. По вторичной ТПВ строится ГПВ.
2. Проверяется выполнение условия 1: в графе не должно быть кон-
туров с нечетным числом состояний (например, в графе на рис. 4.10).
Здесь код 10 является соседним числом
коду вершины 00, но не является соседним
для вершины с кодом 01. Код 11 является соседним для вершины с кодом 01, но не является соседним для кода 00. То есть соседними
числами нельзя закодировать создающий
Рис. 4.10. Граф
с контуром
из трех вершин
контур с нечетным числом вершин.
Если условие 1 не выполняется, то необходимо применить доопределение вторичной
ТПВ следующими способами:
а) заменить в не полностью заданных автоматах один из переходов
x
i
контура с нечетным числом состояний на переход
x x
i i
, выбрав
в качестве неустойчивого состояния из имеющихся с незаполненной клеткой строки xi в ТПВ, а в ГПВ
из
не выходит стрелка с обозначением xi ;
б) это новое состояние
включить в разрыв одного из переходов
в качестве неустойчивого состояния перехода. При изме-
нении структуры перехода входной и выходной символы не должны
меняться.
Пример 4.2. Граф переходов-выходов (см. рис. 4.9) имеет контур с
тремя вершинами, следовательно, условие 1 процесса противогоночного кодирования не выполняется.
86

По способу «a» можно выбрать неустойчивое состояние S0:
1 0 3
S S S
x x
1 2
Оно имеет пустую клетку в ТПВ на x2. Новый автомат представлен
на рис. 4.11.
Рис. 4.11. Граф переходов-выходов
варианта противогоночного кодирования
с использованием неустойчивого состояния S0
Таблица переходов-выходов при противогоночном кодировании по
способу «а» изменится.
Таблица 4.12
Таблица переходов-выходов
с противогоночным кодированием по способу «а»
S – Z(t)
X
x
0
z
0
S
0
S
0
z
1
S
1
S
z
2
S
2
0
x
1
x
2
x
3
S
1
S
3
S
S
1
S
0
1
S
3
S
3
87

Если решить задачу противогоночного кодирования по способу «a»
S1/z1
S3/z0
не удается, то способ «б» предлагает добавить новое состояние и заменить один из переходов (рис. 4.12).
Рис. 4.12. Граф переходов-выходов
с противогоночным кодированием по способу «б»
Таблица переходов-выходов, измененная согласно графу ГПВ,
представлена в табл. 4.13.
Таблица 4.13
Таблица переходов-выходов с изменениями
в результате противогоночного кодирования по способу «б»
S – Z(t)
X
x
0
z
0
S
0
S
0
z
1
S
1
S
z
0
S
2
0
z
0
S
2
x
1
x
2
x
3
S
1
S
3
S
S
1
S
0
1
S
3
S
3
88

Противогоночное кодирование с выполнением условия 2: любые
R(t
) S(t)
две смежные 2-го ранга вершины не должны иметь между собой более
двух параллельных ветвей.
Если условие 2 не выполняется, необходимо применить один из ранее
рассмотренных способов «а» или «б» доопределения вторичной ТПВ.
Используя кодирование для X, Z, S (см. табл. 4.11), получаем структурную таблицу переходов (СТП) (фрагмент которой показан на
рис. 4.13). Далее, применяя таблицу входов Т-триггера (см. рис. 4.13)
или RS-триггера (табл. 4.14), получаем таблицу возбуждения элементов
памяти (ТВЭП) разрабатываемого автомата.
Таблица 4.14
Таблица входов RS-триггера
y(t+1)
y(t)
0 1
0 – 0 0 1
1 1 0 0 –
Прочерк в таблице входов RS-триггера соответствует сигналу
либо 0, либо 1.
Получение ТВЭП на основе СТП и таблицы входов T-триггера
(и RS-триггера) показано на рис. 4.13. Последовательность действий показана на стрелках.
89

(t)
0 0
0 1 0 0
0 0 0 1 0 1 0 1
(t) 0 0 0 1 0 0
0 0 0 1 0 1 0 0
y(t+1) 0 1 0 0 1 1 1 0
+1) 0 0 0 1
0 0 –
0
– 0 0 1 – 0
0 1
x1x
y1y
2
2
x1x
y1y
2
2
(1)
x1x
2
(3)
x1x
2
y(t
R1S
R2S
1
R1S
2
R2S
1
2
Рис. 4.13. Последовательность построения ТВЭП
по структурной таблице переходов
и таблицам входов T-триггера и RS-триггера
Итак, после проведения противогоночного кодирования, используя
коды символов X, Z и S, вносимых во вторичную ТПВ, получаем структурную ТПВ, которая в полном виде представлена в табл. 4.15.
90
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
