Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Анализ дискретных устройств объектов информатизации при решении задач информационной безопасности. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
Подача очередной буквы х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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]