【发布时间】:2014-03-17 10:39:49
【问题描述】:
我正在尝试使用basinhopping 找到目标函数的全局最小值,但在大多数情况下它都停留在局部最小值上。我通读了basinhopping 的文档,发现interval 和accept_test 可能会有所帮助,但现在的问题是赋予它们什么值,例如我希望我的目标函数尽可能接近 0(1e-5 接近),而不会在 4 或 5 等非常大的值上花费太多时间。至于 interval 如何知道步长的更新频率?
这是我寻找“全局”最小值的方法:
np.random.seed(555) # Seeded to allow replication.
minimizer_kwargs = {"method": "L-BFGS-B", "bounds": bnds,, tol=1e-4}
ret = basinhopping(merit_function, abcdex, minimizer_kwargs=minimizer_kwargs, niter=10)
zoom = ret['x']
res = minimize(merit_function, zoom, method = 'L-BFGS-B', bounds=bnds, tol=1e-9)
print res
【问题讨论】:
标签: python optimization scipy global minimum