
4.5. Сднф булевой функции и ее упрощение
Пусть A1=– булева алгебра, носителем которой
служит множество всех булевых функций
.
Выпишем таблицы операций сигнатуры этой алгебры.
Таблица 4.3 Таблица отрицания
|
|
Таблица 4.4 Таблица конъюнкции |
|
Таблица 4.5 Таблица дизъюнкции | |||||
x |
|
|
|
|
|
|
| ||
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 | ||
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 | ||
|
|
1 |
0 |
0 |
1 |
0 |
1 | ||
|
|
1 |
1 |
1 |
1 |
1 |
1 |
Основные свойства этих операций в любой булевой алгебре записаны в таблице 4.1. Отметим их дополнительные свойства.
1.
,
2.
,
3.
– закон противоречия,
1'
,
2'
,
3'– закон исключения третьего.
4. – Закон снятия двойного отрицания.
Пусть имеем булеву функцию
.
Определение 4.8. Элементарной конъюнкциейназывают конъюнкцию, содержащую переменные или их отрицания.
Примеры элементарных конъюнкций:
,
,
и т.п.
Определение 4.9. Элементарной дизъюнкциейназывают дизъюнкцию, содержащую переменные или их отрицания.
Примеры элементарных дизъюнкций:
,
,
и т.п.
Определение 4.10. Формулу булевой функции, в которой элементарные конъюнкции соединены знаками дизъюнкции, называютдизъюнктивной нормальной формой(ДНФ) этой функции. Формулу, в которой элементарные дизъюнкции соединены знаками конъюнкции, называютконъюнктивной нормальной формой(КНФ) функции.
Пример.
|
|
|
|
Элементарные конъюнкции |
|
Булева
функция
Для
каждой строки единичного набора
запишем элементарные конъюнкции,
включающие все три аргумента булевой
функции, по следующему правилу: если
Соединив все элементарные конъюнкции знаками дизъюнкции, получим дизъюнктивную нормальную форму: ДНФ= На любой строке единичного набора одна из элементарных конъюнкций равна 1, а следовательно, и вся ДНФ имеет значение 1. На любой строке нулевого набора ни одна из элементарных конъюнкций единице не равна, поэтому ДНФ имеет значение 0. |
0 |
0 |
0 |
1 |
| ||
0 |
0 |
1 |
1 |
| ||
0 |
1 |
0 |
0 |
| ||
0 |
1 |
1 |
0 |
| ||
1 |
0 |
0 |
1 |
| ||
1 |
0 |
1 |
1 |
| ||
1 |
1 |
0 |
1 |
| ||
1 |
1 |
1 |
0 |
|
Таким образом, на
всех наборах значений аргументов
значения ДНФ и функции
совпадают. Следовательно, ДНФ=
.
Построенную таким образом ДНФ называютсовершенной
дизъюнктивной нормальной формой (СДНФ)
функции
.
Если построить
аналогичным образом элементарные
конъюнкции на нулевом наборе, то,
соединив их знаками дизъюнкции, получим
СДНФ отрицания функции
:
.
Воспользовавшись принципом двойственности для булевой алгебры, получим формулу:
,
которую
называют совершенной
конъюнктивной нормальной формой (СКНФ)
функции
.
Определение 4.11. Дизъюнктивную
(конъюнктивную) нормальную форму отпеременных называютсовершенной,
если она обладает следующими
свойствами:
1) каждая элементарная конъюнкция
(дизъюнкция) содержит все
переменных,
2) все элементарные конъюнкции различны,
3) ни одна элементарная конъюнкция (дизъюнкция) не содержит одновременно переменную и ее отрицание,
4) ни одна элементарная конъюнкция (дизъюнкция) не содержит одну и ту же переменную дважды.
Свойства 1 – 4 ДНФ (КНФ) называют свойствами совершенства.
Определение 4.12.ДНФ (КНФ), обладающая свойствами совершенства, называютсовершенной дизъюнктивной (конъюнктивной) нормальной формой.
Аббревиатура совершенных форм: СДНФ, СКНФ.
Справедливы утверждения.
Утверждение 1.Любая ненулевая
булева функцияединственным образом представима в
виде СДНФ от своих аргументов.
Утверждение 2.Любая ненулевая
булева функцияединственным образом представима в
виде СКНФ от своих аргументов.
Практическое построение СДНФ и СКНФ выполняется так, как показано в приведенном выше примере. Основная задача представления булевой функции формулой состоит в упрощении совершенных форм. Поскольку конъюнктивные формы всегда могут быть получены по принципу двойственности, достаточно рассмотреть этот вопрос для дизъюнктивных форм.
Существует довольно много методов упрощения СДНФ. Все они основаны на основных и дополнительных свойствах операций булевой алгебры. Рассмотрим два из них: карты Карно и таблицы Куайна.
Карты
Карно. Пусть булева функциязадана таблицей. Таблица содержит 2nстрок, в которых перечислены все
-мерные
двоичные векторы и для каждого вектора
указано значение функции – 0 или 1.
Начертим таблицу (см. рис. 4.2), содержащую 2nклеток так, чтобы две соседние клетки отличались друг от друга значением одной и только одной компоненты вектора. Полученная таблица и называется картой Карно.
Карты Карно для функций от двух переменных (рис. 4.2а) имеют 4 клетки, для функций от трех переменных – 8 клеток (рис. 4.2б), для функций от четырех переменных 16 клеток (рис. 4.2в) и т.д. На картах отмечено расположение элементарных конъюнкций, которые могут входить в СДНФ рассматриваемой функции.
Рассмотрим примеры использования карт Карно для упрощения СДНФ некоторых функций.
Примеры.
Десятичные номера аргументов |
|
|
|
|
Элементарные конъюнкции |
1.
Функция
СДНФ( Заполним карту Карно, отметив в ней единицами клетки, соответствующие единичному набору. Объединим рядом стоящие отмеченные клетки попарно: 011 – 001, 011 – 010, 101 – 001. Различие в каждой паре составляет только одна координата, именно такие клетки и требуют объединения. По этому признаку клетки 101 и 001, расположенные на противоположных сторонах карты, считаются "рядом стоящими". В СДНФ объединенные клетки соответствуют следующим дизъюнкциям: (011
– 001)
(011
– 010)
(101
– 001)
|
0 |
0 |
0 |
0 |
0 |
| |
1 |
0 |
0 |
1 |
1 |
| |
2 |
0 |
1 |
0 |
1 |
| |
3 |
0 |
1 |
1 |
1 |
| |
4 |
1 |
0 |
0 |
0 |
| |
5 |
1 |
0 |
1 |
1 |
| |
6 |
1 |
1 |
0 |
0 |
| |
7 |
1 |
1 |
1 |
0 |
| |
|
Пользуясь свойствами
коммутативности конъюнкции и дизъюнкции,
дистрибутивностью конъюнкции относительно
дизъюнкции (см. табл. 4.1), законом
исключения третьего:
и дополнительным свойством конъюнкции:
,
упрощаем выписанные формулы.
;
;
.
Применяя к СДНФ
свойства ассоциативности и идемпотентности
(табл.4.1) и заменяя в ней соответствующие
дизъюнкции упрощенными формулами,
получаем упрощенную КНФ функции
:
СДНФ()=
=
.
.
2.
Функция
задана списком единичного набора:
(1,3,6,7,8,9,12,13,14). Переведя эти числа в
двоичную систему, отметим в карте Карно
для функции четырех аргументов клетки,
соответствующие единичному значению
функции
.
Объединим пары и
четверки рядом стоящих отмеченных
клеток. Оставляя в объединенных клетках
лишь одинаковые переменные, запишем
сокращенную дизъюнктивную форму функции
:
.
Таблица Куайна.
Полученная в примере 2 формула может
быть дополнительно сокращена с помощью
таблицы Куайна. Рассмотрим, как это
делается. В таблице Куайна столбцы
соответствуют элементарным конъюнкциям
СДНФ(),
а строки – конъюнкциям сокращенной
формулы. В каждой строке знаком "*"
отмечены те клетки, в которых элементарная
конъюнкция сокращенной формулыпокрывает
конъюнкции СДНФ.
Конъюнкции сокращенной формулы |
Векторы
единичного набора (1,3,6,7,8,9,12,13,14) функции
и
соответствующие им элементарные
конъюнкции СДНФ( | ||||||||
0001 |
0011 |
0110 |
0111 |
1000 |
1001 |
1100 |
1101 |
1110 | |
1. |
|
|
|
|
* |
* |
* |
* |
|
2. |
|
|
* |
|
|
|
|
|
* |
3. |
|
|
* |
* |
|
|
|
|
|
4. |
|
* |
* |
* |
|
|
|
|
|
5. |
* |
* |
|
|
|
|
|
|
|
6. |
* |
|
|
|
|
* |
|
|
|
Формальным признаком покрытия является
вхождение в состав элементарной
конъюнкции СДНФ соответствующей
конъюнкции сокращенной формулы.
Например,
покрывает
,
,
,
,
так как входит в каждую из этих конъюнкций.
Смысл покрытия состоит в том, что
конъюнкция сокращенной формулы не
меньше элементарных конъюнкций СДНФ,
которые она покрывает. В самом деле, из
выполнения равенства:
,
в силу свойства порядка операций булевой
алгебры (см. табл. 4.1), оказываются
справедливыми неравенства:
;
,
,
.
Отметив покрытия в строках таблицы,
выделяем повторяющиеся знаки покрытий
в столбцах (в таблице отмечено цветом).
Если в строке все знаки покрытий
оказываются выделенными, значит эта
строка лишняя, и соответствующая этой
строке конъюнкция может быть удалена
из сокращенной формулы. Например, лишней
оказывается конъюнкция
,
поскольку
и
покрываются второй и четвертой строками.
Лишней оказывается и
,
так как
и
покрываются четвертой и шестой строками.
После вычеркивания лишних конъюнкций,
сокращенная формула принимает вид:
.