我正在使用NLopt(python 包装器)对Egg holder 函数进行全局优化(范围 x_i = [-512, 512]。
我正在使用 GN_ORIG_DIRECT 无梯度算法,这是一种全局优化算法。我发现我的优化在最小值 (-935.337) 处停止,接近 Egg holder 函数页面上提到的全局最小值(谷)(对于 x,y = 512、404.2319,最小值 = -959.647)。如果我使用任何随机猜测(远离甚至接近全局最小值),算法将稳定在 -935.337。如果我使用接近全局最小值的初始猜测,但使用局部最小值算法,那么只有算法收敛到全局最小值。这表明该算法可以找到全局最小值。我不知道出了什么问题。我错过了什么吗?
图中绿点(左)是全局最小值,靠近它的红点(右)是优化后找到的。背景中的点是远离两者的初始猜测。
任何人都可以提出这样的问题可能是什么原因?我没有使用任何约束。
感谢您的建议!
编辑:我尝试了其他 1 个变量函数,我可以找到最小值。我还尝试了Drop-Wave函数,算法收敛到正确的值。