Перейти к содержанию

Дизъюнктивная нормальная форма

Материал из Мегавики — свободной энциклопедии

Дизъюнкти́вная норма́льная фо́рма (ДНФ) в булевой логикенормальная форма, в которой булева формула имеет вид дизъюнкции конъюнкций литералов. Любая булева формула может быть приведена к ДНФ.[1] Для этого можно использовать закон двойного отрицания, закон де Моргана, закон дистрибутивности. Дизъюнктивная нормальная форма удобна для автоматического доказательства теорем.

Примеры[править]

Формулы в ДНФ:

AB
(AB)A
(ABC)(DEF)(CD)B

Формулы не в ДНФ:

(AB)
A(B(CD))

Но последние две формулы эквивалентны следующим формулам в ДНФ:

AB
A(BC)(BD).

Построение ДНФ[править]

Алгоритм построения ДНФ[править]

1) Избавиться от всех логических операций, содержащихся в формуле, заменив их основными: конъюнкцией, дизъюнкцией, отрицанием. Это можно сделать, используя равносильные формулы:

AB=¬AB
AB=(AB)(¬A¬B)

2) Заменить знак отрицания, относящийся ко всему выражению, знаками отрицания, относящимися к отдельным переменным высказываниям на основании формул:

¬(AB)=¬A¬B
¬(AB)=¬A¬B

3) Избавиться от знаков двойного отрицания.

4) Применить, если нужно, к операциям конъюнкции и дизъюнкции свойства дистрибутивности и формулы поглощения.

Пример построения ДНФ[править]

Приведем к ДНФ формулу F=¬((XY)¬(YZ))

Выразим логическую операцию → через ¬

F=¬((¬XY)¬(¬YZ))

В полученной формуле перенесем отрицание к переменным и сократим двойные отрицания:

F=(¬¬X¬Y)(¬YZ)=(X¬Y)(¬YZ)

Используя закон дистрибутивности, получаем:

F=(X¬Y¬Y)(X¬YZ)

Используя идемпотентность конъюкции, получаем ДНФ:

F=(X¬Y)(X¬YZ)

k-дизъюнктивная нормальная форма[править]

k-дизъюнктивной нормальной формой называют дизъюнктивную нормальную форму, в которой каждая конъюнкция содержит ровно k литералов.

Например, следующая формула записана в 2-ДНФ:

(AB)(¬BC)(B¬C)

Переход от ДНФ к СДНФ[править]

Если в какой-то простой конъюнкции недостаёт переменной, например, Z, вставляем в неё выражение

Z¬Z=1,

после чего раскрываем скобки (при этом повторяющиеся дизъюнктные слагаемые не пишем, так как ZZ=Z по закону идемпотентности). Например:

X¬Y¬Z=X(Y¬Y)(Z¬Z)(X¬X)¬Y¬Z=
XYZX¬YZXY¬ZX¬Y¬ZX¬Y¬Z¬X¬Y¬Z=
=XYZX¬YZXY¬ZX¬Y¬Z¬X¬Y¬Z

Таким образом, из ДНФ получили СДНФ.

Формальная грамматика, описывающая ДНФ[править]

Следующая формальная грамматика описывает все формулы, приведенные к ДНФ:

<ДНФ> → <конъюнкт>
<ДНФ> → <ДНФ> ∨ <конъюнкт>
<конъюнкт> → <литерал>
<конъюнкт> → (<конъюнкт> ∧ <литерал>)
<литерал> → <терм>
<литерал> → ¬<терм>

где <терм> обозначает произвольную булеву переменную.

Особенности обозначений[править]

Следует отметить, что для удобства восприятия в качестве обозначения конъюнкции и дизъюнкции часто используют символы арифметического умножения и сложения, при этом символ умножения часто опускается. В этом случае формулы булевой алгебры выглядят как алгебраические полиномы, что более привычно для глаза, однако иногда может привести к недоразумениям.

Например, следующие записи эквивалентны:

(ABC)(DEF)(CD)B;
(ABC)(DEF)(CD)B;
ABCDEFCDB;
ABC+DEF+CD+B.

По этой причине ДНФ в русскоязычной литературе иногда называют «суммой произведений», что является калькой с английского термина «sum of products».

См. также[править]

Примечания[править]

  1. Поздняков С.Н., Рыбин С.В. Дискретная математика. — С. 303.

Литература[править]

  • Ю.И. Галушкина, А.Н. Марьямов: Конспект лекций по дискретной математике - 2-е изд., испр. - М.: Айрис-пресс, 2008. - 176 с. - (Высшее образование).

Ссылки[править]