我想看看Jupyter笔记本上纸浆CBC解决方案的进展情况。
我正在尝试使用纸浆CBC求解器解决一个非常大的lp问题,由于要花费数小时甚至数天才能找到最佳答案,所以我想知道求解器已经走了多远,还有多少要解决。走,因此我必须等待。
当前,我正在使用以下代码运行求解器,但笔记本或日志上没有任何显示。
m.solve(pulp.PULP_CBC_CMD(threads = 24, msg=1))
如果我理解正确,则msg = 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中读回它们。