Python Pulp 线性规划最小最大范围

问题描述

我有以下代码片段 - 这本质上是我试图解决的 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