Научная статья на тему 'Способ минимизации дизъюнктивных нормальных форм булевых функций'

Способ минимизации дизъюнктивных нормальных форм булевых функций Текст научной статьи по специальности «Математика»

CC BY
487
60
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук

Аннотация научной статьи по математике, автор научной работы — Песков Роман Николаевич, Щенников Владимир Николаевич

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Песков Роман Николаевич, Щенников Владимир Николаевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Способ минимизации дизъюнктивных нормальных форм булевых функций»

СПОСОБ МИНИМИЗАЦИИ ДИЗЪЮНКТИВНЫХ НОРМАЛЬНЫХ ФОРМ

БУЛЕВЫХ ФУНКЦИЙ

Р. Н. Песков, В. Н. Щенников

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

Существует большое количество алгоритмов минимизации булевых функций в классе ДНФ. Их обзор и классификация достаточно полно даются в [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

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Аги{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

i Надоели баннеры? Вы всегда можете отключить рекламу.