Pyomo中两个布尔决策变量之间的最小值

时间:2019-09-15 08:24:17

标签: linear-programming cplex pyomo

我需要做这样的事情:

d1 == min(d2,d3)

其中d是决策变量。我需要使用Pyomo。在cplex中,解决方案是通过函数minl实现的,如何以Pyomo或等效线性形式实现呢? 我在Google上搜索了一个解决方案,发现我可以断言d1必须小于或等于d2和d3。但这不适合我的问题,因为如果d2和d3等于1,则d1 <= 1,而我需要d1 == 1。

感谢您的答复。

1 个答案:

答案 0 :(得分:2)

d 变量是二进制变量时,

d1 = min(d2,d3)

与乘法确实一样

d1 = d2*d3

这通常被线性化为

d1 <= d2
d1 <= d3
d1 >= d2+d3-1