gpt4 book ai didi

python - 传递给函数的未知类型的约束

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

您好,我正在做一个最小化问题,我想尝试使用 'trust-constr' 方法,使用 scipy 函数 optimize.minimize,将其与 ' SLSQP 的结果。不幸的是,我不知道为什么当我将我的方法设置为 'trust-constr' 时,它告诉我:

ValueError:传递了未知类型的约束

代码如下:

con1 = {'type':'eq', 'fun': eq2}
con2 = {'type':'ineq', 'fun' : ieq_bck2}
con3 = {'type':'ineq', 'fun' : ineq_rb2}
con4 = {'type':'ineq', 'fun' : ls2}

con = ([con1, con2, con3, con4])

scipy.optimize.minimize(fitness2, opt, method = 'trust-constr', jac =
'cs', hess = h1, constraints = con)

知道如何解决吗?

最佳答案

根据 the Scipy documentation ,您的变量 con 必须是字典。还有一个例子,con必须是这样的:

cons = ({'type': 'ineq', 'fun': lambda x:  x[0] - 2 * x[1] + 2},
{'type': 'ineq', 'fun': lambda x: -x[0] - 2 * x[1] + 6},
{'type': 'ineq', 'fun': lambda x: -x[0] + 2 * x[1] + 2})

所以在你的情况下,这样做:

con = (con1, con2, con3, con4)

关于python - 传递给函数的未知类型的约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55610680/

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