Дизъюнктивные и конъюнктивные нормальные формы
Любая формула вида или над стандартным базисом, где — произвольное переменное, называется литералом. Таким образом, литерал есть обозначение либо самого переменного , либо его отрицания. Часто используют такое обозначение: для пишут , понимая под этим само переменное , если , и отрицание , если , то есть
 (6.8) Подставляя в (6.8) 0 и 1 вместо , получаем
Часто используют также обозначение , понимая под этим любой из двух литералов — или .
Формула вида (соответственно вида ), где все фигурирующие в ней переменные попарно различны, называется элементарной конъюнкцией (соответственно элементарной дизъюнкцией).
Определение 6.4. Дизъюнктивная нормальная форма (ДНФ) от переменных — это формула вида , где , — элементарная конъюнкция, содержащая некоторые из литералов . В том случае, когда в каждую конъюнкцию для каждого номера входит в точности один из литералов , ДНФ называется совершенной дизъюнктивной нормальной формой (СДНФ).
Двойственным образом, т.е. с использованием принципа двойственности для булевых алгебр, определяются конъюнктивная нормальная форма (КНФ) и совершенная конъюнктивная нормальная форма (СКНФ).
Теорема 6.2. Любая булева функция, отличная от константы 0 (соответственно от константы 1) представима в виде СДНФ (соответственно в виде СКНФ).
Докажем первое из двух (взаимно двойственных) утверждений теоремы. Для функции , не равной тождественно 0, рассмотрим множество . Каждый набор из называется конституентой единицы функции . Так как по условию тождественно, то множество не пусто. Каждому набору поставим в соответствие элементарную конъюнкцию , которую также называют конституентой единицы функции . Ясно, что обращается в единицу только на наборе . Тогда искомой СДНФ для функции будет
Согласно принципу двойственности, СКНФ для той же функции будет иметь вид
где множество наборов , и каждый набор из называют конституентой нуля функции ; при этом элементарная дизъюнкция сопоставляется конституенте нуля по следующему правилу:
т.е. если в наборе i-я компонента равна 0, то в ставим само переменное , если иначе — отрицание переменного (таким образом, дизъюнкция обращается в нуль только на наборе ).
Из доказанного следует, что любая булева функция может быть представлена в виде формулы над стандартным базисом (СДНФ или СКНФ), и, значит, стандартный базис есть полное множество булевых функций.
Рассмотрим в качестве примера построение СДНФ и СКНФ для мажоритарной функции. Конституентами единицы для нее служат наборы:
Им соответствуют элементарные конъюнкции:
Тогда СДНФ, представляющая мажоритарную функцию, имеет вид
 (6.9)
Для получения СКНФ для той же функции выпишем все конституенты нуля данной функции:
Сопоставим им элементарные дизъюнкции:
В результате получим СКНФ для мажоритарной функции в виде
 (6.10)
Заметим, что если в формуле СКНФ (6.10) мы раскроем скобки и преобразуем полученное выражение согласно законам булевой алгебры, проведя тем самым эквивалентные преобразования СКНФ, то придем к формуле СДНФ (6.9).
Если заметили ошибку, опечатку или есть предложения, напишите в комментариях.
|