用途:Google OR-Tools 是开源优化套件,用于求解组合优化问题,包括车辆路径(VRP)、调度、装箱、背包、线性规划(LP)、整数规划(MIP)和网络流。核心是 CP-SAT 求解器,结合约束规划与可满足性技术,适合标准线性求解器难以处理的调度与资源分配问题。
主要能力:CP-SAT 处理离散问题,仅支持整数,浮点需缩放为整数;pywraplp 提供 GLOP 等后端处理连续变量 LP;路由模块用 RoutingIndexManager 与 RoutingModel 求解 VRP。求解后状态可能为 OPTIMAL、FEASIBLE、INFEASIBLE 或 LIMIT_REACHED。
使用方式:安装命令 pip install ortools。常用导入:from ortools.sat.python import cp_model、from ortools.linear_solver import pywraplp、from ortools.constraint_solver import routing_enums_pb2、from ortools.constraint_solver import pywrapcp。CP-SAT 基本流程为创建模型、定义变量、添加约束、设定目标、求解并检查状态。可用 AddHint 提供初始解,num_search_workers 启用并行,max_time_in_seconds 设置时限。
适用场景:员工排班、作业车间调度、多背包装箱、车辆路径规划等。
限制:CP-SAT 不支持浮点变量、非线性运算(如变量相乘)及 Python 条件语句建模,需用 OnlyEnforceIf 表达逻辑蕴含;变量域过大会拖慢求解;相同变量需添加对称性破除约束。官方文档见 https://developers.google.com/optimization,GitHub 见 https://github.com/google/or-tools。