You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将GAMS集合转换为Julia JuMP:约束定义的正确方法

GAMS到Julia JuMP约束的正确转换写法

你的代码里存在一个小问题:在约束表达式中重复遍历了集合D。外层@constraint已经通过[d in D]为每个d生成单独约束,所以内部不需要再写demIReal[d in D],直接引用demIReal[d]即可。

正确的约束代码如下:

D = [1,2,3,4,5]
L = [1,2,3]
@constraint(model, eDemIR[d in D], demIReal[d] + sum(line2dem[l, d] * lineIReal[l] for l in L) == 0)

这段代码完全对应原GAMS约束逻辑:

  • 为每个d ∈ D生成名为eDemIR[d]的约束
  • 约束表达式为demIReal(d)加上所有l ∈ L对应的line2dem(l,d)*lineIReal(l)之和等于0,和GAMS中的sum(l,line2dem(l,d)*lineIReal(l))语义一致

内容的提问来源于stack exchange,提问作者sati

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 03:47:03