微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

(Python&Gurobi)AttributeError: 属性“VarName”的索引超出范围

如何解决(Python&Gurobi)AttributeError: 属性“VarName”的索引超出范围

我是gurobi的菜鸟。 下面的代码尝试实现tupledict的sum()。 但是,它不能给我正确的结果。 控制台告诉我代码面临 AttributeError。 我只是不知道如何解决此类错误

这是代码的全部内容。 我在 Jupyter Notebook 中完成了这段代码

import gurobipy as gp

m = gp.Model("test_model")

t_list = gp.tuplelist([(1,1),(1,2),(2,2)])

m_var = m.addVars(t_list,name="x")

print(m_var.select(1,'*'))
print(m_var.sum(1,'*'))

结果是:

[<gurobi.Var *Awaiting Model Update*>,<gurobi.Var *Awaiting Model Update*>]
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-4-0aa273e3b4c3> in <module>
     10 
     11 print(m_var.select(1,'*'))
---> 12 print(m_var.sum(1,'*'))

src\gurobipy\linexpr.pxi in gurobipy.LinExpr.__repr__()

src\gurobipy\var.pxi in gurobipy.Var.getAttr()

src\gurobipy\attrutil.pxi in gurobipy.__getattr()

AttributeError: Index out of range for attribute 'VarName'

解决方法

您好像发现了一个没有调用自动更新的情况。我会向开发人员提一些事情。同时,在调用 tupledict.sum() 之前添加对 Model.update() 的调用:

m.update()
print(m_var.sum(1,'*'))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。