Обсуждение статьи "Алгоритм андского кондора — Andean Condor Algorithm (ACA)"

 

Опубликована статья Алгоритм андского кондора — Andean Condor Algorithm (ACA):

В статье реализован Andean Condor Algorithm (ACA) для MQL5 — компактный оптимизатор с многомасштабным оператором интенсификации. Выявлен эффект значимого роста качества при малой популяции: одна корректировка настроек выводит его в топ-45 — и за этим стоит характерная особенность алгоритма, о которой стоит знать. Материал даёт готовый код и практические ориентиры по применению.

Каждый, кто когда-либо подбирал параметры советника, хорошо знает, зачем это нужно. Пространство параметров большое, ландшафт фитнес-функции рваный и многомодальный. Логичный шаг — обратиться к специализированным метаэвристикам, которые умеют балансировать разведку и эксплуатацию пространства решений. Но новых алгоритмов выходит много, и большинство сопровождается уверенными заявлениями об эффективности, выведенными из тестов на одной-двух унимодальных функциях. На сфере отлично выглядят алгоритмы, которые на реальных задачах рассыпаются — поэтому в этой серии статей каждый кандидат проходит проверку на трёх стендах (Hilly, Forest, Megacity) и на трёх размерностях (10, 50 и 1000 переменных).

Сегодняшний кандидат — Andean Condor Algorithm, или ACA, предложенный в 2018 году Boris Almonacid и Ricardo Soto для задачи формирования производственных ячеек, и расширенный самим Almonacid в 2019 году в статье PeerJ для непрерывных доменов. Метафора — паттерн перемещения андского кондора в поисках пищи, который меняется от сезона к сезону: то широкий радиус полёта над предгорьями, то локальные облёты вокруг найденного источника пищи. Это типичная двухфазная структура exploration / intensification, но с любопытным механизмом баланса: performance indicator, опирающийся на среднее значение фитнеса популяции. Кондоры с фитнесом выше среднего переходят к интенсификации, остальные продолжают разведку.

Главная сложность реализации обнаружилась в источниках. Статья автора алгоритма от 2019 года описывает только операторы перемещения, а ключевые детали механизма баланса — что именно делает performance indicator, как из него вычисляется статус каждого кондора, какую роль играют параметры DP и PC — отсылают к статье 2018 года. Поэтому часть пути этой статьи занимает реконструкция: как из аннотации, описаний операторов и общего понимания метаэвристик собрать рабочий вариант ACA. Затем сверить его поведение с теми числами, которые автор всё-таки опубликовал на тестовой задаче.

Автор: Andrey Dik