gpt4 book ai didi

python - Scipy.optimize 不等式约束 - 不等式的哪一边被考虑?

转载 作者:太空狗 更新时间:2023-10-29 20:10:26 25 4
gpt4 key购买 nike

我正在使用 scipy.optimize 模块来寻找可以最小化输出的最佳输入权重。从我看过的例子中,我们用单边方程定义约束;然后我们创建一个类型为“inequality”的变量。我的问题是优化包如何知道我的约束中的变量总和需要小于 1 还是大于 1?

...

def constraint1(x):
return x[0]+x[1]+x[2]+x[3]-1

....

con1 = {'type': 'ineq', 'fun': constraint1}

链接到我在示例中使用的完整解决方案: http://apmonitor.com/che263/index.php/Main/PythonOptimization

最佳答案

引用https://docs.scipy.org/doc/scipy-0.18.1/reference/tutorial/optimize.html向下滚动到 Constrained minimization of multivariate scalar functions (minimize),你可以发现

This algorithm allows to deal with constrained minimization problemsof the form:

enter image description here

其中不等式的形式为 C_j(x) >= 0

所以当你将约束定义为

def constraint1(x):
return x[0]+x[1]+x[2]+x[3]-1

并将约束的类型指定为

con1 = {'type': 'ineq', 'fun': constraint1}

它自动假设约束是标准形式 x[0]+x[1]+x[2]+x[3]-1>=0 x[0]+x[1]+x[2]+x[3]>=1

关于python - Scipy.optimize 不等式约束 - 不等式的哪一边被考虑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42303470/

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