使用多线程处理时,来自带有PuLP的CBC规划求解器的输出不稳定吗?

问题描述

我正在尝试使用PuLP 2.3和CBC 2.10.3解决混合整数线性规划问题。 问题是最小化问题。有2个决策变量:A(连续)和B(二进制)。 可变计数为〜30.5K,约束计数为〜91.5K。 CBC求解器无法在约12小时内返回解决方案。为了克服运行时问题,我为CBC使用了多线程,线程数为8。解决方案在时间限制内运行,但每次迭代的结果都在不断变化。由于生成的输出无效,因此该解决方案非常不稳定且不正确。有时我们会获得具有最佳决策变量值的最优解的正确值,有时对于目标函数来说这些值完全不可用。

这是多线程可重复性问题的常见问题吗?

如果没有线程,可以使用什么来减少求解器的运行时间? 注意:当变量计数为〜2K并且约束计数为〜5K时,求解器可以正常工作,即使使用多线程,我也可以得到相同的解决方案。

有什么建议吗?

求解器的代码段:

solver = pulp.PULP_CBC_CMD(maxSeconds=Settings.model_runtime_max_seconds,gapRel=0.0001,msg=True,threads=self.threads,warmStart=False)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...