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 台机器
  • 结果:(> 1 表示速度更快)
    • 与最佳设置相比的平均改进:
      • 单台机器 1.68X
      • 5 台机器 2.52X

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

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

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

  • MIPLIB 2010(87 个模型)
    • 注:此测试集并非为测试分布式优化而设计。因此,下面的结果低估了潜在的收益。
    • 耗时大于 1 秒的模型

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

  • 模型:seymour
    • 来自 MIPLIB 2010 的硬集覆盖模型
    • 4944 个约束条件,1372 个(二进制)变量,33K 个非零变量
posted @ 2024-12-01 09:02  磁石空杯  阅读(33)  评论(0编辑  收藏  举报