называется совершенной дизъюнктивной нормальной формой (СДНФ).
Из того, что для любой логической функции существует разложение по переменным, следует, что
любая логическая функция, кроме 0, может быть представлена в виде СДНФ. Из построения СДНФ,
видно, что такое представление однозначно.
Для построения СДНФ можно использовать таблицу функции. Так как в представлении (4.1)
участвуют только единичные наборы, и
, только когда
, и
t
x
=
x
1
t =
t
x
=
x
)
, только когда
, то для
каждого единичного набора составляется конъюнкция переменных по следующему правилу:
переменная входит в конъюнкцию без отрицания, если в наборе она равна 1, и с отрицанием, если в
наборе ее значение равно 0. СДНФ есть дизъюнкция построенных таким образом конъюнкций.
0
t =
Пример 1
Пусть дана таблица функции трех переменных.
Требуется построить СДНФ этой функции. У этой функции четыре
единичных набора:
, , ,
(
. Для каждого из этих наборов
составим соответственно по изложенному выше правилу конъюнкции
переменных:
()
000
()
011
()
101 111
12
xx
3
x
,
123
xx x
,
12
xx x
3
xx
, . Взяв дизъюнкцию этих
конъюнкций, получим СДНФ
1
x
2
x
3
x
f
0 0 0 1
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 1
123
x
123 123 123 123
xxxxxxxxxxx
=∨∨∨
СДНФ
fx
.
Разложение логической функции
по всем переменным в виде
1
( ,..., )
n
fx x
1
1n
1
1
( ,...,t )=0
( ,..., ) & ( ... )
n
t
t
nn
ft
fx x x x
=∨∨ (4.2)
называется совершенной конъюнктивной нормальной формой (СКНФ).
Аналогично, как для СДНФ, справедливо утверждение о том, что любая логическая функция, кроме
1, может быть однозначно представлена в виде СКНФ.
Также для построения СКНФ можно использовать таблицу функции. Так как в представлении (4.2)
участвуют только нулевые наборы, и
t
x
=
x
, только когда
, и
0
t =
t
x
=
x
)
, только когда
, то для
каждого нулевого набора составляется дизъюнкция переменных по следующему правилу: переменная
входит в дизъюнкцию без отрицания, если в наборе она равна 0, и с отрицанием, если в наборе ее
значение равно 1. СКНФ есть конъюнкция построенных таким образом дизъюнкций.
1
t =
Пример 2
Для функции, заданной в Примере 1, требуется построить СКНФ. Нулевые наборы:
, ,
, . Составим дизъюнкции переменных:
()
001
()
010
()
100
(
110
12
xx x∨∨
3
,
12
xx x∨∨
3
,
12
xx∨∨
3
x
,
12
x∨
3
xx∨
.
Конъюнкция этих дизъюнкций есть СКНФ данной функции:
СКНФ 123 123 123 123
()&()&()&(f xxx xxx xxx xxx
=∨∨ ∨∨ ∨∨ ∨∨
).
Элементарной конъюнкцией называется конъюнкция переменных или их отрицаний, в которых
каждая переменная встречается не более одного раза. Число переменных, входящих в элементарную
конъюнкцию, называется рангом элементарной конъюнкции. По определению константа 1 считается
элементарной конъюнкцией ранга 0.
Примеры элементарных конъюнкций:
,
1
x
3
x
,
34
xx
,
123
xx x
.
Дизъюнктивной нормальной формой (ДНФ) называется формула, имеющая вид дизъюнкции
элементарных конъюнкций.
Примеры ДНФ:
12 123
xx xx x
∨
,
212
xxxx
∨
4
.
Конъюнкции, входящие в ДНФ, называются слагаемыми. Число слагаемых в ДНФ называется
длиной ДНФ.
Основные отличия СДНФ от ДНФ:
а) если в СДНФ в каждой конъюнкции присутствуют все переменные функции с отрицанием или
без отрицания, то в конъюнкциях, входящих в ДНФ, могут отсутствовать некоторые переменные;
б) для каждой логической функции существует только одна СДНФ, в то время как ДНФ может быть
не единственной для одной и той же логической функции.
Пример 3
Следующие две ДНФ эквивалентны:
212321
xxxxxxx∨=∨
3
. Им соответствует СДНФ
123 123 123 123 123
xx x xx x xx x xx x xx x∨∨∨∨
.
Приведение логической функции к СДНФ можно осуществить двумя способами:
21