Вопрос 21

Дизъюнкти́вная норма́льная фо́рма (ДНФ) в булевой логикенормальная форма, в которой булева формула имеет вид дизъюнкции конъюнкций литералов. Любая булева формула может быть приведена к ДНФ.[1] Для этого можно использовать закон двойного отрицания, закон де Моргана, закон дистрибутивности. Дизъюнктивная нормальная форма удобна для автоматического доказательства теорем.

Алгоритм построения ДНФ
1) Избавиться от всех логических операций, содержащихся в формуле, заменив их основными: конъюнкцией, дизъюнкцией, отрицанием. Это можно сделать, используя равносильные формулы:
Описание: A \rightarrow B = \neg A \vee B
Описание: A \leftrightarrow B = (A \wedge B) \vee (\neg A \wedge \neg B)
2) Заменить знак отрицания, относящийся ко всему выражению, знаками отрицания, относящимися к отдельным переменным высказываниям на основании формул:
Описание: \neg (A \vee B) = \neg A \wedge \neg B
Описание: \neg (A \wedge B) = \neg A \vee \neg B
3) Избавиться от знаков двойного отрицания.
4) Применить, если нужно, к операциям конъюнкции и дизъюнкции свойства дистрибутивности и формулы поглощения.

Пример построения ДНФ
Приведем к ДНФ формулу :Описание: F = ((X \rightarrow Y) \downarrow \neg (Y \rightarrow Z))
Выразим логические операции → и ↓ через :Описание: \vee \wedge \neg
Описание: F = ((\neg X \vee Y) \downarrow \neg(\neg Y \vee Z)) = \neg ((\neg X \vee Y) \vee \neg (\neg Y \vee Z))
В полученной формуле перенесем отрицание к переменным и сократим двойные отрицания:
Описание: F = \neg ((\neg X \vee Y) \vee \neg (\neg Y \vee Z)) = (\neg \neg X \wedge \neg Y) \wedge (\neg Y \vee Z) = (X \wedge \neg Y) \wedge (\neg Y \vee Z)
Используя закон дистрибутивности, приводим формулу к ДНФ:
Описание: F = (X \wedge \neg Y \wedge \neg Y) \vee (X \wedge \neg Y \wedge Z)

k-дизъюнктивная нормальная форма
k-дизъюнктивная нормальной формой называют дизъюнктивную нормальную форму, в которой каждая конъюнкция содержит ровно k литералов.
Например, следующая формула записана в 2-ДНФ:
Описание: (A \and B) \or (\neg B \and C) \or (B \and \neg C)

Переход от ДНФ к СДНФ
Если в какой-то простой конъюнкции недостает переменной, например, Z, вставляем в нее выражение :Описание: Z \vee \neg Z = 1,после чего раскрываем скобки (при этом повторяющиеся дизъюнктные слагаемые не пишем). Например:
Описание: X \vee \neg Y \neg Z = X(Y \vee \neg Y)(Z \vee \neg Z) \vee (X \vee \neg X)\neg Y \neg Z = XYZ \vee X \neg YZ \vee XY \neg Z \vee X \neg Y \neg Z \vee X \neg Y \neg Z \vee \neg X \neg Y \neg Z =
Описание:  = XYZ \vee X \neg YZ \vee XY \neg Z \vee X \neg Y \neg Z \vee \neg X \neg Y \neg Z
Таким образом, из ДНФ получили СДНФ.


На Главную

Hosted by uCoz