配送算法19 Two Fast Heuristics for Online Order Dispatching
Two Fast Heuristics for Online Order Dispatching论文学习
本文贡献
• 研究带现实约束的在线订单调度问题
• 提出两种快速启发式:
– MGI(Modified Greedy Insertion)
– MRI(Modified Regret Insertion)
• 实验结果
– 与原始 GI/RI 相比,MGI/MRI 解质持续提升,且均逼近 RI 水平
– 运行时间:MGI 快于 GI,MRI 快于 RI,验证了启发式的高效性
问题定义
决策节拍:每 1 min 批处理一次,输入为 n 个新订单 W 与 m 名司机 R。
网络:
• 新订单节点 V = V⁺ ∪ V⁻,其中 V⁺ = {i⁺|i∈W},V⁻ = {i⁻|i∈W}。
• 司机已接但尚未完成的订单节点集 U = U⁺ ∪ U⁻,其顺序不可重排。
约束:
(C1) 时间窗:TPᵢ 最早取餐;ETAᵢ 承诺送达;OTᵢ = max(0, Dᵢ⁻ − ETAᵢ)。
(C2) 同方向:新单递送向量与司机当前路线 Φ 中各递送向量夹角 < θ (近单豁免)。
(C3) 先送后接:新单取餐节点插入位置之前,司机必须已送完已取餐节点。
(C4) 容量:单司机实时载货 ≤ Q。
目标:最大化专属司机接单占比 ODR = DN / TN。
算法框架
关键创新点
批次并行插入:传统 GI/RI 每轮仅插一单,本文每轮插 “一批” 多单 → 减少迭代次数与 O(nmr) 重算成本。
两级排序信号:
• 可行度稀缺性(可行司机数)保证“易死单”优先;
• 在可行度相同层内,MGI 用最短增量成本,MRI 用指数衰减后悔值 → 平衡近视与前瞻。
γ-衰减后悔:通过 γ∈(0,1) 控制 2nd–k-th 司机差值权重,避免高阶差值噪音。
实验设置
• 硬件:MacBook Pro 2.2 GHz / 16 GB RAM / Java SE 8。
• 实例:20 个真实业务样本,按新单量划分为
– 中小规模(21–30 单)10 例;
– 大规模(31–40 单)10 例。
• 对比算法:MGI、MRI、经典 GI、经典 RI;MRI 衰减系数 γ = 0.5。
• 评价指标:
(1) 订单专属司机占比 ODR;
(2) 平均 CPU 时间(ms)。
实验数据
全量均值
→ 说明“批次并行 + 稀缺度排序”策略在保持解质量的同时削减迭代次数。
分规模观察
• 中小规模
• 大规模
MRI 的 ODR 略低于 RI(差距 < 1 %),但时间优势进一步放大;
MGI 仍维持 ODR 与时间双领先。
→ 证实 MGI 的“可行司机数”排序对高密度场景更稳健;MRI 的 γ-衰减后悔在大规模时开始权衡精度与速度。
实例级分布
• ODR(图 5):MGI 在 19/20 例 ≥ GI;提升幅度 1–6 pp。
• 时间(图 6):MGI 在 18/20 例 < GI;最大提速 25 %。
• ODR(图 7):MRI vs RI 互有胜负,差异窗口 ±2 pp,呈随机波动。
• 时间(图 8):MRI 全域领先,且随着实例规模增大,领先幅度由 10 % 提升到 30 %。
讨论
1、为什么不用进化算法
• 毫秒级实时要求 vs 进化算法耗时高
• 研究问题高度动态、约束极严——可行域极小,进化算子很难直接产生可行解
2、未来可补充思路
• 先用本文提出的启发式快速获得初始解
• 在离线或延迟不敏感场景下,用进化算法对初始解进行二次优化,可进一步提升质量
展望
• 更深度地刻画在线调度的“动态性”
• 借助机器学习对未来短期需求做预测,并将预测信息融入决策,以期从“时段整体”视角获得更优表现