【问题标题】:Why does GLPSOL (GLPK) take a long time to solve a large MIP?为什么 GLPSOL (GLPK) 求解大型 MIP 需要很长时间?
【发布时间】:2013-10-25 02:16:20
【问题描述】:

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

【问题讨论】:

  • GLPK 从未声称自己是完美的 MILP 求解器。也许你的问题很难。我建议你也试试其他的求解器,也许SCIP 会更好。
  • 这个问题似乎离题了,因为它是关于线性规划而不是关于编程。

标签: optimization linear-programming integer-programming glpk


【解决方案1】:

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

要了解基本方法并了解您的情况到底是什么问题(上限没有进展,下限没有进展......),请阅读Practical Guidelines for Solving Difficult Mixed Integer Linear Programs

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

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

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

【讨论】:

    猜你喜欢
    • 2012-01-14
    • 2011-04-22
    • 1970-01-01
    • 2012-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多