Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python scipy.optimize.BASINHING间隔和验收测试语法_Python_Optimization_Scipy_Global_Minimum - Fatal编程技术网

Python scipy.optimize.BASINHING间隔和验收测试语法

Python scipy.optimize.BASINHING间隔和验收测试语法,python,optimization,scipy,global,minimum,Python,Optimization,Scipy,Global,Minimum,我试图用basinhopping找到目标函数的全局最小值,但在大多数情况下,它停留在局部最小值。我仔细阅读了文档,发现间隔和接受测试可能会有所帮助,但现在的问题是给它们什么值,例如,我希望我的目标函数尽可能接近0(1e-5 close),而不必花费太多时间在非常大的值(如4或5)上。至于interval如何知道步长的更新频率 以下是我如何寻找“全球”最小值: 如果你陷入局部最小值,那么这可能意味着你需要一个更大的步长。您可以使用关键字“步长”设置步长 合适的步长取决于问题,但幸运的是,basin

我试图用
basinhopping
找到目标函数的全局最小值,但在大多数情况下,它停留在局部最小值。我仔细阅读了文档,发现
间隔
接受测试
可能会有所帮助,但现在的问题是给它们什么值,例如,我希望我的目标函数尽可能接近0(1e-5 close),而不必花费太多时间在非常大的值(如4或5)上。至于
interval
如何知道步长的更新频率

以下是我如何寻找“全球”最小值:


如果你陷入局部最小值,那么这可能意味着你需要一个更大的步长。您可以使用关键字“步长”设置步长

合适的步长取决于问题,但幸运的是,basinhopping会自动调整步长。它执行此操作的频率取决于“interval”关键字。每一次迭代间隔,步长将增加或减少0.9倍。如果对步长的最初猜测相差甚远,这仍然需要一些时间。如果将时间间隔减少到10(左右),则速度应该快得多

我认为在这里接受考试对你没有帮助。例如,可用于强制执行配置空间的禁止区域

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