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

Minimum between two boolean decision variables in Pyomo

我需要做这样的事情:

d1 == min(d2,d3)

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

感谢回复。

d个变量为二进制变量时,

d1 = min(d2,d3)

真的和乘法一样

d1 = d2*d3

这通常被线性化为

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