<==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}. Сумма рангов (число букв) элементарных конъюнкций множества А является удобным критерием оценки сложности заданной системы булевых функций.
Определение.
Система дизъюнктивных нормальных форм булевых функций называется минимальной, если ее полное множество элементарных конъюнкций содержит минимальное количество букв, а каждая дизъюнктивная нормальная форма булевой функции системы включает минимальное число элементарных конъюнкций наименьшего ранга. При этом дизъюнктивная нормальная форма представления булевой функции в минимальной системе в общем случае не совпадает с ее минимальной дизъюнктивной нормальной формой.
Минимизация систем полностью определенных булевых функций может производиться по алгоритму, аналогичному алгоритму метода Квайна с небольшими отличиями. Алгоритм минимизации следующий.
- Построить полное множество А элементарных конъюнкций минимизируемой системы функций, считая, что вначале каждая из функций системы представлена в СДНФ. Каждой конституенте единицы множества А присвоить признак, содержащий номера функций системы, в которые входит рассматриваемая конституента.
- Произвести минимизацию СДНФ функции f, конституентами единицы которой являются все элементы множества A. При выполнении склеивания двух конституент единицы каждой вновь образуемой элементарной конъюнкции присвоить признак, состоящий из номеров функций, общих для двух склеиваемых конституент единицы (см. примеры). Последнее справедливо и для двух склеиваемых элементарных конъюнкций с признаками. Если признаки склеиваемых конституент единицы не содержат общих номеров, то склеивание не производится. Поглощение производится только для элементарных конъюнкций с одинаковыми признаками. Полученные в результате склеивания и поглощения конъюнкции называются простыми импликантами системы функций.
- Построить импликантную матрицу функции f, аналогичную мат-
риае Квайна с той разницей, что для каждой конституенты единицы
выделяется столько столбцов, сколько различных номеров функций со-
держит ее признак. Покрытие матрицы импликантами производится
аналогично методу Квайна.
Пусть система булевых функций задана таблицей истинности
(табл. 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).