为什么 GLPSOL (GLPK) 需要很长时间才能求解大型 MIP?

abc*_*abc 2 optimization linear-programming glpk integer-programming

我有一个很大的MIP问题,我使用GLPK中的GLPSOL来解决它。然而,求解LP松弛问题需要多次迭代,并且每次迭代的obj和infeas值都是相同的。我认为它已经找到了最优解,但它不会停止,并且持续运行了好几个小时。每个大规模 MIP/LP 问题都会发生这种情况吗?遇到这样的情况我该如何处理?有人可以给我任何关于这个的建议吗?谢谢!

sas*_*cha 6

求解 MIP 问题一般是 NP 完全问题,这意味着存在无法有效求解的情况。但通常我们的问题有足够的结构,因此启发式方法可以帮助解决这些模型。这使得解决能力在过去几十年中取得了巨大的进步(概述)

要了解基本方法并了解您的情况到底是什么问题(上限没有进展,下限没有进展,...),请阅读解决困难混合整数线性规划的实用指南

请记住,Gurobi / Cplex 等商业求解器与一般非商业求解器(尤其是 MIP 求解)之间存在巨大差距。这里有大量的基准。

还有很多参数需要调整。例如,Gurobi 有不同的参数模板:一个目标是快速找到可行的解决方案;另一个目标是快速找到可行的解决方案。人们的目标是证明界限。

我个人的看法:与cbc(开源)和scip(开源但非免费商业用途)相比,glpk 相当糟糕。