问题点:
- 订单分配
就是在派单系统中将乘客发出的订单 分配给在线司机的过程
- 订单分配
问题细节拆分:
- 先到先得,就近分配的贪心策略: 缺点: 如果我们只基于当前时刻和当前局部订单进行决策,会议室了未来新的订单&司机的变化, 还忽视了和你相邻的其他区域甚至整个城市的需求.
- 特征集合 订单起点(经纬度),终点(经纬度), 司机当前位置(经纬度), 司机到订单起点的距离.
- 案例一(一个司机一个订单): 看上去附近有一辆空车却不能指派给你,为什么呢?
- 快车司机不接专车单
- 司机接单后不会通过限行限号区域
- 设定实时目的地的司机过滤不顺路区域
- 只听预约单司机过滤实时订单
- 同一个订单只会发给一个司机一次
- …
- 案例二(两个司机一个订单):
- 距离相同情况下,考虑服务分高低(简单理解多少分换成多少米导航距离优势)
- A司机近,B司机远, 就近原则直接分配给A.
- 案例三(M个司机,N个订单)
- 最原始暴力的搜索方法,20阶乘,天文数字,不适合,需要更有的算法
- 案例四(N个订单,M个司机,随后再来几个订单和司机)
- 考虑时序进行分配: Dynamic VRP(Vehicle Routing Problem)
派单算法
- 批量匹配(全局最优) Batching Matching
- 基于供需预测的分单
- 连环派单:将订单指派给即将结束服务的司机. 条件为如果司机到终点的距离很近且上一订单终点与下一订单订单起点位置很近; 会命中连环派单逻辑
学习了解滴滴的派单算法
- 目标与关键问题
- 目标: 最大化单次派单成功率
- 关键问题: estimate the probability of each driver’s acceptance of an order(估计每个驾驶员接单的可能性)
- 构建模型步骤-特征筛选
- 订单-司机关联特征: 接驾里程, 订单推送给多少司机, 订单是否与司机当前驾驶方向一致.
- 订单特征: 起终点之间距离,ETA(Estimated Time of Arrival),终点类型,规划路线的情况,目的地历史上的订单频率
- 司机特征: 历史接单率, 司机活跃地点, 接驾里程偏好, 最近接单率
- 补充特征: 特征日, 特征小时, 司机数,附近运单数
- 可用模型(LR/GBDT)
- 产出公式:(目标: 总体成单率最高, 约束表示一个司机一个时刻最多只能派一单)
- 启发式算法解公式
- 初始解:对每个司机,派给他接单率最大的订单,然后计算每一单的成单率,得到平均成单率
- 迭代: 对运单i,找到没有被派到i的司机集合U,对U的每个司机k,如果把i派给k,平均成单率提高,则改派
- 评估模型/方案
- 评估指标: 成单率,平均接驾时长,平均派单时间,取消率, 人均单量
- 目标与关键问题
转: 原文地址
原文作者:Neo Anderson
原文链接:https://www.neofaster.cc/archives/334c391a.html
发表日期:November 11th 2019, 4:39:24 pm
更新日期:August 28th 2021, 11:05:19 am
版权声明:本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可
-
Next PostCatBoost模型学习的林林总总
-
Previous PostPython语言实现 数据拟合