我正在尝试为与特定变量的等级相关的约束条件编写混合整数线性规划,如下所示:
如何将这个约束写入混合整数线性规划中?
答案 0 :(得分:0)
不太容易。这是一个尝试:
首先为y(i)
引入二进制变量i=2,3,4
然后我们可以写:
x(1) >= x(i) - (1-y(i))*M i=2,3,4
x(1) <= x(i) + y(i)*M i=2,3,4
rank = 4 - sum(i,y(i))
y(i) ∈ {0,1} i=2,3,4
这里M
是一个足够大的常数(一个很好的选择是数据的最大范围)。如果您的求解器支持指标约束,则可以简化一些事情。
一个小例子说明了它的工作原理:
---- 36 VARIABLE x.L
i1 6.302, i2 8.478, i3 3.077, i4 6.992
---- 36 VARIABLE y.L
i3 1.000
---- 36 VARIABLE rank.L = 3.000