Обсуждение статьи "Популяционные алгоритмы оптимизации: Искуственная Пчелиная Колония (Artificial Bee Colony - ABC)"

 

Опубликована статья Популяционные алгоритмы оптимизации: Искуственная Пчелиная Колония (Artificial Bee Colony - ABC):

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

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

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

Схематично распределение рабочих пчел по областям можно наглядно представить рисунком 1.

ABCarea

Рисунок 1. Количество пчел в областях в зависимости от их ранга.

Автор: Andrey Dik

 
Правильное имя "исследователя насекомых Карла Фриша" - Карл фон Фриш: https://en.wikipedia.org/wiki/Karl_von_Frisch соответственно на русском языке.
 

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

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

Что-то простое, что пользователь может установить внутри OnTester() как:

OptimizerSetEngine("ACO"); // Оптимизация муравьиной колонии
OptimizerSetEngine("COA"); // алгоритм оптимизации "кукушки"
OptimizerSetEngine("ABC"); // искусственная пчелиная колония
OptimizerSetEngine("GWO"); // оптимизатор "серый волк
OptimizerSetEngine("PSO"); // оптимизация роем частиц 



Привет из Бразилии