解释为什么单一方法可能不足,并设计一个“混合策略"解决方案。
场景:外卖派单问题(大量骑手、订单动态到来)。
外卖派单是在线、带时间窗、容量受限的动态匹配问题:骑手位置在变、餐品出餐时间有噪声、订单持续到达、路况突变、还要兼顾公平与成本。典型单一方法的短板:
-
就近贪心:局部最优,容易把近处骑手“吃光”,后续紧急单无骑手可用,整体迟到率升高。
-
纯批量最小代价匹配(Hungarian/线性分配):静态假设强;订单/骑手在求解期间已变化,求解与现实脱节。
-
纯 MILP/车辆路径规划(VRP):表达力强但求解慢,高峰期无法及时滚动重算。
-
纯 RL(强化学习):能学策略,但约束与合规(比如时间窗、超距)很难保证,且对分布漂移敏感。
-
纯规则:应急快,但难以权衡多目标(时效、公平、成本、取消率)。
因此需要把预测、规则、优化、学习几种“擅长点”拼起来,互相兜底。
混合策略(Hybrid)总体框架:P–C–O–C
Prediction → Candidate generation → Optimization → Control(滚动控制)
1) 预测层(P)
用模型把不确定性“定量化”,为后续优化产生成本与可行性判断。
-
预测 出餐时间 \hat{r}_j 、行驶时间/ETA \widehat{\text{TT}}(u\!\rightarrow\!v) 、到店等待、到达承诺时间 \text{ddl}_j。
-
可用特征:餐厅历史、菜品、时段/天气/节假日、路段速度、骑手疲劳度等。
2) 候选生成层(C)
用快速启发式把巨大搜索空间缩成“小而精”的候选集合,保证后续优化能实时跑。
-
对每个订单 j,只保留到店 ETA \le \tau_{\text{pickup}} 的前 K名骑手;
-
识别可捆绑单(同店/同向/时间窗近):形成“订单包”候选;
-
过滤不可行组合(必迟到、绕行过长、容量超限)。
3) 优化层(O)
在候选图上做最小费用流/带时间窗的分配,兼顾时效、成本与公平。
在候选图上做最小费用流/带时间窗的分配,兼顾时效、成本与公平。
-
决策变量:
-
x_{ij}\in\{0,1\}:骑手 i 是否接订单 j;
-
对捆绑包 b: y_{ib}\in\{0,1\}。
-
-
目标函数(示例):
其中单对成本
-
约束(部分):
-
求解器:最小费用流/拉格朗日松弛加贪心修复;捆绑用扩展节点或列生成承载。
4) 滚动控制层(C)
用MPC(模型预测控制)+ 双通道派单稳定在线决策。
-
急单通道:满足“剩余时距 < 门限”的订单,用轻量贪心+规则即时指派;
-
批量通道:其余订单每 \Delta t 秒滚动优化一次(如 10–30s);
-
冻结窗口:对已下发任务设置 T_{\text{lock}}(如 3–5 分钟)减少反复改派;
-
再优化触发:暴雨/堵车/集中爆单时立即缩短 \Delta t ,扩大候选半径。
学习与规则的协同
-
学习:
-
用 GBDT/Graph 模型做 ETA 与出餐预测;
-
用 多臂老虎机/贝叶斯优化在线调 \alpha,\beta,\gamma 与捆绑阈值;
-
用 轻量 RL 做“是否延迟指派/是否捆绑”二元决策,但最终分配仍由优化器保证约束。
-
-
规则兜底:夜间/低算力/极端峰值,降级为“就近+时窗校验+黑白名单”快速策略。
关键指标与离线模拟
-
核心 KPI:准时率、平均迟到、平均接单-送达时长、改派率、骑手空驶/等待、每单成本。
-
评测建议:用真实回放 + 加噪声的交通/出餐分布做离线仿真;A/B 校验候选规模 K、滚动间隔 \Delta t 、冻结时间 T_{\text{lock}}。
小结
-
单一方法要么快但短视(贪心/规则),要么准但慢(MILP/VRP),或灵活但不稳(纯 RL)。
-
预测缩不确定性 → 候选控规模 → 优化做全局权衡 → 控制层滚动稳态,这套混合策略能在高峰动态场景里取得可解释、可控、可上线的平衡。