OR-Tools v9.13 版本发布:优化求解器性能与跨平台支持
or-tools Google's Operations Research 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(约束规划-可满足性)求解器在本版本中获得了显著改进:
-
二维无重叠约束优化:在预处理、传播和切割方面都有所增强,能够更高效地处理空间布局类问题。
-
可行性跳跃和违反局部搜索加速:这些改进使得求解器在寻找可行解时更加迅速,特别是对于复杂约束系统。
-
前驱关系检测与利用:求解器现在能够自动检测、存储并利用变量之间的前驱关系(形式为 lb ≤ a * x + b * y ≤ ub),这些信息被用于预处理、传播和切割阶段,显著提升了求解效率。
-
路由切割改进:增强了检测节点间转移和容量约束的能力,这对于车辆路径规划等应用特别有价值。
-
调度切割优化:改进了对调度问题的处理能力。
-
多工作线程间的子句共享:在共享树和组合搜索策略中,工作线程现在能更有效地共享子句信息,提高了并行求解效率。
-
文件解析支持:sat_runner 现在支持解析 .pb 和 .wbo 格式的文件。
-
Python 接口改进:更好地支持浮点数系数和边界条件,使 Python 接口更加灵活和易用。
技术影响与建议
对于现有用户,升级到 v9.13 版本将带来明显的性能提升,特别是在处理复杂约束系统和调度问题时。开发者应注意平台支持的变化,特别是 Python 和 .NET 版本要求的调整。
对于新用户,这个版本提供了更加强大和稳定的求解能力,是开始使用 OR-Tools 的良好时机。CP-SAT 求解器的改进使其成为解决复杂组合优化问题的首选工具。
OR-Tools 团队持续关注求解器核心算法的优化和用户体验的提升,v9.13 版本再次证明了这一点。无论是学术研究还是工业应用,这个版本都值得考虑采用。
or-tools Google's Operations Research tools: 项目地址: https://gitcode.com/gh_mirrors/or/or-tools
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考