问题描述
我正在尝试使用线性编程来找到可行的解决方案,以将权重分配给一组变量。
例如,假设我们有两组变量,如下所示:
import pulp
w = LpVariable("w",10)
x = LpVariable("x",10)
y = LpVariable("y",10)
z = LpVariable("z",10)
我想设置约束,以便w或x大于零而y或z大于零。每个组中的约束数量可以超过两个。因此,我不想使用if-else语句。
解决方法
鉴于它们都可以为零,而不是只有一个,只需取两个变量的总和,并说该值必须大于零。
w + x > 0
如果为w = 0
,则为x > 0
,如果为w > 0
,则为x >= 0
。