在线性编程中设置一组变量的最小值

问题描述

我正在尝试使用线性编程来找到可行的解决方案,以将权重分配给一组变量。

例如,假设我们有两组变量,如下所示:

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