OR-Tools v9.13 版本发布:优化求解器性能与跨平台支持

OR-Tools v9.13 版本发布:优化求解器性能与跨平台支持

or-tools Google's Operations Research tools: or-tools 项目地址: https://gitcode.com/gh_mirrors/or/or-tools

OR-Tools 是 Google 开源的一款强大的优化工具集,它为开发者提供了解决复杂优化问题的能力,包括约束规划、线性规划、混合整数规划以及车辆路径规划等多种算法。该工具支持多种编程语言,包括 C++、Python、Java 和 .NET,并能在多种操作系统上运行。

平台支持更新

OR-Tools v9.13 版本对平台支持进行了重要调整。首先,该版本不再支持 Python 3.8 和 .NET 6.0,转而全面支持 .NET 8.0 作为目标框架。对于 Java 平台,团队正在考虑将最低支持版本从 Java 8 升级到 Java 11。此外,新版本增加了对 Fedora 42 操作系统的支持。

这些变化反映了 OR-Tools 团队紧跟技术发展趋势的决心,通过放弃过时的技术栈来减少维护负担,同时确保用户能够使用最新的平台特性。

依赖项升级

在依赖项方面,v9.13 版本进行了多项重要更新:

  • 升级到 abseil-cpp 20250512.0 版本
  • 采用 Protobuf v31.0
  • 集成 HiGHS v1.10.0 线性规划求解器
  • 使用 SCIP v922 优化求解器

对于 Python 用户,新版本增加了 typing-extensions 依赖项,这将改善类型提示的支持,使代码更加健壮和易于维护。

CP-SAT 求解器增强

CP-SAT(约束规划-可满足性)求解器在本版本中获得了显著改进:

  1. 二维无重叠约束优化:在预处理、传播和切割方面都有所增强,能够更高效地处理空间布局类问题。

  2. 可行性跳跃和违反局部搜索加速:这些改进使得求解器在寻找可行解时更加迅速,特别是对于复杂约束系统。

  3. 前驱关系检测与利用:求解器现在能够自动检测、存储并利用变量之间的前驱关系(形式为 lb ≤ a * x + b * y ≤ ub),这些信息被用于预处理、传播和切割阶段,显著提升了求解效率。

  4. 路由切割改进:增强了检测节点间转移和容量约束的能力,这对于车辆路径规划等应用特别有价值。

  5. 调度切割优化:改进了对调度问题的处理能力。

  6. 多工作线程间的子句共享:在共享树和组合搜索策略中,工作线程现在能更有效地共享子句信息,提高了并行求解效率。

  7. 文件解析支持:sat_runner 现在支持解析 .pb 和 .wbo 格式的文件。

  8. Python 接口改进:更好地支持浮点数系数和边界条件,使 Python 接口更加灵活和易用。

技术影响与建议

对于现有用户,升级到 v9.13 版本将带来明显的性能提升,特别是在处理复杂约束系统和调度问题时。开发者应注意平台支持的变化,特别是 Python 和 .NET 版本要求的调整。

对于新用户,这个版本提供了更加强大和稳定的求解能力,是开始使用 OR-Tools 的良好时机。CP-SAT 求解器的改进使其成为解决复杂组合优化问题的首选工具。

OR-Tools 团队持续关注求解器核心算法的优化和用户体验的提升,v9.13 版本再次证明了这一点。无论是学术研究还是工业应用,这个版本都值得考虑采用。

or-tools Google's Operations Research tools: or-tools 项目地址: https://gitcode.com/gh_mirrors/or/or-tools

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

强定辉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值