КНФ
Содержание
КНФ
| Определение: | 
| Простой дизъюнкцией (англ. inclusive disjunction) или дизъюнктом (англ. disjunct) называется дизъюнкция одной или нескольких переменных или их отрицаний, причём каждая переменная встречается не более одного раза. | 
Простая дизъюнкция
- полная, если в неё каждая переменная (или её отрицание) входит ровно один раз;
 - монотонная, если она не содержит отрицаний переменных.
 
| Определение: | 
| Конъюнктивная нормальная форма, КНФ (англ. conjunctive normal form, CNF) — нормальная форма, в которой булева функция имеет вид конъюнкции нескольких простых дизъюнктов. | 
Пример КНФ:
СКНФ
| Определение: | 
Совершенная конъюнктивная нормальная форма, СКНФ (англ. perfect conjunctive normal form, PCNF) — это такая КНФ, которая удовлетворяет условиям:
  | 
Пример СКНФ:
| Теорема: | 
Для любой булевой функции , не равной тождественной единице, существует СКНФ, ее задающая.  | 
| Доказательство: | 
| 
 Поскольку инверсия функции равна единице на тех наборах, на которых равна нулю, то СДНФ для можно записать следующим образом: , где обозначает наличие или отсутствие отрицание при Найдём инверсию левой и правой части выражения: Применяя дважды к полученному в правой части выражению правило де Моргана, получаем: Последнее выражение и является СКНФ. Так как СКНФ получена из СДНФ, которая может быть посторена для любой функции, не равной тождественному нулю, то теорема доказана. | 
Алгоритм построения СКНФ по таблице истинности
- В таблице истинности отмечаем те наборы переменных, на которых значение функции равно .
 - Для каждого отмеченного набора записываем дизъюнкцию всех переменных по следующему правилу: если значение некоторой переменной есть , то в дизъюнкцию включаем саму переменную, иначе ее отрицание.
 - Все полученные дизъюнкции связываем операциями конъюнкции.
 
Пример построения СКНФ для медианы
1. В таблице истинности отмечаем те наборы переменных, на которых значение функции равно .
| x | y | z | |
| 0 | 0 | 0 | 0 | 
|---|---|---|---|
| 0 | 0 | 1 | 0 | 
| 0 | 1 | 0 | 0 | 
| 0 | 1 | 1 | 1 | 
| 1 | 0 | 0 | 0 | 
| 1 | 0 | 1 | 1 | 
| 1 | 1 | 0 | 1 | 
| 1 | 1 | 1 | 1 | 
2. Для каждого отмеченного набора записываем конъюнкцию всех переменных по следующему правилу : если значение некоторой переменной есть , то в дизъюнкцию включаем саму переменную, иначе ее отрицание.
| x | y | z | ||
| 0 | 0 | 0 | 0 | |
|---|---|---|---|---|
| 0 | 0 | 1 | 0 | |
| 0 | 1 | 0 | 0 | |
| 0 | 1 | 1 | 1 | |
| 1 | 0 | 0 | 0 | |
| 1 | 0 | 1 | 1 | |
| 1 | 1 | 0 | 1 | |
| 1 | 1 | 1 | 1 | 
3. Все полученные дизъюнкции связываем операциями конъюнкции.
Примеры СКНФ для некоторых функций
Стрелка Пирса:
Исключающее или: