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

使用gurobipy编写模型约束方程7遇阻,请求技术协助

解决Gurobi约束中quicksum的s循环范围问题

你代码里的s循环范围完全取决于你的模型中s的定义以及约束7的数学逻辑:

  • 如果s代表某个独立的全局集合(比如时间段、场景集合),循环范围直接写这个集合的名称(比如你预先定义的S集合)
  • 如果s和l/i存在关联(比如每个l对应特定的s子集),则需要写成for s in S[l]这类形式,前提是你已定义好这种关联子集

给两个常见场景的修正示例:

示例1:s属于全局集合S

若s是独立的全局集合(比如场景集合S),代码调整为:

mdl2.addConstrs(
    T[i, j, k] >= quicksum(p[l]*y[i, l, s] + s[l]*x[i, l, s] for l in N for s in S) - d[j] - 100000*(1 - x[i, j, k])
    for i in M
    for j in N
    for k in N
) #7

示例2:s与l存在关联子集

若每个l对应专属的s子集(比如预先定义的S_subset字典,key为l,value是对应的s集合),代码调整为:

# 假设已定义S_subset,存储每个l对应的s子集
mdl2.addConstrs(
    T[i, j, k] >= quicksum(p[l]*y[i, l, s] + s[l]*x[i, l, s] for l in N for s in S_subset[l]) - d[j] - 100000*(1 - x[i, j, k])
    for i in M
    for j in N
    for k in N
) #7

如果仍不确定,补充约束7的数学表达式原文以及s对应的参数/变量定义,或者贴出完整模型代码,能更精准定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 21:36:02