为什么 CBC 找不到 Pyomo 热启动文件?

时间:2021-06-08 15:34:06

标签: pyomo

我正在尝试对 CBC 求解器 2.10.3 和 Pyomo 5.7.3 使用热启动/mipstart 选项。 在我看来,CBC 需要一个到热启动解决方案文件的相对路径,而 Pyomo 提供一个绝对路径。 是对的吗?如果是这样,是否有任何可行的替代方法可以为 CBC 提供热启动解决方案? 非常感谢,斯蒂芬

详情:

首先,我存储了一个启发式的热启动解决方案:

for assignment in heuristic_solution.assignments:
   model.xvars[assignment] = assignment.count

然后我让 Pyomo 给 CBC 求解器打电话:

solver_factory.solve(model, warmstart=True)

Pyomo 成功创建了一个热启动文件(在 pyomo/solvers/plugins/solvers/CBCplugin.py 的第 267 行):

self._warm_start_file_name = TempfileManager.create_tempfile(suffix = '.cbc.soln')

Pyomo 然后通过创建命令行将此文件名交给 CBC:

C:\<...>\cbc.exe -import C:\<...>\problem.lp -mipstart C:\<...>\warmstart.cbc.soln -solve

然而,_warm_start_file_name 是绝对路径,而 CBC 只接受相对路径。因此,CBC 不会读取热启动解决方案。

0 个答案:

没有答案
相关问题