Научная статья на тему 'Детализация онтологической модели по роевым алгоритмам, основанным на поведении насекомых и животных'

Детализация онтологической модели по роевым алгоритмам, основанным на поведении насекомых и животных Текст научной статьи по специальности «Математика»

CC BY
818
307
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
роевые алгоритмы / бионические технологии / онтологическая модель / алгоритм роя частиц / муравьиный алгоритм / пчелиный алгоритм / алгоритмы / вдохновленные роем светлячков / алгоритм кукушкиного поиска / алгоритм летучих мышей. / swarm algorithms / bionics / ontological model / particle swarm optimization / ant colony optimization / artificial bee colony algorithm / glowworm swarm optimization / "cuckoo search" algorithm / bat algorithm.

Аннотация научной статьи по математике, автор научной работы — В В. Баранюк, О С. Смирнова

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

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

Detailed swarm intelligence algorithms description for expanding the bionics ontology

The paper regards the detailed description of swarm algorithms based on animal and insect behaviour. This description represents some nodes and leaves of a large bionics ontology.

Текст научной работы на тему «Детализация онтологической модели по роевым алгоритмам, основанным на поведении насекомых и животных»

International Journal of Open Information Technologies ISSN: 2307-8162 vol. 3, no. 12, 2015

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

В.В. Баранюк, О.С. Смирнова

Аннотация - В статье представлено описание веток (листьев) дерева онтологической модели бионических технологий на примере роевых алгоритмов, основанных на поведении насекомых и животных, включающее описание биологических предпосылок и самих алгоритмов.

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

Введение

Для разработки базы знаний интеллектуальной системы информационной поддержки процессов создания и развития перспективных бионических технологий [1, 2] предполагается формирование и использование онтологической модели. Сведения для одного узла дерева онтологической модели - роевого интеллекта в качестве примера представлены в [3].

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

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

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

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

Статья получена 03.12.2015 г.

Исследование выполнено федеральным государственным бюджетным образовательным учреждением высшего образования «Московский государственный университет информационных технологий, радиотехники и электроники» (МИРЭА, МГУПИ) за счет гранта Российского научного фонда (проект №14-11-00854).

К.т.н., с.н.с., В.В. Баранюк, МГТУ МИРЭА (e-mail:

valentina_bar@mail.ru).

О.С. Смирнова, МГТУ МИРЭА (e-mail:

mail.olga.smirnova@yandex.ru).

подробного описания самого алгоритма, области его возможного применения и др.

Далее представлены примеры сведений для описания веток (листьев) дерева онтологической модели по алгоритмам, основанным на поведении насекомых и животных:

- алгоритм роя частиц;

- муравьиный алгоритм;

- пчелиный алгоритм;

- алгоритмы, вдохновленные роем светлячков;

- алгоритм кукушкиного поиска;

- алгоритм летучих мышей.

Примеры описания веток (листьев) дерева онтологической модели по алгоритмам,

инспирированным неживой природой и бактериями, представлены в [4].

1 Алгоритм роя частиц

Алгоритм роя частиц (метод роя частиц, англ. Particle Swarm Optimization, PSO) был предложен в 1995 году Джеймсом Кеннеди и Расселом Эберхартом как метод для оптимизации непрерывных нелинейных функций [5].

Вдохновением послужила имитационная модель Рейнольдса, а также работа Хеппнера и Гренадера на схожую тему [6]. Кеннеди и Эберхарт отметили, что обе модели основаны на управлении дистанциями между птицами - а, следовательно, синхронность стаи является в них функцией от усилий, которые птицы прилагают для сохранения оптимальной дистанции.

Летая большими группами, птицы почти никогда не сталкиваются в воздухе, при этом стая двигается плавно и скоординировано. Следует отметить, что вожака в стаях большинства видов птиц нет, при этом все равно обеспечивается скоординированное поведение и стая представляет собой роевый интеллект. Птицы в ней действуют согласно определенным, довольно простым правилам: в небе каждая из них следит за своими сородичами и координирует свое движение согласно их положению [7].

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

18

International Journal of Open Information Technologies ISSN: 2307-8162 vol. 3, no. 12, 2015

Рисунок 1 - Схема алгоритма роя частиц Текущее состояние частицы характеризуется координатами в пространстве решений (то есть, собственно, связанным с ними решением), а также вектором скорости перемещения. Оба этих параметра выбираются случайным образом на этапе инициализации. Кроме того, каждая частица хранит координаты лучшего из найденных ею решений, а также лучшее из пройденных всеми частицами решений - этим имитируется мгновенный обмен информацией между птицами. На каждой итерации алгоритма направление и длина вектора скорости каждой из частиц изменяются в соответствие со сведениями о найденных оптимумах: Vi=Vi+arrnd( )■ (pbesti - xi)+a2rnd( )(gbesti - xi), (1)

где v - вектор скорости частицы (vi - его i-ый компонент);

aj, а2 - постоянные ускорения; pbest - лучшая найденная частицей точка; gbest - лучшая точка из пройденных всеми частицами системы;

x - текущее положение частицы.

Функция rnd() возвращает случайное число от 0 до 1 включительно.

После вычисления направления вектора v, частица перемещается в точку x=x+v. В случае необходимости, обновляются значения лучших точек для каждой частицы и для всех частиц в целом. После этого цикл повторяется.

Ниже рассмотрены наиболее примечательные из модификаций данного метода.

При обновлении направления и скорости движения частицы в lbest используют информацию о решениях соседних частиц:

vi=vi+a2 ■ rnd()■ (pbesti - xi)+a2■ rnd()■ (lbest-x), (2)

где lbest - лучший результат среди частицы и её соседей.

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

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

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

В 1998 году Юхи Ши и Рассел Эберхарт предложили модификацию, на первый взгляд совсем незначительно отличающуюся от классического алгоритма [8]. С учётом того, что одной из главных проблем при решении задач оптимизации является баланс между тщательностью исследования пространства поиска и скоростью сходимости алгоритма, а также того, что в зависимости от задачи и характеристик поискового пространства в ней, этот баланс должен быть различным, учёные предложили изменить правило обновления векторов скоростей частиц: vi=m■ vi+a1 ■ rnd()■ (pbesti - xi )+a2■ rnd()■ (gbesti - xi), (3)

где щ - коэффициент инерции.

Коэффициент инерции определяет упомянутый баланс между широтой исследования и вниманием к найденным субоптимальным решениям. В случае, когда ю>1, скорости частиц увеличиваются, они разлетаются в стороны и исследуют пространство более тщательно. В противном случае, скорости частиц со временем уменьшаются и скорость сходимости зависит от выбора параметров a1 и a2. Значение коэффициента инерции может как убывать, так и расти. При его убывании частицы сначала исследуют область поиска экстенсивно, находя множество субоптимальных решений, и со временем все более концентрируются на исследовании их окрестностей. Возрастание инерции способствует сходимости алгоритма на поздних стадиях работы.

В 2002 году Марис Клер и Джеймс Кеннеди предложили свою модификацию алгоритма роя частиц, которая стала настолько популярной, что теперь ее принято называть каноническим алгоритмом роя частиц [9]. Он позволяет избавиться от необходимости «угадывать» подходящие значения регулируемых параметров алгоритма, контролируя сходимость частиц.

Был изменен способ вычисления векторов скоростей частиц, введением в него дополнительного множителя: vi=X\vi+a2 (pbesti - xi )+a2 (gbesti - xi )\, (4)

где ci]+a2>4 , а коэффициент сжатия X равен:

2k

x —________ _

|3 — n — V a2 — 4o |

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

В своей работе 2004 года Руи Мендес, Джеймс Кеннеди и Жозе Невес заметили, что принятое в каноническом алгоритме роя частиц допущение о том, что на каждую из частиц влияет только наиболее успешная, не соответствует лежащим в его основе природным механизмам и, возможно, ведет к снижению эффективности алгоритма [10]. Ученые предположили, что из-за чрезмерного внимания алгоритма к единственному решению может быть потеряна важная информация о структуре пространства поиска. Исходя из этого, решили сделать все частицы «полностью информированными», то есть получающими

информацию от всех соседних частиц. Для этого был

19

International Journal of Open Information Technologies ISSN: 2307-8162 vol. 3, no. 12, 2015

изменен в каноническом алгоритме закон изменения скорости:

где N - множество соседей частицы, pbestk - лучшая из пройденных k-ым соседом точек; W(k) - весовая функция, которая может отражать любую характеристику k-ой частицы, которая считается важной: значение целевой функции в точке, в которой она находится, дистанцию от нее до данной частицы и так далее [11].

Муравьиный алгоритм

Муравьиный алгоритм (алгоритм оптимизации муравьиной колонии, англ. ant colony optimization, ACO) - один из эффективных полиномиальных алгоритмов для нахождения приближенных решений задач поиска маршрутов на графах.

Следует отметить, что муравьи относятся к социальным насекомым, живущим внутри некоторого коллектива - колонии. Их поведение при транспортировании пищи, преодолении препятствий, строительстве муравейника и других действиях зачастую приближается к теоретически оптимальному. В качестве примера приведена структура взаимосвязанных гнёзд суперколонии муравьев Formica lugubris в Швейцарии. Сеть муравейников близка к минимальному основному дереву, соединяющему все гнёзда колонии - вершины графа на рисунке 2 [12].

Рисунок 2 - Сеть гнёзд суперколонии муравьев Formica lugubris в Швейцарии

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

Пг.и.)а

Ек т(г,и)“ х Г] (г, иУ

где т(г,и) - интенсивность фермента на ребре между узлами r и и;

n(r,u) - функция, которая представляет измерение обратного расстояния для грани; а - вес фермента; в - коэффициент эвристики.

Параметры а и в определяют относительную значимость двух параметров, а также их влияние на уравнение. Так как муравей путешествует только по узлам, которые ещё не были посещены (как указано списком табу), вероятность рассчитывается только для ребер, которые ведут к ещё не посещённым узлам. Переменная k представляет эти ребра [12].

Пройденный муравьем путь отображается, когда муравей посетит все узлы графа. Циклы запрещены, поскольку в алгоритм включен список табу. После завершения длина пути может быть подсчитана - она равна сумме всех рёбер, по которым путешествовал муравей. Уравнение (7) показывает количество феромона, который был оставлен на каждом ребре пути для муравья k. Переменная Q является константой.

Результат уравнения является средством измерения пути. Короткий путь характеризуется высокой концентрацией феромонов, а более длинный путь -более низкой. Затем полученный результат используется в уравнении (8), чтобы увеличить количество феромона вдоль каждого ребра пройденного муравьём пути.

Tij (t)=Ary (t)+(zi]k(t)xp. (8)

Важно, что данное уравнение применяется ко всему пути, при этом каждое ребро помечается феромоном пропорционально длине пути. Поэтому следует дождаться, пока муравей закончит путешествие и только потом обновить уровни феромона, в противном случае истинная длина пути останется неизвестной. Константа р - значение между 0 и 1.

В начале пути у каждого ребра есть шанс быть выбранным. Чтобы постепенно удалить рёбра, которые входят в худшие пути графа, ко всем рёбрам применяется процедура испарения феромона. Используя константу р из уравнения (8), мы получаем уравнение (9):

т()=Ту(?)х(1-р). (9)

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

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

20

International Journal of Open Information Technologies ISSN: 2307-8162 vol. 3, no. 12, 2015

3 Пчелиный алгоритм

Пчелиный алгоритм (в англоязычных статьях также встречаются названия Artificial Bee Colony (ABC) Algorithm и Bees Algorithm) - довольно новый алгоритм для нахождения глобальных экстремумов (максимумов или минимумов) сложных многомерных функций.

Для описания поведения пчёл в природе используются три следующих основных понятия [13].

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

Занятые фуражиры - пчёлы, которые «связаны» с одним из источников нектара, т.е. добывают на нём нектар. Занятые фуражиры владеют следующей информацией о «своём» источнике нектара: направление от улья на источник и полезность источника.

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

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

Занятый фуражир после добычи нектара возвращается в улей и оставляет его там. После этого данный фуражир может выполнить одно из следующих действий: оставить «свой» источник нектара и стать незанятым фуражиром; продолжить заготовку нектара из прежнего источника, не вербуя других пчел; выполнить вербовку. Пчела выбирает одно из указанных действий по некоторому вероятностному закону.

Одновременно в пределах области танцев разные пчёлы могут «рекламировать» различные источники нектара. Механизмы принятия решений, в соответствии с которыми пчела решает следовать за той или иной пчелой-вербовщиком, исследованы недостаточно хорошо. Логично предположить, что вероятность вербовки тем или иным образом определяется полезностью соответствующего источника нектара [14].

Таким образом, самоорганизация пчелиного роя основывается на четырёх следующих основных механизмах:

1) положительная обратная связь - на основе информации, полученной от других пчёл, пчела летит к одному из источников нектара;

2) отрицательная обратная связь - основываясь на информации, полученной от других пчёл, данная пчела может решить, что «её» источник нектара значительно хуже других найденных источников и оставить этот источник;

3) случайность - вероятностный поиск пчёлами-разведчиками новых источников нектара;

4) множественность взаимодействия - информация об источнике нектара, найденном одной пчелой, передается многим другим пчёлам улья.

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

Рисунок 3 - Схема работы алгоритма пчёл

Применительно к задаче оптимизации в пчелином алгоритме каждое решение представляется в виде пчелы, которая знает (хранит) расположение (координаты или параметры многомерной функции) какого-то участка [15]. Выделим два варианта поведения.

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

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

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

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

обнаружения, близких к оптимальным решений. После чего в окрестности остальных участков (m-е), в зависимости от значения их целевой функции (ЦФ), отправляются рабочие пчёлы (l = N-n).

Таким образом, работа алгоритма зависит от следующих основных параметров: общего числа пчёл-разведчиков (N); общего числа участков (m); числа элитных участков (е); числа пчёл-разведчиков на элитных участках (n); числа пчёл (l) на остальных (m-е) участках; начального размера участков, т.е. размера участков вместе с их окрестностями (S); максимального числа итераций (I).

Описание алгоритма сводится к следующему [16]. Сначала создается популяция пчёл и производится оценка их ЦФ, затем выбор участков для поиска в их

21

International Journal of Open Information Technologies ISSN: 2307-8162 vol. 3, no. 12, 2015

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

Т аким образом, ключевой операцией алгоритма пчёл является совместное исследование перспективных областей и их окрестностей. В конце работы алгоритма популяция решений будет состоять из двух частей: пчёлы с лучшими значениями ЦФ элитных участков, а также группы рабочих пчёл со случайными значениями ЦФ. Отличительной особенностью алгоритма является способность динамически разбивать поисковое пространство на области, что уменьшает время работы алгоритма. Главным преимуществом является тот факт, что резко снижается вероятность попадания в локальный оптимум, а за счёт распараллеливания уменьшается время работы алгоритма.

4 Алгоритмы, вдохновленные роем светлячков

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

Известны два варианта популяционных алгоритмов оптимизации, инспирированных поведением светлячков - алгоритм светлячков (англ. firefly algorithm) и алгоритм оптимизации роем светлячков (англ. Glowworm Swarm Optimization, GSO). Основное различие между firefly- и glowworm-светлячками состоит в том, что вторые являются бескрылыми [17].

Алгоритм светлячков

Алгоритм светлячков предложен в 2007 г. Янгом (X.-Sh. Yang). Алгоритм использует следующую модель поведения светлячков: все светлячки могут привлекать друг друга независимо от своего пола; привлекательность светлячка для других особей пропорциональна его яркости; менее привлекательные светлячки перемещаются в направлении более привлекательного светлячка; яркость излучения данного светлячка, видимая другим светлячком, уменьшается с увеличением расстояния между светлячками; если светлячок не видит возле себя светлячка более яркого, чем он сам, то он перемещается случайным образом [18].

Яркость излучения светлячка SiOS, i □ [1: ISI]

принимаем равной значению фитнесс-функции в его текущем положении.

Привлекательность светлячка si для светлячка Sj полагаем равной:

Bi,j = Р0 exp(-yri,j2 ), i,j □ [1:ISI], i£j, (10)

где rij - расстояние между светлячками sit Sj;

во - взаимная привлекательность (attractiveness) светлячков при нулевом расстоянии между ними;

Y - вещественная величина, имеющая смысл коэффициента поглощения света среды (light absorption coefficient).

Для ускорения и упрощения вычислений экспоненциальную функцию в выражении (10) можно

1+Т:

заменить функцией выражение приобретает вид:

S - ^

4 1 +

При этом указанное i.j e[l:|S|].i*j. (11)

Формулы (10), (11) определяют характерное

расстояние rc =1/Vy , на котором привлекательность изменяется от р0 до р0е-1 для случая (10) и от р0 до р0/2 для случая (11).

В качестве функции P(r) могут быть использованы и другие монотонно убывающие функции, например, функция вида:

р(г) = , п > 1. (12)

Движение светлячка Sj, который притягивается более привлекательным светлячком Si определяет формула:

Xj=Xi+P(ri,jXXj - X) + а^ш(-1;1), i,jO [1:ISI], i j (13)

где а - свободный параметр рандомизации.

Для обеспечения приемлемого баланса между диверсификацией и интенсификацией поиска значение параметра рандомизации рекомендуют уменьшать с ростом номера поколения, например, по формуле: а = ам + (а0 - aM)e_t, (14)

где а0 - начальное значение параметра рандомизации; ах - его окончательное значение.

Для улучшения сходимости алгоритма в формуле (13) может быть использован еще один член вида:

Ш(-1;1) □ (Xj - Xbest), (15)

где X - параметр, подобный параметру а.

Схема алгоритма светлячков для задачи глобальной безусловной минимизации фитнесс-функции имеет следующий вид:

1) инициализируем начальную популяцию светлячков S = (si; i □ [1:ISI]) и вычисляем значения фитнессфункции в начальных точках;

2) если <p(Xj) < <p(Xi), то по формуле вида (15) перемешаем светлячка Sj в направлении светлячка Si;

i, j □ [1: ISI], Щ;

3) вычисляем значения фитнесс-функции в полученных точках Xit iO[1:ISI];

4) если условие окончания итераций не выполнено, то переходим к шагу 2.

В большинстве случаев можно использовать следующие значения основных свободных параметров алгоритма: р0 = 1; а 0[0; 1]; у= 1.

Алгоритм оптимизации роем светлячков Алгоритм GSO предложили в 2005 г. Кришнананд и Гхоус [19]. Состояние светлячка sh i□ [1:ISI], определяют следующие переменные: Xi - его текущее положение в пространстве поиска; li - уровень светимости (luciferin level), ri - радиус окрестности (neighborhood range). Основным содержанием каждой итерации является обновление значений указанных переменных.

22

International Journal of Open Information Technologies ISSN: 2307-8162 vol. 3, no. 12, 2015

Уровень светимости светлячка si обновляем по формуле:

li=(1-p)li + Уф (X), i D[1:ISI], (16)

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

Светлячок Sj считается соседом светлячка si,• i, j D[1:ISI], iфj\ при выполнении двух следующих условий: евклидово расстояние между этими

светлячками не превышает текущий радиус окрестности ту, текущий уровень светимости светлячка Sj превышает этот же уровень светлячка si7 т. е. lj > li. Если светлячок имеет несколько соседей, то случайным образом выбираем одного из них с вероятностью, пропорциональной уровням их светимости (правило рулетки).

Положим, что по рассмотренной схеме светлячком Si выбран светлячок Sj. Тогда новое положение светлячка si определяет формула:

„ X,-Xi

Xi + l |у._ у.|Е ' l'i е Cl7)

где X - постоянное значение шага (свободный параметр алгоритма).

Новый радиус окрестности светлячка si определяем в соответствии с выражением:

Ti=min(Tmimmax(0,(Ti+ e(n- IN))))), iD [1:ISI], (18)

где Ni - текущее множество соседей светлячка sy Tmin - минимально допустимый радиус окрестности; п - желательное число соседей; s - положительная константа.

Последние три величины являются свободными параметрами алгоритма.

Рассмотрим некоторые модификации

представленного канонического алгоритма GSO.

Для диверсификации поиска в случае, когда число соседей I Ni I светлячка si, i D[1:ISI], в окрестности Ni менее желательного числа n, радиус окрестности Tmin может быть по тому или иному правилу расширен.

В той же ситуации возможно иное решение -случайное перемещение светлячка в пределах куба с центром в точке Xi и длиной ребра, равной шагу X:

Xij = Xi,j + X(0,5 - Ui (0;1)), j D [1:IXI]. (19)

Если значение фитнесс функции в новой точке Xi лучше ее значения в точке Xi, то оставляем светлячка в точке Xi, в противном случае - возвращаем в прежнюю

точку Xi.

Новый радиус Ti окрестности светлячка si может вычисляться не по формуле (18), а по формуле вида:

Г

г? = Tl^T ' ^20>

1 Т

где Tmax - максимально допустимое значение этой величины;

sr > 0 - заданная константа;

di - средняя текущая плотность агентов в окрестности

Ni.

(21)

Величины Tmax, sT представляют собой свободные параметры алгоритма.

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

организации агентов в группы. В каждой из групп в этом случае выделяют одного из агентов в качестве её владельца (masted), который определяет миграцию всех подчиненных (slave) агентов группы. В исходном состоянии подчиненные агенты равномерно распределены случайным образом в гиперсфере радиуса Td ~0,1ts с центром, совпадающим с начальным положением владельца группы. В процессе поиска величина rd может варьироваться в диапазоне [0,33X; 0,lrs], где ts - свободный параметр алгоритма.

5 Алгоритм кукушкиного поиска

Алгоритм кукушкиного поиска (англ. Cuckoo Search, CS) был предложен в 2009 г. [20]. Алгоритм вдохновлен поведением кукушек в процессе вынужденного гнездового паразитизма.

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

Некоторые птицы могут конфликтовать с вторжением кукушек. К примеру, если хозяин гнезда обнаружит в нем яйца иного вида, то он либо выбросит эти яйца, либо просто покинет данное гнездо и соорудит на новом месте другое гнездо [17].

В алгоритме CS каждое яйцо в гнезде представляет собой решение, а яйцо кукушки - новое решение. Цель заключается в использовании новых и потенциально лучших (кукушкиных) решений, чтобы заменить менее хорошие решения в гнёздах. В простейшем варианте алгоритма в каждом гнезде находится по одному яйцу.

Положим, что речь идет о задаче глобальной безусловной максимизации. Алгоритм основан на следующих правилах: каждая кукушка откладывает одно яйцо за один раз в случайно выбранное гнездо; лучшие гнёзда с яйцами высокого качества (высоким значением пригодности) переходят в следующее поколение; яйцо кукушки, отложенное в гнездо, может быть обнаружено хозяином с некоторой вероятностью £,а (0; 1) и удалено из гнезда.

Схему алгоритма CS можно представить в следующем виде:

1) инициализируем популяцию S = (S;- , i D [1:ISI]) из ISI хозяйских гнезд и кукушку, т. е. определяем начальные значения компонентов векторов Xt; i D [1: ISI] и вектор начального положения кукушки Xc;

23

International Journal of Open Information Technologies ISSN: 2307-8162 vol. 3, no. 12, 2015

2) выполняем некоторое число случайных перемещений кукушки в пространстве поиска с помощью полётов Леви [20] и находим новое положение кукушки Хс;

3) случайным образом выбираем гнездо si , i □ [1:ISI], и, если ф(Хс) > ф(Хi), то заменяем яйцо в этом гнезде на яйцо кукушки, т. е. полагаем Xi = Хс;

4) с вероятностью ta удаляем из популяции некоторое число худших случайно выбранных гнёзд (включая, быть может, гнездо si) и по правилам шага 1 строим такое же число новых гнёзд;

5) если условие окончания итераций не выполнено, то переходим к шагу 2.

Полёты Леви кукушки реализуем по формуле:

Хс = Xc+V □ Lx (к), (22)

где обычно полагают все компоненты вектора V одинаковыми и равными v: V=(vj = v,j □ [1:1Х|]). Величина v должна быть связана с масштабами области поиска.

Известно несколько модификаций алгоритма CS. В каноническом алгоритме CS кукушка в своих полётах Леви никак не учитывает информацию о лучших найденных решениях. В модифицированном алгоритме поиска кукушки (Modified Cuckoo Search, MCS) компоненты вектора V вычисляют по формуле вида: V=U1 (0;1)(Xbest- Хк ), к □ [1:|S|], (23)

где Хк фХЬеst - случайно выбранное гнездо [21]. Так определенный вектор V обеспечивает большую вероятность полёта кукушки к гнёздам, имеющим высокую приспособленность.

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

Вместе с тем, в каноническом алгоритме CS вероятность ta и параметры полёта Леви являются фиксированными константами. В целях диверсификации поиска на ранних итерациях целесообразно использовать большие значения величин ^а, v. На завершающих итерациях для повышения точности локализации экстремума (интенсификации поиска) разумны меньшие значения указанных величин.

Улучшенный алгоритм поиска кукушки (Improved Cuckoo Search, ICS) использует динамические значения этих параметров:

Здесь

у min у ,

, С*

min max

v , v - заданные константы.

6 Алгоритм летучих мышей

Алгоритм летучих мышей (англ. Bat Algorithm, BA) был предложен в 2010 г. [22].

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

пределах примерно одной октавы сигналы. В тоже время некоторые виды не используют частотную модуляцию своих звуковых импульсов [17].

Алгоритм BA предполагает следующую модель поведения летучих мышей:

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

б) мыши движутся случайным образом. Текущие положение и скорость мыши Si, Ш[1:И] равны Xi,Vi соответственно. Для поиска добычи мыши генерируют сигналы, имеющие частоту mi, и громкость ai. В процессе поиска мыши могут менять частоту этих сигналов, а также частоту повторения излучаемых импульсов (rate of pulse) Л [0;1];

в) частота сигналов может изменяться в диапазоне

[®min,®max], ®max>®min>0, а громкость сигналов - в

пределах [0;1].

Положим, что речь идет о задаче глобальной безусловной минимизации. Схема алгоритма ВА включает следующие основные шаги:

1) инициализируем популяцию агентов Si, i □ [1: ISI].

Определяем глобально лучшего агента Sbest и

соответствующее ему решение Xbest;

2) выполняем перемещение всех агентов на один шаг в соответствии с используемой миграционной процедурой;

3) для каждого из агентов Si, ffl[1:ISI], выполняем следующие действия:

- генерируем случайное число u=U1(0;1); если u>ri, то находим лучшее решение Xj данного агента;

- в окрестности решения Xibest реализуем процедуру локального поиска. Принимаем найденное решение в качестве текущего положения агента Si;

4) в окрестности текущего решения случайным образом генерируем новое решение;

5) генерируем новое случайное число u=U1 (0;1);

6) если <ai и <p(Xi)«p(Xbest), то принимаем решение Xj в качестве нового текущего положения агента Sj, увеличиваем значение параметра ri и уменьшаем значение параметра ai;

7) находим новое глобально лучшее решение Xbest:

8) если условие окончания итераций не выполнено, то возвращаемся к шагу 2 (рисунок 4).

24

International Journal of Open Information Technologies ISSN: 2307-8162 vol. 3, no. 12, 2015

На этапе инициализации алгоритма начальные значения частот ю°, громкостей а0, и частот повторения импульсов Ti0, iQ [1:ISI], полагаем равномерно распределенными в соответствующих интервалах

[mmin,mmax] [amin,amax],[0; 1].

Миграцию агента Si7 iQ[1:ISI], осуществляем по формулам:

x;=Xi+v;,

Vi=Vi+rn; (X - Xbest),

oji=ojmin+(ojmax-ojmin)U] (0;1). (26)

Другими словами, на данной итерации агент перемещается в направлении, определяемом суммой вектора перемещения на предыдущей итерации (слагаемое Vi в формуле (26)) и случайным образом возмущённого вектора направления на лучшего агента (Xi-Xbest). Заметим, что рассмотренная процедура миграции алгоритма BI имеет много общего с аналогичной процедурой алгоритма роя частиц [23].

Случайный локальный поиск выполняем по следующей схеме:

1) случайным образом варьируем текущее положение агента в соответствии с формулой:

Xi=Xi+aU,xi(-1;1), iQ[1:ISI], (27)

где а - текущее среднее значение громкостей всех

агентов популяции:

\s\

Г-1

С28)

2) вычисляем значение фитнесс-функции в новой точке <p(Xi )=<pi . Если ф ><pi, то завершаем процедуру локального поиска, в противном случае фиксированное число раз возвращаемся к шагу 1.

Эволюция параметров ai, ri осуществляется по правилам:

ai =ba abr =Ti0 (1-exp(-br t)), iQ [1:ISI], (29)

где baQ(0;1),bT>0 - заданные константы (свободные параметры алгоритма), рекомендуемые значения которых равны 0,9. Другими словами, с ростом числа итераций громкость импульсов, излучаемых каждой мышью, линейно уменьшаем (добыча уже найдена), а частоту повторения импульсов в тех же условиях уменьшаем по экспоненциальному закону, так что имеют место предельные соотношения

o,r{ —e

Заключение

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

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

Сведения по роевым алгоритмам, собранные в статье из разных источников, могут быть полезны

специалистам при проведении работ в области бионики

или при решении различных задач оптимизации.

БИБЛИОГРАФИЯ

[1] Сигов А.С., Нечаев В.В., Кошкарев М.И.

Архитектура предметно-ориентированной базы

знаний интеллектуальной системы. International Journal of Open Information Technologies ISSN: 23078162 vol. 2, no.12, 2014.

[2] Sigov A.S., Nechaev V.V., Baranyuk V.V., Koshkarev M.I., Smirnova O.S., Melikhov A.A., Bogoradnikova A.V. Architecture of domain-specific data warehouse for bionic information resources. Ecology, environment and conservation, №4, 2015.

[3] Баранюк В.В., Смирнова О.С. Роевой интеллект как одна из частей онтологической модели бионических технологий. International Journal of Open Information Technologies. Vol.3, no. 12, 2015.

[4] Смирнова О.С., Богорадникова А.В., Блинов М.Ю. Описание роевых алгоритмов, инспирированных неживой природой и бактериями, для использования в онтологической модели. International Journal of Open Information Technologies. Vol.3, no. 12, 2015.

[5] J. Kennedy, R. C. Eberhart, «Particle swarm optimization» // In Proceedings of IEEE International Conference on Neural Networks, стр. 1942-1948, 1995 г.

[6] F. Heppner, U. Grenander, «A stochastic nonlinear model for coordinated bird flocks» // The Ubiquity of Chaos, стр. 233-238, 1990 г.

[7] Объектно-событийное программирование. Роевые

алгоритмы. Эл. ресурс:

http://bourabai.kz/alg/swarm.htm

[8] Y. Shi, R. Eberhart, «A modified particle swarm optimizer» // The 1998 IEEE International Conference on Evolutionary Computation Proceedings, стр. 69-73, 1998 г.

[9] M. Clerc, J. Kennedy, «The particle swarm - explosion, stability, and convergence in a multidimensional complex space» // IEEE Transactions on Evolutionary Computation, №6 (1), стр. 58-73, 2002 г.

[10] R. Mendes, J. Kennedy, J. Neves, «The fully informed particle swarm: Simpler, maybe better» // IEEE Transactions on Evolutionary Computation, №8 (3), стр. 204-210, 2004 г.

[11] Алгоритм роя частиц. Эл. ресурс:

http://habrahabr.ru/post/105639/

[12] Алгоритмы муравьиной колонии. Эл. ресурс: http://www.wikiznanie.ru/wikipedia/index.php/Алгорит мы_муравьиной_колонии

[13] Гришин А. А., Карпенко А.П. Исследование эффективности метода пчелиного роя в задаче глобальной оптимизации. Электронное научнотехническое издание «Наука и образование», №8 август 2010 г.

[14] Sumpter D.J.T., Broomhead D.S. Formalising the Link between Worker and Science: Proceedings of the First International Workshop on Multi-Agent Systems and Agent-Based Simulation. - MABS’98 LNAI, 1998. -pp.95 - 110

25

International Journal of Open Information Technologies ISSN: 2307-8162 vol. 3, no. 12, 2015

[15] Курейчик В.В., Курейчик Вл.Вл.

Биоспирированный поиск при проектировании и управлении. Известия ЮФУ. Технические науки. 178-193 с.

[16] Курейчик В.В., Запорожец Д.Ю. Роевой алгоритм в задачах оптимизации //Известия ЮФУ. Технические науки. - 2010. - №7 (108). - С.28-32.

[17] Карпенко А.П. Популяционные алгоритмы

глобальной поисковой оптимизации. Обзор новых и малоизвестных алгоритмов. Журнал

«Информационные технологии», Приложение, №7/2012 г. Изд.: «Новые технологии», 32 с.

[18] Yang Xin-She. Firefly Algorithm, Stochastic Test Functions and Design optimization // International Journal of Bio-Inspired Computation. 2010. V. 2. N 2. P. 78-84.

[19] Krishnanand K. N., Ghose D. Glowworm swarm optimization for simultaneous capture of multiple local optima of multimodal functions// Swarm Intelligence. 2009. V. 3. N 2. P. 87-124.

[20] Yang X.-S., Deb S. Cuckoo search via L’evy flights // Proc. of the world Congress on Nature & Biologically Inspired Computing (NaBIC 2009), December 2009. India. IEEE Publications, USA, pp. 210-214.

[21] Tuba M., Subotic M., Stanarevic N. Modified cuckoo search algorithm for unconstrained optimization problems // Proc. of the 5th European Computing Conference (ECC’11), Paris, France, April 28-30, 2011. pp. 263-268.

[22] Yang X.-S. A New Metaheuristic Bat-Inspired Algorithm, in: Nature Inspired Cooperative Strategies for Optimization (NISCO 2010). Studies in Computational Intelligence. Berlin: Springer, 2010. Vol. 284. P.65-74.

[23] Карпенко А. П., Селиверстов Е. Ю. Глобальная оптимизация методом роя частиц. Обзор // Информационные технологии. 2010. № 2. С. 25-34.

[24] Баранюк В.В., Смирнова О.С., Богорадникова А.В.

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

созданию. International Journal of Open Information Technologies ISSN: 2307-8162 vol. 2, no. 12, 2014.

26

International Journal of Open Information Technologies ISSN: 2307-8162 vol. 3, no. 12, 2015

Detailed swarm intelligence algorithms

Abstract - The paper regards the detailed description of swarm algorithms based on animal and insect behaviour. This description represents some nodes and leaves of a large bionics ontology.

Keywords - swarm algorithms; bionics; ontological model; particle swarm optimization; ant colony optimization; artificial bee colony algorithm; glowworm swarm optimization; "cuckoo search" algorithm; bat algorithm.

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

for

the bionics

V.V. Baranjuk, O.S. Smirnova

27

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