Для одной и той же формулы можно составить множество равносильных ей КНФ. Но среди них существует единственная КНФ со свойствами совершенства.
Перечислим свойства совершенства для КНФ:
1. Каждый логический множитель формулы содержит все переменные, входящие в функцию.
2. Все логические множители различны.
3. Ни один множитель не содержит одновременно переменную и ее отрицание.
4. Ни один множитель не содержит одну и ту же переменную дважды.
КНФ, для которой выполняются свойства совершенства называется совершенной КНФ (СКНФ).
Любая не тождественно истинная формула имеет единственную СКНФ.
Один из способов получения СКНФ состоит в использовании таблицы истинности для :
1. Составляют СДНФ.
2. Для получения СКНФА строят отрицание СДНФ, т.е.
Или из наборов переменных, при которых А ложна, составляют элементарные дизъюнкции, в которых переменная, вошедшая со значением истина вводится с отрицанием, а со значением ложь – без отрицания. Из полученных элементарных дизъюнкций составляют конъюнкцию.
Другой способ основан на равносильных преобразованиях
Приведем соответствующий алгоритм:
1. Путем равносильных преобразований получить какую – либо КНФ.
2. Если какая-либо элементарная дизъюнкция В не содержит переменную хi, то вводят ее, используя равносильность . И используют свойство дистрибутивности.
3. Если в КНФ входят две одинаковые дизъюнкции В, то лишнюю отбрасывают, используя свойство идемпотентности В B º B.
4. Если какая-либо дизъюнкция содержит xi вместе с отрицанием, то В º 1. И В исключают из КНФ.
5. Если какая-либо дизъюнкция содержит переменную xi дважды, то одну из них отбрасывают, используя свойство xiv xi º xi.
Примеры.
1. Составить СКНФ для формулы по таблице истинности и путем равносильных преобразований.
Составим таблицу истинности, которая содержит 4 строки, для
х | у | ||||
Тогда
Такую же формулу мы получили бы, строя СКНФА на наборах, при которых А ложна.
Преобразуем формулу:
2.Аналогичное задание для формулы
Таблица истинности имеет вид:
a | b | c | ||||
Составим СКНФА на наборах, при которых А=0:
Преобразуем формулу:
3. Путем равносильных преобразований получить СКНФА.
Задачи для самостоятельного решения.
1. Для следующих формул найти СДНФ и СКНФ, каждую двумя способами (путем равносильных преобразований и используя таблицы истинности):
2. Найдите СДНФ для всякой тождественно истинной формулы, содержащей: 1) одно переменное, 2) два переменных, 3) три переменных.
3.Найдите СКНФ для всякой тождественно ложной формулы, содержащей: 1) одно переменное, 2) два переменных, 3) три переменных.
4. Докажите равносильность формул и сравнением их совершенных нормальных форм (конъюнктивных или дизъюнктивных).
5. Найдите более простой вид формул, имеющих следующие совершенные нормальные формы:
Контрольные вопросы
1. Перечислить свойства совершенства для ДНФ.
2. Перечислить свойства совершенства для КНФ.
3. Сколько для одной формулы можно составить СДНФ и СКНФ?
4. Как по таблице истинности составить СДНФ?
5. Связь между СДНФА и СКНФА.
6. Как путем равносильных преобразований составить СДНФ и СКНФ формулы?