
- •1)Приведем основные этапы генетического поиска, описанные д.Холландом:
- •Модифицированный га
- •2) Генетическое программирование
- •Получение случайной особи
- •Типовая постановка задачи
- •Скрещивание
- •Мутация
- •Селекция
- •3)Метод муравьиных колоний
- •4) Метод пчелиных колоний
- •5) Метод "поведения толпы" (pso)
4) Метод пчелиных колоний
Алгоритм искусственной пчелиной колонии (Artificial Bee Colony Algorithm)
Алгоритм искусственной пчелиной колонии является довольно молодым алгоритмом для нахождения глобальных экстремумов сложных многомерных функций. Идея алгоритма (D. Karaboga, 2005) взята, как видно из названия, у пчёл, а именно из их поведения при поиске мест, где можно раздобыть как можно больше нектара.
Колония пчёл может преодолевать большие расстояния (более 10 км) в различных направлениях одновременно в поисках источников питания. Сначала из улея в случайном направлении вылетает какое-то количество пчёл-разведчиков, которые пытаются отыскать участки, где есть нектар. По возвращению в улей разведчики сообщают остальным пчёлам где и сколько они нашли нектара. После этого на найденные участки отправляются другие пчёлы, причем, чем больше на данном участке предполагается найти нектара, тем больше пчёл летит в этом направлении.
Представим теперь, что расположение глобального экстремума - это участок, где больше всего нектара, причем этот участок единственный, то есть в других местах нектар есть, но меньше. Пчёлы живут не на плоскости, где для определения месторасположения участков достаточно знать две координаты, а в многомерном пространстве, где каждая координата представляет собой один параметр функции, которую надо оптимизировать. Найденное количество нектара представляет собой значение целевой функции в этой точке (в случае, если мы ищем глобальный максимум, если мы ищем глобальный минимум, то целевую функцию достаточно умножить на -1).
Простейшая форма алгоритма пчёл состоит в выполнении следующего псевдокода:
1. Инициализировать популяцию случайными решениями.
2. Посчитать фитнесс популяции.
3. Запомнить лучшее решение.
4. Выбрать участки для исследования их окрестностей.
5. Отправить пчёл в окрестности выбранных участков (больше пчёл на лучшие участки) и посчитать фитнесс.
6. Отправить оставшихся пчёл на случайный поиск и посчитать их Отправить пчёл в окрестности выбранных участков (больше пчёл на лучшие участки) и посчитать фитнесс. 6. Отправить оставшихся пчёл на случайный поиск и посчитать их фитнесс.
7. Перейти на пункт 3.
На первом шаге алгоритма в точки, описываемые случайными координатами, отправляется s пчёл-разведчиков. В зависимости от значения целевой функции, которое определяется координатами пчелы, выделяются два вида перспективных участков на поверхности функции, вблизи которых возможно располагается глобальный максимум. А именно:
Выбирается n лучших участков, где значения целевой функции больше всех
Выбирается m так называемых выбранных участков, где значения целевой функции меньше, чем на лучших участках, но эти участки всё равно являются неплохими с точки зрения значения целевой функции.
В окрестность n лучших участков посылается N пчёл, а в окрестность m выбранных участков посылается M пчёл, причем на каждый из лучших участков должно приходиться больше пчёл, чем на каждый из выбранных участков. Величины N и M могут быть фиксированными или пропорциональными целевой функции.
Важно отметить, что пчёлы посылаются не в точности на то место, где пчёлы-разведчики нашли перспективные и лучшие места, а в их окрестность, более точно координаты определяются случайным образом. Кроме того, окрестность, которая определяет область, в которую может быть послана пчела, можно уменьшать по мере увеличения номера итерации, чтобы постепенно решение сходилось к самому "кончику" экстремума. С другой стороны, если область уменьшать слишком быстро, то решение может застрять в локальном экстремуме.
После того как пчёлы были отправлены на лучшие и выбранные участки, можно отправить тех же пчёл-разведчиков на другие случайные точки.
Далее снова находятся n лучших и m выбранных участков, на этот раз среди всех пчѐл из роя, а не только среди разведчиков. Запоминается самое лучшее место на функции, значение больше которого пока не было найдено, это и будет промежуточным решением. Алгоритм повторяется до тех пор, пока не сработает принятый критерий останова.