有没有办法在python中保存Gurobi对象?

有没有办法在python中保存Gurobi对象?,python,mathematical-optimization,gurobi,Python,Mathematical Optimization,Gurobi,我有许多具有多个索引的变量,例如: flow[i,j,k] 使用Gurobi变量名:flow_1_1_1,…,flow_1_2_3等 如果Gurobi模型对象是全局变量,则可以通过flow[i,j,k].x访问解决方案值 我的问题是,有没有一种方法可以存储“flow”对象并在以后加载它以进行重新优化?不幸的是,pickle不受支持 如果没有,我最好的选择是什么 如果模型根本没有更改,则可以导出模型,然后再导入 恐怕,通过创建自己的数据结构并将x-值与索引一起保存在那里,您的境况通常会更好。在以后

我有许多具有多个索引的变量,例如:
flow[i,j,k]

使用Gurobi变量名:
flow_1_1_1,…,flow_1_2_3

如果Gurobi模型对象是全局变量,则可以通过
flow[i,j,k].x访问解决方案值

我的问题是,有没有一种方法可以存储“flow”对象并在以后加载它以进行重新优化?不幸的是,pickle不受支持


如果没有,我最好的选择是什么

如果模型根本没有更改,则可以导出模型,然后再导入

恐怕,通过创建自己的数据结构并将
x
-值与索引一起保存在那里,您的境况通常会更好。在以后重新优化的情况下,只需重新创建模型并将
.start
设置为保存的值


注意,使用这种方法,您将始终丢失预解、根松弛、根节点以及分支和边界信息。我没有经验,如果其中一些可能有助于更好地重新优化开始。

在优化后可以恢复变量的值。然后使用这些进行如下再优化(sol_U是术语,我们恢复变量vU的数据)。
m.optimize()
状态=m状态
如果状态==GRB.status.OPTIMAL:
sol_V=m.getAttr('x',vV)
sol_=m.getAttr('x',vU)
打印('优化状态为%d'%1!'状态)
打印('最佳目标是%g'%m.objVal)
对于OpEq中的e:
对于bl集团:
对于Te中的t:
如果sol_[bl,t,e]>0.1:
打印('u_u(%s,%i,%s)->%f%%(bl,t,e,sol_u[bl,t,e]))
sol_V=m.getAttr('x',vV)
对于op_2;中的op:
对于BLOCRS中的bl:
对于Te中的t:
如果sol_V[bl,t,op]>0.1:

打印('v_(%s,%i,%i)->%f%%(bl,t,op,sol_v[bl,t,op]))
代码格式的可读性