如何解决使用多线程处理时,来自带有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 举报,一经查实,本站将立刻删除。