问题描述
我有以下代码片段 - 这本质上是我试图解决的 LP 问题中的一个约束。我怎样才能把它放在一个具有最小最大范围的一行中?
prob += lpSum([base[i] * id_vars[i] for i in ID]) >= 33,"P1_34_Min_Base"
prob += lpSum([base[i] * id_vars[i] for i in ID]) <= 37,"P2_37_Max_Base"
基本上我想做的是:
prob += lpSum([base[i] * id_vars[i] for i in ID]) between 33 and 37,"P1_Base"
任何帮助都会很棒。谢谢
解决方法
我个人认为你得到的很好。不确定这会起作用,但您可以尝试
prob += lpSum([base[i] * id_vars[i] for i in ID]) - 33 <= 4
这假设您的变量的下限为 0