
- •Дискретная математика
- •© Омский государственный технический университет, 2009
- •Содержание
- •1. Введение в теорию множеств
- •1.1. Основные понятия теории множеств
- •1.2. Способы задания множеств
- •1.3. Операции над множествами
- •1.4. Геометрическое моделирование множеств. Диаграммы Венна
- •1.5. Алгебра множеств. Основные тождества алгебры множеств
- •1.6. Двойственность в алгебре множеств
- •1.7. Количество элементов объединения множеств
- •1.8. Эквивалентность множеств
- •1.9. Счетные множества
- •1.10. Множества мощности континуума
- •2. Отношения. Функции
- •2.1. Отношения. Основные понятия и определения
- •2.2. Операции над отношениями
- •2.3. Свойства отношений
- •2.4. Отношения эквивалентности и разбиения на классы
- •2.5. Отношение порядка
- •2.6. Функции. Основные понятия и определения
- •2.7. Способы задания функций
- •3. Графы
- •3.1. Основные характеристики графов
- •3.2. Матричные способы задания графов
- •3.3. Основные свойства матриц смежности и инцидентности
- •3.4. Графы и отношения
- •3.5. Изоморфизм графов
- •3.6. Маршруты, циклы в неориентированном графе
- •3.7. Пути, контуры в ориентированном графе
- •3.8. Связность графа
- •3.9. Деревья. Основные определения
- •3.10. Минимальные остовные деревья нагруженных графов
- •3.11. Построение дерева кратчайших путей
- •4. Булевы функции
- •4.1. Определение булевой функции
- •4.2. Формулы логики булевых функций
- •4.3. Равносильные преобразования формул
- •4.4. Основные равносильности булевых формул
- •4.5. Двойственность. Принцип двойственности
- •4.6. Булева алгебра (алгебра логики). Полные системы булевых функций
- •4.7. Нормальные формы
- •4.8. Разложение булевой функции по переменным
- •4.9. Кубическое представление булевых функций
- •4.10. Графическое представление булевых функций.
- •4.11 Покрытия булевых функций
- •4.12. Минимизация формул булевых функций с помощью карт Карно
- •4.13. Применение алгебры булевых функций к переключательным схемам
- •Библиографический список
4.10. Графическое представление булевых функций.
Подобный подход носит ограниченный характер и, как правило, является наглядным для булевых функций от 2-х и 3-х переменных.
Геометрическим местом 0-куба является точка, представляющая существенную вершину. Два соседних 0-куба являются концами какого-либо ребра. Геометрическим местом 1-куба является ребро, замыкаемое склеивающимися 0-кубами, образующими данный 1-куб.
Рис. 4.1.
Два параллельных ребра, образующих грань, являются образами склеивающихся 1-кубов. В соответствии с этим геометрической интерпретацией 2-куба является грань, образуемая парой параллельных ребер. Так как любую грань можно определить одной из пар параллельных ребер, 2-куб может быть получен как результат склеивания двух различных пар 1-кубов, то есть представляется в двух экземплярах.
Геометрическим образом 3-куба можно считать 3-х мерный куб. Так как он может быть образован 3-я способами как пара параллельных граней, то при склеивании он получается в трех экземплярах.
Пример 4.21. На рисунке 4.1 дано геометрическое представление функции, заданной таблицей 4.7.
Таблица 4.7
x1 x2 x3 |
f(x1,x2,x3) |
0 0 0 |
0 |
0 0 1 |
1 |
0 1 0 |
1 |
0 1 1 |
1 |
1 0 0 |
0 |
1 0 1 |
0 |
1 1 0 |
1 |
1 1 1 |
1 |
4.11 Покрытия булевых функций
Между кубами различной размерности, входящих в кубический комплекс K(f ), существует отношение включения или покрытия.
Определение 4.20. Говорят, что куб A меньшей размерности покрывается кубом B большей размерности, если куб A включается в куб B, т. е. при образовании куба B хотя бы в одном склеивании участвует куб A.
Отношение включения (покрытия) между кубами принято обозначать A B. В теории множеств отношение включения связывает между собой некоторое множество и его подмножества.
Пример 4.22. Для функции из примера 4.21 отношения включения имеют место между 001 0х1; 011 x11 x1x...
Любой 1-куб покрывает 2 0-куба, 2-куб - 4 0-куба и 2 1-куба, 3-куб покрывает 8 0-кубов, 12 1-кубов и 6 2-кубов.
Определение 21. Покрытием булевой функции f называется такое подмножество кубов из кубического комплекса K(f ), которое покрывает все существенные вершины функции.
В связи с тем, что любому кубу комплекса K(f ) можно поставить в соответствие конъюнктивный терм, для любого покрытия можно представить некоторую ДНФ булевой функции.
Частным случаем покрытия булевой функции является кубический комплекс K0(f ), покрытие c0(f )=K0(f ). Этому покрытию соответствует СДНФ.
Пример
4.23.
Для примера 4.21 покрытием является
.
Этому покрытию соответствует ДНФ вида
.
В качестве еще одного покрытия можно
использовать множество максимальных
кубов
.
Действительно, куб 0х1
покрывает существенные вершины 0х1(001,
011),
а куб x1x
(010, 011, 110, 111).
Множество максимальных кубов булевой функции всегда является ее покрытием.
Определение 4.22. ДНФ называется минимальной, если она содержит наименьшее общее число вхождений переменных среди всех равносильных ей ДНФ.
Покрытие c2(f ) соответствует ДНФ вида х1х3 x2. Эта ДНФ является минимальной.
Определение 4.23. Покрытие булевой функции, которое соответствует минимальной ДНФ называется минимальным покрытием.
Минимальное покрытие должно состоять только из максимальных кубов. В частном случае все множество максимальных кубов является минимальным покрытием. Это справедливо для нашего примера. В общем случае множество максимальных кубов является избыточным и для получения минимального покрытия достаточно взять некоторое его подмножество.
Определение 4.24. Множество максимальных кубов без которых не может быть образовано покрытие булевой функции называется ядром покрытия и обозначается T(f ).
Пример 4.24. Для функции, заданной таблицей 4.8, выпишем кубические комплексы, множество максимальных кубов, ядро покрытия и минимальное покрытие.
Для данного примера множество максимальных кубов совпадает с комплексом K1(f), т.е. Z(f )=K1(f ).
Таблица 4.8
x1 x2 x3 |
f(x1,x2,x3) |
0 0 0 |
1 |
0 0 1 |
1 |
0 1 0 |
0 |
0 1 1 |
0 |
1 0 0 |
1 |
1 0 1 |
0 |
1 1 0 |
1 |
1 1 1 |
1 |
Из анализа покрытия существенных вершин максимальными кубами из комплекса K1(f ) следует : куб 00х должен обязательно включаться в покрытие, так как только он покрывает существенную вершину 001, аналогично только 11х покрывает вершину 111, т. е. T(f)={00x, 11x}. Так как ядром покрытия кроме существенных вершин 001 и 111 покрываются также существенные вершины 000 и 110, то не покрытой ядром остается только существенная вершина 100. Для ее покрытия достаточно взять 1 из оставшихся максимальных кубов (х00 или 1х0). В результате получаем следующие минимальные покрытия:
.
В результате можно сделать следующий вывод: задача получения минимальной ДНФ сводится к задаче получения минимального покрытия.
Общая схема получения минимального покрытия имеет вид:
а) находится множество максимальных кубов;
б) выделяется ядро покрытия;
в) из максимальных кубов, не вошедших в ядро, выбирается такое минимальное подмножество, которое покрывает существенные вершины, не покрытые ядром.