在GAMS中使用变量

时间:2016-06-16 14:01:01

标签: gams-math

我有一个GAMS代码,我想要一个if语句。我已经读过关于美元状况的消息,我认为它可以帮助我。阅读GAMS user guide,它说:

  

美元条件

     

本节介绍美元运算符,它是GAMS最强大的功能之一。美元运算符以逻辑条件运行。术语$(条件)可以理解为'这样条件有效'条件是合乎逻辑的条件。

     

注意:   美元逻辑条件不能包含变量。但是,允许使用变量属性(如.l和.m)。

     

美元运算符用于建模条件赋值,表达式和方程。以下小节提供了一个澄清其用途的示例。下一节将分别讨论使用美元条件对条件赋值,表达式和方程进行建模的主题。

我已经在我的代码中尝试过了,但我仍然发现了同样的错误:

  

*** C:\ route \ Filename.gms中的错误53

     

不允许内生$操作

这是我的实际代码:

ACUMULADO_FIN_GRUPOS(k,l,t)..

GA(k,l,t)$(GA(k,l,t) GE GT(k,l)) =E= 0 ;

(如果变量的值大于或等于另一个变量,我想将变量的值更改为0)。我也尝试过.l属性:

ACUMULADO_FIN_GRUPOS(k,l,t)..

GA(k,l,t)$(GA(k,l,t).l GE GT(k,l).l) =E= 0 ;

然后出现下一个错误(仅在.l定义中)

  

*** C:\ route \ Filename.gms

中的错误8      

')'预期

拜托,有人可以帮忙吗?

提前致谢!!

1 个答案:

答案 0 :(得分:0)

我已经看到我之前的代码不正确,正确的方法是:

ACUMULADO_FIN_GRUPOS(k,l,t)..

GA(k,l,t)$(GA.l(k,l,t) GE GT.l(k,l)) =E= 0 ;

前面有.l设置定义。