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

如何为Gurobi中基于距离矩阵D的x[i,j,k]高效添加非负约束?

Gurobi批量添加变量下界约束的高效方法

针对大规模矩阵下给变量x[i,j,k]添加x[i,j,k]≥0约束效率低的问题,有两种高效方案:

  • 方案一:创建变量时直接指定下界
    Gurobi的addVars方法支持通过lb参数批量设置变量下界,无需事后循环添加约束。修改你的代码如下:

    varsGurobi = [(i,j,k) for i in range(len(D)) for j in range(len(D[i])) for k in range(len(D[i][j])) if D[i][j]]
    x = model.addVars(varsGurobi, vtype=gp.GRB.INTEGER, lb=0)
    

    这种方式在变量初始化阶段就完成下界设置,Gurobi内部会批量处理,效率远高于循环添加约束。

  • 方案二:已创建变量时批量修改下界
    如果变量已经创建完成,可以使用setAttr方法批量设置所有变量的下界,避免逐个循环操作:

    x.setAttr('LB', 0)
    

    该方法会一次性对所有变量应用下界设置,同样能大幅提升效率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 03:01:13