Обсуждение статьи "Оптимизатор Бонобо — Bonobo Optimizer (BO)"

 

Опубликована статья Оптимизатор Бонобо — Bonobo Optimizer (BO):

Представлена реализация и анализ алгоритма Bonobo Optimizer, основанного на уникальных особенностях поведения приматов бонобо - динамической социальной структуре fission-fusion и трех стратегиях спаривания. Какие интересные возможности этого метода?

Алгоритм BO реализует три разные стратегии спаривания, которые имитируют реальное поведение бонобо. Первая стратегия - это рандомизированный выбор, где бонобо создает потомка двигаясь одновременно к альфа-бонобо (лучшему решению) и к случайному партнеру из подгруппы. Например, если текущий бонобо находится в точке X=5, альфа в точке X=10, а случайный партнер в точке X=7, то потомок может оказаться примерно в точке X=7.5, сделав шаг и к лучшему решению и добавив немного разнообразия от партнера. Коэффициенты scab=1.25 и scsb=1.3 контролируют насколько большие эти шаги, причем они могут быть больше единицы, что позволяет иногда перепрыгивать через лучшее решение для исследования области за ним.

Вторая стратегия - это внегрупповое спаривание "extra-group mating", происходит с небольшой вероятностью и имитирует ситуацию когда бонобо ищет партнера из другой группы. В этом случае потомок создается используя информацию о границах популяции, где находятся самые крайние бонобо по каждой координате. Алгоритм смотрит на позицию альфа-бонобо относительно текущей особи и решает двигаться к верхней границе диапазона или к нижней используя экспоненциальные коэффициенты "beta", которые создают нелинейные прыжки в пространстве решений. Например, если альфа справа от текущего бонобо, то потомок делает прыжок вправо к максимальной границе, если альфа слева, то прыжок влево к минимальной границе. Это помогает исследовать крайние области пространства поиска.

Третья стратегия - это временное спаривание "consorship mating", где два бонобо формируют временную пару и потомок создается как комбинация их позиций с использованием направленного движения. Здесь важную роль играет флаг "direction", который определяется сравнением фитнеса текущего бонобо и его партнера. Если текущий бонобо лучше партнера, то direction=1 и движение идет от партнера, если хуже, то direction=-1 и движение идет к партнеру. Например, если два бонобо в точках X=5 и X=8, и первый лучше, то потомок создается примерно в точке X=4 или X=6, двигаясь от худшего партнера, а если первый хуже, то потомок будет ближе к X=8, двигаясь к лучшему из двух решений. Коэффициент "exp(-random)" создает затухающие шаги, уменьшающиеся со временем.

Автор: Andrey Dik