如何在约束中定义if语句--GAMS优化

时间:2017-02-14 22:47:15

标签: gams-math

我试图找到最佳行为,以便获得以下公式的最大回报。程序正在运行,但输出与输入相同,这意味着代码出错。

我试图定义价格弹性,我需要在高峰期和低峰时间找到最优价格关税,这些关税是当天的特定时段。高峰是16-23点钟,低峰值是其余时间。我的问题是可以在约束中定义if语句吗?

Con4(hpd)$(if(ord(hpd)> 15)和(ord(hpd)< 23)).. P_H(hpd)= E = PHP;

Con5(hpd)$((ord(hpd)< 16)和(ord(hpd)> 22)).. P_H(hpd)= E = PLP;

一切顺利,

1 个答案:

答案 0 :(得分:0)

你快到了。你不需要写如果(美元符号基本上是一个if),只需要条件本身,如第二个等式。第二个等式应该是而不是

小小的烦恼,我尝试使用 .val 而不是 ord(),因为 ord 变得凌乱从1.开始,Val给出一个集合元素的数值,假设设定元素是数字。

Con4(hpd)$(hpd.val>=16 and hpd.val<=22).. P_H(hpd) =E= PHP;
Con5(hpd)$(hpd.val<16 or hpd.val>22).. P_H(hpd) =E= PLP;