- 1订单数据早高峰 07:30–09:30 叫车记录
- 2回放 + 决策同一份数据喂给两套策略,每 30 秒决策一次
- 3指标体系北极星 → 体验 / 效率 / 稳定
- 4结论回放结束后自动生成
回放结论
对照策略
接驾成功率—
平均等待—
正在等车—
超时撤单—
ALNS 全局重优化
接驾成功率—
平均等待—
正在等车—
超时撤单—
空车
调往缺车区
去接人
载客
拼车
等车乘客(空心 = 还没派到车,外圈 = 剩余耐心)
超时撤单
封路 / 管制
事件与系统响应
路网事件 → 系统如何应对- 尚未开始
思路:用数据回放驱动调度策略迭代
调度策略好不好,不靠直觉,靠同一份真实需求下的指标对比。这个演示把这条链路做成了闭环:
订单数据叫车时间、起终点、人数;加上封路、管制等路网事件
回放仿真按时间推进,车辆真实在路网上移动,每 30 秒做一次派单决策
策略对照:最近空车 / 贪心插入
候选:ALNS 全局重优化
候选:ALNS 全局重优化
指标同一口径计算,分北极星 / 体验 / 效率 / 稳定四层
结论 → 迭代收益和代价一起看,再调目标权重、约束、参数
指标体系
- 北极星
- 接驾成功率 = 接到 ÷(接到 + 超时撤单)。撤单规则:乘客走到上车点后,等待超过「乘客耐心」(默认 8 分钟)仍没上车就撤单;已派到车的再宽限 3 分钟。高峰期运力不够时,它最直接反映调度能力
- 乘客体验
- 平均 / P90 等待(含步行到上车点)、平均绕路率、ETA 偏差(承诺接驾时间 vs 实际)
- 运营效率
- 载客里程占比、空驶里程、车辆载客时长占比
- 系统稳定
- 改派次数(乘客看到的车换了)、每轮决策耗时
指标之间有冲突:拼车能提高成功率和效率,但会增加绕路。所以不是一个数字说了算,而是先守住北极星,再在体验和效率之间权衡——左侧「优化偏好」就是这个权衡的旋钮。
算法:ALNS 大邻域搜索 · 滚动时域重优化
- 建模:每辆车一条路线,每个订单是一对「上车 → 下车」停靠,带座位容量、最长等待、最大绕路约束。
- 破坏:随机选一个订单,把它附近几辆车路线上的一段连续停靠拿掉。
- 重建:把拿掉的订单逐个插回代价最小的位置;配合模拟退火,偶尔接受更差的解来跳出局部最优。
- 滚动:每 30 秒以上一轮计划为起点再优化 200 ms;快到的接驾锁定不改,改派计入代价,保证计划稳定。
- 路网事件:封路后重算最短路,失效的上车点就近改到可用位置,下一轮自动绕开。
局限与上线路径
- 城市路网和订单是合成数据;接真实数据只需要替换订单日志和路网 / 路况矩阵,回放和指标不变。
- 行驶时间是静态的,真实系统要接分时段路况;再平衡目前是启发式,可以换成基于需求预测的优化。
- 上线:影子模式(只算不派)对比指标 → 小流量灰度 → 按区域 / 时段放量;护栏指标是成功率、P90 等待、改派率。