gams-math - 如何在 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”和上面相同方程中的“非受控集输入为常数”。我该怎么做呢?
解决方案
这是更正的解决方案(有效):
equations maxime(a), ...;
maxime(a)..
sum(b, y(a,b)) =l= pam1(a);
我之前错误地将行索引 (a) 设置为我的控制索引。我需要将该索引设置为 b,即列索引。这就是你如何迭代每一行的总和并为其设置一个上限。
推荐阅读
- sql-server - 在计算超过 24 小时的时间时,无法更新视图/函数“cte”,因为它包含聚合
- qt - 通过 ListView 和 ListModel 显示多个 MapPolygons
- ruby-on-rails - 如何在rails活动记录关联上添加小于或等于条件(`<=`)以仅选择某些数据?
- scala - 在 Scala 中按行展平数组
- json - 是否可以让半自动解码器考虑案例类字段的默认值?
- javascript - Nuxtjs 页面组件中属于父页面的未定义变量
- jpa - 在 JPA 中使用 JOINS 重写 SQL 查询
- java - import org.mybatis.dynamic 无法解析
- mysql - mysql数据库设计推荐
- angular - Angular 6 项目未在 ie 和边缘浏览器中运行,尽管所有 polifile 所需的代码均未注释