0

如标题所述

sum((r,l), Mer.l(e,r) * Mel(e,l)) =e= 0;

我用一个GAMS mip模型解决一个问题,mer(e,r)和mel(e,l)都是二进制变量,如果我没有写.l后缀,编译会Endogenous relational operations require model type "dnlp""报错,但我不是确定上面的方程保持原来的意思是 Mer(e,r) 仍然是一个变量吗?并且它仍然可以随着mip求解过程而改变吗?

4

1 回答 1

1

如果您使用 Mer.l,模型将不再使用 Mer 作为优化的变量,而是使用变量 Mer 的(初始)水平作为常数。但是你可以重新格式化你的方程,使其保持线性。据我了解,您要确保对于每个 e 以及 r 和 l 的每个组合,您永远不会得到 Mer=1 和 Mel=1(一个可能是 1 或两者都应该是 0)。所以你可以制定如下:

equation e(e,r,l);
e(e,r,l).. Mer(e,r) + Mel(e,l) =l= 1;

我希望这有帮助,卢茨

于 2016-12-20T16:22:10.497 回答