- •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. Конструктивный подход к доказательству функциональной
12. Минимизация булевых функций на картах Карно
Одним из способов графического представления булевых функций от небольшого числа переменных являются карты Карно, которые строят как развертки кубов на плоскости. При этом вершины куба представляются клетками карты, координаты которых совпадают с координатами соответствующих вершин куба. Карта заполняется так же, как таблица истинности: значение 1 указывается в клетке, соответствующей набору, на котором функция имеет единичное значение. Значения 0 на карте обычно не отмечаются. Пример использования карт Карно для представления функций:
которым соответствуют комплексы:
приведен на рис.1. Клетки отмеченные на картах значениями 1, соответствуют 0-кубам (конституентам единицы) булевых функций.
x1x2 |
|||
00 |
01 |
11 |
10 |
|
|
1 |
1 |
|
х2х3 |
||||
х1 |
|
00 |
01 |
11 |
10 |
0 |
1 |
|
1 |
|
|
1 |
|
|
1 |
1 |
|
x3x4 |
||||
x1x2 |
|
00 |
01 |
11 |
10 |
00 |
1 |
|
|
|
|
01 |
1 |
|
|
|
|
11 |
|
1 |
|
1 |
|
10 |
|
|
|
1 |
Рис.1. Карты Карно функций двух (а), трех (б) и четырех (в) переменных.
Карты Карно являются удобным средством для выполнения действий с булевыми функциями и, в частности, используются для минимизации булевых функций от небольшого числа переменных.
С использованием карт Карно легко выделяется минимальное покрытие функции, по которому строится ее минимальная ДНФ или КНФ. Две соседние клетки образуют 1-куб. При этом имеется в виду, что клетки, лежащие на границах карты, также являются соседними по отношению друг к другу. Примеры образования 1-кубов приведены на рис. 2 а,б.
а)
|
б)
|
Рис. 2. Образование 1- кубов.
К арты позволяют для функций f1 и f2 заданных комплексами
0 00 0000
001 0010
K0(f1) = 011 ; K0(f2) = 1101
100 1111
110 1110
1000
с ценами Sа (f1) = 15 и Sa (f2) = 24, определить покрытия
X00 X000
С(f1) = 0X1 ; C (f2) = 00X0
1X0 11X1
111X
с ценами Sa(f1) = 6, Sa(f2) = 12, которым соответствуют аналитические выражения, являющиеся минимальными ДНФ функций:
Четыре вершины могут объединяться, образуя 2-куб, содержащий две независимые координаты. Примеры образования 2-кубов приведены на рис. 3.
-
а)
б)
в)
Рис. 3. Образование 2-кубов.
Карты построены для функций f1, f2 и f3, заданных комплексами K0(f1), K0(f2), K0(f3) с ценами Sa(f1) = 40, Sa(f2) = 24, Sa(f3) = 32.
На картах определены покрытия состоящие из 2-кубов и имеющие цены
Sa (f1) = 6, Sa (f2) = 4, Sa (f3) = 4.
Объединение восьми вершин приводит к образованию 3-куба. Примеры минимизации функций f1, f2, f3, заданных комплексами
0000 0001 0000
0001 0011 0001
0011 0101 0011
0010 0111 0010
0100 1101 1000
K0(f1) = 0101 ; K0(f2) = 1111 ; K0(f3) = 1001 ,
0111 1001 1011
0110 1011 1010
1100 0100 0111
1101 1100 0110
1111 0110 1111
1110 1110 1110
цена каждого из которых равна Sa = 48, приведены соответственно на картах рис. 4, а, б, в. Функциям f1, f2, f3 соответствуют минимальные покрытия с ценой Sа = 2
а) |
б) |
в) |
|
|
|
Рис. 4. Образование 3-кубов.
С точки зрения аналитических представлений образование (r+1)-кубов из r - кубов происходит в соответствии с правилом поглощения .
Итак, для получения минимальной ДНФ функции с использованием карты Карно определяется покрытие функции, имеющее минимальную цену. Минимальное покрытие выбирается интуитивным путем на основе анализа различных вариантов покрытий минимизируемой функции. Покрытие с минимальной ценой формируется, если каждая существенная вершина будет покрыта кубом с наибольшим числом независимых компонент и для покрытия всех существенных вершин будет использовано наименьшее число кубов.
Примеры минимизации функций приведены на рис.5. На рис. 5, а определяется минимальная форма для функции от трех переменных:
XX1 01X
имеющей цену Sа = 15. Минимальному покрытию С(f1) =
с ценой Sа = 3 соответствует минимальная ДНФ
а) |
б) |
Рис. 5.Минимизация булевых функций.
|
|
1001 0X00 X100 X111 01XX
с ценой Sа = 32. Минимальному покрытию функции С(f2) =
с ценой Sа = 15 соответствует минимальная ДНФ:
Минимизация частично определенных булевых функций
При минимизации частично определенных булевых функций в клетки карты Карно, соответствующие наборам аргументов, на которых функция не определена, ставится символ d (don’t care). Эти наборы используются для построения кубов возможно большей размерности, в результате чего уменьшается цена покрытия функции.
Определим минимальную ДНФ функций, используемых для построения комбинационной схемы, в которой выполняется операция суммирования двоичных кодов по mod 3: у1у2 = (а1а2 + b1b2)mod 3.
Предполагается, что слагаемые имеют значения а1а2 2; b1b2 2, т.е. наборы а1а2 = 11 и b1b2 = 11 отсутствуют и рассматриваются как несущественные. Таблицы истинности для функций
y1 = f1(a1,a2,b1,b2); y2 = f2(a1,a2,b1,b2)
представлены на рис. 6 в виде карт Карно. На картах нулевые значения y1 и y2 обозначены 0, единичные – 1, несущественные – знаком d.
а) |
б) |
|
|
Рис. 6. Минимизация частично определенных булевых функций.
С использованием несущественных вершин определяются минимальные покрытия:
001X 00X1
C(y1) = 1X00 ; C(y2) = X100
X1X1 1X1X
с ценами Sа = 8 каждое, которым соответствуют минимальные ДНФ:
Замечание. После минимизации функция становится полностью определенной. Значения функции на несущественных наборах доопределяется до 1, если набор использовался при минимзации, и до 0, если нет.
В качестве примера использования карт Карно для определения минимальных ДНФ и КНФ функций рассмотрим функцию, представленную на картах рис. 7,а, б.
-
а)
б)
Рис. 7. Определение минимальных ДНФ (а) и КНФ (б) функции.
Данной функции соответствует минимальная ДНФ (рис. 7, а) вида:
Нахождение нулевого покрытия этой функции представлено на рис. 7, б. Минимальная КНФ:
Для минимизации функций от пяти и шести переменных используются соответственно две и четыре четырехмерные карты Карно.
П ример использования карт Карно для минимизации функции пяти переменных f = (0,1,8,10,13,15,16,17,22,23,29,30,31) приведен на рис. 8.
Рис. 8. Минимизация булевой функции от пяти переменных.
Функции f с ценой Sа = 65
соответствует минимальное покрытие
с ценой Sа = 13.
Принцип размещения карт для представления функций шести переменных показан на рис. 9. На этом рисунке представлена функция от шести переменных, заданная комплексом
с ценой Sа = 48.
Ее минимальное покрытие имеет цену Sа = 8.
При минимизации функций от большого числа переменных карты Карно неудобны, в этом случае для решения задач минимизации используются алгебраические методы. Минимальным ДНФ и КНФ функций соответствуют минимальные двухуровневые логические схемы.
Экономия оборудования, составляющего логическую схему, может быть получена на основе скобочных форм булевых функций, используемых для синтеза логических схем.
Рис. 9. Карты Карно функции шести переменных.
Так, булевой функции
f(x1,x2,x3,x4,x5) = (5,6,7,13,14,15,21,22,23,25,26,27,29,30,31)
соответствует минимальная ДНФ: f = x3x4 x3x5 x1x2x4 x1x2x5,
по которой строится двухуровневая логическая схема (рис. 10, а) с ценой
Sb = 14. Минимальная ДНФ преобразуется в скобочную форму:
f = (x1x2 x3)x4 (x1x2 x3)x5 = (x1x2 x3) (x4 x5),
по которой строится схема (рис. 10, б) с ценой Sb = 8.
Рис. 10. Схема, построенная по МДНФ (а) и по скобочной форме (б).