【问题标题】:Accessing the last element of a variable in GAMS访问 GAMS 中变量的最后一个元素
【发布时间】:2018-02-19 05:03:27
【问题描述】:

我有一套:

设置t /t1*t6/;

让我们考虑一个名为 var 的变量。我有一个约束,var 的最后一个元素小于 20。

变量 var(t);

方程常数;

常量..

var('t6')

我想用 card(t) 之类的东西替换最后一行中的“t6”,这样如果 t 的大小发生变化,我就不必手动更改它。

【问题讨论】:

    标签: gams-math


    【解决方案1】:

    您还可以借助集合 t 的“last”属性定义一个上限:

    Set t /t1*t6/;
    
    Variable var(t);
    
    var.up(t)$(t.last) = 20;
    

    最好, 卢茨

    【讨论】:

      【解决方案2】:

      您可以使用美元条件将等式限制为最后一个时期:

      const(t)$(card(t)).. var(t) < 20;
      

      或者您可以为您的结束条件定义一个单例子集,如下所示:

      singleton set tEnd(t);
      tEnd(t) = yes$(card(t));
      
      const.. var(tEnd) < 20;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多