首页 > 解决方案 > CPLEX 和 Gurobi 之间的比较

问题描述

Gurobi 和 CPLEX 是近年来非常流行的求解器。就许可而言,CPLEX 对学者来说更容易。据说它的性能也非常高。但 Gurobi 据称是近年来最快的求解器,并且不断改进。但是,据说当约束数量增加时其性能会降低。

在速度和性能方面,对于没有太多约束的二次目标函数的大规模问题,一般推荐使用哪种求解器?

它们在 Python 中的使用会影响它们的性能吗?

标签: pythoncplexgurobi

解决方案


数学编程本质上是困难的,并且可能总是存在一个求解器比另一个求解器快的情况。通常,仅仅因为一些启发式方法是“幸运的”,问题就会很快得到解决。

此外,仅问题的大小并不是衡量其难度的可靠衡量标准。虽然我们可以在很短的时间内解决具有数百万个约束的实例,但仍有一些微小的实例尚未解决。

当您在寻找最佳性能时,您应该通过检查日志文件来分析求解器的行为,然后尝试相应地调整参数。如果你有机会测试不同的求解器,你应该去争取更多的选择。您应该谨慎对待针对任何已建立的、最先进的求解器的建议——尤其是在没有动手计算实验的情况下。

您还需要考虑建模环境/语言的难度以及完成建模部分可能需要多长时间。

回答您关于 Gurobi 的 Python 界面的问题:这是一个非常高性能和流行的工具,适用于各种应用程序,并且很可能不会影响整体求解时间。在大多数情况下,实际求解时间仍然是主要因素,而模型构建时间可以忽略不计。


推荐阅读