我想解决一个lp优化问题,其中几个变量的上限不是整数,而是另一个变量的函数。例如,i
,j
和k
是三个变量,界限是0<=i<=100
,0<=j<=i-1
和0<=k<=j-1
。我们如何在scipy lp求解器中表示这样的非整数范围?
答案 0 :(得分:0)
当前,scipy的方法均不允许应用动态范围。您可以对scipy.optimize.minimize
或fsolve
进行非标准扩展,也可以使用动态范围来实现自己的优化器。
现在考虑这样做是否是一个好主意:不!
那是因为对于精心设计的优化问题,您希望设计变量及其边界正交独立。如果边界基于其他设计变量而变化,则该问题不是正交独立的。
答案 1 :(得分:0)
您可以按照以下方式尝试。
对于范围(0,100)中的i: 对于范围(0,int(i))中的j: 对于范围(0,int(j))中的k: 打印(k)