https://t.me/+vazsAAcney4zYmZi A list of implemented optimization algorithms (M - is a modified improved version, joo - is an algorithm of my development):
В этой статье будет рассмотрена группа алгоритмов оптимизации, известных как "Эволюционные стратегии" (Evolution Strategies или ES). Они являются одними из самых первых популяционных алгоритмов, использующих принципы эволюции для поиска оптимальных решений. Будут представлены изменения, внесенные в классические варианты ES, а также пересмотрена тестовая функция и методика стенда для алгоритмов.
我一直在看这里的 测试图片。图片相符。
我还不明白多维的诀窍,我需要弄清楚。
这是该系列的第一篇文章。思想并没有停滞不前,函数测试集已经朝着复杂化和抵制假成功方法和初始化为零的假阳性方法的方向转变。这就是为什么你应该看看最近的文章,比如这篇文章。
github 上始终有最新的源代码。
测试梯度方法:
https://www.mql5.com/ru/forum/475597/page2#comment_55006029
这是该系列的第一篇文章。思想并没有停滞不前,函数测试集已经发生了变化,使其变得更加复杂,并打击了初始化为零的方法的假成功,总之是打击了假阳性。这就是为什么你应该看看最近的文章,比如这篇文章。
资料来源始终是最新的。
我明白了。如果有时间和愿望,我将制作多维图片。
在三维空间中,我们已经看到了一些图片,它们的梯度甚至会被局部卡住。如果把搜索空间分成几批,它就会固定下来。这就是梯度解算器的工作方式,别无他法。
1000 次测量的结果。浪费服务器时间 - 9 分钟。
似乎没有错误,是根据文章的模具制作的。
这是该系列的第一篇文章。思维并没有停滞不前,函数测试集已经发生了变化,使其变得更加复杂,并抵制假成功方法和初始化为零的误报。这就是为什么你应该看看最近的文章,比如这篇文章。
github 上总是有最新的源代码。
测试梯度方法
https://www.mql5.com/ru/forum/475597/page2#comment_55006029
includnik 中有一个 f-ya,它被使用了吗?
如何确定正确的边界?我的理解是,它的一部分会被提取。
如果我没有缩小边界,那么计算(求最大值)会更复杂吗?
对于发现的 25 维情况。我不知道错误出在哪里。
如果我不缩小边界,那么计算(求最大值)会更困难吗?
不,不会更复杂。在你的函数中,有多少摩天大楼高于函数最小值和最大值的 50%?我的有多少?如果随机分散点,哪个面的高度更容易超过 50%?- 您的问题所以,再次强调,边界设置不正确。
这里有相关说明: https://www.mql5.com/zh/articles/13923#tag3
我从你的代码中得到了这个结果:
一些不太有趣的结果,但你坚持发布不同试验的最佳结果。运行 20 次试验(按下播放按钮 20 次),或者编写一个模拟多次试验的循环,然后计算平均结果,就像你在文章中所做的那样。
这就引出了一个问题:为什么是 100,000,为什么不是 1,000,000,000,000?
没必要害羞,放十亿就可以了,但不知为什么,你没有显示目标函数的调用次数,到底有多少次调用?在排名测试中,只允许调用目标函数 10,000 次,而对于梯度方法(算法可能会尝试调用更多的 FF),代码中会有一个分界线,如果超过了这个限制,就会输出目标函数的最小值(这些方法都在寻找一个最小值,所以值是相反的):
所有这些在前面的文章中都有描述。
该类有 GetMinRangeX (), GetMaxRangeX (), GetMinRangeY (), GetMaxRangeY () 方法,使用这些方法可以查询边界(在相应测试函数的代码中可以看到边界)。
实际上,对目标的最大允许访问次数总是有限制的,我们在测试中采用的限制是 10 000 次访问。
如果在计算资源或时间方面没有限制,那么最好不要使用优化算法,而是进行简单的全面枚举,但这在现实生活中从未发生过。对各种方法的测试和比较是以 10 000 次命中目标为限进行的。比较算法的全部意义在于,看哪种算法能以更少的目标访问次数获得更好的结果。因此,一种算法需要访问目标的次数越多才能获得可比较的结果,该算法在相应类型的任务中就被认为越弱。
遗憾的是,在有关优化方法的文章中详细描述过的一些非常微妙的要点,您都没有注意到。
在有些情况下,完全蛮力搜索找不到最优值,因为蛮力网格的节点不在最优值上。