- •Задания для самостоятельной работы к разд.4.1.1
- •4.1.2 Булева алгебра. Эквивалентные преобразования формул. Двойственные и самодвойственные функции. Алгебра жегалкина
- •Задания для самостоятельной работы к разд.4.1.2
- •4.1.3. Специальные виды формул Разложение функции по переменным. Представление логических функций бинарным графом
- •Совершенная дизъюнктивная и конъюнктивная нормальные формы
- •Совершенная полиномиальная нормальная форма. Полином Жегалкина. Линейные функции
- •Задания для самостоятельной работы к разд. 4.1.3
- •4.1.4 Минимизация булевых функций
- •Метод Квайна
- •1 Этап. Получение сокращенной днф.
- •2 Этап. Получение минимальной (или одной из тупиковых) днф.
- •Метод Блейка-Порецкого
- •Задания для самостоятельной работы к разд. 4.1.4
- •4.2. Функционально-полные системы логических функций.
- •4.2.1. Установление функциональной полноты системы логических функций путем ее сведения к заведомо полной системе
- •4.2.2. Замкнутые классы. Монотонные функции. Критерий функциональной полноты
- •Задания для самостоятельной работы к разд. 4.2
- •Вопросы для повторения
- •Резюме по теме
Метод Блейка-Порецкого
Метод
позволяет получать сокращенную ДНФ
булевой функции f из ее произвольной
ДНФ. Базируется на применении формулы
обобщенного склеивания:
.
В основу метода положено следующее утверждение: если в произвольной ДНФ логической функции произвести все возможные обобщенные склеивания, а затем выполнить все поглощения, то в результате получится сокращенная ДНФ функции .
Пример 4.4. Логическая функция f задана произвольной ДНФ
Найти
методом Блейка-Порецкого сокращенную
ДНФ функции
.
Проводим
обобщенные склеивания. Легко видеть,
что первая и вторая конъюнкции допускают
обобщенное склеивание по переменной
.
В результате склеивания имеем:
Первая
и третья конъюнкции исходной ДНФ
допускают обобщенное склеивание, как
по переменной
,так
и по
.
После склеивания по
имеем:
После
склеивания по
имеем:
Вторая
и третья конъюнкции ДНФ допускают
обобщенное склеивание по переменной
.
После склеивания получаем:
Выполнив последнее обобщенное склеивание, приходим к ДНФ
.
После выполнения поглощений получаем
Попытки дальнейшего применения операции обобщенного склеивания и поглощения не дают результата. Следовательно, получена сокращенная ДНФ функции . Далее задача поиска минимальной ДНФ решается с помощью импликантной матрицы точно также как в методе Квайна.
Задания для самостоятельной работы к разд. 4.1.4
Доказать, что дизъюнкция любого числа импликант логической функции также является импликантом этой функции.
Указание. При доказательстве можно воспользоваться определением импликанта и законом дистрибутивности конъюнкции относительно дизъюнкции (2.3).
Написать подпрограмму, производящую склеивание двух элементарных конъюнкций
и
,
заданных своими векторами вхождения
и обращения, каждый из которых занимает
одно машинное слово (т. е. число переменных
в конъюнкциях меньше, чем разрядность
машины). Результат склеивания также
оформить в виде вектора вхождения и
обращения. Если
и
не склеиваются, то выдавать два нулевых
слова.
Используя результаты задачи 2, программно реализовать минимизацию булевых функций методом Квайна. Исходная логическая функция задается вектором значений.
Указание. При реализации этапа получения сокращенной ДНФ используйте разбивку конъюнкций на пояса (см. выше).
Разработать структуру хранения бинарного графа и реализовать алгоритм его построения, если исходная булева функция задана в ДНФ, каждая элементарная конъюнкция представлена векторами вхождения и обращения. Выбор переменной разложения в алгоритме построения бинарного графа осуществлять произвольно.
Из заданного множества элементарных конъюнкций K выделить простые импликанты
,
если:
1)
,
;
2)
,
;
3)
,
.
С помощью метода Блейка-Порецкого построить сокращенную ДНФ по заданной ДНФ D.
;
;
.
Сокращенную ДНФ функции
,
заданной в виде КНФ, можно получить
следующим образом. Сначала раскрыть
скобки, пользуясь законом дистрибутивности,
затем вычеркнуть из получившейся ДНФ
буквы и конъюнкции, используя правила
,
,
,
.
Например, функция задана КНФ
.
Раскрыв скобки, получим ДНФ функции
.
Применяя указанные выше правила, получим
функцию в сокращенной ДНФ:
.
Получить сокращенную ДНФ функции f заданной КНФ:
;
;
.
Построить все тупиковые ДНФ следующих функций:
;
;
.
Выяснить, являются ли тупиковыми или минимальными следующие ДНФ:
;
;
.
Переменная является существенной переменной функции тогда, и только тогда, когда эта переменная явно входит в сокращенную ДНФ функции . Получить сокращенную ДНФ функции и указать существенные переменные.
;
;
.
