OR-Tools v9.13 版本发布:优化求解器性能与跨平台支持
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 版本再次证明了这一点。无论是学术研究还是工业应用,这个版本都值得考虑采用。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust099- DDeepSeek-V4-ProDeepSeek-V4-Pro(总参数 1.6 万亿,激活 49B)面向复杂推理和高级编程任务,在代码竞赛、数学推理、Agent 工作流等场景表现优异,性能接近国际前沿闭源模型。Python00
MiMo-V2.5-ProMiMo-V2.5-Pro作为旗舰模型,擅⻓处理复杂Agent任务,单次任务可完成近千次⼯具调⽤与⼗余轮上 下⽂压缩。Python00
GLM-5.1GLM-5.1是智谱迄今最智能的旗舰模型,也是目前全球最强的开源模型。GLM-5.1大大提高了代码能力,在完成长程任务方面提升尤为显著。和此前分钟级交互的模型不同,它能够在一次任务中独立、持续工作超过8小时,期间自主规划、执行、自我进化,最终交付完整的工程级成果。Jinja00
Kimi-K2.6Kimi K2.6 是一款开源的原生多模态智能体模型,在长程编码、编码驱动设计、主动自主执行以及群体任务编排等实用能力方面实现了显著提升。Python00
MiniMax-M2.7MiniMax-M2.7 是我们首个深度参与自身进化过程的模型。M2.7 具备构建复杂智能体应用框架的能力,能够借助智能体团队、复杂技能以及动态工具搜索,完成高度精细的生产力任务。Python00