- •Дискретная математика
- •Минск 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
(1, f1) |
(2, f1) |
(3, f1) |
(4, f1) |
(6, f1) |
(7, f1) |
(4, f2 ) |
(5, f2 ) |
(6, f2 ) |
(8, f2 ) |
(9, f2 ) |
(10, f2 ) |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
|
0 |
0 |
||||||||||
|
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
|
0 |
0 |
||||||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
|
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
|
0 |
0 |
||||||||||
|
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
|
0 |
1 |
Кратчайшее строчное покрытие приведенной матрицы соответствует кратчайшей системе ДНФ, представляемой следующими матрицами:
x1 x2 |
x3 |
x4 |
|
f1 |
f2 |
|||
|
0 |
− |
0 |
0 |
|
|
1 |
0 |
|
|
|
|
|
|
|
|
|
X = 1 |
1 |
0 |
− |
, |
Y = 1 0 . |
|||
− |
1 |
1 |
0 |
|
|
1 |
1 |
|
|
0 |
1 |
− |
1 |
|
|
|
|
|
|
|
0 |
1 |
||||
|
|
− |
1 |
1 |
|
|
|
|
1 |
|
|
0 |
1 |
Этот результат совпадает с тем, что был получен ранее для данной системы булевых функций.
Решение задачи минимизации системы ДНФ ведет к получению оптимальной структуры программируемой логической матрицы.
20.2. Минимизация системы слабо определенных булевых функций
Булева функция является слабо определенной, если |М1| + |М0| << |М–|. Пусть F = {f1, f2, … , fm} – система слабо определенных булевых функций, где любая fi задана с помощью множеств M1i – область единичных значений и M0i – область нулевых значений функции fi. Очевидно, кратчайшая система ДНФ для системы F сводится к нахождению такого минимального множества интервалов булева пространства М, чтобы каждое из мн ожеств M1i покрывалось теми из них, которые не пересекаются с множеством M0i.
Рассматриваемый метод минимизации привлекает понятие интервально поглощаемого множества. В данном случае это множество элементов вида (mj, fk), где mj – элемент булева пространства М, а fk – функция, которая имеет
значение 1 на этом интервале, т. е. mj M1k. Множество элементов такого вида является интервально поглощаемым, если существует такой интервал пространства М, который для каждой пары (mj, fk) из этого множества содержит mj и не пересекается с множеством M0k. Интервально поглощаемое множество
125
называется максимальным, если оно не является подмножеством никакого другого интервально поглощаемого множества.
Задача состоит в том, чтобы для заданной системы булевых функций F найти минимальную совокупность интервально поглощаемых множеств, покрывающую все пары вида (mj, fk). При этом достаточно рассматривать только максимальные интервально поглощаемые множества. Для каждого множества из полученного покрытия надо взять соответствующий ему интервал и максимально расширить его так, чтобы он не пересекался ни с одним из множеств M0k тех функций fk, которые принадлежат парам (mj, fk), входящим в данное множество.
В качестве примера рассмотрим систему слабо определенных булевых функций, заданную следующей парой матриц:
|
x1 |
x2 |
x3 |
x4 |
x5 |
|
|
f1 f2 f3 f4 |
f5 |
f6 |
|
0 1 |
0 |
1 |
0 |
1 |
|
1 1 0 1 |
1 |
0 |
|
|
|
|
1 |
1 |
|
2 |
|
|
0 |
|
X = |
1 0 |
1 |
Y = |
0 1 1 1 |
1 |
|||||
0 1 |
1 |
0 |
1 |
3, |
0 1 1 0 |
0 |
0 . |
|||
|
|
|
1 |
1 |
|
4 |
|
|
1 |
|
|
0 0 |
0 |
|
1 0 0 1 |
0 |
|||||
|
0 1 |
0 |
0 |
1 |
5 |
|
0 1 0 0 |
1 |
0 |
|
|
|
|
1 |
0 |
|
6 |
|
|
0 |
|
|
1 1 |
0 |
|
0 0 1 1 |
1 |
Эти матрицы можно интерпретировать как задание поведения некоторого устройства. На каждый набор двоичных входных сигналов, представленный матрицей Х, устройство реагирует набором выходных сигналов, представленный соответствующей строкой матрицы Y. Поведение устройства не определено на всех наборах входных сигналов, которые не представлены матрицей Х. Очевидно, столбец fi матрицы Y представляет множества M1i и M0i функции fi.
Всякое интервально поглощаемое множество является декартовым произведением Мр × Fp, где Мр – множество некоторых элементов булева пространства, а Fp – множество функций, принимающих значение 1 на этих элементах. Поэтому для компактности интервально поглощаемые множества будем представлять парами сомножителей. Используя лексико-графический перебор, получим следующие максимальные интервально поглощаемые множества и соответствующие им интервалы:
{1}, |
{f1, f2, f4, f5}; |
(0 1 0 1 0); |
{1, 2, 4}, |
{f4}; |
(– – – 1 –); |
{1, 3, 5}, |
{f2}; |
(0 1 – – –); |
{1, 4}, |
{f1, f4, f5}; |
(0 – – 1 0); |
{1, 4, 6}, |
{f4}; |
(– – – – 0); |
{1, 5}, |
{f2, f5}; |
(0 1 0 – –); |
126
{2}, |
{f2, f3, f4, f6}; |
(1 0 1 1 1); |
{2, 3}, |
{f2, f3}; |
(– – 1 – 1); |
{2, 3, 5}, |
{f2}; |
(– – – – 1); |
{2, 6}, |
{f3, f4, f6}; |
(1 – 1 – –); |
{3, 6}, |
{f3}; |
(– 1 1 0 –). |
Построим матрицу покрытия, строкам которой соответствуют полученные максимальные интервально поглощаемые множества, а столбцам пары (1, f1), (4, f1), (1, f2), (2, f2), (3, f2), (5, f2), (2, f3), (3, f3), (6, f3), (1, f4), (2, f4), (4, f4), (6, f4), (1, f5), (4, f5), (5, f5), (2, f6), (6, f6), определяемые по единицам матрицы Y:
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
|
0 |
0 |
||||||||||||||||
|
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
0 |
0 |
||||||||||||||||
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
|
|
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
|
0 0 |
0 . |
||||||||||||||||
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
|
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
0 |
0 |
||||||||||||||||
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
|
0 |
1 |
||||||||||||||||
|
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
0 |
0 |
Строчное покрытие этой матрицы составляют четвертая, шестая, восьмая и десятая строки. После расширения соответствующих интервалов получим следующую систему ДНФ:
x1 |
x2 |
x3 |
x4 x5 |
f1 |
f2 f3 f4 |
f5 |
f6 |
|||
0 − |
− |
1 |
− |
1 0 0 |
1 |
1 |
0 |
|||
X = 0 |
1 |
− |
− − , |
Y = 0 1 |
0 |
0 |
1 |
0 . |
||
− − |
1 |
− 1 |
0 |
1 |
1 |
0 |
0 |
0 |
||
|
− |
1 |
|
|
|
0 |
1 |
1 |
0 |
|
1 |
− − |
0 |
1 |
127