Обсуждение статьи "Популяционные алгоритмы оптимизации: Алгоритм имитации отжига (Simulated Annealing, SA). Часть I"

 

Опубликована статья Популяционные алгоритмы оптимизации: Алгоритм имитации отжига (Simulated Annealing, SA). Часть I:

Алгоритм имитации отжига (Simulated Annealing) является метаэвристикой, вдохновленной процессом отжига металлов. В нашей статье проведем тщательный анализ алгоритма и покажем, как многие распространенные представления и мифы, вокруг этого наиболее популярного и широко известного метода оптимизации, могут быть ошибочными и неполными.

Алгоритм оптимизации имитации отжига (Simulated Annealing) был разработан Скоттом Киркпатриком (Scott Kirkpatrick), Джорджем Гелатти (George Gelatt) и Марио Веччи (Mario Vecchi) в 1983 году. При исследовании свойств жидкостей и твердых тел при высокой температуре установлено, что металл переходит в жидкое состояние и частицы распределяются случайным образом, а состояние с минимальной энергией достигается при условии достаточно высокой начальной температуры и достаточно длительного времени охлаждения. Если это не выполняется, то материал окажется в метастабильном состоянии с неминимальной энергией - это называется закаливанием, которое заключается в резком охлаждении материала. В этом случае структура атомов не имеет симметрии (анизотропное состояние, или неравномерность свойств материала внутри кристаллической решетки).

Во время же медленного процесса отжига материал также переходит в твердое состояние, но с организованными атомами и с симметрией, поэтому было предложено использовать этот процесс для разработки алгоритма оптимизации, который бы мог найти глобальный оптимум в сложных задачах. Алгоритм также был предложен как метод решения задач комбинаторной оптимизации.

Таким образом, основная идея алгоритма основана на математическом аналоге процесса отжига металла. В процессе отжига, чтобы равномерно распределить его внутреннюю энергию, металл нагревается до высокой температуры, а затем медленно охлаждается, позволяя молекулам металла перемещаться и упорядочиваться в более стабильные состояния, при этом снимаются внутренние напряжения в металле и удаляются межкристалические дефекты. Термин "отжиг" также связан с термодинамической свободной энергией, которая является атрибутом материала и зависит от его состояния.

В алгоритме оптимизации имитации отжига используется аналогичный процесс. Алгоритм применяет операции, аналогичные нагреву и охлаждению материала. Алгоритм начинает свою работу с исходного решения, которое может быть случайным или полученным из предыдущих итераций. Затем применяет операции изменения состояния решения, которые могут быть случайными или управляемыми, чтобы получить новое состояние, даже если оно хуже текущего. Вероятность принятия худшего решения определяется функцией "охлаждения", которая со временем уменьшает вероятность принятия худшего решения, что позволяет алгоритму временно "выскочить" из локальных оптимумов и искать лучшие решения в других местах пространства поиска.

Автор: Andrey Dik

 
Добротный справочник по алгоритмам оптимизации, Спасибо!
 
fxsaber #:
Добротный справочник по алгоритмам оптимизации, Спасибо!

Спасибо.

 
Феноменальный контент, мне нравится, как вы излагаете алгоритм в такой компактной манере, которая в то же время легко читается.

Я хотел бы задать вам вопрос, связанный с тестовой объективной функцией. Как мы можем создать объективную функцию, которая будет возвращать историческую прибыль или убыток нашего эксперта при его текущих настройках, таким образом мы оптимизируем параметры эксперта для получения прибыли. Надеюсь, я ясно выразил вопрос.
 
Gamuchirai Zororo Ndawana #:
Феноменальный контент, мне нравится, как вы излагаете алгоритм в такой компактной манере, которую в то же время легко читать.

Я хотел бы задать вам вопрос, связанный с тестовой объективной функцией. Как мы можем создать объективную функцию, которая будет возвращать историческую прибыль или убыток нашего эксперта при его текущих настройках, таким образом мы оптимизируем параметры эксперта для получения прибыли. Надеюсь, я ясно выразил вопрос.

Если вы не против покопаться в немного загадочных исходных кодах от fxsaber, то обратите внимание на эту реализацию, опубликованную в блоге fxsaber (может потребоваться перевод на другой язык).

Optimization - самостоятельная оптимизация торгового советника.
Optimization - самостоятельная оптимизация торгового советника.
  • 2024.03.26
  • www.mql5.com
После появления своего тикового тестера логичным продолжением было применить его на множестве алгоритмов оптимизации . Другими словами, научиться оптимизировать торговые советники самостоятельно - без
 
Gamuchirai Zororo Ndawana #:
Феноменальный контент, мне нравится, как вы излагаете алгоритм в такой компактной манере, которая в то же время легко читается.

Я хотел бы задать вам вопрос, связанный с тестовой объективной функцией. Как мы можем создать объективную функцию, которая будет возвращать историческую прибыль или убыток нашего эксперта при его текущих настройках, таким образом мы оптимизируем параметры эксперта для получения прибыли. Надеюсь, я ясно выразил вопрос.

Спасибо за добрые слова, рад, что Вам нравится статья. Надеюсь Вам помог комментарий @Stanislav Korotky.

Для составления кастомных фитнес-функций для использования в OnTester () могут быть полезными функции TesterStatistics ().

 

есть ли пример того, как реализовать эти алгоритмы в советнике?

Спасибо

 
SergioTForex #:

есть ли пример того, как реализовать эти алгоритмы в советнике?

Спасибо

https://www.mql5.com/ru/articles/14183
Использование алгоритмов оптимизации для настройки параметров советника "на лету"
Использование алгоритмов оптимизации для настройки параметров советника "на лету"
  • www.mql5.com
В статье рассматриваются практические аспекты использования алгоритмов оптимизации для поиска наилучших параметров советников "на лету", виртуализация торговых операций и логики советника. Данная статья может быть использована как своеобразная инструкция для внедрения алгоритмов оптимизации в торгового советника.
Причина обращения: