КНФ — различия между версиями
Строка 16: | Строка 16: | ||
<tex>f(x,y,z) = (x \lor \neg y \lor z) \land (x\lor y \lor \neg z)</tex> | <tex>f(x,y,z) = (x \lor \neg y \lor z) \land (x\lor y \lor \neg z)</tex> | ||
+ | {{Теорема | ||
+ | |statement= | ||
+ | Для любой булевой функции <tex>f(\vec{x})</tex>, не равной тождественной единице, существует СКНФ, ее задающая. | ||
+ | |proof = | ||
+ | Поскольку инверсия функции <tex>\neg f(\vec x)</tex> равна единице на тех наборах, на которых <tex>f(\vec x)</tex> равна нулю, то СДНФ для <tex>\neg f(\vec x)</tex> можно записать следующим образом: | ||
+ | |||
+ | }} | ||
==Алгоритм построения СКНФ по таблице истинности== | ==Алгоритм построения СКНФ по таблице истинности== | ||
*В таблице отмечаем наборы переменных, которые приводят логическое выражение в состояние нуля. | *В таблице отмечаем наборы переменных, которые приводят логическое выражение в состояние нуля. |
Версия 06:46, 3 ноября 2010
Определение: |
КНФ (Конъюнктивная Нормальная Форма) — нормальная форма, в которой булева формула имеет вид конъюнкции нескольких дизъюнктов. |
Пример КНФ:
Определение: |
СКНФ (Совершенная Конъюнктивная Нормальная Форма) — это такая КНФ, которая удовлетворяет условиям:
|
Пример СКНФ:
Теорема: |
Для любой булевой функции , не равной тождественной единице, существует СКНФ, ее задающая. |
Доказательство: |
Поскольку инверсия функции | равна единице на тех наборах, на которых равна нулю, то СДНФ для можно записать следующим образом:
Алгоритм построения СКНФ по таблице истинности
- В таблице отмечаем наборы переменных, которые приводят логическое выражение в состояние нуля.
- В дизъюнкцию записываем переменную без инверсии, если она в наборе равна 0, и с инверсией, если она равна 1.
- Полученные дизъюнкции связываем операциями конъюнкции
Примеры СКНФ для некоторых функций
Стрелка Пирса:
Медиана трёх: