Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Поиск на ф-ии skin из статьи методом lbfgs.
Не вникал о какой тысяче параметров речь. Если есть пример такой ф-ии - скиньте.
Не знаю о какой Skin идёт речь, но оригинальная тестовая функция Skin, и несколько других, была разработана @Andrey Dik в этой ветке в 2010 году и примерно с 2020 года можно найти и посмотреть формулу тут \MQL5\Experts\Examples\Math 3D\Functions.mqh и тут \MT5\MQL5\Experts\Examples\Math 3D Morpher\Functions.mqh. Это интересная функция, но относится к простым. Позже были разработаны им же и другие бенчмарки, такие как Hilly, Forest и Megacity.
Насчет тестирования на двумерных, и тем более одномерных функциях, выше говорилось, что практического смысла не представляет, так как большинство AO решают их элементарно, даже простейшие алго с рандомом (есть супербыстрые ГПСЧ) покажут удивительно высокие результаты, создавая иллюзию высокой эффективности и быстроты. Поэтому рассматриваются размерности от 10 и выше. Повышение размерности можно достичь путем дублирования одномерных бенчмарков или двумерных (полученная сумма делится на количество тестовых функций), таком образом всегда известны мин и макс тестовой функции независимо от размерности. Это общепринятый прием повысить размерность и при этом достоверно знать область определения тестовой функции.
Насчет "поставить в равные условия". Хорошо, поставим в равные, только легче им от этого не станет. Большинство популяционных AO хорошо чувствуют себя при размере популяции 50 (некоторые меньше, например 10, некоторые больше, например 100), при ограничении на количество запусков ФФ в 10 000 эпохи считаем так эпохи = 10 000 / размер популяции, получим 10 000 / 50 = 200. Таком образом, нужно просто запустить 50 раз градиентные методы с разной инициалным положением в пространстве и взять лучшее решение из них, имитируя таким образом популяцию. И так повторить несколько раз и посчитать среднее значение из этих лучших значений. Так будет полное "равенство условий", только если раньше у методов был шанс найти решение за 10 000 итераций, то теперь будет 200 итераций, но 50 попыток.
Посмотрим что из этого получится. Поправим скрипт из этой статьи для L-BGFS так, чтобы имитировать популяцию.
И получаем такие результаты:
LBFGS|limited memory BFGS method for large scale optimization|0.9|
=============================
5 Hilly's; Func runs: 10000; result: 0.52942166492675
25 Hilly's; Func runs: 10000; result: 0.30437018399902754
500 Hilly's; Func runs: 10000; result: 0.253457675831117
=============================
5 Forest's; Func runs: 10000; result: 0.46775770774270276
25 Forest's; Func runs: 10000; result: 0.20030246823425313
500 Forest's; Func runs: 10000; result: 0.15436391164477226
=============================
5 Megacity's; Func runs: 10000; result: 0.3046153846153846
25 Megacity's; Func runs: 10000; result: 0.13384615384615386
500 Megacity's; Func runs: 10000; result: 0.09492307692307773
=============================
All score: 2.44306 (27.15%)
27.15% это примерно 42 место в текущем рейтинге из 45 мест.
Теперь все в равных условиях.
К посту приложен скрипт этого теста. Все необходимые инклюдники можно найти в архиве к статье.
Поиск на ф-ии skin из статьи методом lbfgs.
Не вникал о какой тысяче параметров речь. Если есть пример такой ф-ии - скиньте.
Такая же, как в статье. Взята из терминала. Написано, что одна из самых сложных. Потом написано, что очень простая.
Читайте внимательнее, Hilly была разработана позднее и она сложнее чем Skin. Skin относится к группе простых (как Растригин и большинство других известных), так как 50% поверхности лежит ровно по 50% по высоте. Всё сказано в статьях.
Все необходимые исходники в архиве к статье, изучайте.
Где написано, что "очень" простая?Читайте внимательнее, Hilly была разработана позднее и она сложнее чем Skin. Skin относится к группе простых (как Растригин и большинство других известных), так как 50% поверхности лежит ровно по 50% по высоте. Всё сказано в статьях.
Все необходимые исходники в архиве к статье, изучайте.
Я на питоне проверяю, нужен просто код функции, которая сложная.
MQL использую только на уровне открыть-закрыть сделки.Я на питоне проверяю, нужен просто код функции, которая сложная.
MQL использую только на уровне открыть-закрыть сделки.Возьмите код Hilly из статьи, прогоните через чат, будет код на питоне.
Или Megacity, это очень сложная для любых AO функция.
Возьмите код Hilly из статьи, прогоните через чат, будет код на питоне.
Или Megacity, это очень сложная для любых AO функция.
А С_dimentional или как ее там, где взять? чтобы было много параметров
А С_dimentional или как ее там, где взять? чтобы было много параметров
вот свежее (в статье есть в архиве) ядро класса тестовых функций:
Просто кидайте в args многомерный (имею ввиду - в одном измерении массива много ячеек, многомерное пространство) массив любой размерности, метод раскидает аргументы из массива по двумерным функциям. Понятно, что если кинуть массив с нечетной размерностью, то одна ячейка будет отброшена и в расчетах участвовать не будет. Т.е., это многомерная тестовая функция с четным количеством измерений.
Позже выпущу на основе одномерных, будет практичнее и строить графики можно будет нагляднее.
Закоментированный код - возможность поворачивать функцию на какой-то угол. Это напроч сносит "голову" многим AO. Пока нигде ещё не применяется .
Было бы хорошо еще добавить в бенчмарк время за которое алгоритм решает задачу. Мне, например, время интересно в первую очередь.