您当前的位置:首页 > 电脑百科 > 程序开发 > 架构

滴滴司机调度系统实践

时间:2020-07-17 15:13:28  来源:  作者:

1.

背景

出租车为人们提供了方便灵活的出行服务,在公共交通中扮演了重要角色。出租车在道路上空载行驶寻找乘客的过程,称为空车巡游过程。这一过程可能会占到出租车司机工作时间的50%以上,降低了出租车的运营效率。

在网约车平台上,司机和乘客向平台上报他们的实时位置,平台通过集中决策机制来完成司机和乘客间的匹配。在这种情况下,司机可以在实际见到乘客前就接到该乘客的订单,因而空车巡游的目的不再是寻找乘客,而是寻找一个接到订单概率更高的地理区域或者路线。

本质上来说,空车巡游是由供给和需求间的不平衡导致的。例如图1中,在早高峰司机将一位乘客从家送到办公室后,由于此刻办公区域乘客需求很少,司机必须再次回到住宅区才能有比较大的机会接到下一单。

滴滴司机调度系统实践

 

图1. 司机调度问题背景

在本文中,我们研究司机调度问题。所谓“司机调度”,是指平台会通过一定的交互过程打断司机自发的空车巡游过程,将他们引向一个更可能接到单的目的地。受益于供需两侧丰富的实时信息,平台可以通过调度改善司机个人的体验,同时提高平台整体的效率。

2.

什么是“调度任务”

实际场景中,空闲司机往往依赖个人经验来决定空车巡游的目的地,主观性强。经验不准确时可能会前往接单概率较低的区域,既影响司机的个人收入和接单体验,也会影响乘客需求的满足率。因此,本文中我们利用司机和平台之间的实时信息通道来为司机发送即时的调度任务,帮助空闲司机找到最佳的空车巡游目的地。

在本文中,当司机停留在空闲状态时会触发调度任务,如图2所示。调度任务会以卡片消息的形式在司机的App上弹出。如果司机点击导航按钮,会直接进入以调度终点为目的地的导航页面。为帮助司机尽快接到下一个订单,在司机前往调度终点的途中,始终可以被分配订单。

滴滴司机调度系统实践

 

图2. 调度任务的产品交互形式

一次调度任务包括三个步骤:

(1) 告知司机一个明确的调度目的地。

(2) 在下发调度任务后追踪司机的行为,判定调度任务是否成功。

(3) 在调度任务失败时为司机提供补偿。

在这里,需要对调度任务的判定标准进行更具体的说明。一个调度任务有四种可能的结束状态,如图3所示。

滴滴司机调度系统实践

 

图3. 调度任务的结束状态

  • 状态1:司机没有接受调度任务,并且向反方向行驶。
  • 状态2:司机接受调度任务并驶向调度终点,在途中被分配了一个订单。
  • 状态3:司机接受调度任务并到达调度终点,然后在一个固定的时间窗口内接到了订单。
  • 状态4:司机接受调度任务并到达调度终点,在终点停留一段时间,但在一个固定的时间窗口内一直都没有接到订单。

如果一次调度任务以状态2和状态3结束,那么被视作一次成功的调度;如果以状态4结束,则会被视作一次失败的调度。由于接受调度任务会给司机带来额外的空驶成本,因此,在调度任务失败的情况下,应当为司机提供一定的补偿。这是在司机和平台之间建立信任的关键措施。

3.

方法

本文提出的解决框架分为三阶段,如图4所示。受到推荐系统的启发,前两个阶段的作用是产生候选调度任务集并为每一个候选调度任务打分;受到车队管理方法的启发,第三阶段应用规划算法来实现多司机间的协作,产生最终向司机下发的调度任务。

滴滴司机调度系统实践

 

图4. 框架示意图

▍第一阶段:产生候选调度任务

一个调度任务包含四个元素:司机、调度终点、过期时间、补偿金额。

首先,筛选空闲时间超过一定阈值的司机作为候选司机。一般来说,空闲一段时间的司机更需要在听单方面的帮助,也会更愿意接受调度。

然后,为每个候选司机筛选合适的候选调度终点。候选调度终点的产生方式有三种:(1) 司机所在位置周边格子,这些格子距离司机较近,司机更有可能前往;(2)在历史行驶轨迹中连续出现的格子,用于找到一些离当前位置较远、但是由于路网关系可以很快到达的地点;(3)全城热点格子,用于找到一些需求密集的地点。对于每一个候选终点格子,我们会从格子内选择一个POI点作为调度的终点,然后根据司机当前位置到调度终点的预计到达时间(ETA)来设置调度任务的过期时间。

最后,为了保证良好的用户体验,我们引入了失败概率预测模型,只保留失败概率不大于一定阈值的候选调度任务,并在任务失败的情况下为司机提供一定的补偿。补偿金额与调度任务起终点间的距离有关。

▍第二阶段:任务评分

任务评分阶段度量了每一个候选调度任务可能为平衡供需分布、提高平台效率所带来的收益。

对于一个时空状态,用分段线性函数拟合应答率(被应答订单数与全部呼叫订单数之比)与供需比(空闲司机数与呼叫订单数之比)的函数关系:

滴滴司机调度系统实践

 

依据这一函数,可以计算出向调度终点时空增加一个空闲司机可能会带来的边际增益,以此作为每一个候选调度任务的评分结果,即

滴滴司机调度系统实践

 

依据拟合结果,我们可以推导出另外一个有应用价值的结果:每个时空状态的司机缺口数量。通过设定一个目标应答率,我们可以计算出达到这一目标所需增加的司机数量,也即运力缺口数:

滴滴司机调度系统实践

 

▍第三阶段:规划

在第一阶段产生的候选调度任务集,并且在第二阶段得到每个候选调度任务的评分后,本文采用规划方法从候选集中挑选出最终下发的调度任务。在规划方法中,以保障司机体验作为约束,寻找使得平台全局收益最大化的一组最优调度任务,可以表示为:

滴滴司机调度系统实践

 

其中,

滴滴司机调度系统实践

 

为指示变量,表示一个候选调度任务是否被保留在最终的调度任务集内。

对这一优化问题直接求解需要较长的计算时间,本文进一步将其转化为一个最小费用流问题,如图5所示。

滴滴司机调度系统实践

 

图5. 最小费用流示意图

4.

实验结果

因为在框架设计中考虑了司机接受调度的意愿等实际问题,所以本文直接在线上环境中评估框架的效果。我们进行了多轮AB实验,对框架的整体效果和各个阶段的关键设计分别进行了评估。实验结果显示,与司机自主巡游相比,应用本文提出的框架可以提高司机效率,改善司机体验,并且可以提高司机总收入。边际增益函数、最小费用流模块、任务失败补偿等关键设计也都取得了正向的收益。

在实验后,我们通过问卷调查收集了司机们的反馈意见。在填写问卷的司机中,有64.6%的司机表示在下次收到调度任务时他们会选择接受。依据问卷调查结果,调度任务的NPS为27.0%,这反映出司机对调度任务的整体评价是非常积极的。

5.

结论和下一步计划

针对在网约车平台上如何为司机巡游提供有效帮助的问题,本文提出了一个符合业界应用要求的解决框架。该框架通过用户友好的交互设计和合理的司机间协作,实现了调节供需平衡、提高司机效率的目标。在线上的AB实验中,司机收入和体验相关指标上有明显改善。目前,这一框架已经被部署在了滴滴出行平台上,每天为数百万司机提供服务。

未来,这一框架的各个环节都会持续进行改进,也可以采用强化学习方法设计一个端到端的解决方案。另外,采用路网数据直接优化空车巡游行驶路线也可能是与为司机推荐巡游目的地完全不同的另一条研究路线。

作者门畅 高级算法工程师,徐哲 高级专家算法工程师 ,刘春阳 高级专家算法工程师



Tags:滴滴   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
对于拼车单,是接还是不接,不少网约车司机表示很矛盾。接吧,钱少事多,常常跑了个寂寞,不接吧,车多客少,挑三拣四没饭吃。 在平台大力推广拼车单之下,不少司机迫于生活压力,最终还是打...【详细内容】
2021-12-17  Tags: 滴滴  点击:(7)  评论:(0)  加入收藏
作为一位经常出差的职场打工人,花式打车可是我们的职场必修技能! 如何能又快又实惠的打车?保证安全的同时又能保证方便快捷。 滴滴下架后,我又发现了这5个便宜又好用的打车软件...【详细内容】
2021-12-17  Tags: 滴滴  点击:(11)  评论:(0)  加入收藏
一夜之间,互联网存款“幸存”的申购入口彻底闭合,部分民营银行自营渠道存款产品也遭下架。1月26日,券商中国记者从多位互联网存款用户处得知,支付宝、京东金融、滴滴金融、天星...【详细内容】
2021-01-28  Tags: 滴滴  点击:(154)  评论:(0)  加入收藏
现在大家出门都习惯用手机直接在出行平台上打车,用的最多的平台莫过于滴滴出行了。乘客在呼叫网约车的时候,总会看到很多类型的车,有快车、拼车、优享车等,可你知道这些车有什么...【详细内容】
2020-12-24  Tags: 滴滴  点击:(338)  评论:(0)  加入收藏
互联网大公司负责进货,让小区有人缘的宝妈,也就是所谓的团长,囤货、卖货,社区团购这个生意已经热闹到,原菜鸟网络副总裁史苗顶着竞业协议,也要去创业做个竞品。今年年中起,滴滴出...【详细内容】
2020-12-02  Tags: 滴滴  点击:(135)  评论:(0)  加入收藏
1、引言在中大型IM系统中,聊天消息的唯一ID生成策略是个很重要的技术点。不夸张的说,聊天消息ID贯穿了整个聊天生命周期的几乎每一个算法、逻辑和过程,ID生成策略的好坏有可能...【详细内容】
2020-09-09  Tags: 滴滴  点击:(206)  评论:(0)  加入收藏
金秋来到西藏自治区拉萨市旅游是一件幸福的事,那里的点点滴滴总是让人难以忘怀。8月15日上午,我来到罗布林卡。“罗布林卡”是藏语,意思是“宝贝园林”。罗布林卡是一座典型的...【详细内容】
2020-09-08  Tags: 滴滴  点击:(91)  评论:(0)  加入收藏
当你深夜坐上一辆网约车副驾,发现司机频频打着哈欠,对着空无一人的后座念念叨叨甚至大发脾气,你打算一键报警还是紧急跳车?这是滴滴最新宣传短片《车后人》的前半部分内容,比一般...【详细内容】
2020-09-04  Tags: 滴滴  点击:(76)  评论:(0)  加入收藏
引言 相比LTE,5G(NR)小区带宽要大很多,而UE在接受和发送的带宽并不需要小区带宽那么大,在3GPP协议中有规定,UE收发信息可以调整到小区的一个子带宽(BWP)上,以低功率周期性的使用这...【详细内容】
2020-08-13  Tags: 滴滴  点击:(1078)  评论:(0)  加入收藏
上周腾讯在微信的“支付”页面突然上线了一项“出行服务”,明显有意挺进出行行业。互联出行市场乱战十年后,看似已经被几个巨头把持,进入了红海之后的平静,腾讯微信这次进入出行...【详细内容】
2020-07-28  Tags: 滴滴  点击:(126)  评论:(0)  加入收藏
▌简易百科推荐
为了构建高并发、高可用的系统架构,压测、容量预估必不可少,在发现系统瓶颈后,需要有针对性地扩容、优化。结合楼主的经验和知识,本文做一个简单的总结,欢迎探讨。1、QPS保障目标...【详细内容】
2021-12-27  大数据架构师    Tags:架构   点击:(3)  评论:(0)  加入收藏
前言 单片机开发中,我们往往首先接触裸机系统,然后到RTOS,那么它们的软件架构是什么?这是我们开发人员必须认真考虑的问题。在实际项目中,首先选择软件架构是非常重要的,接下来我...【详细内容】
2021-12-23  正点原子原子哥    Tags:架构   点击:(7)  评论:(0)  加入收藏
现有数据架构难以支撑现代化应用的实现。 随着云计算产业的快速崛起,带动着各行各业开始自己的基于云的业务创新和信息架构现代化,云计算的可靠性、灵活性、按需计费的高性价...【详细内容】
2021-12-22    CSDN  Tags:数据架构   点击:(10)  评论:(0)  加入收藏
▶ 企业级项目结构封装释义 如果你刚毕业,作为Java新手程序员进入一家企业,拿到代码之后,你有什么感觉呢?如果你没有听过多模块、分布式这类的概念,那么多半会傻眼。为什么一个项...【详细内容】
2021-12-20  蜗牛学苑    Tags:微服务   点击:(8)  评论:(0)  加入收藏
我是一名程序员关注我们吧,我们会多多分享技术和资源。进来的朋友,可以多了解下青锋的产品,已开源多个产品的架构版本。Thymeleaf版(开源)1、采用技术: springboot、layui、Thymel...【详细内容】
2021-12-14  青锋爱编程    Tags:后台架构   点击:(20)  评论:(0)  加入收藏
在了解连接池之前,我们需要对长、短链接建立初步认识。我们都知道,网络通信大部分都是基于TCP/IP协议,数据传输之前,双方通过“三次握手”建立连接,当数据传输完成之后,又通过“四次挥手”释放连接,以下是“三次握手”与“四...【详细内容】
2021-12-14  架构即人生    Tags:连接池   点击:(16)  评论:(0)  加入收藏
随着移动互联网技术的快速发展,在新业务、新领域、新场景的驱动下,基于传统大型机的服务部署方式,不仅难以适应快速增长的业务需求,而且持续耗费高昂的成本,从而使得各大生产厂商...【详细内容】
2021-12-08  架构驿站    Tags:分布式系统   点击:(23)  评论:(0)  加入收藏
本系列为 Netty 学习笔记,本篇介绍总结Java NIO 网络编程。Netty 作为一个异步的、事件驱动的网络应用程序框架,也是基于NIO的客户、服务器端的编程框架。其对 Java NIO 底层...【详细内容】
2021-12-07  大数据架构师    Tags:Netty   点击:(16)  评论:(0)  加入收藏
前面谈过很多关于数字化转型,云原生,微服务方面的文章。虽然自己一直做大集团的SOA集成平台咨询规划和建设项目,但是当前传统企业数字化转型,国产化和自主可控,云原生,微服务是不...【详细内容】
2021-12-06  人月聊IT    Tags:架构   点击:(23)  评论:(0)  加入收藏
微服务看似是完美的解决方案。从理论上来说,微服务提高了开发速度,而且还可以单独扩展应用的某个部分。但实际上,微服务带有一定的隐形成本。我认为,没有亲自动手构建微服务的经历,就无法真正了解其复杂性。...【详细内容】
2021-11-26  GreekDataGuy  CSDN  Tags:单体应用   点击:(35)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条