Правило склеивания ячеек и записи минимальной днф:
1. Строится карта Карно, соответствующая данной функции.
2. Ячейки объединяются
в группы, обозначающие операции
склеивания. В объединении участвуют
только соседние ячейки, в которых
находятся единицы. В группу объединяется
только то количество ячеек, которое
равно
.
При этом группа может иметь только
прямоугольную или квадратную форму.
3. Решается задача склеивания, которая заключается в нахождении набора максимальных групп ячеек. Максимальная группа − это группа, которая не входит целиком ни в одну другую группу и соответствует простой импликанте функции. Количество групп в таком наборе должно быть минимальным, так как такая группа соответствует минимальной тупиковой ДНФ. Каждая единица карты Карно должна входить хотя бы в одну группу, что обеспечивает покрытие функции полученным набором импликант.
4. Каждая группа ячеек, полученная после склеивания, соответствует той импликанте функции, реальные переменные которой имеют одинаковое значение для всех ячеек группы. Переменные берутся без отрицания, если им соответствуют единичные значения, и с отрицанием − в противном случае.
5. Дизъюнкция всех полученных простых импликант представляет собой результат минимизации формулы и является минимальной ДНФ.
Пример. Найти минимальную ДНФ функции .
Запишем исходную карту Карно для заданной функции (таблица 6.6).
Таблица 6.6 − Исходная карта Карно для заданной функции
-
00
01
11
10
0
1
0
0
0
1
1
1
1
0
Используем графический способ склеивания, объединяя соседние единицы таблицы в группы (нули опускаем). Результатом являются две импликанты А и В (рис. 6.1).
Рисунок 6.1 − Определение импликант функции
Импликанта
.
Импликанта
.
Таким образом,
получим минимальную ДНФ в виде
.
Карта Карно для
функции четырех переменных имеет размер
.
Правила склеивания ячеек и записи
результирующей формулы остаются
прежними.
Рассмотрим построение карты Карно для функции пяти переменных, которая представляет в пространстве двухслойный параллелепипед, где каждый слой соответствует карте Карно от первых четырех переменных функции. Первый слой представляет собой на плоскости всевозможные интерпретации, при которых пятая переменная равна нулю. Вторым слоем являются всевозможные интерпретации, при которых пятая переменная равна единице. Каждая ячейка на карте Карно для функции пяти переменных имеет пять соседних ячеек: четыре на своем слое карты и пятую − на соседней, т.е. ячейку, которая совпадает с данной, если разместить слои карты один поверх другого. Объединение ячеек в группы на каждом слое карты осуществляется, как и в случае четырех переменных. В данном случае можно склеивать две одинаковые группы, находящиеся на разных слоях карты, расположение которых совпадает, если поместить один слой карты поверх другого.
Пример. Построить минимальную ДНФ для функции
.
Построим карту Карно для данной функции (рис. 6.2).
Рисунок 6.2 − Карта
Карно для функции
Простые импликанты,
входящие в минимальную ДНФ, имеют вид:
,
,
,
,
.
Минимальная ДНФ
записывается при объединении импликант
знаками дизъюнкции:
.
Минимизация на множестве КНФ. Для минимизации булевой функции на множестве КНФ используются диаграммы Вейча, построение которых аналогично построению карт Карно. Отличие заключается в том, что на карте помечаются ячейки, соответствующие интерпретациям, на которых функция равна нулю. После этого производится склеивание ячеек, содержащих нули и формирование минимальной КНФ. Для склеивания ячеек используются те же правила, что и при получении минимальной ДНФ. Каждая группа ячеек, полученная в результате склеивания, соответствует дизъюнкции только тех переменных, которые имеют одинаковое значение для всех ячеек группы. Переменные берутся без отрицания, если им соответствует нулевое значение, и с отрицанием − в противном случае. Конъюнкция полученных элементарных дизъюнкций является результатом минимизации формулы.
Пример. Построить минимальную КНФ функции, заданной картой Карно (диаграммой Вейча), представленной в таблице 6.7.
Таблица 6.7 − Карта
Карно (диаграмма Вейча) для функции
-
00
01
11
10
00
1
1
0
1
01
0
0
0
0
11
0
0
0
1
10
1
1
0
1
Для получения МКНФ необходимо рассмотреть «нулевые» ячейки, максимизируя размеры их групп и минимизируя количество таких групп, и провести операцию склеивания (рис. 6.3).
Рисунок 6.3 − Карта
Карно (диаграмма Вейча) для булевой
функции
Запишем минимальную
КНФ, объединив знаками конъюнкции
элементарные дизъюнкции:
.
Минимизация частично определенных функций с использованием карт Карно. Для решения некоторых задач могут использоваться не все наборы входных данных, поэтому допустимо любое значение функции на неиспользуемых интерпретациях. Такая функция называется частично определенной. При минимизации такие функции доопределяются так, чтобы получить наиболее экономичную минимальную ДНФ (КНФ).
6.3 Контрольные вопросы и задания
6.3.1 Контрольные вопросы
Что представляет собой булевый базис? Чем обусловлен выбор базиса при проектировании логических схем?
Что представляет собой индекс (коэффициент) простоты? Приведите примеры индексов простоты.
Какие существуют подходы для решения задачи минимизации булевых функций в аналитическом виде?
Запишите формулы операций дизъюнктивного склеивания и поглощения.
Запишите формулы операций конъюнктивного склеивания и поглощения.
Дайте определение терминам «импликанта», «имплицента», «простая импликанта», простая «имплицента».
Что представляет собой сокращенная ДНФ и сокращенная КНФ?
Дайте определение тупиковой ДНФ. Сколько тупиковых ДНФ может иметь булева функция?
Какая из ДНФ (КНФ) называется минимальной ДНФ (минимальной КНФ)?
Что представляют собой карты Карно (диаграммы Вейча)?
Назовите правило склеивания ячеек и записи минимальной ДНФ при использовании карт (диаграмм) Карно.
Как осуществляется построение карты Карно для функции пяти переменных?
Опишите особенности минимизации булевых функций на множестве КНФ с использованием минимизирующих карт.
Каким образом осуществляется минимизация частично определенных функций?
6.3.2 Контрольные задания
Задание 1.
С помощью соотношений
вида
преобразовать ДНФ
к КНФ.
Задание 2.
Построить все тупиковые ДНФ следующих функций:
а)
;
б)
;
в)
.
Задание 3.
Выяснить, являются ли тупиковыми или минимальными следующие ДНФ:
а)
;
б)
;
в)
.
Задание 4.
Используя карты Карно, построить минимальную ДНФ и минимальную КНФ по таблице истинности функции (таблица 6.8 ).
Таблица 6.8 Таблица истинности функции
-
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
