При минимизации частично определенных булевых функций в клетки карты Карно, соответствующие наборам аргументов, на которых функция не определена, ставится символ 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.
При минимизации функций от большого числа переменных карты Карно неудобны, в этом случае для решения задач минимизации используются алгебраические методы. Минимальным ДНФ и КНФ функций соответствуют минимальные двухуровневые логические схемы.
Экономия оборудования, составляющего логическую схему, может быть получена на основе скобочных форм булевых функций, используемых для синтеза логических схем.