Обсуждение статьи "Роевой оптимизатор с иерархией суброев — Flock by Leader"

 

Опубликована статья Роевой оптимизатор с иерархией суброев — Flock by Leader:

Мы строим и реализуем в MQL5 алгоритм Flock by Leader: суброи формируются по метрике ARF, лидер определяется по лучшему личному рекорду, а не по положению центроида. Приводим формулы обновления для ролей роя и механизм separation. Класс C_AO_FBL совместим с тестовым стендом и проверен на функциях Hilly, Forest и Megacity в размерностях 10–1000 координат, что упрощает воспроизведение и сравнение.

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

Эта иерархия не закреплена навсегда — она перестраивается каждую минуту в зависимости от того, какая из птиц лучше ориентируется в текущей ситуации. Именно этот принцип лежит в основе алгоритма Flock by Leader. Популяция агентов-оптимизаторов делится на суброи — небольшие группы с иерархией внутри каждой. Роли в иерархии переназначаются каждую итерацию: лидером становится тот, кто нашёл лучшее решение в своей группе, а не тот, кто просто оказался в геометрическом центре. Остальные следуют за лидером своей группы, постепенно сходясь к хорошим регионам пространства поиска. Агенты, не вошедшие ни в одну группу, ведут свободную разведку.

Такое разделение труда решает главную проблему однородных роевых методов: когда вся популяция тянется к одной точке, она перестаёт исследовать остальное пространство. В FBL несколько суброев одновременно разрабатывают разные перспективные регионы, а выбросы непрерывно проверяют то, что ещё не охвачено.

Автор: Andrey Dik