Обсуждение статьи "Алгоритм оптимизации Архимеда — Archimedes Optimization Algorithm (AOA)"

 

Опубликована статья Алгоритм оптимизации Архимеда — Archimedes Optimization Algorithm (AOA):

В статье рассматривается алгоритм оптимизации Архимеда — метаэвристика, в которой агент представлен физическим объектом с плотностью, объёмом и ускорением, а сам поиск переосмыслен как стремление погружённых в жидкость тел к равновесию. Баланс между разведкой и эксплуатацией здесь не задаётся внешним расписанием, а вытекает из физики затихающей турбулентности. Реализуем алгоритм на MQL5, прогоняем на стандартном стенде и разбираем, где такая идея работает.

Мы привыкли думать об оптимизации как о восхождении: есть ландшафт, есть вершина, и задача — на неё забраться. AOA не карабкается вверх. Он расслабляется к равновесию. Оптимум здесь переопределён — это не самая высокая точка, а состояние, в котором система пришла в покой. И агент в этой модели — не привычный голый вектор координат, как почти во всех роевых методах, а физический объект, у которого есть плотность, объём и ускорение, и у каждого из этих свойств своя собственная динамика.

Из такой постановки даром достаётся то, ради чего другие алгоритмы городят отдельные механизмы. Бросьте горсть объектов в неспокойную воду — поначалу они хаотично сталкиваются друг с другом. Это и есть разведка: широкий, ничем не направленный обзор пространства. Турбулентность затихает — объекты перестают сталкиваться и начинают плавно дрейфовать к своим положениям равновесия. Это эксплуатация: аккуратное дожатие найденного. Переход от первого режима ко второму в AOA не задаётся убывающим коэффициентом, навешенным поверх алгоритма, — он возникает сам, по мере того как затихает турбулентность. Баланс explore/exploit становится внутренним свойством модели, а не внешней надстройкой, которую приходится подгонять руками.

Автор: Andrey Dik