为什么GLPSOL(GLPK)需要很长时间来解决大型MIP?

时间:2013-10-25 02:16:20

标签: optimization linear-programming integer-programming glpk

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

1 个答案:

答案 0 :(得分:2)

解决MIP的问题一般是NP完全的,这意味着存在无法有效解决的实例。但通常我们的问题都有足够的结构,因此启发式方法可以帮助解决这些模型。这使得过去几十年的解决能力获得了巨大的提升(overview)

为了理解基本方法并理解你的案例究竟是什么问题(上限没有进展,下限没有进展,......),请阅读Practical Guidelines for Solving Difficult Mixed Integer Linear Programs

请记住,Gurobi / Cplex等商业解决方案与非商业解决方案(尤其是MIP解决方案)之间存在巨大差距。有大量的基准here

还有很多参数需要调整。例如,Gurobi有不同的参数模板:一个针对可行解决方案的快速发现;一个目标是证明边界。

我个人意见:与cbc(开源)相比较scip(开源但非商业用途免费),glpk非常糟糕。