首页>软件资讯>常见问题

常见问题

Gurobi8性能基准

发布时间:2025-01-20 20:13:45人气:207


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 有一个活跃的社区论坛,用户可以在论坛上提问、交流和分享经验。

引言

1.jpg

Gurobi 优化器的设计初衷是为您的 MIP(MILP、MIQP 和 MIQCP)、LP 和 QP 问题提供最快、最强大的求解器。

  • 在行业标准的公共基准测试中,Gurobi 是...

    • MIP(Mixed Integer Programming) 模型最快的整体求解时间

    • LP 模型最快的总体求解时间

    • QP 模型最快的总体求解时间
      而且,随着问题难度的增加,我们的相对性能会更好。

两种类型的基准测试

2.png

  • 内部

    • 包含 10,000 多个来自行业和学术界的内部库

    • 稳健性测试

    • 比较不同版本的改进

    • 主要目标

    • 测试库

  • 公开

    • 基于 MIPLIB 2010 和 2017

    • 亚利桑那大学汉斯-米特尔曼教授进行的测试

    • 与其他求解器的对标基准

    • 主要目标

    • 测试库

Gurobi 不断进步

3.png

  • 时间限制: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竞争对手比较测试

4.jpg

Hans Mittelmann 教授进行的测试
-Gurobi 最快达到最优(MIPLIB 2010 基准)

  • 在新的 MIPLIB 2017 基准上速度最快

  • 最快达到可行性(MIPLIB 2010 可行性基准)

  • 最快达到不可行性(MIPLIB 2010 不可行性基准)

Gurobi 在 MIPLIB 2010 基准中速度最快

5.png

例如,在使用 4 个线程(P=4)的优化时间基准(87 个模型)上,CPLEX 比 Gurobi 慢 50%(P=4)、XPRESS 比 Gurobi 慢 66%(1.66)。

Gurobi 在新的 MIPLIB 2017 基准上速度最快

6.png

Gurobi 在 MIPLIB 2017 基准中解决了更多模型


Gurobi 最快实现可行性

7.png

Gurobi 检测不可行性的速度最快

8.png

Gurobi 的求解时间最快


10.jpg

LP 竞争基准

11.png


在所有 LP 基准测试中,Gurobi 速度最快

12.png

QP 竞争基准

13.png

Gurobi 的求解时间最快


开源求解器和MATLAB 基准


  • 这里不包括 LPSolve 和 GLPK,因为它们求解的模型太少(分别为 7 个和 2 个),无法进行有用的性能比较。

  • 开源求解器和 MATLAB 求解器的性能比显示的要差,因为未求解的模型在最大时间限制内被视为已求解。

更高的性能

  • 利用 Gurobi 的参数调整和分布式优化功能的优势

调整可对性能结果产生重大积极影响

  • 测试集: MIPLIB 2010 基准,87 个模型

    • 使用默认解算时间的 10 倍

    • 使用 TuneTrial=1 运行默认调整,每个模型单独运行

    • 两次调整运行,一次使用单台机器,一次使用 5 台机器

  • 结果:(> 1 表示速度更快)

    • 单台机器 1.68X

    • 5 台机器 2.52X

    • 与最佳设置相比的平均改进:

Gurobi 可为您提供业界领先的开箱即用性能。不过,您可以通过调整 Gurobi让性能更上一层楼。
为帮助您实现这一目标,我们提供了一个自动调优工具,您只需在一台机器上运行即可(您在上文测试中看到的 性能提升了 1.68 倍),或在多台机器上运行(在五台机器上的性能提升了 2.52 倍)。

请注意,您的特定机型的性能增益可能高于或低于上述测试结果。我们非常乐意协助商业用户调整和评估 Gurobi 的性能。

使用分布式优化可以进一步提高Gurobi 的性能

  • MIPLIB 2010(87 个模型)

    • 注:此测试集并非为测试分布式优化而设计。因此,下面的结果低估了潜在的收益。

    • 耗时大于 1 秒的模型


适合分布式优化的模型可以实现明显提高速度

  • 模型:seymour

    • 来自 MIPLIB 2010 的硬集覆盖模型

    • 4944 个约束条件,1372 个(二进制)变量,33K 个非零变量



上一条:Gurobi一个高效优化 Python 库

下一条:Gurobi超强的优化求解器