Ayd*_*din 1 python cplex gurobi
Gurobi 和 CPLEX 是近年来非常流行的求解器。就许可证而言,CPLEX 对学者来说更容易。据说它的性能也非常高。但 Gurobi 据称是近年来最快的求解器,而且还在不断改进。但是,据说当约束数量增加时,其性能会下降。
在速度和性能方面,一般推荐哪种求解器专门用于具有二次目标函数的大规模问题,没有太多约束?
它们在 Python 中的使用会影响它们的性能吗?
数学编程本质上是困难的,并且可能总是存在一个求解器比另一个求解器更快的情况。通常,问题很快就解决了,因为某些启发式方法是“幸运的”。
此外,仅凭问题的大小并不是衡量其难度的可靠指标。虽然我们可以在很短的时间内解决具有数百万个约束的实例,但仍有一些微小的实例尚未解决。
当您正在寻找最佳性能时,您应该通过检查日志文件来分析求解器的行为,然后尝试相应地调整参数。如果您有机会测试不同的求解器,您应该选择它以获得更多可用选项。对于已建立的、最先进的求解器中的任何一个的建议,您都应该小心 - 尤其是在没有动手计算实验的情况下。
您还需要考虑建模环境/语言的难度以及完成建模部分可能需要多少时间。
回答您关于 Gurobi 的 Python 界面的问题:这是一个非常高效且流行的工具,适用于各种应用程序,并且很可能不会影响整体求解时间。在大多数情况下,实际求解时间仍然是主导因素,而模型构建时间可以忽略不计。
正如马特米尔滕已经说过的,如果您比较主要商业解决方案在一系列问题上的性能,您会发现其中一个明显优于其他解决方案的情况。然而,这将取决于许多看似无关紧要的细节。我们对我们自己的问题实例集合(保存为 MPS 文件)进行了并排比较,这些实例都是由针对大型优化问题的不同子问题的相同 C++ 代码生成的。因此,它们本质上只是同一模型中的不同数据集,而且我们仍然发现求解器之间存在很大差异。这确实取决于您的具体问题的细节。
| 归档时间: |
|
| 查看次数: |
1763 次 |
| 最近记录: |