Обсуждение статьи "Оптимизатор конкурирующего роя — Competitive Swarm Optimizer (CSO)"

 

Опубликована статья Оптимизатор конкурирующего роя — Competitive Swarm Optimizer (CSO):

В данной статье рассматривается Competitive Swarm Optimizer — алгоритм роевой оптимизации, в основе которого лежит предельно простая идея: агенты случайным образом разбиваются на пары, проигравший учится у победителя и притягивается к центру роя. Помимо разбора CSO, в статье представлена модернизация тестового стенда: визуализация работы алгоритмов переведена в 3D - мерное пространство, что позволяет наглядно наблюдать движение популяции на поверхности тестовой функции.

Подбор параметров торговой системы — задача, с которой сталкивается каждый, кто работает с алгоритмическим трейдингом. Метаэвристики справляются с ней неплохо на старте: за первые итерации популяция быстро находит приличное решение. Но дальше начинается знакомая картина — алгоритм "прилипает". Агенты стягиваются к глобальному лидеру, разнообразие популяции резко падает, и оставшийся бюджет прогонов расходуется впустую: улучшений нет, а выбраться из локального экстремума уже нечем.

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

Именно такой механизм предлагает Competitive Swarm Optimizer (CSO), представленный в 2014 году Ран Чэном и Яочу Цзинем. В каждом эпохе агенты случайно разбиваются на пары, проигравший учится у победителя и мягко притягивается к центру роя — единственному глобальному ориентиру, — а победитель не трогается вовсе. Информация о хороших решениях распространяется не напрямую, а через цепочку встреч.

Чтобы проверить гипотезу, мы реализовали CSO в MQL5 в виде класса, совместимого с унифицированным тестовым стендом, и провели воспроизводимые эксперименты на стандартном наборе функций: Hilly, Forest и Megacity в трёх режимах размерности — 5, 25 и 500 координат. Критерии оценки — качество решения при фиксированном числе обращений к целевой функции и стабильность результата по повторным прогонам. Дополнительно в статье представлена модернизация тестового стенда: визуализация работы алгоритмов переведена в трёхмерное пространство, что позволяет наглядно наблюдать движение популяции непосредственно на поверхности тестовой функции.

Автор: Andrey Dik