
Переход от табличной формы задания булевых функций к аналитическим
Особый интерес представляет переход от табличных формы представления булевых функций к аналитическим. Для получения СДНФ и СКНФ исходя из таблицы истинности можно сформулировать следующие правила.
Для получения СДНФ на основе таблицы истинности необходимо :
1) Каждый из входных наборов, на которых булева функция принимает значения 1, представить в виде элементарного произведения (конъюнкции), причем если переменная равна 0, то она входит в конъюнкцию с инверсией, а если 1 - то без инверсии.
2) Полученные элементарные конъюнкции объединяются знаками дизъюнкции.
Для получения СКНФ на основе таблицы истинности необходимо :
1) Каждый из входных наборов, на которых булева функция принимает значения 0, представить в виде элементарной логической суммы (дизъюнкции), причем если переменная равна 1, то она входит в дизъюнкцию с инверсией, а если 0 - то без инверсии.
2) Полученные элементарные дизъюнкции объединяются знаками конъюнкции.
В качестве примера рассмотрим булеву функцию трех переменных, f (1,3,5,6,7)=1. Ниже приведены таблица истинности и полученные на ее основе СДНФ и СКНФ.
|
СДНФ f = 1 2x3 v 1x2x3 v x1 2x3 v x1x2 3 v x1x2x3 ; СКНФ f = ( x1 v x2 v x3 )· ( x1 v 2 v x3 )· ( 1 v x2 v x3 ). |
Минимальные ДНФ и КНФ этой функции будут иметь вид :
ДНФ f = x1x2 v x3 ;
КНФ f = ( x1 v x3 )· ( x2 v x3 ).
Инверсные функции
Так как в булевой алгебре функции принимают только два значения 0 и 1, то существует особый класс функций, являющихся инверсными по отношению к рассматриваемым функциям, т.е. на тех наборах, где данная функция принимает значение 0 ( 1 ), инверсная функция принимает значение 1 ( 0 ) соответственно.
На основании закона Де-Моргана можно сформулировать правило получения инверсной функции.
Для получения аналитического выражения инверсной функции необходимо в исходной функции все переменные заменить на инверсные им, все знаки дизъюнкции заменить на знаки конъюнкции и наоборот.
Например, для ДНФ f = x1x2
v x3,
=
(
1
v
2
)·
3
; Полученную таким образом инверсную
функцию называют обратной
КНФ.
Для КНФ f = ( x1 v x3 )· ( x2 v x3 ), = 1 3 v 2 3 ; Полученную таким образом инверсную функцию называют обратной ДНФ.
Минимизация логических функций.
Используя законы булевой алгебры, можно преобразовывать исходные выражения в более простые (минимизировать их). По упрощенным выражениям можно построить техническое устройство, имеющее минимальные аппаратные затраты.
Минимизация производится с помощью применения законов склеивания и поглощения.
Пример.
Найти минимальную ДНФ функции Y=f (x1, x2, x3); f (0,2,3,4,5,7)=1.
Решение.
Построим таблицу истинности функции Y.
x1 x2 x3 |
f (x1, x2, x3) |
0 0 0 |
1 |
0 0 1 |
0 |
0 1 0 |
1 |
0 1 1 |
1 |
1 0 0 |
1 |
1 0 1 |
1 |
1 1 0 |
0 |
1 1 1 |
1 |
По данным таблицы запишем аналитическое выражение:
Y= 1 2 3 v 1x2 3 v 1x2x3 v x1 2 3 v x1 2x3 v x1x2x3
Применим склеивание следующим образом: Fx v F = F
Получим:
Y= 1x2 v x2x3 v x1x3 v x1 2 v 2 3 v 1 3
Данная ДФ является избыточной, так как отдельные конъюнкции могут быть лишними, т.е. их составные части могут включаться в другие конъюнкции. У данной функции существует пять безизбыточных ДФ, из которых только две являются минимальными:
Y1= 1x2 v x1x3 v 2x3;
Y2= 1x2 v x2x3 v x1 2 v 1 3;
Y3= 1x2 v x1x3 v x1 2 v 1 3;
Y4= 1 3 v x2x3 v x1 2;
Y5= 1 3 v 1x2 v x1x3 v x1 2.
Их приведенных зависимостей видно, что только функции Y1 и y4 являются минимальными формами функций, так как они содержат наименьшее число конъюнкций и имеют минимальный ранг этих конъюнкций.