如何在scipy.optimization中表示变量的边界,其中bound是另一个变量的函数

时间:2019-01-19 12:40:34

标签: python scipy

我想解决一个lp优化问题,其中几个变量的上限不是整数,而是另一个变量的函数。例如,ijk是三个变量,界限是0<=i<=1000<=j<=i-10<=k<=j-1。我们如何在scipy lp求解器中表示这样的非整数范围?

2 个答案:

答案 0 :(得分:0)

当前,scipy的方法均不允许应用动态范围。您可以对scipy.optimize.minimizefsolve进行非标准扩展,也可以使用动态范围来实现自己的优化器。

现在考虑这样做是否是一个好主意:不!

那是因为对于精心设计的优化问题,您希望设计变量及其边界正交独立。如果边界基于其他设计变量而变化,则该问题不是正交独立的。

答案 1 :(得分:0)

您可以按照以下方式尝试。

对于范围(0,100)中的i:     对于范围(0,int(i))中的j:         对于范围(0,int(j))中的k:             打印(k)