- •Элементарные булевы функции. Равносильности
- •Дизъюнктивные нормальные формы
- •Минимизация днф
- •Решение
- •Конъюнктивные нормальные формы
- •Минимизация кнф
- •Решение.
- •Полиномиальное разложение булевых функций
- •Разложение булевых функций в канонический полином Жегалкина
- •Арифметическое разложение булевых функций
- •Решение.
- •Литература
Минимизация днф
Определение.
Элементарная конъюнкция u
называется импликантой
булевой функции
F
, если
.
Например, элементарная конъюнкция является импликантой функции .
Определение.
Если никакая собственная часть
импликанты u
(т.е.
)
булевой функции F
не является импликантой F,
то u
называется простой
импликантой
(т.е. если удаление из u
хотя бы одного литерала нарушает условие
,
то u
– простая
импликанта).
Например,
– простая импликанта булевой функции
,
а импликанта
не является
простой для этой функции , так как
(собственная часть импликанты
)
является импликантой функции F
.
Определение. Дизъюнкция всех простых импликант булевой функции F называется сокращенной ДНФ (СкДНФ) функции F .
Например, – СкДНФ булевой функции . Отметим, что СкДНФ является единственной для конкретной булевой функции F .
Определение. ДНФ булевой функции F , содержащая наименьшее число слагаемых среди всех ДНФ, реализующих функцию F , называется кратчайшей ДНФ (КрДНФ).
Например, – КрДНФ этой же булевой функции F .
Вообще говоря, для заданной булевой функции F существует несколько различных по числу вхождений литералов КрДНФ.
Определение. ДНФ булевой функции F , содержавшая наименьшее число вхождений литералов среди всех ДНФ, реализующих функцию F , называется минимальной ДНФ (МДНФ).
Отметим, что для заданной булевой функции F существует, вообще говоря, несколько МДНФ, отличающихся друг от друга числом слагаемых.
Более того, МДНФ не всегда совпадает с КрДНФ булевой функции n переменных F . Хотя для начальных значений n ( n = 2 или n = 3 ) МДНФ всегда совпадает с КрДНФ). Например, является КрДНФ и МДНФ рассматриваемой функции F.
Задача минимизации булевой функции в классе ДНФ формулируется следующим образом: требуется для булевой функции n переменных F построить ДНФ с минимально возможным числом слагаемых (КрДНФ) или с минимально возможным числом вхождений литералов (МДНФ).
Причем, если раньше (при синтезе контактных схем) основное внимание уделялось построению МДНФ, то в настоящее время (при синтезе логических схем на элементах И,ИЛИ,НЕ, И-НЕ и др.) требуется построение КрДНФ.
Также отметим, что задача минимизации булевых функций n переменных F в классе ДНФ является чрезвычайно громоздкой и ее трудоемкость с ростом n возрастает по экспоненциальному закону.
К настоящему времени разработано около 200 различных методов минимизации булевых функций в классе ДНФ, наиболее известными среди которых являются метод Квайна - Мак-класки, метод Блейк-Порецкого, метод Нельсона, метод неопределенных коэффициентов и др.
Пример.
Составить по таблице истинности СДНФ
булевой функции
и минимизировать ее, применяя законы
склеивания.
Решение
|
|
|
|
|
|
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
СДНФ будет иметь
вид
.
Минимизируем ее, применяя законы склеивания. Подчеркнем конъюнкции, которые можно склеить. Очевидно, что это можно сделать различными способами, например:
,
,
,
.
Выберем один из возможных вариантов склеивания, например: и минимизируем ДНФ:
.
Замечание. При
минимизации ДНФ достаточно часто (но
не всегда!) удается получить лучшие
результаты, если «нарастить» данную
ДНФ, используя свойство идемпотентности
дизъюнкции:
.
Например, в
рассматриваемом примере пятую, последнюю
конъюнкцию
можно было бы склеить со второй конъюнкцией
.
Добавив вторую конъюнкцию еще раз, мы
не изменим саму булеву функцию, но
получим в результате минимизации ДНФ
более короткое ее представление:
.
Пример. Составить СДНФ булевой функции, заданной вектором значений таблицы истинности w(F)=(10010010), и минимизировать ее, применяя законы склеивания.
Решение. Так как вектор значений заданной булевой функции имеет 8=23 разрядов, следовательно, булевой функции соответствует следующая таблица истинности:
|
|
|
F |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
СДНФ будет иметь
вид:
.
К сожалению, минимизировать ее, применяя законы склеивания, невозможно.
