Python:lmfit:shgo 不接受 minimumr_kwargs

问题描述

我们试图找到最小化问题的全局最优。我们已经通过 lmfit 'interface' 尝试了 scipy 的盆地跳跃和 shgo(简单同源全局优化)算法。使用盆地跳跃,我们可以成功地收敛并根据我们的喜好调整局部最小化器。但是,当我们使用 shgo 时,我们无法将“minimizer_kwargs”传递给本地最小化器。问题说明:

盆地跳跃:

minner = Minimizer(func,params_instance,fcn_args=(arg),disp=True,niter=200,minimizer_kwargs={'method':'Nelder-Mead','options':{'disp':'True','maxiter':10000}})

result = minner.minimize(method='basinhopping' )

print(result.call_kws)

结果:

{'niter': 200,'T': 1.0,'stepsize': 0.5,'minimizer_kwargs': {'method': 'Nelder-Mead','options': {'disp': 'True','maxiter':10000}},'take_step':无,'accept_test':无,'callback':无,'interval':50,'disp':True,'niter_success':无,'seed':无}

这符合预期,因为 Nelder-mead 的选项正确传递为 {'disp': 'True','maxiter': 10000}。

现在是 SHGO:

minner = Minimizer(func,params,sampling_method='sobol',n=600,'maxiter':10000}})


result = minner.minimize(method='shgo')

print(result.call_kws)

结果:

{'constraints': None,'n': 600,'iters': 1,'callback': None,'options': {}},'options': 无,'sampling_method': 'sobol'}

如您所见,Nelder-Mead 的“选项”突然变成了一个空字典。有关如何解决此问题的任何想法?

谢谢!

Savannah-dev1

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)