Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Смотрел здесь тестовые ф-ии. По картинкам совпадают.
С многомерными пока не понял прикол, надо разбираться.
Это первая статья в серии. Мысль не стоит на месте, был изменён тестовый набор функций в сторону усложнения и противодействия фейковым успехам методов и ложноположительным результатам, которые инициализируются нулём. Поэтому нужно смотреть последние статьи, к примеру эту.
Ни гитхабе вегда актуальные исходники.
Тестирование градиентных методов:
https://www.mql5.com/ru/forum/475597/page2#comment_55006029
Это первая статья в серии. Мысль не стоит на месте, был изменён тестовый набор функций в сторону усложнения и противодействия фейковым успехам методов, которые инициализируются нулём, и вообще в сторону противодействия ложноположительным результатам. Поэтому нужно смотреть последние статьи, к примеру эту.
Ни гихабе вегда актуальные исходники.
Ну понятно. Если будет время и желание - сделаю для многомерных.
На трехмерных уже показал картинки, что градиентные даже на них застревают в локалах. Если разделить пространство поиска на батчи, то это фиксится. Именно так надо работать с градиентными решателями и никак иначе.
Результат для 1000 измерений. Потраченное зря серверное время - 9 минут.
Вроде бы ошибок нет, сделано по лекалам статьи.
Это первая статья в серии. Мысль не стоит на месте, был изменён тестовый набор функций в сторону усложнения и противодействия фейковым успехам методов и ложноположительным результатам, которые инициализируются нулём. Поэтому нужно смотреть последние статьи, к примеру эту.
Ни гитхабе вегда актуальные исходники.
Тестирование градиентных методов:
https://www.mql5.com/ru/forum/475597/page2#comment_55006029
Там эта ф-я в инклуднике, она используется?
Это та же самая ф-я, как определить правильные границы? Так понял, что взята какая-то ее часть.
Если я не уменьшил границы, значит расчет (поиск максимума) сложнее?
Для 25-мерного случая найден. Не знаю где ошибки.
Если я не уменьшил границы, значит расчет (поиск максимума) сложнее?
Нет, не сложнее. На вашей функции сколько небоскребов выше 50% от мин и макс функции? А на моей сколько? На какой поверхности проще попасть выше 50% по высоте, если случайно раскидать точки? - на вашей. Поэтому, подчеркну ещё раз, границы заданы неверно.
Вот здесь об этом сказано: https://www.mql5.com/ru/articles/13923#tag3
По вашему коду я получил такой результат:
Какой-то не очень весёлый результат, но вы упорно постите самые лучшие результаты из разных испытаний. Проведите 20 испытаний (20 нажатий на кнопку плей), или напишите цикл, имитирующий несколько испытаний, а потом посчитайте средний результат, как это делается в статьях.
И возникает вопрос, почему 100 000, почему не 1 000 000 000?
Не нужно стеснятся, ставьте миллиард, но почему-то не показываете количество обращений к целевой функции, сколько там было обращений? В рейтинговых испытаниях разрешено только 10 000 обращений к целевой функции, а в случае с градиентными методами (где алгоритм может попытаться сделать и гораздо больше обращений к ФФ), в коде есть отсечка, при превышении лимита выдается минимальное значение целевой (методы ищут минимум, поэтому значение реверсировано):
Всё это было описано ранее в статьях.
Как получить такую же поверхность, был задан вопрос. В инклуднике ее нет. При увеличении размерности задачи увеличивается кол-во итераций, это естественно. Сравнивать надо по времени выполнения, если стоит задача получить серебряную пулю для всех случаев жизни.
В классе есть методы GetMinRangeX (), GetMaxRangeX (), GetMinRangeY (), GetMaxRangeY (), с помощью которых можно запросить границы (ну и просто в коде соответствующих тестовых функций можно посмотреть границы).
На практике всегда есть ограничение на максимальное допустимое количество обращений к целевой, в испытаниях принят лимит в 10 000 обращений.
Если нет лимита ни по вычислительным ресурсам, ни по времени, то лучше вообще не использовать алгоритмы оптимизации и сделать простой полный перебор, но так никогда не бывает в реальной жизни. Тестирование и сравнение методов проводится при лимите в 10 000 обращений к целевой. Весь смысл сравнения алгоритмов в том, чтобы понять, какие алгоритмы получают результат лучше и с меньшим обращении к целевой. Соответственно, чем больше требуется алгоритму обращений к целевой для достижения сопоставимых результатов, тем алгоритм считается слабее на соответствующем типе задач.
К сожалению, от вас ускользают очень тонкие моменты, все из которых подробно описаны в статьях о методах оптимизации.
Есть же ситуации, когда полный перебор не найдет оптимум, потому что узлы сетки перебора не попадают на него.