我正在使用GNU glpk解算器解决混合整数编程(MIP)问题。问题包含大约1,625列和507行,我认为这不是一个大规模的问题。但是,在解决问题超过9小时后,glpk无法提供解决方案。
我想知道是否有人遇到类似问题或有任何建议加速计算。否则,您是否有任何其他MIP求解器建议我可以尝试在源代码中进行一些更改?
答案 0 :(得分:4)
首先,即使是smaller MIP,也可能难以解决。 glpk通常会向底部混合整数benchmarks得分。如果您正在寻找免费解算器,您应该尝试使用基准测试中提到的其他解决方案,例如coin-or cbc或部分免费scip。
如果您是学者,或者问题对您来说很重要,您可以尝试其中一个商业解决方案。 Gurobi对学者来说是免费的。它,cplex(IBM)和xpress(FICO)是主要的商业解决方案。
解决MIP的解决方案时间是配方质量的强大功能。您没有关于您的模型的任何细节,但根据您正在解决的模型类型,可能会有很多关于您的问题的良好MIP配方的出版物。
答案 1 :(得分:2)
我不保证解决方案,但可能是数值不稳定问题。
我已经看到MIP模型无限期地运行,但是在最佳的1e-7范围内查看日志。在我的情况下,更改数据导致问题立即运行(<2秒)。有些数据集很快终止,有些数据集永远不会完我相信这是glpk(和python)的一个已知问题。
或者,尝试一次删除约束1。如果速度加快,你知道在哪里重新制定。