MIP在古罗比开始

时间:2018-09-22 13:10:42

标签: python gurobi

我正在尝试从Gurobi MILP解算器开始设置MIP。我有一组二进制变量:

tupledict_m = master.addVars(list_m, name="m", vtype=GRB.BINARY)

其中master是Gurobi模型,list_m是整数的元组。我运行以下命令来设置初始值:

for i in list_m: tupledict_m[i].start = bool(m_values[i])

其中,具有浮点数据类型的m_values [i]为1.0或0.0。 在那之后,如果我打印:print([tupledict_m[i].start for i in list_m]) 我到处都得到1e + 101。是否知道为什么以及如何解决该问题?

1 个答案:

答案 0 :(得分:1)

From the docs:

  

[...]回想一下,Gurobi优化器采用了惰性更新方法,因此对属性的更改要等到对关联模型的下一次调用Model.update,Model.optimize或Model.write时才生效。

因此,在为变量设置了mip start之后,需要运行master.update()

示例:

In [1]: from gurobipy import *

In [2]: m = Model()
Academic license - for non-commercial use only

In [3]: x = m.addVars(3, vtype=GRB.BINARY, name="x")

In [4]: x[2].start = 0

In [5]: print(x[2].start)
1e+101

In [6]: m.update()

In [7]: print(x[2].start)
0.0