1简介合同履行时间是电商的生命线,直接关系到用户的消费体验。新华网[5]2022年双十一报道称,37.4%的受访者希望次日送达,29.91%的受访者希望当天送达。相较于其他物品,受访者对手机、电脑、数码产品的发货时效要求更高,希望当天或1-2天内收到货品。在合同履行场景中,主要阶段包括入库生产和第三方承运人发货。用户付款时,得物会根据仓库的生产情况和配送资源给用户一个承诺时限。1.1为什么要预测承运人专线时效?在履行合同的过程中,得物需要监控订单流向,及时发现可能逾期的订单(与用户承诺的时效相比)。这包括对仓库生产和第三方配送的监控。.在实际过程中,我们发现当配送节点发生变化时,运营商给出的预测是保守的。在下面的示例中,销售部门的承运人会给出更准确的预计交货时间,因此分拣中心承运人的预计交货时间容易出现误报。下图是承运人接口返回的预估配送时间的松散指标。可见,距离目的地越近,承诺的时限越准确。2运营商网络是如何工作的在建设运营商网络之前,有必要了解一下运营商网络是如何工作的。下面是A站点到E站点的配送示意图,分为以下内容:(1)节点,包括集散站点和分拣中心。(2)线路,包括干线和支线。例如出口到分拣中心的支线属于支线,分拣中心到分拣中心的主线。(3)班次:为了平衡成本和时效,承运人会设置生产班次。到达分拣中心后,需要根据目的地进行分拣。当一定数量的货物到达时,将从分拣中心出发,前往下一个节点。承运商在设置班次时,会考虑订单数量,同时考虑到运输的成本和时效性。上图:以紫色为例,在A网点,早上8:00截单,即8:00前交给承运人的货物,8:20左右封箱,然后从出口出发到B分拣中心,到达分??拣中心B的时间是11:40。此时赶上分拣中心B的班次,截止时间为12:00。分拣中心B会在12:30完成分拣并前往下一个分拣中心,以此类推完成整个配送流程。在构建运营商网络时,需要建模。除了节点、线路和班次外,核心还包括以下两个模型:(5)成品线,即从A网点到E网点经过所有节点。上图中:A出口-B分拣中心-C分拣中心-D分拣中心-E出口构成一条成品线。(6)成品线波浪:因为节点有波浪,所以也有成品线波浪。事实上,成品线的波数与第一个节点的波数相同。3如何搭建运营商网络在了解了运营商网络的工作原理之后,您需要开始搭建运营商网络。承运人会将航迹信息推送给得物,内容类似以下文字。对于每个运单,它的轨迹会经过很多节点,每个节点的数据类型如下:1.waybill_no表示运单号,同一个运单号会有多个节点记录2.station_index表示当前节点下标3.station_enum表示节点的类型,是分拣中心还是蓝牌奥特莱斯4.station_name表示节点的名称,如上例中的xxx销售部5.station_status表示节点的状态,如如进入或离开6.operate_time表示当前节点的运行时间。3.2track中是否真的有shift信息?载体网络的工作原理中提到,载体会轮班生产。你能从跟踪结果中找到轮班生产的证据吗?通过分析,我们猜测同一流向(比如从A分拣中心到B分拣中心)离开某个分拣中心(比如离开A分拣中心)的时间应该比较集中。实时地,通过一些简单的聚类方法,我们的猜想得到了证实。下图中,横轴代表从分拣中心出发的时间,每个点代表历史上的某个运单。纵轴没有商业意义,只是为了展示方便。上图使用kmeans聚类算法绘制,kmeans聚类算法需要指定簇数。因此,需要使用Knee/Elbow等算法进行簇数检测,对异常值敏感,所以最终在实现中使用了DBSCAN。3.3如何选择聚类参数DBSCAN不需要指定聚类的个数,但需要指定点与点之间的距离和点的密度。经过反复调整,最终确定的两个核心参数如下:0.25,也就是15分钟。点密度最多为总数的5%和2%。3.4如何解决跨天问题从上面的聚类图可以看出,同一波的点可能会出现跨天,即有些点从分布中心出发的时间可能是23:50,而有些分布的时间中心可能是00:10。这两点之间的欧式距离比较大,所以需要重写距离的度量函数。ret=abs(x[0]-y[0])ifret>12:ret=abs(24-ret)returnret3.5线路是如何串联的分析节点的生产转移是不够的和线的转变。它们需要串联起来得到成品线班次,以便在销售前或销售中应用。这里的处理做了一些简化。一方面,无法识别分拣中心的分拣浪潮。另一方面,不必关注分拣中心的分拣浪潮。其实串接成品线班次的过程如下:核心代码如下:List
