派单算法


派单规则:核心的是”就近分配”原则,将离运营人员得到最近的订单分配给他
但是如果考虑了每一个运营人员都符合”就近分配”原则,就会增加用户的等待时间,导致部分用户的需求无法进行满足.
所以在”就近分配”的原则上加上” 二八规则”,即系统需要满足80%的人符合” 就近分配”原则,20%人加入到应变策略中,
运营人员是需要进行盈利的,所以系统在派单中也需要考虑运营人员整体的营收比不会出现很大的差异,趋近”公平原则”.

就近原则

img.png
按照就近原则:
编号1 的订单分配个A运营人员
根据以上的就近原则,会出现以下情况,当一个新的订单出现的话,系统根据就近原则,发现A符合这个规则,
那么就将单子分配个A,但是有10个单子,A都符合就近原则,而B却始终没接到单子,虽然符合的就近原则,但是不符合公平原则,而且也回出现A运营人员身上会有很出现时间相近的订单,导致用户等待时间过长,或者无法按照预约的时间到达,出现超时情况,无法满足用户的需求.

就近原则

img_1.png
系统需要满足每个运营人员的营收之间的差距越小越好,趋近”公平原则”
预约时间为10:00的编号1预约单,此时系统得知在线的运营人员为A,B,C;同时根据”公平原则”会将编号1的预约单分配给C,但是此时时间为09:45,距离预约时间只剩下15分钟,如果系统坚持”公平原则”的将编号1分派给C,但是C不符合” 就近分配”,而C赶过去的时间为30分钟,会出现超时,所以会在A,B之间进行选择, 按照”就近分配”原则和” 公平原则”系统会将订单分配给A,但是A运营人员的车辆容积已经接近满载状态,需要去废品分拣中心进行垃圾的卸载,所以无法将此订单分配给A运营人员,此时只有B运营人员符合要求.
这样看似是最优解,这是一个订单和多个运营人员,那如果是多个订单和多个订单改如何解决呢?

多对多

img_2.png
得到以下组合
组合一:
订单1分配给A;
订单2分配给B
订单1 和订单2的总时间为35分钟,平均等待时间17.5分钟
组合二
订单2分配给A
订单1分配给B
订单1 和订单2的总时间为25分钟,平均等待时间12.5分钟
组合一符合就近原则,但是用户的等待时间过长(考虑每一个运营人员都符合”就近原则”)
组合二相比较组合一派单方式总时间缩短了10分钟,每一单平均节省了5分钟,(符合”二八规则”)
但是此组合没有考虑到”公平原则”,如果在此技术上将符合”公平原则”引入.

二八原则

img_3.png
此图分别包含了以下原则:
就近分配,公平原则,二八规则
同时两个订单编号1和编号2,两个运营人员A和B
如果根据就近原则,那么就以下组合
订单1运营人员A
订单2运营人员B

公平原则
订单2运营人员A
订单1运营人员B
二八规则(相对就近原则)
组合一:
订单1分配给A
订单2分配B
总等待时间为29分钟,,平均每单的时间为14.5
组合二:
订单1分配给B
订单2分配A
总等待时间为34分钟,,平均每单的时间为17
组合一相比较组合二总时间缩短了5分钟,平均每单时间缩短3.5分钟
明显是组合二是最优选择,但是如果选择第二种方案,会让订单二用户等待的时间变得更长
如何在保证运营人员的收益趋于公平的状态下, 缩短用户等待时间,这方面就需要引入一个” 预派单”概念,即在运营人员即将结束此时进行的任务的时候,系统根据运营人员所处的位置和预估的处理时间,分配最新且距离近的订单.

预派单

基于”预派单”场景如下:
“系统根据运营人员所处的位置和预估的处理时间,分配最新且距离近的订单”;
img_4.png
根据上图所示,以及”预派单”规则,可以得到
此时系统收到10:25新的订单3,根据距离计算得知,A,B距离订单3的距离相等,系统按照公平原则对A,B进行计算,
发现B符合此原则,系统即将将系统发送给B的时候发现,根据B运营人员已完成订单的处理时间,计算出他的预估时间,
发现如果等B处理完订单1后再去处理订单3,会导致订单超时,所以系统不会将订单3分配给B,此时系统没得选择,
虽然A不符合公平原则,但是A处理完订单2后还有时间赶往订单3,不会导致订单超时,
所以系统将订单3分配给A;
此时的规则:时间就近原则,大于公平原则
实际的情况:
img_5.png
订单1废品类型为纸质,而且重量只有1kg,由于B运营人员之前处理的两个订单重量比较重,所以处理时间比较长,订单数量少,且总的处理时间长,所以系统而新的订单重量较轻而且为属性为纸质类,
订单2废品类型为金属,而且重量3kg,重量比较重,由于A运营人员之前处理的三个订单重量比较轻,所以处理时间比较短,而新的订单重量较轻而且为属性为纸质类,

系统层面

系统为何会将订单3分配给A而没有分配给B,
原因: 系统在计算的时候会优先考虑” 就近原则”,在符合就近原则的情况下,结合二八规则,公平原则,进行派单
由于B运营人员之前处理的两个订单物品类型重量比较重,所以处理时间比较长,订单数量少,且总的处理时间长,所以系统判断B运营人员下一个的处理时间过长
而A运营人员处理的订单数量多,且总的处理时间行比较B短很多,系统就判断A下一个的处理时间会相比较B短,所以就将订单3分配给A;从系统层面来考虑,分配的规则没有问题

实际情况

运营人员B处理订单1的时间比系统预估时间短,而运营人员A处理订单2的实际时间比系统预估的时间长了,按照时间情况的订单3分配满足就近原则,公平原则

分析

系统分配的方式和实际派送的方式出现两种结果的原因是
物品的类型以及重量,这两个因素会影响实际的分配策略;
所以在” 预派单”的时候需要考虑即将分配的订单的物品类型以及重量;
而且在刚刚的” 预派单”规则中,二八规则并没有介入进来,
其中最重要的原因是A,B运营人员到订单3的时间相同(即距离相等),可以得到的信息是,当时间相同(即距离相等)的时候,二八规则是不会介入的

思考

  1. 预约时间: 用户等待的时间
  2. 消耗时间:运营人员接到任务赶往目的地路上所消耗的时间
  3. 处理时间:运营人员处理此订单需要的时间
  4. 废品处理时间:当车辆容积处于满载状态,运营人员需要赶往废品分拣中心,进行废品的处理
  5. 工作时长:运营人员当天的工作时长
  6. 不进行分配:运营取消任务,默认一个小时之内不给此用户进行派单
  7. 未进行接单:当天未工作的运营人员时间
  8. 车辆满载状态:到达设定的阈值
  9. 当天工作的酬劳
-------------本文结束感谢您的阅读-------------