УДК 519.876.5 DOI: 10.17213/0321-2653-2015-4-22-27
ВАРИАНТ РЕАЛИЗАЦИИ РОЕВОГО АЛГОРИТМА ЛЕТУЧИХ МЫШЕЙ VARIANT IMPLEMENTATION OF BATS SWARM ALGORITHM
© 2015 г. Д.В. Гринченков, В.А. Мохов, С.А. Пивоваров, Л.Л. Романов
Гринченков Дмитрий Валерьевич - канд. техн. наук, доцент, зав. кафедрой «Программное обеспечение вычислительной техники», Южно-Российский государственный политехнический университет (НПИ) имени М.И. Платова, г. Новочеркасск, Россия. E-mail: [email protected]
Мохов Василий Александрович - канд. техн. наук, доцент, Южно-Российский государственный политехнический университет (НПИ) имени М.И. Платова, г. Новочеркасск, Россия. E-mail: [email protected]
Пивоваров Сергей Александрович - студент, ЮжноРоссийский государственный политехнический университет (НПИ) имени М.И. Платова, г. Новочеркасск, Россия. E-mail: [email protected]
Романов Леонид Леонидович - студент, Южно-Российский государственный политехнический университет (НПИ) имени М.И. Платова, г. Новочеркасск, Россия. E-mail: [email protected]
Grinchenkov Dmitriy Valerievich - Candidate of Technical Sciences, assistant professor, head of department «Software computer engineering», Platov South-Russian State Polytechnic University (NPI), Novocherkassk, Russia. E-mail: grindv@ yandex.ru
Mokhov Vasily Aleksandrovich - Candidate of Technical Sciences, assistant professor, Platov South-Russian State Polytechnic University (NPI), Novocherkassk, Russia. E-mail: mokhov_v@mail. ru
Pivovarov Sergey Aleksandrovich - student, Platov South-Russian State Polytechnic University (NPI), Novocherkassk, Russia. E-mail: [email protected]
Romanov Leonid Leonidovich - student, Platov South-Russian State Polytechnic University (NPI), Novocherkassk, Russia. Email: [email protected]
Представлено исследование одного из алгоритмов роевого интеллекта - алгоритма летучих мышей на примере решения задачи поисковой оптимизации для вещественной функции. Разработана программа на языке Java, в которой представлено несколько функций для проведения экспериментов. В программе реализована возможность изменения основных параметров алгоритма для изучения их влияния на эффективность поиска экстремумов. Для указания значений доступны: размер популяции, количество итераций, ограничения на область поиска, начальная скорость агента, частота, громкость испускаемого импульса, а также вероятностные параметры для локального и глобального поиска. В результате экспериментов с алгоритмом выявлены различия во времени и абсолютной погрешности получаемых результатов в зависимости от начальных значений количества агентов и количества выполняемых итераций. Описание алгоритма и результаты экспериментов детально представлены в работе. Предложенный алгоритм может быть успешно использован для решения практических задач.
Ключевые слова: алгоритм летучих мышей; агент; оптимизация; метаэвристики; эхолокация; роевой интеллект.
This article contains study of one of the swarm algorithm - artificial bat algorithm on example of solving the problem of search engine optimization for real function. Authors have developed a program that includes several functions for experiments. In program realized possibility to change the basic parameters of algorithm to study their effect on the efficiency of search of extrema. User of program can set values of following variables: population size, number of iterations, restrictions on scope of search, initial velocity of agent, frequency, volume of emitted pulses and probability parameters for the local and global search. Experiments with algorithm revealed differences in time and absolute accuracy of results depends on initial values of number of agents and number ofperformed iterations. Steps of algorithm and experimental results are described in detail. The proposed algorithm can be successfully used to solve practical problems.
Keywords: artificial bat algorithm; metaheuristics; echolocation; swarm intelligence.
Многие научные достижения получены на основе использования природных аналогий [1]. На сегодня известна большая группа алгоритмов, инспирированных природой, под общим названием «метаэври-стики» [2]. Метаэвристики ориентированы на решение задач поисковой оптимизации и имеют вероятностный характер.
Известной разновидностью метаэвристик является класс роевых алгоритмов (или алгоритмов роевого интеллекта), описывающих коллективное поведение децентрализованных самоорганизующихся многоагентных систем. Термин «роевой интеллект» был выведен Херардо Бени и Ван Цзыном в 1989 г., в контексте системы клеточных роботов [3, 4]. Отличия между алгоритмами определяются особенностями их программной реализации в каждом конкретном случае [5, 6]. Основные отличия между роевыми алгоритмами заключаются в поведении отдельных агентов и способах организации их взаимодействия [7]. Данные алгоритмы широко рассматриваются в литературе по искусственному интеллекту [8 - 10].
В данной работе исследуется эффективность одного из оптимизационных роевых алгоритмов - алгоритма летучих мышей (АЛМ). Этот алгоритм инспирирован живой природой и имеет множество вариантов реализации.
Изначально АЛМ был описан Янгом (X-Sh. Yang) в 2010 г. и является одним из лучших алгоритмов роевого интеллекта. Более того, гармонический поиск и алгоритм роя частиц являются особыми случаями АЛМ. При достаточно высокой относительной сложности АЛМ весьма эффективен в решении задач глобальной поисковой оптимизации [11].
Летучие мыши обладают уникальным средством эхолокации. Эхолокация используется мышами для обнаружения пищи и препятствий, а также обеспечивает возможность размещения в темноте на насесте [12].
Базовый АЛМ подчиняется следующим правилам:
1. Все летучие мыши используют эхолокацию, чтобы определять расстояние, обнаруживать пищу и препятствия.
2. Каждый агент - летучая мышь характеризуется скоростью, позицией в пространстве, частотой, длиной волны и амплитудой испускаемого звукового импульса.
3. Громкость звуковых импульсов меняется случайным образом, но в пределах фиксированного диапазона.
Схема реализованного авторами алгоритма представлена на рис. 1 и описана ниже в виде последовательности действий. Перечень используемых переменных, с их обозначениями внутри алгоритма и описанием назначений, представлен в табл. 1.
Нет
кз>
ж
т
Рис. 1. Схема роевого алгоритма летучих мышей
Таблица 1
Используемые переменные
Обозначение Описание назначения
S Количество агентов
N Количество итераций
Xmin Минимальное значение области поиска
Xmax Максимальное значение области поиска
Vo Начальная скорость
wmin Минимальная частота
wmax Максимальная частота
Er Значение вероятности для локального
Ea Значение вероятности для глобального
n Текущее значение итерации
i Номер агента
Xi Значение положения агента с номером 1
Vi Значение скорости агента с номером 1
Wi Значение частоты агента с номером 1
k Номер лучшего агента
XXi Значение агента во время локального поиска (возможно новое решение)
üi Значение громкости агента с номером 1
X Значение лучшего агента
1. Для проведения экспериментов формируется набор анализируемых функций с реализацией соответствующих процедур (в данном случае реализовано две функции: F(x) = sin(x) и F(x) = -х2 + 12х - 21).
2. Все агенты нумеруются по i, ie [0; 5].
3. Случайным образом расставляются начальные положения агентов в пространстве поиска:
xе(xmm, хтахХ х, С^'Ъ-^.^-^Х
х хтт + (хтах-хтт)*гап^).
При этом функция гаМ() возвращает значения в интервале [0;1]
4. Задается начальная скорость для каждой мыши: V, = V, = Vo.
5. Задается начальная частота wi =
^г = Wmin.
6. Если г < 5, то возвращаемся на шаг 3.
7. Находится лучший агент. Его значение х, подставляется в выражение анализируемой функции F(X).
Ближайшее к экстремуму значение агента (в нашем случае к максимуму) считается лучшим.
k - номер лучшего агента, х = тах^(х)).
8. Выполняется миграция агентов: агенты перемещаются на один шаг в соответствии с используемой миграционной процедурой.
9. Организуется выполнение итераций по п, пе[0;Ы].
10. Все агенты нумеруются по ,, ,е [0;5].
11. Вычисляются новые значения положения, скорости и частоты для агента - х1,, Vи wIi. Модифицируется частота: WIi = Wmm + ^тах - Wmin)*randO.
12. Выполняется модификация скорости: V= = VI + wi(x - х,), где (х - х,) - приближение всех агентов к лучшему.
13. Выполняется перемещение агента в соответствии с формулой: х1, = х, + V,.
14. Если г < 5, то выполняется переход на шаг 11.
15. Если Ег > = гаМ(), то запускается процедура локального поиска (переход на шаг 16), иначе выполняется переход на шаг 21.
Процедура поиска в окрестности лучшего решения проводится с вероятностью Ег. Полученное решение применяется в качестве нового текущего положения агента х,.
16. Все агенты нумеруются по ,, ,е [0;5].
17. Если поиск выполняется не в первый раз, то выполняется переход на шаг 19. В противном случае: вычисляется громкость по формуле: а, = (аь а2 ... а5); а1, = аmin + (атах - amin)*rаnd(), где а1, - новое значение громкости и выполняется переход на шаг 18.
18. Находится средняя громкость: а^ = (Е5 = 0а)/5.
19. Выполняется улучшение текущей позиции: хх1, = х, + а^Ц^-1,1].
Функция Ц[-1,1] возвращает случайное значение в интервал [-1;1].
20. Процедура локального поиска выполняется до тех пор, пока агент не станет ближе к цели: F(xxi) > > F(x/).
21. Выполняется ограничение области поиска:
хх, = тах{хтиъ х,}, хх, = min{xmax, х,}.
22. Проводится глобальный поиск: с вероятностью Еа проводится процедура глобального поиска в окрестности текущего решения для всех ,-х агентов, ,е [0;5].
23. Если F(x)<F(xxi) и Ea>rand(), то принимается новое решение: х, = хх
24. Если , < 5, то выполняется переход на шаг 22.
25. Выполняется ограничение области поиска для всех ,-х агентов, ,е [0;5].
26. Если х, < Xmin, тогда: х, = хтт, V, = vo.
27. Если х, > хтах, тогда: х, = хтах, V, = Vo.
28. Если , < 5, то выполняется переход на шаг 25.
29. Если п < Ы, то выполняется переход на шаг 10.
После выполнения всех итераций в качестве ответа принимается значение х*.
В ходе исследования была разработана программа, интерфейс которой представлен на рис. 2 и 3.
На рис. 2 представлены результаты поиска максимума вещественной функции /х) = sin(x) в интервале от 3 до 9 радиан. Заданные значения параметров для работы алгоритма показаны в левой части окна программы, а расположение агентов в момент последней итерации отображается справа в виде кружков на графике исследуемой функции. Номер лучшего агента и результат, полученный им, показаны под графиком функции. На рис. 3 аналогичным образом представлены результаты исследования функции /(х) = -х2 + 12х - 21.
В ходе проведенных экспериментов были получены следующие результаты (табл. 2 и 3).
В табл. 2 представлены значения времени работы алгоритма для заданных количества итераций и размера популяции, а в табл. 3 находятся соответствующие значения абсолютной погрешности, вычисленной по модулю.
Один из графиков для зависимостей, представленных в таблицах, показан на рис. 4. Здесь иллюстрируется график зависимости времени работы алгоритма от количества агентов для 50 итераций.
Полученные зависимости указывают на то, что при увеличении числа агентов возрастает точность работы алгоритма. Однако, если увеличивать размер популяции и количество итераций, то время выполнения алгоритма значительно возрастает. Даже при 20 агентах и 100 итерациях примерное время выполнения занимает 30^50 с.
Рис. 2. Результаты исследования функции fx) = sin(x)
Рис. 3. Результаты исследования функции f x) = -x2 + 12x - 21
Таблица 3
Зависимость абсолютной погрешности алгоритма от количества итераций и размера популяции
Таблица 2
Зависимость времени работы алгоритма от количества итераций и размера популяции
№ Количество итераций Функция Размер популяции
5 10 15 20 50 100
1 10 fx) = sin(x) 2,88 3,23 3,82 3,71 2,84 3,03
fx) = -x2 + 12x - 21 2,85 3,12 2,98 2,99 3,01 3,00
2 20 fx) = sin(x) 5,15 5,70 6,32 6,34 5,36 7,43
fx) = -x2 + 12x - 21 5,26 5,22 5,12 5,19 5,37 5,09
3 50 fx) = sin(x) 11,97 12,10 12,38 12,01 12,62 13,58
fx) = -x2 + 12x - 21 12,27 12,08 12,22 12,30 12,36 13,50
4 100 fx) = sin(x) 24,39 42,08 31,72 37,52 118,08 214,38
fx) = -x2 + 12x - 21 24,37 28,25 39,53 53,35 77,33 151,18
№ Количество итераций Функция Размер популяции
5 10 15 20 50 100
1 10 fx) = sin(x) 0,0239 0,0507 0,0017 0,0012 0,00026 0,00018
fx) = -x2 + 12x - 21 0,00066 0,1112 0,01111 0,1114 0,00005 0,0008
2 20 fx) = sin(x) 0,0079 0,0017 0,00063 0,00083 0,000079 0,00019
fx) = -x2 + 12x - 21 0,0085 0,01131 0,0011 0,11131 0,00004 0,00001
3 50 fx) = sin(x) 0,00043 0,00011 0,00058 0,00042 0,00026 0,00002
fx) = -x2 + 12x - 21 0,1115 0,01113 0,10111 0,000005 0,000001 0,111112
4 100 fx) = sin(x) 0,00085 0,00006 0,000041 0,000012 0,000004 0,000003
fx) = -x2 + 12x - 21 0,01113 0,00000007 0,000000002 0,011111 0,000111 0,00000004
Рис. 4. График зависимости времени работы алгоритма от количества агентов при 50 итерациях: 1 - Д х) = sin(x); 2 - Д х) = -х2 + 12х - 21
В заключение следует отметить, что представленная реализация алгоритма летучих мышей показала хорошую работоспособность и возможность настройки параметров алгоритма для изменения качества получаемых результатов в решении задач поисковой оптимизации вещественных функций.
Литература
1. Кузнецова А.В., Мохов В.А., Туровская Е.В. Моделирование процесса оптимального размещения товаров на складе самообслуживания на основе эволюционных алгоритмов поиска [Электронный ресурс] // Инженерный вестн. Дона. 2014. № 1. URL: http://www.ivdon.ru/ magazine/archive/n1y2014/2276 (дата обращения: 01.09.2015).
2. Blum C., Rol A. Metaheuristics in combinatorial optimization: Overview and conceptual comparison // ACM Computing Surveys. 2003. №35 (3). P. 268 - 308.
3. Миллер П. Роевой интеллект: Муравьи, пчелы и птицы способны многому нас научить // National Geographic. Россия. 2007. № 8. С. 88 - 107.
4. Скобцов Ю.А. Метаэвристики. Донецк: Ноулидж, 2013. 426 с.
5. Гринченков Д.В., Ситалов Д.С. Особенности программной реализации системы моделирования перемещения аватара в виртуальной среде // Изв. вузов. Сев.-Кавк. регион. Техн. науки. 2012. № 4. С. 25 - 29.
6. Гринченков Д.В., Кущий Д.Н. Принципы построения программного продукта для поддержки процесса принятия решений на основе интегрированных экспертных оценок // Изв. вузов. Электромеханика. 2012. № 5. С. 69 - 73.
7. Мохов В.А., Георгица И.В., Гончаров С.А. Мультиагент-ное моделирование сетевой атаки типа DDoS [Электронный ресурс] // Инженерный вестн. Дона. 2013. № 3 -Режим доступа - URL: http://ivdon.ru/magazine/archive/ n3y2013/1852 (дата обращения: 01.09.2015).
8. Xin-SheYang. ANewMetaheuristic Bat-Inspired Algorithm. [Электронный ресурс] - URL: http://arxiv.org/pdf/ 1004.4170.pdf (дата обращения: 01.09.2015).
9. Роевой интеллект. [Электронный ресурс] - URL:
http://en.wikipedia.org/wiki/Swarm_intelligence (дата обращения: 08.07.2015).
10. Мохов В.А., Бородулина Е.Н. К вопросу о параметрической оптимизации роевых алгоритмов // Изв. ЮФУ. Техн. науки. 2014. № 4. С. 230-234.
11. Карпенко А.П. Популяционные алгоритмы глобальной поисковой оптимизации. Обзор новых и малоизвестных алгоритмов // Приложение к журналу «Информационные технологии». 2012. № 7.
12. Карпенко А. П. Современные алгоритмы поисковой оптимизации. Алгоритмы, вдохновленные природой: учебное пособие. М.: Изд-во МГТУ им. Н.Э. Баумана, 2014. 231 с.
References
1. Kuznetsova A.V., Mokhov V.A., Turovskaya E.V. Modelirovanie protsessa optimal'nogo razmeshcheniya tovarov na sklade samoobsluzhivaniya na osnove evolyutsionnykh algoritmov poiska [Modeling of process of optimum placement of goods in a self-service warehouse on the basis of evolutionary algorithms of search]. Available at: http://www.ivdon.ru/magazine/archive/ n1y2014/2276 (accessed 01.09.2015).
2. Blum C., Rol A. Metaheuristics in combinatorial optimization: Overview and conceptual comparison // ACM Computing Surveys. 2003. №35 (3). P. 268 - 308.
3. Miller P. Roevoi intellekt: Murav'i, pchely i ptitsy sposobny mnogomu nas nauchit' [Royeva intelligence: Ants, bees and birds are capable to teach much us]. National Geographic. Russia, 2007, no. 8. pp. 88 - 107. [In Russ.]
4. Skobtsov Yu.A. Metaevristiki [Metaheuristics]. Donetsk, Noulidzh Publ., 2013, 426 p.
5. Grinchenkov D.V., Sitalov D.S. Osobennosti programmnoi realizatsii sistemy modelirovaniya peremeshcheniya avatara v virtu-al'noi srede [Features of program realization of system of modeling of movement of an avatar in the virtual environment]. Izv. vuzov. Sev.-Kavk. region. Tekhn. nauki, 2012, no. 4, pp. 25 - 29. [In Russ.]
6. Grinchenkov D.V., Kushchii D.N. Printsipy postroeniya programmnogo produkta dlya podderzhki protsessa prinyatiya reshenii na osnove integrirovannykh ekspertnykh otsenok [The principles of creation of the software product for support of decision-making process on the basis of the integrated expert estimates]. Izv. vuzov. Elektromekhanika = Russian Electromechanics, 2012, no. 5, pp. 69 - 73. [In Russ.]
7. Mokhov V.A., Georgitsa I.V., Goncharov S.A. Mul'tiagentnoe modelirovanie setevoi ataki tipa DDoS [Multiagentny modeling of network attack like DDoS]. Available at: http://ivdon.ru/magazine/archive/n3y2013/1852 (accessed 01.09.2015).
8. Xin-SheYang. ANewMetaheuristic Bat-Inspired Algorithm. Available at: URL: http://arxiv.org/pdf/1004.4170.pdf (accessed 01.09.2015).
9. Roevoi intellekt [Royeva intelligence]. Available at: http://en.wikipedia.org/wiki/Swarm_intelligence (accessed 08.07.2015).
10. Mokhov V.A., Borodulina E.N. K voprosu o parametricheskoi optimizatsii roevykh algoritmov [To a question of parametrical optimization royevykh of algorithms]. Izv. YuFU. Tekhn. nauki, 2014, no. 4, pp. 230-234.
11. Karpenko A.P. Populyatsionnye algoritmy global'noi poiskovoi optimizatsii. Obzor novykh i maloizvestnykh algoritmov [Population algorithms of global search optimization. Review of new and little-known algorithms]. Prilozhenie k zhurnalu «Informat-sionnye tekhnologii», 2012, no. 7. [In Russ.]
12. Karpenko A.P. Sovremennye algoritmy poiskovoi optimizatsii. Algoritmy, vdokhnovlennye prirodoi [Modern algorithms of search optimization. The algorithms inspired by the nature]. Moscow, Izd-vo MGTU im. N. E. Baumana, 2014, 231 p.
Поступила в редакцию 12 августа 2015 г.