如何在 GAMS 中设置 table 中每行总和的上限?
How to put an upper bound over the sum of each row in a table in GAMS?
我有一个名为 "latencies" 的 table,它包含 2 个集合 a 和 b,以及一个变量 y 来迭代此 table。同样,我有一些必须满足的参数:
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 中最多每个相应元素的延迟 table 计算每一行的总和。
equations maxime(a), ...;
maxime(a)..
sum(a, y(a,b)) =l= pam1(a);
因此延迟中第一行的总和应小于或等于 12,第二行的总和应小于或等于 13,依此类推。但是,我收到以下错误:"Set is under control already" 和 "Uncontrolled set entered as constant" 在上面的相同等式上。我该怎么做?
这是更正的解决方案(有效):
equations maxime(a), ...;
maxime(a)..
sum(b, y(a,b)) =l= pam1(a);
我之前错误地将行索引 (a) 设置为我的控制索引。我需要将该索引设置为 b,即列索引。这就是您如何遍历每行的总和并为其设置上限。
我有一个名为 "latencies" 的 table,它包含 2 个集合 a 和 b,以及一个变量 y 来迭代此 table。同样,我有一些必须满足的参数:
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 中最多每个相应元素的延迟 table 计算每一行的总和。
equations maxime(a), ...;
maxime(a)..
sum(a, y(a,b)) =l= pam1(a);
因此延迟中第一行的总和应小于或等于 12,第二行的总和应小于或等于 13,依此类推。但是,我收到以下错误:"Set is under control already" 和 "Uncontrolled set entered as constant" 在上面的相同等式上。我该怎么做?
这是更正的解决方案(有效):
equations maxime(a), ...;
maxime(a)..
sum(b, y(a,b)) =l= pam1(a);
我之前错误地将行索引 (a) 设置为我的控制索引。我需要将该索引设置为 b,即列索引。这就是您如何遍历每行的总和并为其设置上限。