我是GAMS的新用户,我想写一个条件,但我想不出表达它的正确方法。
当b(l)
不为零时,我希望Pcost(pl)
等于Loc(l,pl)
。
有什么表达方式吗?
答案 0 :(得分:1)
b(l) = sum(pl$Loc(l,pl), Pcost(pl));
$
是条件符号。 pl
需要在右侧进行控制。因此,使用sum
。假设每个pl
与l
只有一个Loc(l,pl)>0
,则上面的分配将完成您所要求的。
注意:$Loc(l,pl)
可以读作“如果Loc(l,pl)
不等于零。如果要更明确,也可以编写以下内容(实际上与第一个版本相同对于GAMS):
b(l) = sum(pl$(Loc(l,pl)<>0), Pcost(pl));