Развертывание позволяет восстановить в формулах «потерянные» (например, в результате минимизации) переменные или перейти от ДНФ и КНФ к совершенным формам – СДНФ и СКНФ. Восстановление переменных для ДНФ и КНФ производится по–разному. Рассмотрим примеры.
Пусть имеем ДНФ
xz,
в которой, очевидно, потеряна переменная y. Для восстановления переменной y произведение переменных xz умножается на 1, затем 1 заменяется суммой прямого и инверсного обозначений недостающей переменной, и на основе дистрибутивного закона проводится преобразование
.
Пусть имеем КНФ , где также потеряна переменная y. Для ее восстановления к сумме добавляется 0, затем 0 заменяется произведением недостающей переменной на ее инверсию и применяется дистрибутивный закон
Используя развертывание, можно раскрыть смысл понятий «конституента единицы» и «конституента нуля».
Пусть n = 2 (переменные a и b).
Развернем 1.
1= 1 = = .
Получили СДНФ функции двух переменных f = 1, где каждая конъюнкция является составляющей (конституентой) единицы.
Развернем 0.
0 =
Получили СКНФ функции двух переменных f = 0, где каждая дизъюнкция является составляющей (конституентой) нуля.
Полезность развертывания показывает пример доказательства правил обобщенного склеивания (см. п. 4.1.1):
Рассмотрим первое правило
Развернем левую часть тождества, в первом произведении которой недостает переменной c, во втором произведении недостает b, а в третьем нет a.
После приведения подобных членов, применив простое склеивание
Используя дистрибутивный закон дизъюнкции относительно конъюнкции, получаем
После приведения подобных членов, применив простое склеивание, будем иметь
Получили правую часть, следовательно, правило доказано.
Общий порядок проведения минимизации функции, заданной СДНФ, здесь следующий.
1. Сначала к членам СДНФ применяется операция склеивания (каждая конъюнкция может использоваться многократно, объединяясь с разными членами). При этом из них исключается по одной переменной. Затем приводятся подобные члены, и снова проводится склеивание. Этот процесс продолжается, пока в получаемом выражении не останется конъюнкций, отличающихся друг от друга значениями одной переменной. Полученное выражение называется сокращенной нормальной формой. Каждой логической функции соответствует лишь одна такая форма.
2. К сокращенной нормальной форме применяется операция обобщенного склеивания. В результате из нее исключаются лишние конъюнкции. Процесс продолжается, пока склеивания становятся невозможными. Получаемая форма называется тупиковой формой логической функции. Тупиковых форм у логической функции может быть несколько.
3. Полученная тупиковая форма случайно может оказаться минимальной. В общем случае для поиска минимальной формы необходим перебор тупиковых форм.
С функциями, представленными в СКНФ, поступают аналогично с учетом их особенностей. Иногда оказывается удобно на промежуточном этапе перейти к дизъюнктивной нормальной форме и продолжать минимизацию так, как изложено выше.
Пример 1: Минимизировать функцию
После применения операции склеивания и приведения подобных членов получаем
Обобщенное склеивание здесь можно проводить по нескольким вариантам, которые дают следующие результаты:
.
Исключены , , : ( ), ( ), ( ).
В скобках показаны термы, участвующие в обобщенном склеивании.
Исключены , , : ( ), ( ), ( ).
Как видим, здесь имеется две минимальных нормальных формы. По сложности они одинаковы.
Пример 2: Продолжая решение задачи по созданию устройства рис. 3, проведем минимизацию мажоритарной функции (см. табл. 12), для которой выше были получены СДНФ и СКНФ.
СДНФ:
.
СKНФ:
Здесь первую сумму мы поочередно рассматривали в паре со второй, третьей и четвертой суммами и после склеивания этих пар получили результат.