<==Back
Булевы Функции
Минимизация булевых функций.
" При проэктировании цифровых автоматов широко используются методы минимизации булевых функций, позволяющие получать рекомендации для построения экономичных схем цифровых автоматов. Общая задача минммизации булевых функций может быть сформулирована следующим образом: найти аналитическое выражение заданой булевой функции в форме, содержащей минимально возможное число букв. Следует отметить, что в общей постановке данная задача пока не решена, однако достаточно хорошо исследована в классе дизъюнктивно - конъюнктивных форм.
Определение.
Элементарной конъюнкцией называется конъюнкция конечного числа различных между собой булевых переменных, каждая из которых может иметь или не иметь отрицания.
Определение.
Дизъюнктивной нормальной формой (ДНФ) называется дизъюнкция элементарных конъюкций.
Определение.
Минимальной дизъюнктивной нормальной формой булевой функции называется ДНФ, содержащая наименьшее число букв (по отношению ко всем другим ДНФ, представляющим заданную булеву функцию).
Определение.
Булева функция g(x1,...,xn) называется импликантой булевой функции f(x1,...,xn), если для любого набора переменных, на котором g=1, справедливо f=1.
Таблица 4.1 |
|
|
|
|
|
|
|
|
x3x2x1 |
f |
g1 |
g2 |
g3 |
g4 |
g5 |
g6 |
g7 |
000 001 010 011 100 101 110 111 |
0 0 0 1 0 0 1 1 |
0 0 0 0 0 0 0 1 |
0 0 0 0 0 0 1 0 |
0 0 0 0 0 0 1 1 |
0 0 0 1 0 0 0 0 |
0 0 0 1 0 0 0 1 |
0 0 0 1 0 0 1 0 |
0 0 0 1 0 0 1 1 |
f = /x1x2x3 v x1x2/x3 v x1x2x3 = g7;
g1 = x1x2x3;
g2 = x1x2/x3;
g3 = x1x2x3 v x1x2/x3 = x1x2 (x3 v x3) = x1x2;
g4 = /x1x2x3;
g5 = /x1x2x3 v x1x2x3 = x2x3;
g6 = /x1x2x3 v x1x2/x3;
Определение.
Импликанта g булевой функции f, являющаяся элементарной конъюнкцией, называется простой, если никакая часть импликанты g не является импликантой функции f.
Из примера видно, что импликанты g3 = x1x2 и g5 = x2x3 являются простыми импликантами функции f. Импликанты g1, g2, g4, g6 не являются простыми, так как их части являются импликантами функции f, например g3 является частью g1. Приведем без доказательства два утверждения, полезные при получении минимальной ДНФ.
- Дизъюнкция любого числа импликант булевой функции f также является импликантой этой функции.
- Любая булева функция f эквивалентна дизъюнкции всех своих простых импликант. Такая форма представления булевой функции называется сокращенной ДНФ.
Перебор всех возможных импликант для булевой функции f из рассмотренного примера дает возможность убедиться, что простых импликант всего две: g3 и g5. Следовательно, сокращенная ДНФ функции f имеет вид
f = g3 v g5 = x1x2 v x2x3.
Как видно из табл. 4.1, импликанты g3, g5 в совокупности покрывают своими единицами все единицы функции f. Получение сокращенных ДНФ является первым этапом отыскания минимальных форм булевых функций. Как уже отмечалось, в сокращенную ДНФ входят все простые импликанты булевой функции. Иногда из сокращенной ДНФ можно убрать одну или несколько простых импликант, не нарушая эквивалентности исходной функции. Такие простые импликанты назовем лишними. Исключение лишних простых импликант из сокращенных ДНФ - второй этап минимизации.
Определение.
Сокращенная ДНФ булевой функции называется тупиковой, если в ней отсутствуют лишние простые импликанты.
Устранение лишних простых импликант из сокращенной ДНФ булевой функции не является однозначным процессом, т. е. булева функция может иметь несколько тупиковых ДНФ.
Утверждение.
Тупиковые ДНФ булевой функции f, содержащие минимальное число букв, являются минимальными. Минимальных ДНФ тоже может быть несколько.
Рассмотрим несколько методов минимизации. Все они практически различаются лишь на первом этапе - этапе получения сокращенной ДНФ. Следует отметить, что, к сожалению, поиск минимальной ДНФ всегда связан с некоторым перебором решений. Существуют методы уменьшения этого перебора, однако он всегда остается."
Использованная литература:
1) "Прикладная теория цифровых автоматов" Киев "Вища Школа" 1987
К.Г. Самофалов, А.М. Романкевич, В.Н. Валуйский,
Ю.С. Каневский, М.М. Пиневич
страницы (195 - 197).