1

我正在使用 GAMS 解决网络分布问题,这是我第一次使用 GAMS。我有以下约束(参见图片),我想在游戏中编写但不断出错。尝试使用 IF 语句或任何其他方法来解决它。变量 z 是一个已经声明过的二进制变量。

谢谢!

图片

4

2 回答 2

1

您不需要 if 语句,但可以使用美元条件来处理。您可以在方程式中使用美元条件(如此处所做),或者您可以编写三个具有美元条件的独立方程式来定义每个方程式的域。

E_z(u,v,i).. sum(j, z(u,v,j,i)) - sum(j, z(u,v,i,j)) 
=E= 
0 + 1$(sameas(i,u)) - 1$(sameas(i,v));

此处记录了 sameas 运算符。如果您的集合具有数值,则进行值比较可能会更清晰,例如 $(i.val = u.val)。

于 2017-06-12T15:10:28.053 回答
0

您可以在以下链接中阅读有关 GAMS 中条件表达式的更多信息:

https://www.gams.com/latest/docs/userguides/userguide/_u_g__cond_expr.html

于 2017-06-13T12:41:06.247 回答