我正在使用GAMS解决网络分发问题,这是我第一次使用GAMS。我有以下约束(参见图像),我想在gams中写,但不断收到错误。尝试使用IF语句或任何其他方式来解决它。变量z是一个二进制变量,已经声明了。
谢谢!
答案 0 :(得分: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));
记录了here相同的运算符。如果您的集合具有数值,则进行值比较可能更清晰,例如$(i.val = u.val)。
答案 1 :(得分:0)
您可以在以下链接中阅读有关GAMS中条件表达式的更多信息:
https://www.gams.com/latest/docs/userguides/userguide/_u_g__cond_expr.html