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

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

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

(перенаправлено с «K-конъюнктивная нормальная форма»)

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

Примеры и контрпримеры Править

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

¬ A ( B C ) ,  
( A B ) ( ¬ B C ¬ D ) ( D ¬ E ) ,  
A B .  

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

¬ ( B C ) ,  
( A B ) C ,  
A ( B ( D E ) ) .  

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

¬ B ¬ C ,  
( A C ) ( B C ) ,  
A ( B D ) ( B E ) .  

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

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

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 ) ¬ X ) .  

Преобразуем формулу F   к формуле, не содержащей  :

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

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

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

По закону дистрибутивности получим КНФ:

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

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

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

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

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

A≡((x→y)→!x)→(x→(y&x));

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

Если в простой дизъюнкции не хватает какой-то переменной (например, z), то добавляем в неё выражение : Z ¬ Z = 0   (это не меняет самой дизъюнкции), после чего раскрываем скобки с использованием распределительного закона:

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

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

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

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

<КНФ> → <дизъюнкт>
<КНФ> → <КНФ> ∧ <дизъюнкт>
<дизъюнкт> → <литерал>;
<дизъюнкт> → (<дизъюнкт> ∨ <литерал>)
<литерал> → <терм>
<литерал> → ¬<терм>

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

Задача выполнимости формулы в КНФ Править

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

Задача о выполнимости 2-КНФ формул может быть решена за линейное время.

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

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

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

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

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

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

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

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

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

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

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