文章作者:Tyan
博客:noahsnail.com | CSDN | 简书
本文为美团文章学习的笔记整理。
外卖平台中,配送时效、准时率作为履约环节的重要指标,是外卖平台的核心竞争力之一。要提升用户的配送时效和准时率,最直接的方法是配备较多的配送员,扩大运力规模,然而这也意味着配送成本会很高。怎么在配送体验和配送成本之间取得最佳的平衡,是即时配送平台生存的根基和关键所在。在用户满意度持续提升的同时,降低配送成本、提高骑手满意度、驱动配送系统的自动化和智能化,是外卖配送团队要解决的难题。
Note:
招募更多的配送员,配送成本很高,应该想办法减少成本,即用更少的骑手配送更多的订单。
措施
结果
通过上述技术和模式的引入,持续改善了用户体验和配送成本:
Note:
外卖订单的分配问题一般可建模为带有若干复杂约束的DVRP(Dynamic Vehicle Routing Problem)问题。这类问题一般可表述为:有一定数量的骑手,每名骑手身上有若干订单正在配送过程中,在过去一段时间(如1分钟)内产生了一批新订单,已知骑手的行驶速度、任意两点间的行驶距离、每个订单的出餐时间和交付时间(骑手到达用户所在地之后将订单交付至用户所需的时间),那么如何将这批新订单在正确的时间分配至正确的骑手,使得用户体验得到保证的同时,骑手的配送效率最高。
订单和服务提供方的匹配问题是一个非常关键的问题。在外卖行业发展初期主要依赖骑手抢单模式和人工派单模式。
系统派单具备如下优势:
Note:
派单模式与抢单模式并存,派单一般优于抢单
美团外卖每天产生巨量的订单配送日志、行驶轨迹数据。通过对配送大数据进行分析、挖掘,会得到每个用户、楼宇、商家、骑手、地理区域的个性化信息,以及有关各地理区块骑行路径的有效数据,那么订单智能分配系统的目标就是基于大数据平台,根据订单的配送需求、地理环境以及每名骑手的个性化特点,实现订单与骑手的高效动态最优匹配,从而为每个用户和商家提供最佳的配送服务,并降低配送成本。
即时配送大数据平台实现对骑手轨迹数据、配送业务数据、特征数据、指标数据的全面管理和监控,并通过模型平台、特征平台支持相关算法策略的快速迭代和优化。
准确建模是实际决策优化项目的第一步,也是最关键的一步。准确建模,包括两个方面的问题:
在上述两个前提下,采用相应的高效优化算法求解模型所得到的最优解,就是符合实际场景需求的最优决策方案。第一个问题,一般是通过业务调研、分析并结合建模工具来得到;而解决第二个问题,则更多地需要依赖数据分析、机器学习、数据挖掘技术结合领域知识,对模型进行精确的量化表达。
一个决策优化问题的数学模型,一般包括三个要素:
即时配送场景下的订单分配问题,符号定义:
在即时配送调度场景下,决策变量包括各个订单需要分配的骑手,以及骑手的建议行驶路线:
优化目标一般包括希望用户的单均配送时长尽量短、骑手付出的劳动尽量少、超时率尽量低等。可表述为:
实际场景下的订单分配问题,设置目标函数是一个较为复杂的问题。
即时配送调度问题的约束条件类型:
除了以上约束外,有时还需要考虑部分订单只能由具备某些特点的骑手来配送、载具的容量限制等。
Note:
载具容量限制,订单类型要求订单只能单独配送,不能与其它订单混合在一起。
以上只是针对给定的一批订单进行匹配决策的优化问题在建模时所需考虑的部分因素。在外卖配送场景中,希望的不是单次决策的最优,而是策略在一段时间应用后的累积收益最大。不追求某一个订单的指派是最优的,而是希望一天下来,所有的订单指派结果整体上是全局最优的。在进行决策的时候,既需要考虑已确定的订单,还需要考虑未来的尚未确定的订单。运筹优化领域中的马尔可夫决策过程描述的就是这样的一类在不确定、信息不完备环境下的序贯决策优化问题。
Note:
最简单的方法是贪心,追求当前订单最优指派,实现简单,但可能不是全局最优的。追求全局最优复杂,不一定比局部最优好,只有全局最优明显优于局部最优时,才值得上。
即时配送订单分配场景下的数据包括两类:
第一类数据的获取一般由业务系统、骑手端App直接给出,其精度通过提升工程质量或操作规范可有效保证;而第二类数据的获取是即时配送调度的关键难点之一。
在订单的配送过程中,骑手在商家、用户处的取餐和交付时间会占到整个订单配送时长的一半以上。商家出餐时间的长短,跟品类、时段、天气等因素都有关,而交付时间更为复杂,用户在几楼,是否处于午高峰时段,有没有电梯等等,都会影响骑手交付订单给用户的时间。为解决这些问题,利用机器学习工具,利用历史的骑手到店、等餐、取餐的数据,并充分考虑天气等外部因素的影响,建立全面反映出餐能力的预测模型,并通过实时维度的特征进行修正,可以得到准确的出餐/交付时间估计。
Note:
骑手在路上的时间比较简单,也比较好估计,就是距离/骑手速度。但等餐、取餐时间,用户交付时间涉及的因素比较多,也比较杂。例如商户的订单积压情况,用户的楼层、电梯情况等。这也是将配送时间分成多段预测的原因之一。整体预测可能偏差较大,分成几部分,其中一部分的时间可以更准确的预测。
优化算法的作用则是在构建的解空间里找到最优的策略。配送调度问题属于典型的NP-Hard优化问题,解空间巨大。如何设计好的优化算法,从庞大的解空间中搜索得到一个满意解是一个很大的挑战,即时配送对于优化算法的另一个要求是高实时性。
针对此难题,采用了两个关键思路。一是问题特征分析。针对配送调度的场景,这个问题可以被分解为两个层次:骑手路径优化和订单分配方案的优化。骑手路径优化问题要解决的问题是:在新订单分配至骑手后,确定骑手的最佳配送线路;而订单分配优化问题要解决的问题是:把一批订单分配至相应的骑手,使得关注的指标(如配送时长、准时率、骑手的行驶距离等)达到最优。这两个问题的关系是:通过订单分配优化算法进行初始的订单分配,然后通过骑手路径优化算法获取各骑手的最佳行驶路线,进而,订单分配优化算法根据骑手路径优化结果调整分配方案。这两个层次不断反复迭代,最终获得比较满意的解。第二个思路是跨学科结合。订单分配问题在业内有两类方法,第一类方法是把订单分配问题转换成图论中的二分图匹配问题来解决。这种做法是一个不错的近似方案,优点是实现简单计算速度快,但它的缺点是会损失一部分满意解。第二类方法是直接采用个性化的算法进行订单分配方案的优化,优点是不损失获得满意解的可能性,但实际做起来难度较大。结合领域知识、优化算法、机器学习策略以及相关图论算法,基于分解协调思想,设计了骑手路径优化算法和订单分配优化算法。进一步,利用强化学习的思想,引入了离线学习和在线优化相结合的机制,离线学习得到策略模型,在线通过策略迭代,不断寻求更优解。通过不断地改进算法,在耗时下降的同时,算法的优化效果提升50%以上。为了有效降低算法运行时间,对优化算法进行并行化,并利用并行计算集群进行快速处理。
Note:
批量分配算法,二分图匹配问题,简单速度快,第2种需要集群。
即时配送过程的一个突出特点是线下的突发因素多、影响大,突发事件造成的一个恶劣结果是,虽然在指派订单的时刻,所指派的骑手是合理的,然而过了一段时间之后,由于骑手、订单等状态发生了变化,会变得不够合理。现有方法主要通过人工来完成,即:配送站长/调度员在配送信息系统里,查看各个骑手的位置、手中订单的状态及商户/用户的位置/期望送达时间等信息,同时接听骑手的电话改派请求,在此基础上,分析哪些订单应该改派,以及应该改派给哪位骑手,并执行操作。
Note:
突发事件需要人工介入(2017年)。
针对即时配送的不确定性特点,提出了两点创新:一是延迟调度策略,即在某些场景订单可以不被指派出去,在不影响订单超时的情况下,延迟做出决策;二是系统自动改派策略,即订单即便已经派给了骑手,后台的智能算法仍然会实时评估各个骑手的位置、订单情况,并帮助骑手进行分析,判断是否存在超时风险。
针对即时配送场景,建立了相应的仿真模型,开发了配送仿真系统。
Note:
算法需要在仿真系统上进行测试,调整。