gpt4 book ai didi

python - 声明 basinhopping 优化的约束

转载 作者:太空宇宙 更新时间:2023-11-04 03:30:26 24 4
gpt4 key购买 nike

我在使用 scipy.optimize.basinhopping 为约束创建字典时遇到问题。我能够让我的代码运行(没有约束),但答案没有意义,因为我需要强制执行一些约束。目前,我只是试图让一个约束起作用,但对于最终解决方案,我需要弄清楚如何实现多个约束。我现在的代码是:

x0 = [f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11]
args = arg1,arg2,arg3,arg4
def func(x,*args)
#Do some math
return result

#This is where I need help most
cons = {'type':'ineq','fun': lambda x: x[5]-x[4]}

minimizer_kwargs = {"method":"COBYLA","args":"args","constraints":"cons"}
ret = scipy.optimize.basinhopping(func,x0,minimizer_kwargs=minimizer_kwargs)

但在尝试运行时出现此错误:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 601, in runfile
execfile(filename, namespace)
File "C:\Python27\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 66, in execfile
exec(compile(scripttext, filename, 'exec'), glob, loc)
File "C:/Python27/Scripts/SpectralResearch/mainScripts/main.py", line 121, in <module>
ret = scipy.optimize.basinhopping(func,x0,minimizer_kwargs=minimizer_kwargs)
File "C:\Python27\lib\site-packages\scipy\optimize\_basinhopping.py", line 605, in basinhopping
accept_tests, disp=disp)
File "C:\Python27\lib\site-packages\scipy\optimize\_basinhopping.py", line 72, in __init__
minres = minimizer(self.x)
File "C:\Python27\lib\site-packages\scipy\optimize\_basinhopping.py", line 279, in __call__
return self.minimizer(self.func, x0, **self.kwargs)
File "C:\Python27\lib\site-packages\scipy\optimize\_minimize.py", line 432, in minimize
return _minimize_cobyla(fun, x0, args, constraints, **options)
File "C:\Python27\lib\site-packages\scipy\optimize\cobyla.py", line 218, in _minimize_cobyla
raise TypeError('Constraints must be defined using a '
TypeError: Constraints must be defined using a dictionary.

本质上,我需要强制执行某些变量大于其他变量的约束。我一直在查看文档([ 1 ]、[ 2 ])和文章,但没有找到任何有效的方法。知道我可能做错了什么吗?

最佳答案

minimizer_kwargs = {"method":"COBYLA","args":args,"constraints":cons}

您传递了字符串“args”和“cons”,而不是具有这些名称的变量。

关于python - 声明 basinhopping 优化的约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31278026/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com