如何在PYOMO中分配虚拟二进制变量

时间:2020-09-10 10:44:19

标签: python optimization pyomo

假设我有两个实变量:X和Y以及两个二进制变量x和y。

我想添加以下约束pyomo:

when X>0 x--->1 else x-->0
when Y>0 y--->1 else y-->0
and x+y==1

我的方法是 缺点1: x> = X 缺点2: y> = Y 缺点3: x + y == 1

但是上面的方法似乎不起作用,并且x和y的值是随机的。

1 个答案:

答案 0 :(得分:0)

您的前两个条件需要很大的M约束。您可以尝试类似

M_y * y >= Yx + y == 1 [HttpPost("logout")] public async Task Logout() { await _signInManager.SignOutAsync(); } ,其中M_x和M_y是常量,您可以将其设置为不必绑定X和Y的值。这些约束不会限制将X和Y的值设置为1,当X> 0时将x = 1,当Y> 0时将y = 1。