我对混合整数线性规划相当陌生,我希望有人能为我澄清一个性能问题。基本上,我在用大约34个决策变量进行计算,我的计算时间大约是5秒。理想情况下,我希望将计算时间降到1秒以下。
目前我正在使用CBC求解器& MATLAB,但据我所知,这是一个单线程求解器。我见过的大多数MILP解决者似乎都为大型的项目性能而自豪,他们使用1k+变量并将计算时间从几天缩短到几个小时,但只有少数昂贵的项目甚至是多线程的。处理器速度似乎只能解决这样的问题,所以必须在软件方面做一些事情。
在像我这样的情况下,什么因素在计算时间中起作用?从理论上讲,像Gurobi这样的解决方案能够在这样一个小问题上与CBC产生明显的不同吗?
发布于 2014-09-08 09:58:00
在解决MIP时,与其他应用程序相比,多线程通常没有多大帮助。有一件事,更复杂的解决办法比CBC做得更好的是预先解决。很有可能,所有决策变量都可以在根节点中消除/修复。一般情况下,不可能根据MIP的大小来预测它的求解时间。解决过程太复杂了。要回答您的问题:我认为您在尝试另一个解决程序(Gurobi、Xpress、CPLEX、SCIP等)时会看到一个显著的加速。但这并不能保证,你也可能会看到经济放缓。
发布于 2014-09-08 22:03:54
大多数商业MILP求解者可能会考虑大多数只有1000个变量的问题是很小的。用数十万或数以百万计的变量来解决问题是很常见的。但是请注意,也有一些非常小的问题被认为是非常困难的,或者仍然是开放的,因为没有人将它们解决到一个经过验证的最佳解决方案。基本上,解决这些问题所需的时间在很大程度上取决于问题。
如果您想了解另一个解决程序能够多快地解决您的问题,请尝试将其作为MPS文件提交到http://www.neos-server.org/neos/的NEOS解决程序服务中。
https://stackoverflow.com/questions/25716116
复制相似问题