logo
кр одмита

4.4.2. Конъюнктивные нормальные формы

Элементарной дизъюнкцией Di является многоместная конъюнкция попарно различных литералов, т. е. Di = . К элементарным дизъюнкциям относятся также одиночные литералы и константа 0 – дизъюнкция, состоящая из пустого множества литералов. Число литераловr элементарной дизъюнкции называется ее рангом. Элементарная дизъюнкция называется полной относительно переменных x1, x2, …, xn, если она содержит символы всех переменных (со знаком отрицания или без него). Ранг таких дизъюнкций равен n.

Конъюнктивная нормальная форма (КНФ) – это выражение вида Di, т. е. конъюнкция элементарных дизъюнкций. Примером конъюнктивной нормальной формы является выражение (х2 х3  х4)(х1 х2). Одна элементарная дизъюнкция также может считаться КНФ.

Согласно принципу двойственности выражение (4.1) можно преобразовать в следующее выражение, которое также справедливо:

f(x1, x2, …, xn) =f(1, 2, … , m, xm+1, … , xn)).

Эта формула называется конъюнктивным разложением функции f (x1x2, … , xn) по переменным x1x2, … , xm. Справедливость ее может быть доказана так же, как справедливость формулы (4.1). Так же крайними случаями конъюнктивного разложения являются разложение по одной переменной и по всем переменным. Последнее называется совершенной конъюнктивной нормальной формой (СКНФ) и имеет вид

f(x1, x2, …, xn) =f(1, 2, … , n)). (4.2)

СКНФ, представляющую произвольную булеву функцию, так же, как ее СДНФ, легко построить по табличному заданию этой функции. Согласно формуле достаточно выделить наборы (12, … , n), на которых функция принимает значение 0 (если f(12, … , n) = 1, то весь сомножитель (1) обращается в 1), и для каждого из них ввести в СДНФ полную элементарную дизъюнкцию, где любая переменнаяxi присутствует с отрицанием, если i = 1, и без отрицания, если i = 0.

Очевидно, для любой булевой функции f(x1x2, …, xn), кроме константы 1, существует единственная СКНФ (с точностью до порядка литералов и дизъюнкций). Так же, как СДНФ, эта форма представления булевой функции является канонической. СКНФ для функции, которую задает табл. 4.5, имеет следующий вид:

(х1  х2  х3)(х1  х2 х3)(х1 х2 х3)(х1 х2  х3)(х1 х2 х3).

Константа 0 представляется в виде СКНФ, которая содержит все различные полные элементарные дизъюнкции, которые называют конституентами нуля (в литературе используется также термин макстерм). Конституента нуля принимает значение 0 на единственном наборе значений переменных.