Обсуждение статьи "Популяционные алгоритмы оптимизации: Эволюция социальных групп (Evolution of Social Groups, ESG)"
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
fxsaber, 2024.01.26 08:52
Спасибо за Статью! Добавил алгоритм в общий список.34: OPTIMIZATION_METHOD_AO_HS = 1e-323 33: OPTIMIZATION_METHOD_AO_GSA = 0.11926002964619356 32: OPTIMIZATION_METHOD_AO_ABC = 0.4042085745674859 31: OPTIMIZATION_METHOD_AO_MA = 0.612338549995716 30: OPTIMIZATION_METHOD_AO_BFO = 0.6679763921514072 29: OPTIMIZATION_METHOD_AO_BFO_GA = 0.71308437578657 28: OPTIMIZATION_METHOD_AO_CSS = 0.7316626048819873 27: OPTIMIZATION_METHOD_AO_FSS = 0.7355579934372427 26: OPTIMIZATION_METHOD_AO_GWO = 0.7390576242470235 25: OPTIMIZATION_METHOD_AO_RND = 0.8155449913938271 24: OPTIMIZATION_METHOD_AO_PSO = 0.8222303819859975 23: OPTIMIZATION_METHOD_AO_SC = 0.8340939685401099 22: OPTIMIZATION_METHOD_AO_BA = 0.845763320077643 21: OPTIMIZATION_METHOD_AO_Micro_AIS = 0.8528065344750899 20: OPTIMIZATION_METHOD_AO_SA = 0.8589854552563216 19: OPTIMIZATION_METHOD_AO_SFL = 0.8597046576708655 18: OPTIMIZATION_METHOD_AO_IWDm = 0.862259472275573 17: OPTIMIZATION_METHOD_AO_EM = 0.8779833807818905 16: OPTIMIZATION_METHOD_AO_SDS = 0.9027267066161594 15: OPTIMIZATION_METHOD_AO_NMm = 0.9076903894257041 14: OPTIMIZATION_METHOD_AO_FAm = 0.9111364322206529 13: OPTIMIZATION_METHOD_AO_ESG = 0.9128694208149278 12: OPTIMIZATION_METHOD_AO_SDOm = 0.9182612507465655 11: OPTIMIZATION_METHOD_AO_COAm = 0.9198698363722636 10: OPTIMIZATION_METHOD_AO_IWO = 0.923914294524697 09: OPTIMIZATION_METHOD_AO_SSG = 0.9304990658351672 08: OPTIMIZATION_METHOD_AO_BGA = 0.9389284935189659 07: OPTIMIZATION_METHOD_AO_ACOm = 0.944545536542497 06: OPTIMIZATION_METHOD_AO_DE = 0.9482478998933197 05: OPTIMIZATION_METHOD_AO_POES = 0.9528516011673952 04: OPTIMIZATION_METHOD_AO_SIA = 0.9540996483364099 03: OPTIMIZATION_METHOD_AO_MEC = 0.9574730447145243 02: OPTIMIZATION_METHOD_AO_SDSm = 0.9648638811101882 01: OPTIMIZATION_METHOD_PSO = 0.9653160312454183 00: OPTIMIZATION_METHOD_AO_P_O_ES = 0.9654152361899765
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
fxsaber, 2024.01.21 01:38
По этой методике испытание функцией Хилли.
34: OPTIMIZATION_METHOD_AO_ABC = 0.42453133581346014 33: OPTIMIZATION_METHOD_AO_IWDm = 0.48360991828383987 32: OPTIMIZATION_METHOD_AO_SIA = 0.49114081735004017 31: OPTIMIZATION_METHOD_AO_EM = 0.49479704987697276 30: OPTIMIZATION_METHOD_AO_RND = 0.5085913649249508 29: OPTIMIZATION_METHOD_AO_MA = 0.5129110822292692 28: OPTIMIZATION_METHOD_AO_HS = 0.5129110822292692 27: OPTIMIZATION_METHOD_AO_CSS = 0.5138134842496185 26: OPTIMIZATION_METHOD_AO_SSG = 0.518468314742929 25: OPTIMIZATION_METHOD_AO_SC = 0.5243709181146918 24: OPTIMIZATION_METHOD_AO_SA = 0.532630712905892 23: OPTIMIZATION_METHOD_AO_FSS = 0.5405996550405998 22: OPTIMIZATION_METHOD_AO_PSO = 0.5430691869913079 21: OPTIMIZATION_METHOD_AO_FAm = 0.5629971666466362 20: OPTIMIZATION_METHOD_AO_BA = 0.5653828707497576 19: OPTIMIZATION_METHOD_AO_BFO = 0.5708620661833331 18: OPTIMIZATION_METHOD_AO_IWO = 0.5736967768562664 17: OPTIMIZATION_METHOD_AO_NMm = 0.5818790406200212 16: OPTIMIZATION_METHOD_AO_ESG = 0.5945790493029925 15: OPTIMIZATION_METHOD_AO_GWO = 0.6234871646160723 14: OPTIMIZATION_METHOD_PSO = 0.6256882439878475 13: OPTIMIZATION_METHOD_AO_GSA = 0.6735183680285166 12: OPTIMIZATION_METHOD_AO_SFL = 0.6885524892005978 11: OPTIMIZATION_METHOD_AO_DE = 0.7092034045816206 10: OPTIMIZATION_METHOD_AO_COAm = 0.7263185318109061 09: OPTIMIZATION_METHOD_AO_SDS = 0.7686064552778226 08: OPTIMIZATION_METHOD_AO_Micro_AIS = 0.7722431882203732 07: OPTIMIZATION_METHOD_AO_SDOm = 0.7808430850753312 06: OPTIMIZATION_METHOD_AO_MEC = 0.7816647439743983 05: OPTIMIZATION_METHOD_AO_ACOm = 0.7830252357918316 04: OPTIMIZATION_METHOD_AO_POES = 0.8453008986622238 03: OPTIMIZATION_METHOD_AO_P_O_ES = 0.8523920887258357 02: OPTIMIZATION_METHOD_AO_SDSm = 0.9046058644799349 01: OPTIMIZATION_METHOD_AO_BGA = 0.9856063511804057 00: OPTIMIZATION_METHOD_AO_BFO_GA = 0.9880292622094636
Потому что такой наибольший результат не гарантирован. Больше скажу, никакой результат не гарантирован при стохастическом поиске.
Можно только оценивать средний результат за какое-то количество тестов, в статьях берётся 10 тестов, этого достаточно для хорошей оценки сравнения алго между собой. Можно ещё больше увеличивать количество тестов, конечно, например 100 и более, но это перестаёт иметь смысл из-за стремительного снижения точности измерений. Короче, 10 - самое то, ранее использовал 5 тестов - было недостаточно.
И, некоторые алгоритмы демонстрируют очень большой разброс в сходимости, это очень важное свойство алгоритмов оптимизации - повторяемость результатов, характеризующее стабильность вероятностной модели алгоритма (если конечно не идёт речь о детерминированных стратегиях поиска, результаты которых будут неизменно одинаковыми, но, как правило, у таких алгоритмов и сходимость низкая).
В общем, нужно делать как минимум 10 тестов, что бы иметь возможность адекватного сравнения алго между собой, имеющих стохастическую природу стратегии поиска в своей основе.
Очень грубо можно привести аналогию: какая из стратегий тыкания копьём в стог сена более эффективна, что бы найти яблоко среди груды соломы? Сравнивать можно только при проведении нескольких тестов, иначе есть ненулевая вероятность попасть в яблоко копьём с первого раза, если тыкнуть строго сверху стога по центру, и ошибочно думать, что это закономерный результат такой стратегии.
Кроме того, стратегии приведены в абсолютно чистом виде, это можно сказать эликсир стратегий, не замутнённых применением отсева дубликатов и прочими приёмами ускорения поиска за ограниченное количество запусков ФФ. Каждый новый дубликат сета тратит запуск, и алгоритмы в таком чистом виде очень удобно сравнивать.
При небольшом пространстве поиска исключение дубликатов может очень сильно влиять на результат, и даже очень слабые алго могут показать хорошие результаты. Но с увеличением пространства поиска отсев дубликатов теряет смысл быстрее, чем увеличивается пространство поиска, и тем сильнее становятся очевидными различия в способностях стратегий поиска.
Возможно, я плохо передал свою мысль этим постом, некоторые вещи очень сложно объяснить, к сожалению.
Вижу логичным для поиска глобального максимума иметь входной параметр "количество повторов".
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
fxsaber, 2024.01.21 01:38
По этой методике испытание функцией Хилли.
34: OPTIMIZATION_METHOD_AO_HS = -1.7976931348623157e+308 33: OPTIMIZATION_METHOD_AO_CSS = 0.49720358822818334 32: OPTIMIZATION_METHOD_AO_FSS = 0.5126268634117646 31: OPTIMIZATION_METHOD_AO_MA = 0.5456638212207142 30: OPTIMIZATION_METHOD_AO_SC = 0.5493573778417595 29: OPTIMIZATION_METHOD_AO_SFL = 0.5586288936731915 28: OPTIMIZATION_METHOD_AO_EM = 0.5622069376759021 27: OPTIMIZATION_METHOD_AO_BFO = 0.572272929264936 26: OPTIMIZATION_METHOD_AO_GWO = 0.576823172558009 25: OPTIMIZATION_METHOD_AO_BA = 0.5780620208551676 24: OPTIMIZATION_METHOD_AO_COAm = 0.6122501636921197 23: OPTIMIZATION_METHOD_AO_FAm = 0.6140389813209256 22: OPTIMIZATION_METHOD_AO_IWO = 0.668152749061326 21: OPTIMIZATION_METHOD_AO_RND = 0.6708834560036839 20: OPTIMIZATION_METHOD_AO_SDSm = 0.6949312990837662 19: OPTIMIZATION_METHOD_AO_ESG = 0.6998001260367949 18: OPTIMIZATION_METHOD_AO_DE = 0.7011196053256343 17: OPTIMIZATION_METHOD_AO_IWDm = 0.7021399692041209 16: OPTIMIZATION_METHOD_AO_GSA = 0.7220579685405103 15: OPTIMIZATION_METHOD_AO_PSO = 0.749441828773945 14: OPTIMIZATION_METHOD_AO_SA = 0.7682447940796119 13: OPTIMIZATION_METHOD_AO_MEC = 0.7861990306904714 12: OPTIMIZATION_METHOD_AO_ABC = 0.7907454297118246 11: OPTIMIZATION_METHOD_AO_SDS = 0.8196051951016118 10: OPTIMIZATION_METHOD_AO_SIA = 0.8221393904152611 09: OPTIMIZATION_METHOD_AO_SDOm = 0.8473736964247897 08: OPTIMIZATION_METHOD_PSO = 0.8554905139189528 07: OPTIMIZATION_METHOD_AO_BFO_GA = 0.9302287492114422 06: OPTIMIZATION_METHOD_AO_SSG = 0.9508929176886642 05: OPTIMIZATION_METHOD_AO_Micro_AIS = 0.9744230924005981 04: OPTIMIZATION_METHOD_AO_BGA = 0.9758026556865227 03: OPTIMIZATION_METHOD_AO_ACOm = 0.9842635986445009 02: OPTIMIZATION_METHOD_AO_P_O_ES = 0.9862393247408759 01: OPTIMIZATION_METHOD_AO_POES = 0.9939584765415376 00: OPTIMIZATION_METHOD_AO_NMm = 0.9992316949848764 inAmountCycles = 1000, inRepeats = 5
Repeats - количество независимых вызовов алгоритма.
AmountCycles - количество вызовов ФФ в каждой попытке (см. Repeats).
Для каждого алгоритма выводится лучший результат (см. Repeats).
MathSrand ((int)GetMicrosecondCount ()); // reset of the generator
Сделал бы так.
Sleep(1); // random GetMicrosecondCount (). MathSrand ((int)TimeLocal() + (int)GetMicrosecondCount ()); // reset of the generator
Иначе повторы при каждом запуске скрипта.
Вижу логичным для поиска глобального максимума иметь входной параметр "количество повторов". Например, оптимизируем ТС в штатном Тестере. Иногда логично запустить оптимизатор несколько раз подряд, чтобы уменьшить вероятность застревания в локальных экстремумах. Да, скорость расчетов упадет в соответствующее количество раз, но вероятность нарваться на глобальный пик будет выше.
Repeats - количество независимых вызовов алгоритма.
AmountCycles - количество вызовов ФФ в каждой попытке (см. Repeats).
Для каждого алгоритма выводится лучший результат (см. Repeats).
Да, что бы увеличить шанс нахождения глобала, то при прочих равных - нужно просто увеличивать количество тестов и использовать лучшее найденное решение. Даже алгоритм RND имеет ненулевой шанс найти то что нужно при таком подходе.
Но, как описал выше, только усреднённый результат может позволить сравнивать алго между собой.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Опубликована статья Популяционные алгоритмы оптимизации: Эволюция социальных групп (Evolution of Social Groups, ESG):
В статье рассмотрим принцип построения многопопуляционных алгоритмов и в качестве примера такого вида алгоритмов разберём Эволюцию социальных групп (ESG), новый авторский алгоритм. Мы проанализируем основные концепции, механизмы взаимодействия популяций и преимущества этого алгоритма, а также рассмотрим его производительность в задачах оптимизации.
В области оптимизации существует широкий спектр популяционных алгоритмов, предназначенных для поиска оптимальных решений в различных задачах. Однако, несмотря на их важность, многопопуляционные и многороевые алгоритмы ранее не были достаточно освещены в моих статьях и исследованиях. В связи с этим я пришел к мысли о необходимости более подробного рассмотрения этой увлекательной и перспективной темы.
Многопопуляционные алгоритмы основаны на идее использования нескольких независимых популяций для решения задач оптимизации. Популяции работают логически параллельно и могут обмениваться информацией об оптимальных решениях, что позволяет исследовать одновременно разные области пространства параметров и находить различные оптимумы. С другой стороны, многороевые алгоритмы используют социальные группы (рои) из множества взаимодействующих частиц, которые могут так же сотрудничать друг с другом и обмениваться информацией для достижения оптимальных решений.
В данной статье заполним этот пробел и рассмотрим в качестве примера многопопуляционный алгоритм ESG, созданный мной специально для этой статьи. Мы рассмотрим основные принципы работы подобных алгоритмов. Кроме того, мы рассмотрим результаты сравнительных исследований, которые позволят оценить эффективность этих алгоритмов по сравнению с моно-популяционными методами оптимизации.
Автор: Andrey Dik