Б.П. ИЛЬИН
старший преподаватель Байкальского государственного университета
экономики и права, г. Иркутск e-mail: [email protected]
ОБ ИСПОЛЬЗОВАНИИ НЕКОТОРЫХ ЭВОЛЮЦИОННЫХ АЛГОРИТМОВ В ЗАДАЧЕ МИНИМИЗАЦИИ БУЛЕВЫХ ФУНКЦИЙ
Дан обзор эволюционных алгоритмов. Рассмотрены результаты поиска параметров алгоритмов для решения задачи минимизации полиномиального представления булевых функций.
Ключевые слова: булевые функции, оптимизация, эволюционные алгоритмы, полиномиальное представление булевых функций.
УДК 510.5 ББК 22.12
B.P. ILYIN
Senior Instructor, Baikal State University of Economics and Law, Irkutsk
e-mail: [email protected]
ABOUT APPLICATION OF EVOLUTIONARY ALGORITHMS IN MINIMIZATION OF BOOLEAN FUNCTIONS
The article provides an overview of evolutionary algorithms and deals with the search results of algorithms parameters for minimizing polynomial representation of Boolean functions.
Keywords: Boolean functions, optimization, evolutionary algorithms, polynomial representation of Boolean functions.
В теории и на практике зачастую возникает задача нахождения минимального представления булевой функции в виде полинома. Она сводится к построению по произвольно заданной булевой функции реализующего ее терма вида «суммы конъюнкций», содержащее минимальное число слагаемых. Точным методом решения этой задачи является метод минимизации полиномиального представления булевых функций с использованием библиотек [4]. Главной его особенностью является тот факт, что достаточно хранить только сложности функций от п - 1 числа переменных.
Такой метод дает точный результат, однако для вычисления сложности функции f нужно перебрать всю библиотеку сложностей функции от п - 1 переменных. Поэтому уже для функций 6-ти переменных это связано с определенными ограничениями для современных компьютеров — крайне затруднительно хранить на жестком диске результирующую библиотеку сложностей (она достигает 8 Эксабайт).
Эволюционные алгоритмы являют собой достаточно мощное средство для нахождения точных или приближенных решений различных оптимизационных задач. Однако краеугольным камнем данного класса алгоритмов является подбор их параметров. В связи с этим выдвинули задачу отыскания таких параметров алгоритмов, при котором сложность полиномиального представления [ 1 ] любой булевой функции 6-ти переменных можно найти за минимальное время, при этом результат будет либо соответствовать точному значению, либо отличаться на единицу.
Предлагаем следующий путь нахождения оптимальных настроек алгоритмов:
1. На первом этапе сгенерируем 100 функций 6-ти переменных, из которых первые десять функций имеют максимальную сложность, остальные девяноста — в порядке возрастания числа единиц в них с 10 до 90%.
2. Сгенерированный массив функций оценивается с помощью алгоритма, позволяющего найти точное значение сложности функции.
© Б.П. Ильин, 2012
3. Методом прямого перебора составляются варианты параметров эволюционных алгоритмов.
4. Для каждого набора параметров определяется количество совпадающих значений, полученных с помощью точного и приближенного алгоритмов, и количество значений, отличающихся от точного на единицу.
5. Полученные результаты подвергаются дальнейшему анализу [2].
Среди эволюционных алгоритмов были выделены следующие: метод роя частиц, алгоритм светлячков, метод отжига и метод поиска гармонии. Перечисленные алгоритмы были реализованы на языке программирования С++. Вычислительные эксперименты производились на суперкомпьютере «Ломоносов» Московского государственного университета.
Метод роя частиц, разработанный С. Эберхартом и Дж. Кеннеди в 1995 г. [6], является формой моделирования социального поведения на примере биологических систем, таких как стаи птиц или рыб.
Метод роя частиц осуществляется следующим образом:
1. Инициализация начальной популяции частиц (здесь под частицей, а также далее под точкой, светлячком и гармонией понимается сгенерированное случайным образом значение функции-параметра).
2. Оценивается положение частиц через определение сложности булевых функций.
3. Инициализация начальных скоростей частиц проводится по аналогии с положением частиц.
4. Из полученных массивов запоминается положение роя (в виде лучшего положения частицы) и положение каждой частицы.
5. Вычисляется новое положение каждой частицы с учетом ее скорости и, в случае, если это положение оказывается лучше предыдущего, то оно запоминается как лучшее.
6. Обновляется значение скорости каждой частицы, исходя из лучшего положения этой частицы и лучшего положения роя в целом.
7. Обновляется положение каждой частицы.
Эта процедура повторяется до тех пор, пока не выполняется критерий останова.
Для метода роя частиц были выделены следующие параметры для поиска:
- число частиц;
- число итераций алгоритма;
- тип генерации первоначальной совокупности частиц:
• первый тип — установка каждого бита функции случайным образом (0 или 1);
• второй тип — генерирование случайного числа (от 0 и до 232) и перевод его в двоичную систему счисления;
• третий тип — генерирование случайным образом части функции длиной 4 бита.
В результате получены следующие выводы:
- при увеличении числа точек и итераций качество получаемых решений возрастает;
- к увеличению качества работы алгоритма можно отнести выбор третьего типа генерации начальной совокупности точек (рис. 1);
- качество работы данного метода является недостаточно высоким.
♦ Первый тип генерации и Второй тип генерации —А— Третий тип генерации
Рис. 1. График зависимости качества решений от числа итераций для метода роя частиц
Метод отжига — это техника оптимизации, использующая упорядоченный случайный поиск на основе аналогии с процессом образования в веществе кристаллической структуры с минимальной энергией при охлаждении [3].
Осуществление метода отжига для данной задачи выглядит следующим образом:
1. Инициализация начальной совокупности точек.
2. Оценивание точек.
3. Инициализация значений новых точек и их оценивание.
4. Запоминание новой точки, если ее приспособленность лучше предыдущей.
5. В случае, если приспособленность хуже, то значение новой точки принимается с определенной вероятностью.
6. Запись лучшего значения.
7. Уменьшение температуры системы.
Эта процедура повторяется до тех пор,
пока температура не достигнет нуля.
Для метода отжига были получены следующие выводы:
- при увеличении числа точек и итераций качество получаемых решений возрастает;
- к увеличению качества работы алгоритма можно отнести выбор третьего типа
генерации начальной совокупности точек (рис. 2);
- как и в случае с методом роя частиц, качество получаемых решений является неудовлетворительным.
Алгоритм светлячков предложен Синь-Ши Янгом в Кембриджском университете в 2007 г. и выполняется следующим образом [7]:
1. Инициализация начальной популяции.
2. Определение приспособленности светлячков.
3. Вычисление матрицы светимостей через отношение расстояния Хэмминга к параметру угасания света.
4. Сравнение приспособленности каждого светлячка и всех остальных, исходя из матрицы светимостей.
5. Если найден светлячок, светящийся ярче, чем текущий, то «двигаться» (уменьшать расстояние Хэмминга) к нему. В противном случае происходит случайное блуждание в своей окрестности.
Повторение действий осуществляется до выполнения критерия останова.
Исходя из эксперимента, качество получаемых решений является очень низким и для дальнейших исследований неприемлемо (рис. 3).
60
50
40
30
20
10
4 Д д. Д А Г'-л.л/
А,/\Л/11 VV * * V
ооооооооооооооооооооооооооооо — ти->г^Оч — ти->г^Оч — ти->г^Оч — ти->г^Оч — ти->г^Оч — ти->г^ — — — — —
♦ Первый тип генерации и Второй тип генерации ^ Третий тип генерации
Рис. 2. График зависимости качества решений от числа итераций для метода отжига
0
♦ Первый тип генерации и Второй тип генерации —А— Третий тип генерации
Рис. 3. График зависимости качества решений от числа итераций для алгоритма светлячков
ЬЖ#т*
ш-Да.н.н.а.ш-Агн.н.н.а.ш-Агта.н.а.а.шгЙа!.
ТЖТЖ1 ГЖТЖТИТЖТЖТИТЖТЖТИТЖТЖТИТЖШIИI ИТИТШТДТДТШТДТДТШДТДТШДТДТЖТДТДТШДТДТШДТДТШДТДТШДТДТШДТДТД
оооооооооооооооооооооооооооо
■*-ГО‘-ПГ'чО'«-ГО‘-ПГ'''чО'«-ГО‘-ПГ'''чО'«-ГО‘-ПГ'''чО'«-ГО‘-ПГ'''чО'«-ГО‘-П Т— Т— Т— Т— Т— гцОЧОЧОЧОЧГОГОГОГОГО'^Г'^Г'^Г'^Г'':Т‘-П‘-П‘-П
♦ Первый тип генерации —■— Второй тип генерации ^ Третий тип генерации
Рис. 4. График зависимости качества решений от числа итераций для метода поиска гармонии
5
0
Метод поиска гармонии — метаэвристи-ческий оптимизационный алгоритм, основанный на том наблюдении, что главной целью музыки заключается отыскание наилучшего состояния гармонии [5].
Реализация метода поиска гармонии:
1. Инициализация начальной совокупности гармоний.
2. Определение приспособленности гармоний.
3. Генерирование случайного числа и сравнение его с параметром Кассе&, если сгенерированное число меньше этого параметра, то запоминаем текущий бит.
4. Генерирование случайного числа и сравнение с параметром £рз, если оно оказалось
меньше, то меняем бит на противоположный. В противном случае ничего не изменяется.
5. Оценка полученных гармоний.
Действия повторяются до выполнения критерия останова.
Для метода поиска гармонии (рис. 4) можно сделать следующий вывод: качество получаемых с его помощью решений не удовлетворяет условиям исходной задачи.
Конечный результат, который получаем после выполнения экспериментов, заключается в том, что нахождение параметров для всех описанных алгоритмов решения задачи минимизации полиномиального представления булевых функций за приемлемое время не представляется возможным.
Список использованной литературы
1. Избранные вопросы теории булевых функций / А.С. Балюк, С.Ф. Винокуров, А.И. Гайдуков [и др.]. М., 2001.
2. Ильин Б.П. Эволюционные алгоритмы в задаче минимизации булевых функций // Известия Иркутского государственного университета. Сер.: Математика. 2011. Т. 4. № 4. С. 66—81.
3. Лопатин А.С. Метод отжига // Стохастическая оптимизация в информатике. 2005. Т. 1. С. 133—149.
4. Gaidukov A. Algorithm to derive minimum ESOPs for 6-variable functions // Proceedings of the 5th International Workshop on Boolean Problems. 2002. P. 141—148.
5. Geem Z.W. Music-inspired harmony search algorithm. Rockville, 2009.
6. Kennedy J., Eberhart C. Particle swarm optimization // In Proceedings of IEEE International Conference on
Neural Networks / IEEE Service Center. Perth, 1995. Iss. 4. R. 1942-1948.
7. Yang X.S. Nature-inspired metaheuristic algorithms. Frome, 2010.
Referenses
1. Izbrannye voprosy teorii bulevykh funktsii / A.S. Balyuk, S.F. Vinokurov, A.I. Gaidukov [i dr.]. M., 2001.
2. Il'in B.P. Evolyutsionnye algoritmy v zadache minimizatsii bulevykh funktsii // Izvestiya Irkutskogo gosu-darstvennogo universiteta. Ser.: Matematika. 2011. T. 4. № 4. S. 66-81.
3. Lopatin A.S. Metod otzhiga // Stokhasticheskaya optimizatsiya v informatike. 2005. T. 1. S. 133-149.
4. Gaidukov A. Algorithm to derive minimum ESOPs for 6-variable functions // Proceedings of the 5th International Workshop on Boolean Problems. 2002. P. 141-148.
5. Geem Z.W. Music-inspired harmony search algorithm. Rockville, 2009.
6. Kennedy J., Eberhart C. Particle swarm optimization // In Proceedings of IEEE International Conference on
Neural Networks / IEEE Service Center. Perth, 1995. Iss. 4. R. 1942-1948.
7. Yang X.S. Nature-inspired metaheuristic algorithms. Frome, 2010.