google/or-tools

开发工具

面向组合优化问题的开源求解器套件,提供 C++、Python、C# 与 Java 接口。

14,298
2,537
C++
Apache-2.0
创建于 11 年前

OR-Tools 是 Google 开源的组合优化工具套件:你把调度、路径规划、分配或装箱等问题描述成模型,库负责求解。它适合能把问题表达为数学模型的开发者和研究者,也适合希望自行选择求解后端、而不是调用托管排程服务的人。

它能解决什么

套件包含 CP* 与 CP-SAT 约束规划求解器、Glop 与 PDLP 线性规划求解器、对商业及其他开源求解器(含混合整数求解器)的封装、装箱与背包算法、旅行商与车辆路径算法,以及最短路、最小费用流/最大流、线性求和分配等图算法 About OR-Tools。核心用 C++ 编写,并提供 Python、C# 和 Java 封装 About OR-Tools。

一次典型使用流程

常见场景是路径或分配问题:定义变量与约束,选择求解器,运行并解读返回的取值。按组件划分的示例覆盖路径/约束求解、SAT、线性求解和图算法,另有 C++、.NET、Java、Python 及 Jupyter notebook 的完整示例 Codemap。项目建议新用户从开发者指南的教程和示例入手,而不是把它当成单一命令行工具 Quick Start。

环境要求与构建方式

README 说明套件在 Ubuntu 18.04 LTS 及以上(64 位)、macOS Mojave + Xcode 9.x(64 位)以及 Visual Studio 2022(64 位)的 Windows 上经过测试 Installation。它支持 Make(标为 legacy)、CMake 和 Bazel 三种构建方式,每种方式有各自的构建说明;能否成功构建取决于是否按对应路径操作 Installation。二进制与源码安装选项见安装页 Installation instructions,并不存在“一份通用预编译包适配所有平台”的承诺。

需要留意的边界

这是一套求解器库,不是成品应用:README 没有承诺所有问题都容易求解,CP-SAT、线性求解器与第三方封装之间的选择也会影响建模形式和可用结果。许可证为 Apache-2.0,允许在其条款下商用 License。

本文由 AI 根据项目 README 生成,更新于 2026年10月29日,以项目官方文档为准。

Hacker News 讨论

Google's Operations Research Tools
▲ 3 · 0 条评论 · 2020年1月22日
OR-Tools – Google Optimization Tools
▲ 2 · 0 条评论 · 2022年6月23日
OR-Tools - Google Optimization Tools
▲ 2 · 0 条评论 · 2019年8月1日