Это не официальный сайт wikipedia.org 01.01.2023

Дизъюнктивная нормальная форма — Википедия

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

(перенаправлено с «ДНФ»)

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

ПримерыПравить

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

A B  
( A B ) A ¯  
( A B C ¯ ) ( D ¯ E F ) ( C D ) B  

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

( A B ) ¯  
A ( B ( C D ) )  

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

A ¯ B ¯  
A ( B C ) ( B D ) .  

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

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

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

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

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

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

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

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

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

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

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

F = ¬ ( ( ¬ X Y ) ¬ ( ¬ Y Z ) )  

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

F = ( ¬ ¬ X ¬ Y ) ( ¬ Y Z ) = ( X ¬ Y ) ( ¬ Y Z )  

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

F = ( X ¬ Y ¬ Y ) ( X ¬ Y Z )  

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

F = ( X ¬ Y ) ( X ¬ Y Z )  

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

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

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

( A B ) ( ¬ B C ) ( B ¬ C )  

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

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

Z ¬ Z = 1  ,

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

X ¬ Y ¬ Z = X ( Y ¬ Y ) ( Z ¬ Z ) ( X ¬ X ) ¬ Y ¬ Z =  
X Y Z X ¬ Y Z X Y ¬ Z X ¬ Y ¬ Z X ¬ Y ¬ Z ¬ X ¬ Y ¬ Z =  
= X Y Z X ¬ Y Z X Y ¬ Z X ¬ Y ¬ Z ¬ X ¬ Y ¬ Z  

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

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

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

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

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

Особенности обозначенийПравить

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

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

( A B C ¯ ) ( D ¯ E F ) ( C D ) B ;  
( A B C ¯ ) ( D ¯ E F ) ( C D ) B ;  
A B C ¯ D ¯ E F C D B ;  
A B C ¯ + D ¯ E F + C D + B .  

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

См. такжеПравить

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

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

ЛитератураПравить

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

СсылкиПравить