首页 > 解决方案 > 如何在 GAMS 中的表格中为每一行的总和设置一个上限?

问题描述

我有一个名为“延迟”的表,它包含 2 个集合 a 和 b,以及一个用于迭代该表的变量 y。同样,我有一些必须满足的参数:

table latencies(a, b)
   b1  b2  b3
a1 1   2   3
a2 4   5   6
a3 7   9   8;

parameter pam1(a) /"a1" 12, "a2" 13, "a3" 14/; 
positive variable y(a,b);

我试图使延迟表中的每一行的总和最多为参数 pam1 中的每个相应元素。

equations maxime(a), ...;
maxime(a)..
   sum(a, y(a,b)) =l= pam1(a);

因此,延迟中第一行的总和应小于或等于 12,第二行的总和应小于或等于 13,依此类推。但是,我收到这些错误:“Set is under control already”和上面相同方程中的“非受控集输入为常数”。我该怎么做呢?

标签: gams-math

解决方案


这是更正的解决方案(有效):

  equations maxime(a), ...;
  maxime(a)..
     sum(b, y(a,b)) =l= pam1(a);

我之前错误地将行索引 (a) 设置为我的控制索引。我需要将该索引设置为 b,即列索引。这就是你如何迭代每一行的总和并为其设置一个上限。


推荐阅读