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

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

CC BY
255
42
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
БУЛЕВЫ ФУНКЦИИ / ПОЛИНОМИАЛЬНЫЕ ПРЕДСТАВЛЕНИЯ / МИНИМИЗАЦИЯ / ГЕНЕТИЧЕСКИЕ АЛГОРИТМЫ / BOOLEAN FUNCTIONS / ESOPS / EXCLUSIVE-OR-SUM-OF-PRODUCTS / MINIMIZATION / GENETIC ALGORITHMS

Аннотация научной статьи по математике, автор научной работы — Казимиров Алексей Сергеевич, Реймеров Сергей Юрьевич

В статье рассматривается генетический алгоритм поиска полиномиальных представлений систем булевых функций. В качестве критерия выбора полиномиальных представлений используется сложность полиномов, определяемая по числуслаг аемых.

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

Genetical algorithm obtaining minimal polynomial representations for multi-valued output Boolean functions

This paper concerns ESOP representaions for multi-valued output Boolean functions. Genetical algorithm obtaining close to minimal ESOP representations for multi-output Boolean functions is proposed.

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

Серия «Математика»

2011. Т. 4, № 4. С. 82-86

Онлайн-доступ к журналу: http://isu.ru/izvestia

УДК 519.7

Генетический алгоритм поиска минимальных полиномиальных представлений систем булевых функций *

А. С. Казимиров, С. Ю. Реймеров

Восточно-Сибирская государственная академия образования

Аннотация. В статье рассматривается генетический алгоритм поиска полиномиальных представлений систем булевых функций. В качестве критерия выбора полиномиальных представлений используется сложность полиномов, определяемая по числу слагаемых.

Ключевые слова: булевы функции; полиномиальные представления; минимизация; генетические алгоритмы.

В задачах логического синтеза схем, реализующих булевы функции с применением элементов ’’сложение по модулю 2”, используются полиномиальные представления булевых функций. При этом размер и эффективность логических схем напрямую зависят от выбранных полиномиальных представлений. Из этих соображений определяется понятие сложности полиномов по числу слагаемых. Задачу нахождения полиномов минимальной сложности называют задачей минимизации.

Введем основные определения, используемые в статье.

Мономом назовем произведение переменных и их отрицаний, в которое каждая переменная входит не более одного раза. В частности, мономом является константа 1.

Полиномиальным представлением (полиномом) назовем сумму по модулю два элементов некоторого множества мономов. Пустому множеству мономов соответствует полином, равный константе 0. Множество слагаемых полинома Р обозначим через М(Р). Будем говорить, что полином Pf представляет булеву функцию /(х\,..., хп), если для любо-

1. Введение

* Работа выполнена при финансовой поддержке РФФИ, грант 09-01-00476а.

го двоичного набора а\,...,ап выполняется равенство / (а\,..., ап) =

Р/ (а1, ..., ап).

Каждую булеву функцию можно представить 23 -2 различными полиномами. В качестве одного из критериев оценивания полиномов традиционно рассматривается сложность полинома, которая определяется как число слагаемых в полиноме и обозначается через Ь(Р): Ь(Р ) = |М (Р )|.

Сложность булевой функции определяется как наименьшая из сложностей полиномов, представляющих данную функцию:

Ь(/) = тт |М(Р/)| .

Обозначим через Кп множество всех булевых функций п переменных, а через Ь(п) — наибольшую из сложностей функций п переменных.

Известны алгоритмы нахождения минимальных полиномов для булевых функций от 6 переменных [4]. Для функций большей размерности в настоящий момент алгоритмы нахождения точного значения сложности неизвестны, существуют лишь оценки для некоторых классов функций [1], а также разработаны алгоритмы приближенной минимизации. В частности, разработан генетический алгоритм минимизации булевых функций, который дает приемлемые результаты для функций, имеющих размерность не более 9 [3]. С помощью этого алгоритма получена верхняя оценка сложности всех булевых функций 7 переменных

[2]: Ь(7) < 26.

2. Системы булевых функций

Системой булевых функций назовем множество булевых функций одинаковой размерности Б = {/1(х1,... ,хп),..., /к(х1,... ,хп)}.

Сложность системы Б булевых функций определяется следующим образом:

к

нб) = ршк у м(д),

’ ’ г=1

где каждый из полиномов Р^ представляет функцию /^. При этом не обязательно полиномы будут минимальными, то есть Ь(Р^) > Ь(/^).

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

Для систем из двух булевых функций п переменных выполняется следующее соотношение, которое следует из определения сложности системы:

£({/ъ/2»= тіп (Ь(/і ® д) + Щ2 ® д) + £(#)). (1)

п(- И п

Для любой булевой функции / (х1,..., хп+1) выполняется тождество

/ = х1(/°1 ф 9) ф х1(/ж11 ф #) ф ^ (2)

где ^(х2,..., хп+1) — произвольная функция п переменных, а функции /0 (х2,..., хп+1) и /1 (х2,..., хп+1) получаются подстановкой констант 0 и 1 в функцию / вместо переменной хь

Любой полином соответствующей группировкой слагаемых можно привести к виду (2), в том числе и полином минимальной сложности. Следовательно,

ь(/) = тп (ь(/°1ф 5)+ь(/1ф 5)+ь(5)). (3)

д^г п

Данное равенство применяется в различных алгоритмах минимизации. В частности, оно используется в алгоритме точной минимизации булевых функций 6 переменных [4] и алгоритмах приближенной минимизации функций большей размерности.

Если выбрать функцию / таким образом, чтобы выполнялось равенство /(х1, . . .,хп+1) = х1 /1 (х2, . . .,хп+1) фх/2(х2, . . .,хп+1), то есть будут выполняться равенства /0 = /1 и /1 = /2, то из формул (1) и

(3) будет следовать, что

Д/ )= ВДьЫ).

Таким образом, задачу минимизации системы двух функций размерности п можно свести к задаче минимизации булевой функции размерности п + 1. Для систем из двух булевых функций 5 переменных таким способом можно найти точный минимум.

Использовать данный подход для функций большего числа аргументов не представляется возможным, так как порядок перебора будет превышать 264 вариантов. Системы двух функций большой размерности можно минимизировать приближенно с помощью генетического алгоритма минимизации булевых функций [3].

Для систем, состоящих из трех и более функций, такая переформулировка задачи не срабатывает. В связи с этим предлагается использовать генетический алгоритм приближенной минимизации систем, отличный от алгоритма минимизации функций.

3. Генетический алгоритм минимизации систем булевых

функций

Рассмотрим систему, состоящую из к булевых функций от п переменных: Б = {/1, ...,/к}.

Индивидуумом (особью) будем считать набор из к множеств мономов от п переменных {М1,..., Мк} — по одному множеству на каждую из

+ р(/г ф Р(Мг))-

і=1

функций системы 5. Слагаемые, оказавшиеся в каком-либо из множеств Мг, будем считать общими для некоторых функций системы (может оказаться, что какие-то слагаемые будут встречаться всего один раз).

к

Таким образом, множество всех общих слагаемых будет равно и Мг.

г=1

Определим функцию приспособленности следующим образом:

к

3 ({М1,...,Мк })= и Мг

г=1

Здесь через Р(Мг) обозначен полином, равный сумме всех мономов из множества Мг.

Функция приспособленности дает верхнюю оценку сложности системы булевых функций и выделенное множество общих слагаемых, на котором эта оценка достигается. Таким образом, необходимо найти минимум функции 3 по всевозможным наборам мономов.

Генетический оператор мутации реализуется в виде добавления или удаления монома в любое из множеств. Генетический оператор кроссовера реализуется в виде обмена мономами между соответствующими множествами мономов для двух индивидуумов.

Одна итерация генетического алгоритма заключается в применении операторов мутации и кроссовера к случайным образом выбранным индивидуумам из популяции. Новые индивидуумы оцениваются и из старой и новой популяции выбираются лучшие индивидуумы для следующей итерации.

Данный алгоритм был реализован с использованием языка С++ и протестирован на 1000 случайным образом сгенерированных системах из двух булевых функций и на 1000 системах из трех булевых функций.

Для систем из двух булевых функций сложность найденных полиномиальных представлений в среднем на 0,47 превышает сложность представлений, полученных алгоритмом точной минимизации.

В таблице 1 представлено распределение отклонений от точного минимума для сгенерированных систем.

Таблица 1.

Распределение отклонений от точного минимума

Отклонение 0 1 2 3

Количество 570 395 34 1

При этом время минимизации одной системы генетическим алгоритмом на порядок меньше времени работы алгоритма точной минимизации.

Для систем из трех булевых функций средняя сложность найденных полиномиальных представлений на 3,1 меньше сложности, которую можно получить, минимизируя каждую из функций по отдельности.

Список литературы

1. Винокуров С. Ф. О сложности одного класса булевых функций / С. Ф. Винокуров, А. С. Казимиров // Изв. Иркут. гос. ун-та. Сер. Математика. - 2010. -Т. 3, № 4. - С. 2-6.

2. Казимиров А. С. Вычислительная оценка сложности полиномиальных представлений булевых функций / А. С. Казимиров, С. Ю. Реймеров // Изв. Иркут. гос. ун-та. Сер. Математика. - 2010. - Т. 3, № 4. - С. 33-43.

3. Казимиров А. С. Параллельные генетические алгоритмы в задачах минимизации булевых функций / А. С. Казимиров // Вестн. ТГУ. Приложение. -2006. - № 17. - С. 226-230.

4. Gaidukov A. Algorithm to derive minimum ESOPs for 6-variable functions / A. Gaidukov // Proceedings of the 5th International Workshop on Boolean Problems 2002. Freiberg, Germany, Sept. 19-20. - 2002. - P. 141-148.

A. S. Kazimirov, S. U. Reymerov

Genetical algorithm obtaining minimal polynomial representations for multi-valued output Boolean functions

Abstract. This paper concerns ESOP representaions for multi-valued output Boolean functions. Genetical algorithm obtaining close to minimal ESOP representations for multi-output Boolean functions is proposed.

Keywords: boolean functions; ESOPs; exclusive-or-sum-of-products; minimization; genetic algorithms.

Казимиров Алексей Сергеевич, кандидат физико-математических наук, доцент, Восточно-Сибирская государственная академия образования, 664011, Иркутск, ул. Н. Набережная, 6, тел.: (3952) 200567 (a.kazimirov@gmail.com)

Реймеров Сергей Юрьевич, аспирант, Восточно-Сибирская государственная академия образования, 664011, Иркутск, ул. Н. Набережная, 6, тел.: (3952) 200567 (sergeyreym@gmail.com)

Alexey Kazimirov, East Siberian State Academy of Education, 6, N. Naberezhnaya St., Irkutsk, 664011, phone: (3952) 200567

(a.kazimirov@gmail.com)

Sergey Reymerov, East Siberian State Academy of Education, 6, N. Naberezhnaya St., Irkutsk, 664011, postgraduate student, phone: (3952) 200567 (sergeyreym@gmail.com)

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