
- •2. Минимизация булевых функций
- •2.1. Сущность и этапы минимизации бф
- •2.2. Минимизация бф преобразованием логических формул
- •2.3. Минимизация по методу Квайна–Мак-Класки
- •2.4. Метод Петрика
- •2.5. Обработка таблиц покрытий
- •2.6. Табличные способы минимизации
- •2.7. Минимизация булевых функций по картам Вейча
- •2.8. Минимизация неполностью определенных функций
- •2.9. Минимизация слабоопределенных бф
- •2.10. Построение схем в базисах Шеффера и Пирса
- •2.11. Вопросы и упражнения
2.8. Минимизация неполностью определенных функций
При
решении практических задач синтеза
цифровых устройств часто встречаются
ситуации, когда на некоторых наборах
БФ не определена, т. е. не относится ни
к единичным, ни к нулевым наборам. Такие
наборы можно назвать “безразлич-ными”.
Это может происходить в случаях, когда
либо все равно, чему будет равна функция
на некоторых наборах, либо они не могут
встретиться на определенных наборах.
Примерами могут служить преобразования
в двоично-десятичных форматах, когда
имеются неиспользуемые двоичные
комбинации, или когда номер клавиш на
пульте N,
преобразуемый в двоичный
-разрядный
код не равен
.
Примеры таких схем нам далее встретятся
часто.
Итак,
пусть булева функция
задана на трех множествах наборов:
-
множество единичных наборов;
- множество нулевых наборов;
- множество безразличных наборов или
“термов не доставляющих беспокойства”
по зарубежной терминологии.
Для минимизации таких функций можно применять и метод Квайна–Мак-Класки и карты Вейча, но имеются некоторые особенности, связанные с безразличными наборами:
1. При минимизации по Квайну–Мак-Класки для нахождения сокращенных ДНФ (КНФ) в исходную таблицу для склеивания заносятся конституенты из множества , и и производится склеивание по обычной процедуре. Не участвовавшие в склеивании простые импликанты образуют сокращенную ДНФ (КНФ).
2. При обработке таблиц покрытий в строчках таблицы записывают простые импликанты (результаты 1-го этапа), а в столбцы записывают только конституенты из множества , т. е. единичные наборы.
3.
Расстановка меток и вычеркивание
столбцов также имеет особенность,
связанную с тем, что правило определения
количества меток в строках может не
подчиняться правилу: число меток
,
где
- количество “выпавших” переменных,
т. е., если
,
то
,
- одна метка,
- две метки, т. д. Могут быть строки вообще
без меток.
4. Определение существенных импликант и вычеркивание столбцов не отличаются от стандарта для данного метода. Строчки, не имеющие меток, вычеркиваются.
5. Находится минимальное или кратчайшее покрытие функции.
Пример
2.15. Минимизировать функцию, заданную
на наборах
,
,
в ДНФ по методу Мак-Класки.
Решение. Строим табл. (2.22) из и , и производим склеивание.
Таблица 2.22. К примеру 2.15
|
1 |
2 |
3 |
1 |
|
|
|
2 |
|
||
3 |
|
||
4 |
|
||
5 |
|
|
|
6 |
|
||
7 |
|
||
8 |
|
||
9 |
|
||
10 |
|
|
|
11 |
|
|
|
12 |
|
|
|
13 |
|
|
|
14 |
|
|
|
15 |
|
|
Записываем сокращенную НФ функции.
- 8 членов, 20 букв.
Строим
таблицу покрытий по пункту 2. Получаем
табл. 2.23. Находим существенные импликанты.
Здесь есть одна такая -
.
Вычеркиваем 1 и 5 столбец. Вычеркиваем
пустую строку 6. Остальные столбцы
покрываем минимальным количеством
строк (табл. 2.23). Легко найти минимальное
покрытие оставшихся столбцов. Это строка
и строка
.
Наилучшее решение:
.
Это 3 члена, 7 букв. Сравним с сокращенной
ДНФ – 8 членов, 20 букв. Видно, что
минимизация неполностью определенных
функций может дать существенное упрощение
за счет использования безразличных
наборов.
Таблица 2.23. К примеру 2.15 (продолжение)
|
|
0001 |
0010 |
0100 |
0110 |
1011 |
1100 |
|||
1 |
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
3 |
|
|
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
|
|
|
5 |
|
|
|
|
|
|
|
|
|
|
6 |
|
|
|
|
|
|
|
|
|
|
7 |
|
|
|
|
|
|
|
|
|
|
8 |
|
|
|
|
|
|
|
|
|
Недостатком метода, как видно из таблиц, следует считать большой объем предварительной обработки и анализа таблиц.
Рассмотрим использование карт Вейча для минимизации неполностью определенных функций. При заполнении карт в клетках определенных наборов и проставляются 1 и 0 соответственно, и пустые клетки оставляются для безразличных наборов.
Клеткам безразличных наборов можно ставить в соответствие значения 1 или 0, так чтобы получать крупные склейки и минимальные формы функции. Пустые клетки можно оставлять несклеенными. Если пустая клетка включена в склейку по 1 (ДНФ), то она становится единицей (нулем в КНФ), что допустимо. При небольшой размерности карт (5-6 переменных) это может ускорить их обработку.
Пример 2.16. Минимизировать функцию из примера 2.15 по картам Вейча в ДНФ и КНФ.
Решение. Заносим функцию по множествам , , на карты Вейча (рис. 2.23).
Используя пустые клетки, можно сразу найти результат минимизации:
.
При этом пустые клетки, входящие в склейки, будут приняты как единичные, а остальные пустые клетки будут считаться как нулевые.
|
|
Рис. 2.23. К примеру 2.16 |
Рис. 2.24. К примеру 2.17 |
Проведем склеивание в КНФ. Здесь имеется два равноценных варианта (рис. 2.24)
.
Пример 2.17. Минимизировать в ДНФ функцию от 5 переменных, заданную наборами:
= (2,4,9,16,22,27,31); = (1,15,20,26).
Остальные наборы безразличные.
|
Рис. 2.25. К примеру 2.17 |
Единицу 2 можно
записать как
.
Единицу 7 можно
реализовать импликантой на 8 клеток
.
Единицы 4 и 5 можно
записать импликантой
.
Единицу 3 можно записать импликантой
.
Остается 6-я единица.
Для нее можно написать четыре варианта
склеивания по 4 клетки:
,
,
,
.
Следовательно, функция может быть
записана в виде четырех равноценных
тупиковых форм:
.
Каждая содержит 5 членов, 11 букв.
При реализации в КНФ данной функции также легко найти тупиковые формы.
Нуль
в верхней строчке можно записать
импликантой на 8 клеток -
.
Нуль
во второй строчке имеет две импликанты
на 4 клетки
и
.
Нуль
в третьей строке запишется склейкой
и нуль в нижней строчке – склейкой
.
Окончательно получаем две тупиковых формы:
.
Итого 4 члена, 10 букв.