【问题标题】:GAMS indexing queryGAMS 索引查询
【发布时间】:2016-12-27 15:34:20
【问题描述】:

您好,我正在尝试优化一个函数,该函数涉及由集合 L /1*10/ 索引的变量 s(L) 的组件;

我创建了集合 L 的一个子集 Leven,涉及偶数 (Leven /2,4,6,8,10/)

我想写下一个方程,它将 s(L) 的偶数分量设置为奇数分量的两倍..

请问这样的方程应该怎么写?

我打算把它写成

方程(Leven).. s(Leven) =E= s(Leven-1)*2;

但上述错误,例如对于 Leven = 4,s(Leven-1) 被解释为 s(2) 而不是 s(3) ..

非常感谢

【问题讨论】:

    标签: indexing set integer-programming gams-math


    【解决方案1】:

    您可以使用美元条件将方程限制为您的子集,如下所示:

    set Leven(L);
    Leven(L) = yes$(mod(ord(L),2) eq 0);
    
    equation(L)$Leven(L).. s(L) =E= s(L-1)*2;
    

    (我不能 100% 确定用于定义上述子集的语法,因为我正在度假并且没有 GAMS,但你应该明白这一点。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-14
      相关资源
      最近更新 更多