如何在整数编程中对复杂的if-then语句建模

时间:2019-02-06 18:11:22

标签: modeling linear-programming

我正在尝试为MIP建立if-then条件。 MIP看起来像

最大化SUM_i H(i)-C

s.t。,

  SUM_j x(i, j) <= D(i) and 

  SUM_i x(i, j) <= S(j)

如果SUM_j x(i,j)= D(i),则H(i)= 1,否则为0

并且C = SUM_i,j(如果x(i,j)> 1,则为1,否则为0)

我知道如何在MIP中为简单的if-then条件建模。但无法对此模型进行建模。

1 个答案:

答案 0 :(得分:0)

我们可以通过在需求方程中引入松弛变量v并说出

h(i)=1 => v(i)=0

这种含意很容易实现为不等式:

v(i) <= (1-h(i))*D(i)

完整的模型如下所示:

enter image description here