Gurobi 8 性能基准
Gurobi 简介
Gurobi 是一个功能强大的数学优化求解器,被广泛应用于解决各种优化问题。它由美国 Gurobi Optimization 公司开发,以其卓越的性能和广泛的应用领域而闻名。
Gurobi 的核心功能
- 数学规划求解器: Gurobi 能高效地解决多种类型的数学规划问题,包括线性规划 (LP 线性规划(Linear Programming)、二次规划 (QP Quadratic Programming)、混合整数线性规划 (MILP Mixed Integer Linear Programming)、混合整数二次规划 (MIQP Mixed Integer Quadratic Programming) 等。
- 全局优化: Gurobi 能够找到问题的全局最优解,而非局部最优解。
- 大规模问题处理: Gurobi 能够处理包含数百万个变量和约束的大规模优化问题。
- 多核并行计算: Gurobi 充分利用多核处理器的优势,加速求解过程。
- 多种编程语言接口: Gurobi 提供了 Python、C、C++、Java、MATLAB、R 等多种编程语言的接口,方便用户集成到自己的应用程序中。
Gurobi 的优势
- 性能卓越: 在众多优化求解器中,Gurobi 的性能表现一直处于领先地位。
- 应用广泛: Gurobi 被广泛应用于金融、物流、制造、航空、石油石化、商业服务等多个领域。
- 技术支持完善: Gurobi 提供了专业的技术支持,帮助用户解决问题。
- 不断更新: Gurobi 团队不断推出新的版本,加入更多的功能和优化算法。
如需英文完整原版,V或钉 pythontesting.
Gurobi 的应用场景
- 生产计划与调度: 优化生产流程,提高生产效率。
- 供应链优化: 优化供应链网络,降低成本。
- 投资组合优化: 建立最优的投资组合,最大化收益。
- 路线规划: 优化车辆或人员的路线,减少行驶时间。
- 资源分配: 优化资源分配,提高资源利用率。
Gurobi 的学习资源
- 官方文档: Gurobi 提供了详细的官方文档,涵盖了从入门到高级的各种内容。
- 在线教程: 网络上有很多关于 Gurobi 的在线教程和示例代码。
- 社区论坛: Gurobi 有一个活跃的社区论坛,用户可以在论坛上提问、交流和分享经验。
引言
Gurobi 优化器的设计初衷是为您的 MIP(MILP、MIQP 和 MIQCP)、LP 和 QP 问题提供最快、最强大的求解器。
- 在行业标准的公共基准测试中,Gurobi 是...
- MIP(Mixed Integer Programming) 模型最快的整体求解时间
- LP 模型最快的总体求解时间
- QP 模型最快的总体求解时间
而且,随着问题难度的增加,我们的相对性能会更好。
两种类型的基准测试
- 内部
- 主要目标
- 稳健性测试
- 比较不同版本的改进
- 测试库
- 包含 10,000 多个来自行业和学术界的内部库
- 主要目标
- 公开
- 主要目标
- 与其他求解器的对标基准
- 测试库
- 基于 MIPLIB 2010 和 2017
- 亚利桑那大学汉斯-米特尔曼教授进行的测试
- 主要目标
Gurobi 不断进步
-
时间限制:10000 秒
-
英特尔至强 CPU E3-1240 v3 @ 3.40GHz
-
4 个内核,8 个超线程
-
32 GB 内存
-
测试集有 5656 个模型:
- 410 个因答案不一致而放弃
- 所有版本在小于 100 秒内解决了 1741 个问题
- 没有一个版本能解决的 1493 个废弃模型
- 在 >100 秒范围内测量的速度提升:2012 个模型
-
加速比8年提高53了倍(8 年以上)
v8.0 中的重大性能改进
- MIP - 总体速度提高了 57%,在求解时间大于 100 秒的模型上提高了 109%
- LP
- 并发(Concurrent) - 总体速度提高 15%,在求解时间大于 100 秒的模型上提高 46%
- 原始单纯形(Primal Simplex) - 总体快 24%,在求解时间大于 100 秒的模型上快 49%
- 双简约(Dual Simplex) - 总体速度提高 32%,在求解时间大于 100 秒的模型上提高 82%
- 障碍(Barrier) - 总体速度提高 13%,在求解时间大于 100 秒的模型上提高 44%
- MIQP - 总体速度提高 2.76 倍
- MIQCP - 总体快 20%
- SOCP - 总体快 19%
8.1 版的性能改进
与 v8.0 相比,Gurobi 优化大师 v8.1 在整数二次方程程序上的性能有了显著提高。
- MIQP - 总体速度提高 2.8 倍
- MIQCP - 总体速度提高 38
- LP - 在求解时间大于 100 秒的模型上,双单纯形和障碍都快 10%
版权所有 © 2019, Gurobi Optimization, LLC
MILP竞争对手比较测试
Hans Mittelmann 教授进行的测试
-Gurobi 最快达到最优(MIPLIB 2010 基准)
- 在新的 MIPLIB 2017 基准上速度最快
- 最快达到可行性(MIPLIB 2010 可行性基准)
- 最快达到不可行性(MIPLIB 2010 不可行性基准)
Gurobi 在 MIPLIB 2010 基准中速度最快
例如,在使用 4 个线程(P=4)的优化时间基准(87 个模型)上,CPLEX 比 Gurobi 慢 50%(P=4)、XPRESS 比 Gurobi 慢 66%(1.66)。
Gurobi 在新的 MIPLIB 2017 基准上速度最快
Gurobi 在 MIPLIB 2017 基准中解决了更多模型
Gurobi 最快实现可行性
Gurobi 检测不可行性的速度最快
Gurobi 的求解时间最快
LP 竞争基准
在所有 LP 基准测试中,Gurobi 速度最快
QP 竞争基准
Gurobi 的求解时间最快
开源求解器和MATLAB 基准
- 这里不包括 LPSolve 和 GLPK,因为它们求解的模型太少(分别为 7 个和 2 个),无法进行有用的性能比较。
- 开源求解器和 MATLAB 求解器的性能比显示的要差,因为未求解的模型在最大时间限制内被视为已求解。
更高的性能
- 利用 Gurobi 的参数调整和分布式优化功能的优势
调整可对性能结果产生重大积极影响
- 测试集: MIPLIB 2010 基准,87 个模型
- 使用 TuneTrial=1 运行默认调整,每个模型单独运行
- 使用默认解算时间的 10 倍
- 两次调整运行,一次使用单台机器,一次使用 5 台机器
- 使用 TuneTrial=1 运行默认调整,每个模型单独运行
- 结果:(> 1 表示速度更快)
- 与最佳设置相比的平均改进:
- 单台机器 1.68X
- 5 台机器 2.52X
- 与最佳设置相比的平均改进:
Gurobi 可为您提供业界领先的开箱即用性能。不过,您可以通过调整 Gurobi让性能更上一层楼。
为帮助您实现这一目标,我们提供了一个自动调优工具,您只需在一台机器上运行即可(您在上文测试中看到的 性能提升了 1.68 倍),或在多台机器上运行(在五台机器上的性能提升了 2.52 倍)。
请注意,您的特定机型的性能增益可能高于或低于上述测试结果。我们非常乐意协助商业用户调整和评估 Gurobi 的性能。
使用分布式优化可以进一步提高Gurobi 的性能
- MIPLIB 2010(87 个模型)
- 注:此测试集并非为测试分布式优化而设计。因此,下面的结果低估了潜在的收益。
- 耗时大于 1 秒的模型
适合分布式优化的模型可以实现明显提高速度
- 模型:seymour
- 来自 MIPLIB 2010 的硬集覆盖模型
- 4944 个约束条件,1372 个(二进制)变量,33K 个非零变量