ДНФ — различия между версиями
Permenko (обсуждение | вклад) (→Пример построения СДНФ) |
Melnik (обсуждение | вклад) (→Определение) |
||
| Строка 2: | Строка 2: | ||
{{Определение | {{Определение | ||
|definition = | |definition = | ||
| − | ДНФ (Дизъюнктивная Нормальная Форма) — нормальная форма, в которой [[Определение булевой функции|булева функция]] имеет вид дизъюнкции нескольких конъюнктов. | + | Простой конъюнкцией или конъюнктом называется конъюнкция некоторого конечного набора переменных или их отрицаний, причём каждая переменная встречается не более одного раза. |
| + | }} | ||
| + | Элементарная конъюнкция | ||
| + | * '''правильная''', если в неё каждая переменная входит не более одного раза (включая отрицание); | ||
| + | * '''полная''', если в неё каждая переменная (или её отрицание) входит ровно 1 раз; | ||
| + | * '''монотонная''', если она не содержит отрицаний переменных. | ||
| + | |||
| + | {{Определение | ||
| + | |definition = | ||
| + | ДНФ (Дизъюнктивная Нормальная Форма) — нормальная форма, в которой [[Определение булевой функции|булева функция]] имеет вид дизъюнкции нескольких простых конъюнктов. | ||
}} | }} | ||
Пример ДНФ: | Пример ДНФ: | ||
| Строка 16: | Строка 25: | ||
Пример СДНФ: | Пример СДНФ: | ||
<tex>f(x,y,z) = (x \land \overline{y} \land z) \lor (x \land y \land \overline{z})</tex> | <tex>f(x,y,z) = (x \land \overline{y} \land z) \lor (x \land y \land \overline{z})</tex> | ||
| + | |||
{{Теорема | {{Теорема | ||
Версия 00:01, 16 октября 2011
Определение
| Определение: |
| Простой конъюнкцией или конъюнктом называется конъюнкция некоторого конечного набора переменных или их отрицаний, причём каждая переменная встречается не более одного раза. |
Элементарная конъюнкция
- правильная, если в неё каждая переменная входит не более одного раза (включая отрицание);
- полная, если в неё каждая переменная (или её отрицание) входит ровно 1 раз;
- монотонная, если она не содержит отрицаний переменных.
| Определение: |
| ДНФ (Дизъюнктивная Нормальная Форма) — нормальная форма, в которой булева функция имеет вид дизъюнкции нескольких простых конъюнктов. |
Пример ДНФ:
| Определение: |
СДНФ (Совершенная Дизъюнктивная Нормальная Форма) — это такая ДНФ, которая удовлетворяет условиям:
|
Пример СДНФ:
| Теорема: |
Для любой булевой функции , не равной тождественному нулю, существует СДНФ, ее задающая. |
| Доказательство: |
|
Для любой булевой функции выполняется следующее соотношение, называемое разложением Шеннона.
Данное соотношение легко проверить подстановкой всевозможных значений ( и ). Эта формула позволяет выносить за знак функции. Последовательно вынося , ,.., за знак , получаем следующую формулу :
Т.к применение данного соотношения к каждой из переменных увеличивает количество дизъюнктивных членов в два раза, то для функции от переменных мы имеем дизъюнктивных членов. Каждый из них соответствует значению функции на одном из возможных наборов значений n переменных. Если на некотором наборе , то весь соответствующий дизъюнктивный член также равен нулю и из представления данной функции его можно исключить. Если же , то в соответствующем дизъюннктивном члене само значение функции можно опустить. В результате для произвольной функции была построена СДНФ. |
Пример построения СДНФ
1. В таблице истинности отмечаем те наборы переменных, на которых значение функции равно 1.
| x | y | z | <xyz> |
|---|---|---|---|
| 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 | <xyz> | |
|---|---|---|---|---|
| 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. Все полученные конъюнкции связываем операциями дизъюнкции.
Примеры СДНФ для некоторых функций
Стрелка Пирса:
Медиана трёх: