Метод пчелиного роя для решения задач на поиск экстремума функции

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

1. Кажаров А.А. Использование шаблонных решений в муравьиных алгоритмах. / А.А. Кажаров, В.М. Курейчик // Известия Южного федерального университета. Технические науки, 2013. № 7 (144). С. 17-22.

2. Ватутин Э.И. Анализ результатов применения алгоритма муравьиной колонии в задаче поиска пути в графе при наличии ограничений / Э.И. Ватутин, В.С. Титов // Известия Южного федерального университета. Технические науки, 2014. № 12 (161). С. 111-120.

3. Ватутин Э.И. Об одном подходе к использованию алгоритма муравьиной колонии при решении задач дискретной комбинаторной оптимизации / Э.И. Ватутин, В.С. Титов // Интеллектуальные и информационные системы (Интеллект 2015). Тула, 2015. С. 8-13.

4. Штовба С.Д. Муравьиные алгоритмы. Математика в приложениях / С.Д. Штовба // Exponenta Pro. Математика в приложениях, 2003. № 4. С. 70-75.

МЕТОД ПЧЕЛИНОГО РОЯ ДЛЯ РЕШЕНИЯ ЗАДАЧ НА ПОИСК ЭКСТРЕМУМА ФУНКЦИИ Алаева Д.Р. Email: Alaeva640@scientifictext.ru

Алаева Дарья Романовна — студент, кафедра информационных технологий, строительный факультет, Санкт-Петербургский государственный архитектурно-строительный университет, г. Санкт-Петербург

Аннотация: еще с древних времен люди были заинтересованы «роевым поведением» - каким образом так слаженно работают огромные колонии муравьев, как большие стаи птиц упорядоченно передвигаются по небесному пространству, не сбиваясь на протяжении нескольких тысяч километров? Каким образом пчёлы так точно определяют и добывают в необходимом количестве питание для всей их колонии? Все эти коллективные поведения живых существ можно описать одним словом — рой. С развитием человечества и электронно-вычислительной техники инженеры стали моделировать «роевой интеллект» при помощи компьютеров. К сожалению не все их попытки увенчались успехом, но они заложили основные фундаментальные правила. Сам термин «роевой интеллект» был введён учёными Херардо Бени и Ван Цзином в 1989 году.

Существует множество методов, основанных на роевом интеллекте. Алгоритм пчелиного роя является одним из самых распространенных.

Ключевые слова: роевой интеллект, пчелиный алгоритм, метод пчелиного роя.

BEE SWARM METHOD FOR SOLVING THE PROBLEMS OF FINDING THE EXTREMUM OF THE FUNCTION Alaeva D.R.

Alaeva Daria Romanovna — Student, DEPARTMENT OF INFORMATION TECHNOLOGIES, CONSTRUCTION FACULTY, SAINT PETERSBURG STATE UNIVERSITY OF ARCHITECTURE AND CIVIL ENGINEERING,

SAINT PETERSBURG

Abstract: since ancient times, people have been interested in "swarm behavior" - how do huge colony of ants work so smoothly, how large flocks of birds move orderly in the heavenly space without getting lost for several thousand kilometers? How do bees so accurately determine and extract in the required amount offood for their entire colony? All these collective behaviors of living beings can be described in one word - swarm. With the development of mankind and electronic computers, engineers began to model "swarm intelligence" with the help of computers. Unfortunately, not all of their attempts were successful, but they laid down the basic fundamental rules. The term "swarm intelligence" was introduced by scientists Gerardo Beni and Wang Jing in 1989. There are many methods based on swarm intelligence. The algorithm of the bee swarm is one of the most common. Keywords: swarm intelligence, bee algorithm, bee swarm method.

УДК 519.61

DOI: 10.20861/2312-8089-2018-40-004

Алгоритм искусственной пчелиной колонии (далее, пчелиный алгоритм) - алгоритм роевого интеллекта, основан на имитации поведения колонии пчёл, может использоваться в задачах оптимизации. Необходимым условием для его применения является наличие некоторого топологического расстояния или его аналога на области решений [ 1, с. 151].

Алгоритм колонии пчел был предложен Дервисом Карабога в 2005 г. Основная идея— имитация деятельности пчёл в улье при поиске нектара.[4,с.9]

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

1 шаг: Необходимо задать количество пчел-разведчиков Б.В точки со случайными координатами Xр 0 е О , отправляются пчелы-разведчики, где в - номер пчелы разведчика,

Ре [1: ^ ], а 0 обозначает номер итерации в данный момент времени. Считаются значения целевой функции Г(Х) в этих точках.

2 шаг: В области Б с помощью полученных значений выделяют два вида участков

(подобластей) йр. Первый вид содержит п лучших участков, которые соответствуют

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

Подобласть ^р является подобластью локального поиска, представляющая собой гиперкуб в пространстве Як с центром в точке Хр 0 . Длина его сторон равна 2А , где А - параметр,

называемый размером области локального поиска. 3 шаг: Сравнивается евклидово расстояние

Xр,0 _ Xу,0

между двумя агентами-

разведчиками. Для точек А = (Х1, Х2,..., Хп ) и В = (у 1, у 2,..., Уп ) евклидово расстояние

считается по формуле й(А, В) = ^(Хх — у1 ) 2 + (Х2 — у2 ) 2 +... + (Хи — уп ) 2 . Если

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

• поставить в соответствие этим агентам два различных пересекающихся участка йр,

(лучших и/или перспективных);

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

Из этих двух вариантов в работе используется второй вариант.

4 шаг: В каждый из лучших и перспективных участков посылается по по М агентов, соответственно. Координаты этих агентов в указанных участках определяются случайным образом.

5 шаг: В полученных точках снова считается значение целевой функции Е(Х), снова выбирается наибольшее или наименьшее значение. Точка, в которой значение функции является максимальным, становится центром новой подобласти.

6 шаг: Шаги 4 и 5 повторяются до тех пор, пока не будет получен искомый результат, если такой известен, либо до тех пор, пока полученные значения координат экстремумов и значений функции в них не повторятся х раз, где х — параметр останова.

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

Выбрать случайным образом S точек в области D

Посчитать значение целевой функции во всех точках

Выбрать точку б которой целевая функция имеет наибольшее значение

Посчитать евклидово расстояние между выбранной точкой g наибольшим значением функии и другой точкой

Расстояние между точками меньше чем заданное евклидово асстояние?

"Нет-

Рис. 1 (а). Блок-схема метода пчелиного роя

£

Переходим к работе с первой подобластью

- 1 г

Выбираем точку в которой целевая функция имеет наибольшее значение

Определяем область локального поиска со стороной 2Д вокруг этой точки

1 Выбрать случайным обр локально г азом S-1 точек в области го поиска

1 г

Посчитать значение целевой функции в выбранных точках

Рис. 1 (б). Продолжение блок-схемы метода пчелиного роя

Работу данного метода можно рассмотреть на примере двумерной многоэкстремальной функции Шекеля, которая имеет следующий вид:

Z (X y) =

1 + (x - 2)2 + (y -10)2

2 + (x -10)2 + (y -15)2

2 + (x -18)2 + (y - 4)2

Задача ставится следующим образом: «Найти все локальные максимумы функции в области локального поиска Б, где О = {(х, у) | X е [0,20], у е [0,20]} ».

Построим функцию в указанном диапазоне. График функции изображен на рисунке 2. Как видно из графика, функция Шекеля в данной области имеет три локальных максимума. Координаты экстремумов и значения функции в них можно увидеть при построении таблицы значений функции. Далее представлен фрагмент таблицы значений в указанной области.

Рис. 2. График функции Шекеля в диапазоне X е [0,20], у е [0,20] Таблица 1. Фрагмент таблицы значений целевой функции в области D

I'.V 0 3,9 4 4,1 9,9 10 10,1 14,9 15 15,1 20

0 0,0155 0,0312 0,0319 0,0327 0,2102 0,2106 0,2103 0,0465 0,0454 0,0443 0,0191

ОД 0,0156 0,0315 0,0323 0,033 02212 0.2277 0.2273 0,0472 0,046 0,0449 0,0193

1,8 0,0169 0,0351 0,036 0,037 0,9662 0,9755 0,9664 0,057 0,0554 0,054 0,0224

1J> 0,0169 0,0352 0,0362 0,0371 0,9945 1,0043 0,9947 0,0574 0,0559 0,0544 0,0226

2 0,017 0,0353 0,0363 0,0372 1,0044 1,0144 1,0046 0,0578 0,0563 0,0548 0,0228

2,1 0,017 0,0354 0,0363 0,0373 0,9949 1,0047 0,9951 0,0582 0,0566 0,0552 0,023

9,8 0,0223 0,0325 0,0328 0,0331 0,0614 0,0627 0,0639 0,5048 0,507 0,5044 0,0462

9,9 0,0225 0,0327 0,033 0,0332 0,0612 0,0624 0,0637 0,5119 0,5141 0,5115 0,0462

10 0,0227 0,0329 0,0332 0,0334 0,061 0,0622 0,0635 0,5142 0,5165 0,5138 0,0462

10,1 0,0228 0,0331 0,0334 0,0337 0,0608 0,062 0,0633 0,5115 0,5138 0,5112 0,0461

17,9 0,0618 0,5038 0,5064 0,504 0,0422 0,0414 0,0407 0,0274 0,0272 0,0271 0,0179

18 0,0618 0,5062 0,5088 0,5064 0,0419 0,0412 0,0405 0,027 0,0268 0,0267 0,0177

18,1 0,0617 0,5037 0,5062 0,5038 0,0417 0,0409 0,0403 0,0266 0,0264 0,0263 0,0174

20 0,0509 0,1736 0,1739 0,1737 0,0354 0,0348 0,0342 0,0207 0,0205 0,0204 0,014

1

1

1

+

Как видно из таблицы экстремумы функции находятся в точках с координатами (18,4), (2,10), (10,15).

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

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

В первый запуск программы евклидово расстояние равнялось 3, размер области локального поиска А=0.5,количество пчел Б=50. Далее параметры менялись. В результате получились следующие данные, представленные в таблицах 2 и 3.

Евклидово расстояние d= 3 А

S Подобласть 0,5 0,6 0,7

1 5,68 8,66 13,04

50 2 9,74 10,49 12

3 10,2 12,17 14,27

Среднее количество итераций 8,54 10,44 13,103

1 6,07 6,52 8,51

60 2 6,2 7,51 10,44

3 9,01 9,62 10,82

Среднее количество итераций 7,0933 7,8833 9,9233

Таблица 3. Результаты подсчета среднего количества итераций для метода пчелиного роя

Евклидово расстояние d= 5 А

S Подобласть 0,5 0,6 0,7

1 7,13 8,45 10,62

50 2 8,21 10,96 9,8

3 10,13 12,73 14,82

Среднее количество итераций 8,49 10,713 11,747

1 6,53 7,54 8,74

60 2 6,91 7,6 9,97

3 7,71 10,93 11,02

Среднее количество итераций 7,05 8,69 9,91

На основании этих данных можно сделать вывод о том, что метод пчелиного роя сходится тем быстрее, чем больше число пчёл S и чем меньше размер области локального поиска А.

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

На данный момент ученые продолжают работать над развитием пчелиного алгоритма, чтобы модифицировать и оптимизировать его.

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

1. Водолазский И.А. Роевой интеллект и его наиболее распространённые методы реализации // Молодой ученый. / И.А. Водолазский, А.С. Егоров, А.В. Краснов, 2017. № 4.

2. Габасов Р. Методы оптимизации / Габасов Р. Минск: «Четыре четверти», 2011. 472 с.

3. Гришин Ф.Ф. Электронное научно-техническое издание «Наука и образование» / Ф.Ф. Гришин, А.П. Карпенко. Август, 2010.

4. Зайцев А.А. Обзор эволюционных методов оптимизации на основе роевого интеллекта // Известия ЮФУ. Технические науки / А.А. Зайцев, В.В. Курейчик, А.А. Полупанов.

5. Карпенко А.П. Современные алгоритмы поисковой оптимизации. Алгоритмы, вдохновленные природой / А.П. Карпенко. Москва, 2014. МГТУ им. Н.Э. Баумана.

6. Масимканова Ж.А. Обзор современных методов роевого интеллекта для компьютерного молекулярного дизайна лекарственных препаратов / Проблемы информатики / Г.А. Самигулина, Ж.А. Масимканова, 2016.