![](/user_photo/2706_HbeT2.jpg)
- •1. Элементы булевой алгебры
- •2. Разнообразие булевых функций
- •3. Нормальные формы булевых функций
- •4. Числовая и символическая формы представления булевых функций
- •5. Преобразование произвольной аналитической формы булевой функции в нормальную
- •6. Приведение произвольных нормальных форм булевой функции к каноническим
- •7. Разнообразие двоичных алгебр
- •8. Задача минимизации булевых функций
- •9. Кубическое представление булевых функций
- •10. Геометрическая интерпретация кубов малой размерности. Графическое представление булевых функций
- •11. Покрытия булевых функций
- •12. Минимизация булевых функций на картах Карно
- •13. Импликанты булевой функции. Системы импликант
- •14. Метод Квайна - Мак - Класки
- •14.1. Нахождение множества максимальных кубов (простых импликант) булевой функци
- •14.2. Определение ядра покрыти
- •14.3. Определение множества минимальных покрытий
- •15. Функциональная полнота системы булевых функций
- •15.1. Теорема о функциональной полноте (теорема Поста)
- •15.2. Другая формулировка теоремы Поста
- •15.3. Замечательные классы булевых функций
- •15.4. Конструктивный подход к доказательству функциональной
14. Метод Квайна - Мак - Класки
Для решения канонической задачи минимизации методом Квайна-Мак-Класки применяется следующая последовательность действий:
1) Нахождение множества максимальных кубов (простых импликант) булевой функции.
2) Выделение ядра покрытия (определение множества существенных импликант).
3) Дополнение множества кубов, принадлежащих ядру покрытия, минимальным подмножеством из множества максимальных кубов, не входящих в ядро покрытия, для получения покрытия с минимальной ценой.
С точки зрения последовательного преобразования ДНФ булевой функции с целью их упрощения каноническая задача минимизации может быть представлена в виде:
КДНФ СДНФ ТДНФ МДНФ.
Распространение терминологии в отношении нулевого покрытия базируется на понятии имплиценты (как соответствие импликанте) и системы имплицент.
Пример: минимизация булевой функции методом Квайна-Мак-Класки.
Исходная функция задается в числовой форме:
14.1. Нахождение множества максимальных кубов (простых импликант) булевой функци
На этом этапе производятся всевозможные склеивания кубов меньшей размерности с целью получения кубов большей размерности. Для сокращения количества операций сравнения кубов на предмет их склеивания целесообразно производить упорядочивание кубов одинаковой размерности путем разделения их на группы по количеству единичных координат. При таком подходе в операцию склеивания могут вступать только кубы, принадлежащие двум соседним группам, то есть такие кубы, количество единичных координат в которых отличается на единицу. Кроме того, рекомендуется проводить нумерацию кубов одинаковой размерности с фиксацией пары склеиваемых кубов при образовании куба большей размерности как результат склеивания. Также по ходу склеивания необходимо осуществлять отметку кубов, вступающих в операцию склеивания. Тогда после завершения операций по склеиванию кубов все неотмеченные кубы будут представлять собой множество максимальных кубов как кубов, не участвовавших ни в одной операции склеивания.
Результат этого этапа представлен в табл. 4.
Нахождение множества максимальных кубов.
Таблица 4
-
K0(f)
K1(f)
K2(f)
K3(f)
Z(f)
1
2
3
4
5
6
7
8
9
0000
--------
0001
1000
--------
0101
1010
1100
--------
0111
1110
--------
1111
1
2
3
4
5
6
7
8
9
10
000X
X000
---------
0X01
10X0
1X00
---------
01X1
1X10
11X0
---------
X111
111X
1-2
1-3
2-4
3-5
3-6
4-7
5-8
6-8
7-9
8-9
1
2
1XX0
1XX0
4-8
5-7
1
2
3
4
5
6
7
1XX0
000X
X000
0X01
01X1
X111
111X
Замечания.
При образовании 2-кубов получено два одинаковых 2-куба как результата склеивания двух различных пар соседних 1-кубов. Точно также при образовании 3-кубов должно получаться три одинаковых 3-куба как результата склеивания трех различных пар соседних 2-кубов. Этот факт хорошо согласуется с геометрической интерпретацией кубов небольшой размерности. Действительно, 2-куб представляет собой грань трехмерного куба, которая полностью определяется одной из двух противоположных ребер, соответствующих двум соседним 1-кубам. В свою очередь 3-куб соответствует полному трехмерному кубу, который полностью определяется одной из трех пар противоположных граней, интерпретируемых как геометрические образы двух соседних 2-кубов.
Продолжая аналогию, можно заметить, что при склеивании r-кубов (r 3), получается (r+1) одинаковых (r+1)-кубов. Этот факт можно использовать как некоторое подтверждение корректности производимых операций склеивания над кубами.
Можно проследить за уменьшением цены покрытий заданной булевой функции, получаемых из кубов различной размерности. Так, для покрытия Со(f)=K(f), составленного из исходных 0-кубов, цена составляет: Sa = 94 = 36, S b= 36+9 = 45. Этому покрытию соответствует КДНФ заданной функции. Так как все 0-кубы отмечены как вступающие в операции склеивания, то кубический комплекс К1(f) также можно рассматривать в качестве одного из покрытий булевой функции: С1(f)=К1(f). Цена этого покрытия: Sa = 103 = 30, Sb = 30+10 = 40. Этому покрытию соответствует ДНФ заданной функции вида:
И, наконец, множество максимальных кубов Z(f) также представляет собой покрытие заданной функции С2(f)=Z(f) с ценой:
Sa = 12+63 = 20, Sb = 20+7 = 27.
Этому покрытию
соответствует СДНФ вида:
При минимизации неполностью определенных булевых функций производится дополнение множества 0-кубов (существенные вершины) булевой функции множеством безразличных наборов N(f) с целью образования кубов большей размерности. Тем самым на этом этапе осуществляется доопределение исходной функции значениями «единица» на безразличных наборах.