OR-Tools 中文导航¶
原文: Google OR-Tools
分类: 运筹优化
大小: 161 MB
语言: Python/C++/Java
📚 仓库简介¶
Google OR-Tools 是谷歌开源的运筹学工具集,用于解决各种优化问题。它提供了多种求解器接口,包括谷歌自研的 CP-SAT 求解器以及对 GLOP、SCIP 等的支持。
GitHub: https://github.com/google/or-tools
🔧 核心功能¶
| 功能 | 描述 | 适用场景 |
|---|---|---|
| 约束规划 (CP) | 约束满足和优化 | 调度、排班 |
| CP-SAT 求解器 | 混合整数规划求解器 | 复杂组合优化 |
| 线性规划 (LP) | GLOP 求解器 | 资源分配 |
| 车辆路径问题 (VRP) | 专门的 VRP 求解 | 物流配送 |
| 图优化 | 最短路径、最大流 | 网络优化 |
| 排程问题 | 机器调度、作业车间 | 生产制造 |
📁 目录结构¶
or-tools/
├── examples/ # 示例代码
│ ├── python/ # Python 示例
│ │ ├── assignment/ # 分配问题
│ │ ├── bin_packing/ # 装箱问题
│ │ ├── knapsack/ # 背包问题
│ │ ├── routing/ # 路径优化
│ │ ├── scheduling/ # 调度问题
│ │ └── vehicle_routing/ # 车辆路径
│ └── cpp/ # C++ 示例
├── ortools/ # 核心库
│ ├── constraint_solver/ # 约束求解器
│ ├── graph/ # 图算法
│ ├── linear_solver/ # 线性求解器
│ └── sat/ # SAT 求解器
├── Makefile # 构建文件
└── README.md # 主文档
🚀 快速开始¶
安装¶
# Python 安装
pip install ortools
# 验证安装
python -c "from ortools.linear_solver import pywraplp; print('OK')"
第一个示例:线性规划¶
from ortools.linear_solver import pywraplp
# 创建求解器
solver = pywraplp.Solver.CreateSolver('GLOP')
# 创建变量
x = solver.NumVar(0, solver.infinity(), 'x')
y = solver.NumVar(0, solver.infinity(), 'y')
# 添加约束
solver.Add(x + 2 * y <= 14)
solver.Add(3 * x - y >= 0)
solver.Add(x - y <= 2)
# 设置目标函数
solver.Maximize(3 * x + 2 * y)
# 求解
status = solver.Solve()
if status == pywraplp.Solver.OPTIMAL:
print(f'最优解: x={x.solution_value()}, y={y.solution_value()}')
print(f'目标值: {solver.Objective().Value()}')
运行示例¶
# 车辆路径问题示例
cd /workspace/code-examples/or-tools
python examples/python/vehicle_routing/cvrp.py
# 调度问题示例
python examples/python/scheduling/jobshop_ft06.py
📖 关键文档¶
| 文档 | 链接 | 说明 |
|---|---|---|
| 官方文档 | developers.google.com/optimization | 完整教程 |
| Python API 参考 | github.com/google/or-tools/blob/stable/ortools | API 文档 |
| 示例集合 | examples/python/ | 200+ Python 示例 |
💡 典型应用场景¶
1. 物流配送¶
2. 生产排程¶
3. 人员排班¶
4. 资源分配¶
🎓 学习路径¶
1. 线性规划基础 → examples/python/linear_programming/
2. 约束规划入门 → examples/python/cp_sat/
3. 车辆路径问题 → examples/python/routing/
4. 调度问题实战 → examples/python/scheduling/
📊 与其他工具对比¶
| 工具 | 优势 | 适用场景 |
|---|---|---|
| OR-Tools | 免费、易用、支持多种求解器 | 通用优化 |
| Gurobi | 性能最强、商业支持 | 大规模 LP/MIP |
| CPLEX | 企业级、稳定可靠 | 工业优化 |
| PuLP/Pyomo | Python 原生、建模方便 | 快速原型 |
🔗 相关资源¶
本地路径: /workspace/code-examples/or-tools/
创建时间: 2026-06-01
难度: ⭐⭐⭐ (中等)
**OR-Tools 中文导航 | 运筹优化利器**
[返回代码索引](../../README_UPDATED.md) | [决策科学资源](../../docs/resources/decision-science-comprehensive-resources.md)