gtol 参数问题 [mystic]

gtol parameter issues [mystic]

我正在尝试使用 Python 中的 mystic 库优化函数,并且有一个关于 gtol[=29= 的一般性问题]参数。

我正在搜索的参数space是高维度的(30-40),因此我设置gtol[=29=似乎很合适] = 40000。奇怪的是,该算法似乎在 30000 次迭代后停止,尽管我将 gtol 指定为 40000,这(据我所知)意味着该算法在它之前应该有 40000 次相同的迭代停止 运行.

我的函数调用非常基础:

stepmon = VerboseLoggingMonitor(1, 1)
result  = diffev2(utilss, x0=[1/value]*value, bounds=[(0,0.2)] * value,  npop=150, gtol=40000, disp=True, full_output=True, itermon=stepmon

我检查了评价函数的演化,它在第 29000 次迭代附近是平坦的。最后 1000 次迭代是相同的,但它已经停在那里而不是 运行 其余 39000 次需要 gtol 次迭代。

我是否误解了 gtol 参数?或者我在这里缺少什么?

提前致谢。

我是 mystic 作者。这是 gtol 的正确解释,但是,您可能忽略了 maxiter(和 maxfun),这是要执行的最大迭代次数(和函数求值)。

如果你不设置maxiter(默认为None),那么我相信diffev2的默认设置是10 * nDim * nPop。尝试设置 maxiter=100000,或类似的东西。

如果终止消息显示 Warning: Maximum number of iterations has been exceeded,则 maxiter 导致它停止。