СПОСОБ МИНИМИЗАЦИИ ДИЗЪЮНКТИВНЫХ НОРМАЛЬНЫХ ФОРМ
БУЛЕВЫХ ФУНКЦИЙ
Р. Н. Песков, В. Н. Щенников
Рассмотрена задача минимизации булевых функций в классе дизъюнктивных нормальных форм. Приведено описание метода, использующего разложение в виде декомпозиционного дерева, для поиска простых импликант. По импликант-ной матрице строится система ограничений и составляется задача линейного программирования. Предложено использовать разбиение системы ограничений в случае большого количества переменных.
Существует большое количество алгоритмов минимизации булевых функций в классе ДНФ. Их обзор и классификация достаточно полно даются в [3]. Переформулировка задачи минимизации в терминах целочисленного линейного программирования приведена в работе [2]. В настоящей статье предлагается модификация этого метода, которая ускоряет поиск минимальной ДНФ.
Прежде, чем воспользоваться аппаратом линейного программирования, необходимо найти все простые импликанты булевой функции. Введем определения из [1]:
Определение 1. Булева функция д = д{х 1, ...,хп) называется импликантой булевой функции / = ¡{х\, ...,жп), если на любом наборе значений переменных хг, на котором значение функции д равно единице, значение функции / также равно единице.
Определение 2. Простой импликантой функции / называется всякое элементарное произведение д = ХгхХ12...хц, являющееся импликантой булевой функции /, и такое, что никакая его собственная часть (т. е. произведение, получающееся из произведения д вы-
брасыванием одного или нескольких сомножителей х^) уже не является импликантой функции /.
Для поиска простых импликант в работе [2] предлагается использовать алгоритм Куайна-Мак-Класки, который является наиболее распространенным. В настоящее время существует способ разложения булевой функции в виде декомпозиционного дерева [4], который имеет меньшую временную сложность, чем алгоритм Куайна-Мак-Класки.
Метод заключается в построении дерева всех 2к возможных декомпозиций функции / от к переменных и применении оператора А в каждом узле дерева.
Декомпозиция есть разбиение функции / на две функции /<5 и /}, которые определяются положительным и отрицательным значениями входной переменной х¿:
/о = /(^1? • • - , Хг—1, 0, Жг+1, • • . , Хк)
А : . _ (1)
/1 > • • • » XI—1,1, , . . . , Хк).
Декомпозиция - это комбинация А-й
и И]-й декомпозиции:
• #
/оо = Дх1> • • • . . . . . . ,Хк)
» •
/01 — /0^1 > • • • ,Хг-1,0,£г+1, • • • 1,2^ + 1, • • .
АД;: . (2)
/10 = • • • ■) Х{—\, 1,Жг+1, . . . 0,3^+1, . . . ,Хк)
© Р. Н. Песков, В. Н. Щенников, 2010
26
ВЕСТНИК Мордовского университета | 2010 | № 4
Полное описание алгоритма приводится в [4]. Здесь используем его только для определения всех простых импликаит в описываемом примере.
Пусть функция / четырех переменных
задана последовательностью нулей и единиц своих значений: 1101010110001100. Будем также получать функции д{ = /о Л /х, г = 1,4. Первый уровень дерева будут составлять декомпозиции , £)г, £>з, £>4.
11010101 11011000 11011011 10001010 Иг : А10001100; £>2 : А01011100; £>з : А01010000; £>4 : А11110010.
дг = 10000100 д2 = 01011000 д3 = 01010000 д4 = 10000010 Второй уровень:
1000 1001 1000
£>12 : А0100; £>13 : А0000; £>14 : А0010;
912 = 0000 рхз = 0000 ^14 = 0000
0110 0010 0000 £>23 : А0100; £)24 : А1100; £>34 : А1100.
д2г = 0100 = 0000 д34 = 0000
При последующем разложении все функции д будут равны 00, поэтому нет необходимости построения третьего уровня.
По лемме 3.1 из [4]: если <7(^+1,а= 1,
то р = •••X®* импликанта функции /,
где
ха% _ Г 0,1 = 1
* \ Хг, сц = 0.
Тогда, учитывая, что часть импликант первого уровня будет поглощена импликан-тами второго уровня, для примера, описанного выше, получим б простых импликант: Х2Х3Х4, 3:2X3X4, X1X3X4, Х1Х4, Х1Х2Х3,
X1X2X3.
После того как все простые импликанты были определены, необходимо построить им-
пликантную таблицу. Импликантная таблица функции / представляет собой прямоугольную таблицу, строки которой обозначаются различными простыми импликантами функции /, а столбцы - наборами значений переменных, на которых функция обращается в единицу (конституентами единицы). Правило заполнения импликантной таблицы следующее: на пересечении р- й строки и К-го столбца импликантной таблицы тогда и только тогда ставится метка, когда импликанта р составляет некоторую часть конституенты К (возможно совпадающую со всей конституен-той).
Для примера, описанного выше, импликантная матрица имеет вид:
Х1Х2Х3Х4 Х1Х2Х3Х4 Х1Х2Х3Х4 Х1Х2Х3Х4 Х1Х2Х3Х4 х1х2х3х4 Х1Х2Х3Х4 Х1Х2Х3Х4
XI Х4 * * * *
Х1Х2Х3 * *
Х1Х3Х4 * *
Х2*3Х4 * *
Х2Х3Х4 * *
* *
Бели в каком-либо столбце имеется только одна метка, то импликанта, стоящая в соответствующей строке, является существенной - без нее не может быть получено покрытие всего множества импликант данной функции. Так как существенные импликанты в любом случае должны входить в ми-
нимальную форму функции, то можно сразу включить их в минимальную форму и не рассматривать далее. Поэтому можно сократить количество операций, исключив из таблицы соответствующие им строки и столбцы тех конституеит, которые покрываются ими. Для рассмотренного выше примера получим:
Серия -«Физико-математические науки»
27
Ж1Х2Х3Х4 Х1Х2Х3Х4 Ж1Х2Х3ж4 Х1Ж2Х3Х4
Х1Х2Х3 * *
х ^ х"з х*4 * *
х2 х3х4 *
^2хЗх4 * *
Х1Х2*3 *
На втором этапе необходимо из простых импликант выбрать минимальное их количество так, чтобы покрывались все конституеи-ты. Из таблицы получим систему ограничений
т
^ ^ ^ -г '^•г ^ — 1 ? 2, . . . ,
(3)
г=1
где коэффициент а^ равен 1 или 0 в зависимости от того, стоит ли метка в ^'-м столбце г-й строке импликантной таблицы, а щ соответствуют простым импликантам р*. Для получения кратчайшей ДНФ минимизируется линейная форма
т
Ь =
г —1
при условии системы ограничений (3) и что щ равно 1 или 0.
Для рассматриваемого примера система (3) и форма Ь будут следующие:
164 4- иъ > 1,
гх2 + > 1,
и\ + и2 > 1,
+ г^з > 1.
Ь = и\ 4- 112 + из + 1*4 + иъ•
Таким образом, получается задача целочисленного линейного программирования. В математическом пакете Ма^ета^са с помощью функции ЫпеагРп^гатгшг^ находим решение: и\ = 1, = 0, и3 = 0, и± = 1, иъ — 0. Отсюда следует, что в кратчайшую ДНФ будут входить первая и четвертая им-пликанты. Добавив их к существенной им-пликанте, определенной ранее, можно получить минимальную ДНФ:
х 1X2X3 V ж2X3X4 V Х1Х4.
В комментариях к [2] указано, что импли-кантная таблица будет иметь размеры порядка т х £ ~ 2П х Т . П1об1обп(1-о 0 < е < 1,
е —> 0 при п —> оо [4]. Поэтому для функций большого количества переменных может потребоваться огромное количество вычислений. В таких случаях предлагается воспользоваться расчленением ограничений.
Пусть дана система ограничений (1): Аи > 1. Представим матрицу коэффициентов в виде
Лц А12 Аг з
А21 Л22 А 23
^31 А32 Азз Введем в рассмотрение матрицы А\ и А2, т. е.
А\
АЦ А12 А21 А22
А2
А22 А23
А32 Азз
Матрица А о = Агг-
Получим две задачи линейного программирования:
т
ь-Т,
Щ
(1)
Ш1П
г = 1
Аги{1) > 1 0 < х(1) < 1
и
т
= Е
1=1
(2) ч и■ —> Ш1П
ъ
А2и{2) > 1
0 < х(2) < 1.
Решив их, найдем Ь — Ь\ + Ь2.
Переставляя строки в импликантной таблице таким образом, чтобы в матрицах А13 и Л31 было больше нулевых элементов, можно добиться, чтобы коэффициент оптимальности 6 — £ был ближе к 1.
28
ВЕСТНИК Мордовского университета | 2010 | «У« 4
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
X. Глушков В. М. Синтез цифровых автоматов / В. М. Глушков. - М. Физматгиз, 1962. -С. 264-267.
2. Майстрова Т. Л. Линейное программирование и задача минимизации нормальных форм булевых функций / Т. Л. Майстрова // Проблемы передачи информации : Сб. - М. : АН СССР, 1962. -Вып. 12. - С. 5-15.
3. Сапоженко А. А. Минимизация булевых функций в классе дизъюнктивных нормальных форм / А. А. Сапоженко, И. П. Чухров // Итоги науки и техники : Сб. - М. : ВИНИТИ, 1987. -Т. 25. - С. 68-116.
4. Priedel М. The Decomposition Tree for analyses of Boolean functions / M. Friedel, S. Nikolajewa, T. Wilhelm // Math. Struct, in Comp. Science. - 2008. - Vol. 18. - P. 411-426.
Поступила 25.10.10.
Серия «Физико-математические науки»
29