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

如何访问Gurobi连续变量属性?二进制变量正常连续变量报错

问题分析与解决

这个报错的核心原因是你在创建连续变量y之后的代码里,不小心将y重新赋值成了浮点数,覆盖了Gurobi返回的tupledict对象(里面存储的是Var实例)。当你再尝试用y[1,1]访问时,此时y已经是float类型,自然会触发"float不可下标访问"的错误。

具体解决步骤:

  • 排查创建y之后的代码,找到类似y = 0.0、y = some_float_value这类直接给y整体赋值的语句并删除。
  • 如果你是要给变量设置属性(比如下界、上界、初始值),应该通过Var对象的方法或属性操作:
    # 设置初始值
    y[1,1].Start = 0.5
    # 设置下界
    y[1,1].LB = 0.0
    # 或者用setAttr方法
    y[1,1].setAttr('UB', 10.0)
    
  • 确认创建y时使用的集合P和创建e时的P完全一致,避免因集合结构变化导致索引匹配问题(不过这个概率远低于赋值覆盖的情况)。

验证方法:

在创建y之后、报错语句之前,先打印type(y),如果输出是<class 'gurobipy.tupledict'>,说明y还是正确的对象;如果输出是<class 'float'>,那肯定是被覆盖了,找到对应的赋值语句修正即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 15:41:13