ДНФ — различия между версиями
(→СДНФ) |
(→Пример построения СДНФ для медианы) |
||
Строка 61: | Строка 61: | ||
|-align="center" bgcolor=#EEEEFF | |-align="center" bgcolor=#EEEEFF | ||
| x || y || z || <tex> \langle x,y,z \rangle </tex> | | x || y || z || <tex> \langle x,y,z \rangle </tex> | ||
− | |-align="center" bgcolor=# | + | |-align="center" bgcolor=#FFFFFF |
| 0 || 0 || 0 || 0 | | 0 || 0 || 0 || 0 | ||
− | |-align="center" bgcolor=# | + | |-align="center" bgcolor=#FFFFFF |
| 0 || 0 || 1 || 0 | | 0 || 0 || 1 || 0 | ||
− | |-align="center" bgcolor=# | + | |-align="center" bgcolor=#FFFFFF |
| 0 || 1 || 0 || 0 | | 0 || 1 || 0 || 0 | ||
− | |-align="center" bgcolor=# | + | |-align="center" bgcolor=#FFFFFF |
! 0 || 1 || 1 || 1 | ! 0 || 1 || 1 || 1 | ||
− | |-align="center" bgcolor=# | + | |-align="center" bgcolor=#FFFFFF |
| 1 || 0 || 0 || 0 | | 1 || 0 || 0 || 0 | ||
− | |-align="center" bgcolor=# | + | |-align="center" bgcolor=#FFFFFF |
! 1 || 0 || 1 || 1 | ! 1 || 0 || 1 || 1 | ||
− | |-align="center" bgcolor=# | + | |-align="center" bgcolor=#FFFFFF |
! 1 || 1 || 0 || 1 | ! 1 || 1 || 0 || 1 | ||
− | |-align="center" bgcolor=# | + | |-align="center" bgcolor=#FFFFFF |
! 1 || 1 || 1 || 1 | ! 1 || 1 || 1 || 1 | ||
|} | |} | ||
Строка 85: | Строка 85: | ||
|-align="center" bgcolor=#EEEEFF | |-align="center" bgcolor=#EEEEFF | ||
| x || y || z || <tex> \langle x,y,z \rangle </tex> || | | x || y || z || <tex> \langle x,y,z \rangle </tex> || | ||
− | |-align="center" bgcolor=# | + | |-align="center" bgcolor=#FFFFFF |
| 0 || 0 || 0 || 0 || | | 0 || 0 || 0 || 0 || | ||
− | |-align="center" bgcolor=# | + | |-align="center" bgcolor=#FFFFFF |
| 0 || 0 || 1 || 0 || | | 0 || 0 || 1 || 0 || | ||
− | |-align="center" bgcolor=# | + | |-align="center" bgcolor=#FFFFFF |
| 0 || 1 || 0 || 0 || | | 0 || 1 || 0 || 0 || | ||
− | |-align="center" bgcolor=# | + | |-align="center" bgcolor=#FFFFFF |
! 0 || 1 || 1 || 1 || <tex>(\neg {x} \land y \land z)</tex> | ! 0 || 1 || 1 || 1 || <tex>(\neg {x} \land y \land z)</tex> | ||
− | |-align="center" bgcolor=# | + | |-align="center" bgcolor=#FFFFFF |
| 1 || 0 || 0 || 0 || | | 1 || 0 || 0 || 0 || | ||
− | |-align="center" bgcolor=# | + | |-align="center" bgcolor=#FFFFFF |
! 1 || 0 || 1 || 1 || <tex>(x \land \neg {y} \land z)</tex> | ! 1 || 0 || 1 || 1 || <tex>(x \land \neg {y} \land z)</tex> | ||
− | |-align="center" bgcolor=# | + | |-align="center" bgcolor=#FFFFFF |
! 1 || 1 || 0 || 1 || <tex>(x \land y \land \neg {z})</tex> | ! 1 || 1 || 0 || 1 || <tex>(x \land y \land \neg {z})</tex> | ||
− | |-align="center" bgcolor=# | + | |-align="center" bgcolor=#FFFFFF |
! 1 || 1 || 1 || 1 || <tex>(x \land y \land z)</tex> | ! 1 || 1 || 1 || 1 || <tex>(x \land y \land z)</tex> | ||
|} | |} |
Версия 22:23, 12 марта 2012
Содержание
ДНФ
Определение: |
Простой конъюнкцией или конъюнктом называется конъюнкция одной или нескольких переменных или их отрицаний, причём каждая переменная встречается не более одного раза. |
Простая конъюнкция
- полная, если в неё каждая переменная (или её отрицание) входит ровно 1 раз;
- монотонная, если она не содержит отрицаний переменных.
Определение: |
ДНФ (Дизъюнктивная Нормальная Форма) — нормальная форма, в которой булева функция имеет вид дизъюнкции нескольких простых конъюнктов. |
Пример ДНФ:
СДНФ
Определение: |
СДНФ (Совершенная Дизъюнктивная Нормальная Форма) — это такая ДНФ, которая удовлетворяет условиям:
|
Пример СДНФ:
Теорема: |
Для любой булевой функции , не равной тождественному нулю (очевидно из алгоритма построения), существует СДНФ, ее задающая. |
Доказательство: |
Для любой булевой функции выполняется следующее соотношение, называемое разложением Шеннона.
Данное соотношение легко проверить подстановкой всевозможных значений ( и ). Эта формула позволяет выносить за знак функции. Последовательно вынося , ,.., за знак , получаем следующую формулу :
Так как применение данного соотношения к каждой из переменных увеличивает количество конъюнктов в два раза, то для функции от переменных мы имеем конъюнктов. Каждый из них соответствует значению функции на одном из возможных наборов значений переменных. Если на некотором наборе , то весь соответствующий конъюнкт также равен нулю и из представления данной функции его можно исключить. Если же , то в соответствующем конъюнкте само значение функции можно опустить. В результате для произвольной функции была построена СДНФ. |
Алгоритм построения СДНФ по таблице истинности
- В таблице истинности отмечаем те наборы переменных, на которых значение функции равно 1.
- Для каждого отмеченного набора записываем конъюнкцию всех переменных по следующему правилу: если значение некоторой переменной есть 1, то в конъюнкцию включаем саму переменную, иначе ее отрицание.
- Все полученные конъюнкции связываем операциями дизъюнкции.
Пример построения СДНФ для медианы
1. В таблице истинности отмечаем те наборы переменных, на которых значение функции равно 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. Для каждого отмеченного набора записываем конъюнкцию всех переменных по следующему правилу: если значение некоторой переменной есть 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 |
3. Все полученные конъюнкции связываем операциями дизъюнкции.
Примеры СДНФ для некоторых функций
Стрелка Пирса:
Исключающее или: