Deep-Copy CyLP模型供以后使用

时间:2015-08-21 22:15:53

标签: python mathematical-optimization linear-programming

我正在使用Python CyLP包对大型线性程序进行建模,以访问COIN-OR CLP求解器,并希望创建模型的副本以便于将来热启动。简单地将模型分配给新变量会创建浅层副本(通过引用复制),并且不会保留保存快照的好处(我正在修改原始模型,并希望从复制点返回热启动)。如果我使用copy.deepcopy(),则在修改复制模型时会出现异常。尝试解决副本会导致我的python内核出现Segmentation 11错误。

E.g:

from copy import deepcopy
from cylp.cy import CyClpSimplex

model1 = CyClpSimplex()
x = model1.addVariable('x',1)
y = model1.addVariable('y',1)
# Add constraints to model:
model1 += 2*x +   y >= 4
model1 +=   x + 2*y >= 5
model1.objective = x + y
model1.primal()
# Produces correct solution, accessed through

# Save a copy for reference:
model2 = deepcopy(model1)

# Do a bunch of stuff to model1, and now come back to work with model2:
model2.objective = 2*x + y

>> Exception: To set the objective function of CyClpSimplex set cylpSimplex.cyLPModel first

model2.primal()使用Segmentation 11错误杀死了我的Python实例。

有谁知道可能导致异常和/或致命错误的原因?

0 个答案:

没有答案