如标题中所述,如何使用线性约束来确保整数 n 不会出现( n1 , n2 ),其中 n,n1,n2 都是整数,间隔不是[ n1 , n2 ]
我在GAMS中将问题表述为
n2 - n1 =l= abs(2*n - n2 - n1)
但MIP模型中不允许abs()
。
THX
答案 0 :(得分:0)
您需要为低于或高于间隔的n eing eighter定义二进制变量( nlow )。然后使用两个约束来强制执行此操作。数字 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;