
- •Дискретная математика
- •Минск 2015
- •1.1. Определения
- •1.2. Способы задания множеств
- •1.3. Операции над множествами
- •Рис. 1.1. Операции над множествами
- •2.1. Декартово произведение
- •2.3. Операции над бинарными отношениями
- •3.1. Абстрактный граф
- •3.2. Графическое представление бинарного отношения
- •Рис. 3.3. Представление композиции отношений: а) отношения R и S;
- •3.3. Матричные представления графа
- •4.1. Отношение изоморфизма
- •5.1. Цикломатическое число графа
- •6.1. Доминирующие множества графа
- •6.2. Независимые множества графа
- •7.1. Постановка задачи
- •8.1. Эйлеровы цепи и циклы
- •Рис. 8.3. Граф со взвешенными ребрами и выделенным кратчайшим путем
- •9.1. Определения
- •Рис. 9.1. Плоский граф
- •Рис. 9.2. Максимальный планарный граф
- •Рис. 9.3. Простейшие непланарные графы
- •10.1. Задачи подсчета
- •11.1. Постановка задачи
- •12.1. Способы задания булевой функции
- •Нормальные формы
- •14.1. Булев гиперкуб
- •Рис.14.1. Графическое представление булева пространства: а) одномерное; б) двумерное; в) трехмерное; г) четырехмерное
- •14.2. Представление булевых функций на гиперкубе
- •Рис.14.2. Трехмерный гиперкуб с заданной на нем булевой функцией
- •Рис.14.3. Графическое представление некоторых формул булевой алгебры: а) простое склеивание; б) простое поглощение; в) обобщенное склеивание
- •14.3. Развертка гиперкуба на плоскости. Карта Карно
- •Рис. 14.6. Зоны симметрии карты Карно
- •15.1. Функциональная полнота
- •15.2. Реализация булевых функций комбинационными схемами
- •16.1. Отношения на множестве троичных векторов. Операции над троичными векторами. Эквивалентность матриц
- •16.2. Эквивалентность матриц
- •16.3. Анализ троичной матрицы на вырожденность
- •17.1. Удаление избыточных элементарных конъюнкций
- •17.2. Удаление избыточных литералов
- •18.1. Метод Квайна-МакКласки
- •18.2. Метод Блейка-Порецкого
- •19.1. Постановка задачи
- •19.2. Применение метода Квайна-МакКласки
- •19.3. Минимизация слабо определенной функции
- •19.4. Расширение интервалов
- •20.1. Минимизация системы ДНФ
- •20.2. Минимизация системы слабо определенных булевых функций
- •21.1. Двухблочная разделительная декомпозиция
- •У т в е р ж д е н и е 21.3. Булева функция f (x) допускает параллельную разделительную декомпозицию вида (21.1) тогда и только тогда, когда она допускает двухблочные разделительные декомпозиции вида
- •21.4. Неразделительная декомпозиция
- •21.5. Декомпозиция систем булевых функций
- •22.1. Автомат с памятью
- •22.2. Представления автомата
- •22.3. Связь между моделями Мили и Мура
- •22.4. Автомат с абстрактным состоянием. Булев автомат
- •23.1. Эквивалентность состояний. Постановка задачи минимизации
- •23.2. Установление эквивалентности состояний
- •24.1. Отношение реализации. Постановка задачи минимизации
- •24.2. Совместимость состояний
- •24.3. Нахождение минимальной правильной группировки
- •Таблица 24.7
- •Таблица 24.9
- •Рис. 24.2. Дерево поиска минимальной правильной группировки
- •25.1. Задача кодирования состояний
- •25.2. Метод «желательных соседств»
- •26.1. Явление состязаний элементов памяти
- •26.2. Условие отсутствия опасных состязаний
- •26.3. Минимизация длины кода
- •26.4. Рассмотрение K-множеств
- •Литература
- •Матрица булева 15
- •Ядро 11
22.2. Представления автомата
Конечный автомат удобно представлять таблицей переходов и таблицей выходов. Строкам этих таблиц соответствуют состояния автомата, столбцам – входные символы. На пересечении строки, соответствующей состоянию q, и столбца, соответствующего входному символу а, в таблице переходов
записывается значение Ψ(a, q), а в таблице выходов – значение Φ(a, q). Другими словами, в первом случае в клетке таблицы указывается состояние, в которое автомат переходит из состояния q при поступлении на его вход символа а, а во втором случае – выходной символ, который при этом выдает автомат. Табл. 22.2 и табл. 22.3 представляют собой пример описанного представления автомата Мили, у которого А = {a1, a2, a3, a4}, В = {b1, b2} и
Q = {q1, q2, q3}.
|
|
Таблица 22.2 |
|
|
|
Таблица 22.3 |
|||||||
|
Функция Ψ |
|
|
|
|
Функция Φ |
|
|
|||||
q1 |
a1 |
a2 |
a3 |
a4 |
q1 |
a1 |
|
a2 |
a3 |
a4 |
|||
q1 |
q2 |
q1 |
q2 |
|
b1 |
|
b1 |
b2 |
|
b1 |
|
||
q2 |
q3 |
q1 |
q3 |
q1 |
|
q2 |
b1 |
|
b2 |
b2 |
|
b1 |
|
q3 |
q3 |
q1 |
q1 |
q1 |
|
q3 |
b2 |
|
b2 |
b1 |
|
b1 |
|
Зная начальное состояние автомата и входную последовательность, нетрудно получить по этим таблицам соответствующую последовательность выходных символов. Приведем пример такого соответствия для автомата, заданного табл. 22.2 и 22.3, на вход которого поступила последовательность символов а1, а2, а2, а1, а3, а4, а1, а4 при начальном состоянии q1. Покажем также состояния, которые проходит автомат:
а1 |
а2 |
а2 |
а1 |
а3 |
а4 |
а1 |
а4 |
q1 |
q1 |
q2 |
q1 |
q1 |
q1 |
q2 |
q3 |
b1 |
b1 |
b2 |
b1 |
b2 |
b1 |
b1 |
b1. |
Автомат Мура представляется одной таблицей переходов, к которой добавлен один столбец со значениями функции выходов (табл. 22.4).
Можно свести таблицу переходов и таблицу выходов автомата Мили в одну таблицу, которую называют таблицей переходов и выходов. Такая таблица для автомата, заданного в виде табл. 22.2 и табл. 22.3, имеет вид табл. 22.5.
Более наглядным при небольшом числе состояний является представление автомата в виде графа поведения автомата, который представляет собой ориентированный граф. Его вершины соответствуют состояниям автомата, а дуги – переходам между состояниями. При этом дуга помечается всеми входными символами, которые вызывают соответствующий переход, и выходными символами, сопровождающими данный переход (в случае автомата
147

Мили). В случае автомата Мура выходными символами помечаются вершины, соответствующие состояниям, в которых находится автомат при выдаче данных символов. На рис. 22.1 изображены графы переходов автоматов, заданных табл. 22.4 и 22.5.
|
|
|
|
|
Таблица 22.4 |
|
|
|
|
|
|
Таблица 22.5 |
|||||||||
Таблица переходов автомата Мура |
|
Таблица переходов и выходов |
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
автомата Мили |
|
|
|
||||
|
q1 |
a1 |
|
a2 |
a3 |
a4 |
|
Φ |
q1 |
|
|
a1 |
|
a2 |
|
a3 |
a4 |
||||
|
q1 |
|
q2 |
q1 |
q2 |
|
b1 |
|
|
q1,b1 |
|
q2,b1 |
|
q1,b2 |
|
q2,b1 |
|
||||
|
q2 |
q3 |
|
q1 |
q3 |
q1 |
|
b1 |
|
q2 |
|
q3,b1 |
|
q1,b2 |
|
q3,b2 |
|
q1,b1 |
|
||
|
q3 |
q3 |
|
q1 |
q1 |
q1 |
|
b2 |
|
q3 |
|
q3,b2 |
|
q1,b2 |
|
q1,b1 |
|
q1,b1 |
|
||
|
|
|
|
a1, a3 |
|
|
|
|
|
|
|
|
|
|
|
a1/b1, a3/b2 |
|||||
|
|
|
|
|
q1, b1 |
|
|
|
a2/b1, a4/b1 |
|
|
q1 a2/b2, a3/b1, a4/b1 |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
a2, a4 |
a2, |
a4 |
|
a2, a3, a4 |
|
|
|
|
|
a2/b2, a4/b1 |
|
|
a1/b2 |
||||||||
|
|
|
|
|
|
a1 |
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
q2, b1 |
|
|
|
|
|
q3, b2 |
|
q2 |
|
|
|
q3 |
|||||||||
|
a1, а3 |
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
a1/b1, а3/b2 |
|
||||||||||||||
|
|
а) |
|
|
|
|
|
|
|
|
|
б) |
|
|
|
|
|
|
Рис. 22.1. Примеры графов поведения: а) автомата Мура; б) автомата Мили
Еще одним способом представления автомата является матрица поведения, представляющая собой квадратную матрицу, строки и столбцы которой помечаются состояниями автомата. В случае автомата Мура на пересечении строки qi и столбца qj матрицы поведения записываются входные символы, переводящие автомат из состояния qi в состояние qj, а строки помечаются также и выходными символами. В случае автомата Мили элементы матрицы поведения, кроме входных символов, вызывающих соответствующие переходы, содержат выходные символы, которые сопровождают эти переходы. Если из состояния qi нет перехода в состояние qj, то на пересечении строки qi и столбца qj ставится прочерк. Для рассмотренных автоматов ниже представлены матрицы поведения, причем первая из них – матрица поведения автомата Мура, вторая – матрица поведения автомата Мили.
q ,b |
|
|
q1 |
|
|
|
q2 |
|
q3 |
|
|
|
||||
|
a ,a |
|
a |
,a |
|
− |
|
|
|
|||||||
q1 |
,b1 |
a1 |
,a3 |
|
|
2− |
4 |
a ,a |
3 |
|
, |
|||||
q |
2 |
1 |
a |
|
2 |
|
|
4 |
|
|
− |
|
1 |
|
|
|
3 |
,b |
2 |
,a |
3 |
,a |
4 |
|
|
a |
|
|
|||||
|
2 |
|
|
|
|
|
|
|
1 |
|
|
|
148
q1 q2 q3 a2
q1
a1 / b1 , a3 / b2 a2 / b2 , a4 / b1 / b3 , a3 / b1 , a4
|
q2 |
|
a2 |
/ b1 |
, a4 |
/ b1 |
|
− |
|
− |
/ b |
|
q3 |
|
|
|
|
− |
|
|
|
|
1 a |
/ b ,a |
3 |
/ b |
. |
|
1 |
1 |
|
2 |
|
|
|
a1 |
/ b2 |
|
|
22.3. Связь между моделями Мили и Мура
Всякое отображение входных последовательностей в выходные может быть реализовано как с помощью модели Мили, так и с помощью модели Мура. Определим преобразование, переводящее любой автомат Мили в эквивалентный ему автомат Мура, а также преобразование, переводящее любой автомат Мура в эквивалентный ему автомат Мили.
Пусть задан автомат Мура М = (A, B, Q, Ψ, Φ) и требуется получить
эквивалентный ему автомат Мили М = (A , B , Q , Ψ , Φ ).
Очевидно, А = А и В = В. Положим Q = Q и Ψ = Ψ, а Φ определим следующим образом. Пусть Ψ(a, q) = q′ и Φ(q′) = b, где q, q′ Q, a А и b В. Это означает, что автомат, будучи в состоянии q, отвечает на входной символ а выходным символом b, который выдается в следующий момент времени, когда автомат окажется в состоянии q′. Следовательно, можно считать, что
Φ (а, q) = b. Автомат Мура и эквивалентный ему автомат Мили представлены в табл. 22.6 и 22.7 соответственно.
Пусть теперь задан автомат Мили М = (A, B, Q, Ψ, Φ) и требуется получить эквивалентный ему автомат Мура М = (A , B , Q , Ψ , Φ ). Как и в предыдущем случае, имеем А = А и В = В. Определим Q следующим образом. Рассмотрим все такие пары вида (q, b), где q Q, b B, что для каждой (q, b) имеется такая пара (a, q′), что Ψ(a, q′) = q и Φ(a, q′) = b (a A, q′ Q). Каждой паре (q, b) поставим в соответствие состояние q Q и определим функции Ψ и Φ следующим образом:
Ψ (a, q ) = Ψ (a, (q, b)) = (Ψ(a, q), Φ(a, q)); |
Φ (q ) = Φ ((q, b)) = b. |
||||||||||
|
|
Таблица 22.6 |
|
|
|
Таблица 22.7 |
|||||
q1 |
a1 |
a2 |
a3 |
Φ |
q1 |
|
a1 |
a2 |
a3 |
||
q3 |
q2 |
q2 |
0 |
|
|
q3,0 |
q2,1 |
q2,1 |
|
||
q2 |
q1 |
q4 |
q3 |
1 |
|
q2 |
|
q1,0 |
q4,1 |
q3,0 |
|
q3 |
q2 |
q2 |
q1 |
0 |
|
q3 |
|
q2,1 |
q2,1 |
q1,0 |
|
q4 |
q3 |
q4 |
q4 |
1 |
|
q4 |
|
q3,0 |
q4,1 |
q4,1 |
|
Если автомат имеет состояние, в которое он никогда не переходит (это может быть начальное состояние), то всякому такому состоянию ставится в
149
соответствие состояние автомата Мура, переходы из него определяются аналогично, а выходной символ при нем не определен.
Если автомат является частичным, то достаточно ввести новое состояние, соответствующее неопределенному состоянию, и новый выходной символ, соответствующий неопределенному выходному символу, и после описанных преобразований вернуться к неопределенному состоянию и неопределенному выходному символу. Переходы из такого состояния не определены. Автомат Мили и эквивалентный ему автомат Мура представлены в табл. 22.8 и 22.9 соответственно.
|
|
|
Таблица 22.8 |
|
q1 |
a1 |
a2 |
a3 |
a4 |
−,b1 |
q2,b1 |
−,− |
q2,b1 |
|
q2 |
q3,b1 |
−,b2 |
q3,− |
q2,b1 |
q3 |
q3,b2 |
−,− |
q2,b1 |
q2,b1 |
q1 → q 1 q2,b1 → q 2 q3,b1 → q 3 q3,b2 → q 4
q3,− → q 5 −,b1 → q 6 −,b2 → q 7
|
|
Таблица 22.9 |
||
a1 |
a2 |
a3 |
a4 |
Φ |
q 6 |
q 2 |
− |
q 2 |
− |
q 3 |
q 7 |
q 5 |
q 2 |
b1 |
q 4 |
− |
q 2 |
q 2 |
b1 |
q 4 |
− |
q 2 |
q 2 |
b2 |
q 4 |
− |
q 2 |
q 2 |
− |
− |
− |
− |
− |
b1 |
− |
− |
− |
− |
b2 |
22.4. Автомат с абстрактным состоянием. Булев автомат
Широко распространенным типом автомата является модель, описываемая одной многозначной внутренней переменной q и многими входными и выходными булевыми переменными х1, х2, … , хп и у1, у2, … , ут. Поведение такого автомата задается системой уравнений
q+ = ψ(х1, х2, … , хп; q); y1 = ϕ1(х1, х2, … , хп; q);
y2 = ϕ2(х1, х2, … , хп; q);
…
ym = ϕm(х1, х2, … , хп; q),
более компактно представляемой в векторной форме
q+ = ψ(х, q); y = ϕ(х, q).
Функции ψ и ϕ отличаются от введенных ранее Ψ и Φ только тем, что многозначные входная и выходная переменные оказались замененными на соответствующие булевы векторы, но внутренняя переменная осталась многозначной.
150
Описанная модель называется автоматом с абстрактным состоянием.
Ею удобно пользоваться на начальных этапах логического проектирования дискретных устройств, когда вход и выход устройства описываются как некоторые множества булевых переменных, имеющих конкретную техническую интерпретацию, в то время как множество внутренних переменных представляется пока в простейшей форме, в виде одной многозначной переменной q. Число значений переменной q полагается равным числу различных состояний автомата, при котором он может реализовать заданное функциональное отношение между входом и выходом.
Если заменить внутреннюю переменную q на соответствующий булев вектор z = (z1, z2, … , zk), то получится система уравнений, в которой все переменные и все функции оказываются булевыми:
z1+ = ψ1(х1, х2, … , хп; z1, z2, … , zk); z2+ = ψ2(х1, х2, … , хп; z1, z2, … , zk);
…
zk+ = ψk(х1, х2, … , хп; z1, z2, … , zk); y1 = ϕ1(х1, х2, … , хп; z1, z2, … , zk);
y2 = ϕ2(х1, х2, … , хп; z1, z2, … , zk);
…
ym = ϕm(х1, х2, … , хп; z1, z2, … , zk).
Эта модель называется булевым автоматом. Ее также можно представить в компактной векторной форме:
z+ = ψ(х, z); y = ϕ(х, z).
Булев автомат в определенном смысле ближе к реальным дискретным устройствам, поскольку его переменные непосредственно реализуются физическими переменными устройства, в частности, на типичных для современной техники элементах с двумя устойчивыми состояниями. Векторы х, у и z показывают структуру абстрактных символов а и b и состояния q. Приведенная выше система функций соответствует структуре, изображенной на рис. 22.2, где КС – комбинационная схема, реализующая приведенную выше систему, а П – блок памяти, осуществляющий задержку на период между соседними моментами времени.
Переменная zi представляет состояние i-го двоичного элемента памяти, а выражение
zi+ = ψi(х1, х2, … , хп; z1, z2, … , zk)
151

надо понимать так, что состояние i-го элемента памяти определяется значениями входных символов и состояниями элементов памяти в предыдущий момент времени.
х1 |
|
|
|
|
|
|
|
у1 |
|
|
|
|
|
|
|
||
х2 |
|
|
|
|
|
|
|
у2 |
|
|
|
|
|
|
|
||
… |
KC |
|
|
|
… |
|||
хп |
|
|
|
|
|
|
ут |
|
|
|
|
|
|
|
|||
z1 |
|
|
|
|
|
|
|
z1+ |
|
|
|
|
|
|
|
||
|
z2 |
|
|
|
|
|
z2+ |
|
|
… |
|
|
|
||||
|
|
|
… |
|||||
|
|
zk |
|
|
|
zk+ |
||
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
…П …
Рис. 22.2. Структура булева автомата
152