<==Back

Булевы Функции

Минимизация систем булевых функций.

"На практике очень часто приходится реализовывать совокупности булевых функций. Если произвести минимизацию булевых функций, входящих в систему, независимо друг от друга, то общая схема будет состоять из изолированных подсхем. Ее можно иногда упростить за счет объединения участков подсхем, реализующих одинаковые члены, входящие в несколько булевых функций системы. Задача минимизации систем булевых функций хорошо исследова на в классе функционально полных систем: "дизъюнкция", "конъюнк ция", "отрицание". Рассмотрим один из наиболее распространенных методов минимизации. Пусть задана система полностью определенных булевых функций, представленных в дизъюнктивной нормальной форме, например:
f1(x1,x2,x3) = x1/x3 v x1/x2 v /x1x3;
f2(x1,x2,x3) = x1/x2 v /x1x3 v /x1x2;
f3(x1,x2,x3) = x1x2 v /x1/x2/x3,
Все различные элементарные конъюнкции системы функций объединим в множество А, которое назовем полным множеством элементарных конъюнкций cистемы функций. В нашем случае А = {x1/x3; x1/x2; /x1x3; /x1x2; x1x2; /x1/x2/x3}. Сумма рангов (число букв) элементарных конъюнкций множества А является удобным критерием оценки сложности заданной системы булевых функций.

Определение.
Система дизъюнктивных нормальных форм булевых функций называется минимальной, если ее полное множество элементарных конъюнкций содержит минимальное количество букв, а каждая дизъюнктивная нормальная форма булевой функции системы включает минимальное число элементарных конъюнкций наименьшего ранга. При этом дизъюнктивная нормальная форма представления булевой функции в минимальной системе в общем случае не совпадает с ее минимальной дизъюнктивной нормальной формой.

Минимизация систем полностью определенных булевых функций может производиться по алгоритму, аналогичному алгоритму метода Квайна с небольшими отличиями. Алгоритм минимизации следующий. Пусть система булевых функций задана таблицей истинности (табл. 5.1). Найдем минимальную ДНФ системы булевых функций.

Таблица 5.1
x1x2x3 f1 f2
000
001
010
011
100
101
110
111
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0

Представим каждую из функций системы в СДНФ:
f1 = /x1/x2/x3 v x1/x2x3 v x1x2/x3 v x1x2x3;
f2 = /x1/x2/x3 v /x1x2/x3 v /x1x2x3 v x1/x2x3.
1.   Построим полное множество А элемейтарных конъюнкций полученной системы, приписывая каждой конституенте единицы признак вхождения в функции f1 и f2:
A = {/x1/x2/x3(1,2); /x1x2/x3(2); /x1x2x3(2); x1/x2x3(1,2); x1x2/x3(1); x1x2x3(1)}.
2.   Построим СДНФ функции ф:
ф = /x1/x2/x3(1,2) v /x1x2/x3(2) v /x1x2x3(2) v x1/x2x3(1,2) v x1x2/x3(1) v x1x2x3(1).
Для удобства выполнения склеивания пронумеруем каждую конституенту единицы из СДНФ функции ф и выполним все склеивания:

ф = /x1/x2/x3(1,2) v /x1x2/x3(2) v /x1x2x3(2) v x1/x2x3(1,2) v x1x2/x3(1) v x1x2x3(1);
1 2 3 4 5 6

1 - 2: /x1/x3(2) v /x1x2x/3(2) v /x1/x2/x3(1,2);
2 - 3: /x1x2(2) v /x1x2x3(2) v /x1x2x3(2);
4 - 6: x1x3(1) v x1/x2x3(1,2) v x1x2x3(1);
5 - 6: x1x2(1) v x1x2/x3(1) v x1x2x3(1);
После проведения всех поглощений, с учетом признака каждой конъюнкции, получим:
ф = /x1/x3(2) v x1x3(1) v /x1x2(2) v x1x2(1) v x1/x2x3(1,2) v /x1/x2/x3(1,2);
Дальнейшие склеивания и поглощения невозможны. Получены простые импликанты минимизируемой системы булевых функций.
3.   Строим импликантную матрицу (табл. 5.2). Столбцы матрицы помечаем конституентами единицы из СДНФ функции ф. Для каждой конституенты единицы отводим столько столбцов матрицы, сколько различных номеров функций содержит признак конституенты. Строки матрицы помечаем простыми импликантами системы булевых функций. Заполнение матрицы аналогично методу Квайна. Ядром функции ф, очевидно, являются простые импликанты /x1/x2/x3(1,2); /x1x2(2); x1/x2x3(1,2); x1x2(1), где для соответствующих конституент единицы функции ф имеется единственная отметка на пересечении столбца и строки импли-кантной матрицы. Выделенное ядро покрывает все конституенты единицы из СДНФ функции ф.

Таблица 5.2
Простые
импликанты
системы
функций
Конституенты единици функции Ф
/x1/x2/x3 /x1x2/x3 /x1x2x3 x1/x2x3 x1x2x3 x1x2/x3
1 2 2 2 1 2 1 1
/x1/x3 (2) X X
x1x3 (1) X X
/x1x2 (2) X X
x1x2 (1) X X
x1/x2x3 (1,2) X X
/x1/x2/x3 (1,2) X X

В соответствии с этим имеем:
ф = /x1/x2/x3(1,2) v x1/x2x3(1,2) v /x1x2(2) v x1x2(1).
Выделив для функции fi импликанты с признаком, включающим i, получим следующую минимальную дизъюнктивную нормальную форму системы функций:
f1 = /x1/x2/x3 v x1/x2x3 v x1x2;
f2 = /x1/x2/x3 v x1/x2x3 v /x1x2.
К недостаткам изложенного метода следует отнести большую трудоемкость проведения операций склеивания и поглощения с признаками."


Использованная литература:
1) "Прикладная теория цифровых автоматов"    Киев "Вища Школа" 1987
    К.Г. Самофалов, А.М. Романкевич, В.Н. Валуйский,
    Ю.С. Каневский, М.М. Пиневич
    страницы (213 - 215).

Hosted by uCoz