OR-Tools - Google优化工具
Google的组合优化软件套件。
目录
关于OR-Tools
Google优化工具(又称OR-Tools)是一个开源、快速且可移植的软件套件,用于解决组合优化问题。
该套件包含:
- 两个约束规划求解器(CP*和CP-SAT);
- 两个线性规划求解器(Glop和PDLP);
- 商业和其他开源求解器的包装器,包括混合整数求解器;
- 装箱和背包问题算法;
- 旅行商问题和车辆路径问题算法;
- 图算法(最短路径、最小费用流、最大流、线性和分配)。
我们用C++编写了OR-Tools,但提供了Python、C#和Java的包装器。
代码地图
这个软件套件由以下组件组成:
- Makefile 基于GNU Make的构建顶层文件。
- makefiles 辅助Make文件、CI和构建系统文档。
- CMakeLists.txt 基于CMake的构建顶层文件。
- cmake 辅助CMake文件、CI和构建系统文档。
- WORKSPACE 基于Bazel的构建顶层文件。
- bazel 辅助Bazel文件、CI和构建系统文档。
- ortools 源代码根目录。
- examples 所有示例的根目录。
- tools 交付工具(如Windows GNU二进制文件、脚本、发布docker)
安装
这个软件套件已在以下环境下测试:
- Ubuntu 18.04 LTS及更高版本(64位);
- Apple macOS Mojave,搭配Xcode 9.x(64位);
- Microsoft Windows,搭配Visual Studio 2022(64位)。
OR-Tools目前使用Makefile构建,但也提供Bazel和CMake支持。
有关安装说明(源代码和二进制文件),请访问 https://developers.google.com/optimization/introduction/installing。
使用Make从源代码构建(传统方式)
我们提供了基于Make的构建。
请查看
Make构建说明。
使用CMake从源代码构建
我们提供了基于CMake的构建。
请查看
CMake构建说明。
使用Bazel从源代码构建
我们提供了基于Bazel的构建。
请查看
Bazel构建说明。
快速入门
学习如何使用OR-Tools的最佳方式是按照我们开发者指南中的教程进行:
https://developers.google.com/optimization/introduction/get_started
如果你想从代码示例中学习,请查看examples目录中的示例。
文档
OR-Tools的完整文档可在以下网址获取: https://developers.google.com/optimization/
贡献
CONTRIBUTING.md文件包含在发送任何拉取请求(PR)之前提交贡献者许可协议的说明。 当然,如果你是项目新手,最好先讨论任何提议并达成共识,然后再发送你的第一个PR。
许可证
OR-Tools软件套件根据Apache License 2.0条款获得许可。
更多信息请参见LICENSE。