1

正如标题中提到的,如何使用线性约束来确保整数n在 ( n1 , n2 ) 之外,其中n,n1,n2都是整数,并且区间不是 [ n1 , n2 ]。

我将 GAMS 中的问题表述为

n2 - n1 =l= abs(2*n - n2 - n1)

abs()在 MIP 模型中是不允许的。

谢谢

4

1 回答 1

0

您需要定义一个二进制变量 ( nlow ),以使 n 低于或高于区间八倍。然后使用两个约束来强制执行此操作。数字M应该很大,例如它不会限制您的变量n

Scalar M /1000/;    
Integer Variable n;    
Binary Variable nlow;    
Equation below, above;

below ..  n =L= n1 + M*(1-nlow);    
above ..  n =G= n2 - M*nlow;
于 2018-06-18T10:48:45.857 回答