Конъюнктивная нормальная форма | это... Что такое Конъюнктивная нормальная форма? (original) (raw)
Конъюнкти́вная норма́льная фо́рма (КНФ) в булевой логике — нормальная форма, в которой булева формула имеет вид конъюнкции дизъюнкций литералов. Конъюнктивная нормальная форма удобна для автоматического доказательства теорем. Любая булева формула может быть приведена к КНФ.[1] Для этого можно использовать: Закон двойного отрицания, Закон де Моргана, Дистрибутивность.
Содержание
- 1 Примеры и контрпримеры
- 2 Построение КНФ
- 3 _k_-конъюнктивная нормальная форма
- 4 Переход от КНФ к СКНФ
- 5 Формальная грамматика, описывающая КНФ
- 6 Задача выполнимости формулы в КНФ
- 7 См. также
- 8 Примечания
- 9 Литература
- 10 Ссылки
Примеры и контрпримеры
Формулы в КНФ:
Формулы не в КНФ:
Но эти 3 формулы не в КНФ эквивалентны следующим формулам в КНФ:
Построение КНФ
Алгоритм построения КНФ
- Избавиться от всех логических операций, содержащихся в формуле, заменив их основными: конъюнкцией, дизъюнкцией, отрицанием. Это можно сделать, используя равносильные формулы:
- Заменить знак отрицания, относящийся ко всему выражению, знаками отрицания, относящимися к отдельным переменным высказываниям на основании формул:
Избавиться от знаков двойного отрицания.
Применить, если нужно, к операциям конъюнкции и дизъюнкции свойства дистрибутивности и формулы поглощения.
Пример построения КНФ
Приведем к КНФ формулу
Преобразуем формулу F к формуле не содержащей → :
В полученной формуле перенесем отрицание к переменным и сократим двойные отрицания:
По закону дистрибутивности получим КНФ:
_k_-конъюнктивная нормальная форма
_k_-конъюнктивной нормальной формой называют конъюнктивную нормальную форму, в которой каждая дизъюнкция содержит ровно k литералов.
Например, следующая формула записана в 2-КНФ:
Переход от КНФ к СКНФ
Если в простой дизъюнкции не хватает какой-то переменной (например, z), то добавляем в нее выражение : (это не меняет самой дизъюнкции), после чего раскрываем скобки с использованием распределительного закона:
Таким образом, из КНФ получена СКНФ.
Формальная грамматика, описывающая КНФ
Следующая формальная грамматика описывает все формулы, приведенные к КНФ:
<КНФ> → <дизъюнкт>
<КНФ> → <КНФ> ∧ <дизъюнкт>
<дизъюнкт> → <литерал>
<дизъюнкт> → (<дизъюнкт> ∨ <литерал>)
<литерал> → <терм>
<литерал> → ¬<терм>
где <терм> обозначает произвольную булеву переменную.
Задача выполнимости формулы в КНФ
В теории вычислительной сложности важную роль играет задача выполнимости булевых формул в конъюнктивной нормальной форме. Согласно теореме Кука, эта задача NP-полна, и она сводится к задаче о выполнимости формул в 3-КНФ, которая сводится и к которой в свою очередь сводятся другие NP-полные задачи.
Задача о выполнимости 2-КНФ формул может быть решена за линейное время.
См. также
- Дизъюнктивная нормальная форма
- Дистрибутивность
- Нормальная форма (математика)
- Закон двойного отрицания
- Законы де Моргана
- Конъюнктивный одночлен
- Дизъюнктивный одночлен
- en:Conjunctive normal form
Примечания
- ↑ Поздняков С.Н., Рыбин С.В. Дискретная математика. — С. 303.
Литература
- Ю.И. Галушкина, А.Н. Марьямов: Конспект лекций по дискретной математике - 2-е изд., испр. - М.: Айрис-пресс, 2008. - 176 с. - (Высшее образование)