КНФ — различия между версиями
| Строка 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.
- Полученные дизъюнкции связываем операциями конъюнкции
Примеры СКНФ для некоторых функций
Стрелка Пирса:
Медиана трёх: