夏末未了|滴滴司机调度系统实践( 二 )


▍第一阶段:产生候选调度任务
一个调度任务包含四个元素:司机、调度终点、过期时间、补偿金额 。
首先 , 筛选空闲时间超过一定阈值的司机作为候选司机 。 一般来说 , 空闲一段时间的司机更需要在听单方面的帮助 , 也会更愿意接受调度 。
然后 , 为每个候选司机筛选合适的候选调度终点 。 候选调度终点的产生方式有三种:(1)司机所在位置周边格子 , 这些格子距离司机较近 , 司机更有可能前往;(2)在历史行驶轨迹中连续出现的格子 , 用于找到一些离当前位置较远、但是由于路网关系可以很快到达的地点;(3)全城热点格子 , 用于找到一些需求密集的地点 。 对于每一个候选终点格子 , 我们会从格子内选择一个POI点作为调度的终点 , 然后根据司机当前位置到调度终点的预计到达时间(ETA)来设置调度任务的过期时间 。
最后 , 为了保证良好的用户体验 , 我们引入了失败概率预测模型 , 只保留失败概率不大于一定阈值的候选调度任务 , 并在任务失败的情况下为司机提供一定的补偿 。 补偿金额与调度任务起终点间的距离有关 。
▍第二阶段:任务评分
任务评分阶段度量了每一个候选调度任务可能为平衡供需分布、提高平台效率所带来的收益 。
对于一个时空状态 , 用分段线性函数拟合应答率(被应答订单数与全部呼叫订单数之比)与供需比(空闲司机数与呼叫订单数之比)的函数关系:
在第一阶段产生的候选调度任务集 , 并且在第二阶段得到每个候选调度任务的评分后 , 本文采用规划方法从候选集中挑选出最终下发的调度任务 。 在规划方法中 , 以保障司机体验作为约束 , 寻找使得平台全局收益最大化的一组最优调度任务 , 可以表示为:
对这一优化问题直接求解需要较长的计算时间 , 本文进一步将其转化为一个最小费用流问题 , 如图5所示 。
4.
实验结果
因为在框架设计中考虑了司机接受调度的意愿等实际问题 , 所以本文直接在线上环境中评估框架的效果 。 我们进行了多轮AB实验 , 对框架的整体效果和各个阶段的关键设计分别进行了评估 。 实验结果显示 , 与司机自主巡游相比 , 应用本文提出的框架可以提高司机效率 , 改善司机体验 , 并且可以提高司机总收入 。 边际增益函数、最小费用流模块、任务失败补偿等关键设计也都取得了正向的收益 。


推荐阅读