有没有办法查看Jupyter Notebook上纸浆CBC求解器的进度?

时间:2019-01-27 14:06:13

标签: progress solver pulp

我想看看Jupyter笔记本上纸浆CBC解决方案的进展情况。

我正在尝试使用纸浆CBC求解器解决一个非常大的lp问题,由于要花费数小时甚至数天才能找到最佳答案,所以我想知道求解器已经走了多远,还有多少要解决。走,因此我必须等待。

当前,我正在使用以下代码运行求解器,但笔记本或日志上没有任何显示。

m.solve(pulp.PULP_CBC_CMD(threads = 24, msg=1))

如果我理解正确,则msg = 1部分代码应该向我展示一些内容,但是我什么也没得到... 笔记本上没有日志,没有消息或任何东西。

我想以数字,百分比条或其他任何形式查看求解器的进度。即)要检查多少个答案,检查了多少个答案,估计的解决时间,经过的时间等

1 个答案:

答案 0 :(得分:0)

我已经使用一种解决方法来完成此任务,方法是将问题保存为泡菜,然后在%% python单元中将其读回。但是,这仅在求解完成后才输出日志。

import pickle
with open("[path]", 'wb') as handle:
    pickle.dump(prob, handle, protocol=pickle.HIGHEST_PROTOCOL)

解决:

%%python

import pickle
import pulp
import pandas as pd

with open("[path]", 'rb') as handle:

    prob = pickle.load(handle)

    #Optimization
    prob.solve(pulp.PULP_CBC_CMD(msg=True))

您还可以将结果保存到%% python单元中的本地磁盘,然后在jupyter Notebook中读回它们。