Обсуждение статьи "Кооперация бионических алгоритмов — Co-Operation of Biology Related Algorithms (COBRA)"

 

Опубликована статья Кооперация бионических алгоритмов — Co-Operation of Biology Related Algorithms (COBRA):

В статье реализована кооперативная метаэвристика COBRA во фреймворке C_AO: шесть популяционных методов (PSO, WPS, FFA, CSA, BA, FSS) работают в одной популяции при фиксированном бюджете обращений к целевой функции и экспериментально выясняем, на чём на самом деле держится кооперация. В комплекте — расширяемый класс для сборки собственных кооперативных портфелей из любых алгоритмов серии.

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

Естественная мысль — выбрать несколько методов оптимизации. Запустить несколько алгоритмов одновременно, дать каждому свою долю вычислительного бюджета и позволить им обмениваться находками: пусть тот, чей поисковый механизм лучше подходит к конкретному ландшафту, вытягивает остальных. Именно эта идея лежит в основе метаэвристики COBRA — Co-Operation of Biology Related Algorithms, предложенной Шахназ Ахмедовой и Евгением Семенкиным в 2013 году.

COBRA интересна нам не как очередной алгоритм в коллекции, а как представитель отдельного класса — кооперативных метаэвристик, работающих поверх уже известных методов. В составе кооперации шесть популярных бионических алгоритмов: роевой PSO, волчья стая WPS, светлячки FFA, кукушки CSA, летучие мыши BA и рыбий косяк FSS. Пять из них в том или ином виде уже знакомы читателям серии. Вопрос прост по формулировке, но сложен по сути: даёт ли координация нескольких методов эффект сверх суммы частей? Если да, за счёт какого механизма? Забегая вперёд: ответ оказался неожиданным и для авторов первоисточника, и для нас, а путь к нему потребовал серии экспериментов, в которой отрицательные результаты оказались не менее содержательными, чем положительные.


Автор: Andrey Dik