基于XGBoost 的卷烟送货时间预测仿真模型研究*
2023-05-12张超宋伟胡鹏陈辉汪明全鹏
张 超 宋 伟 胡 鹏 陈 辉 汪 明 全 鹏
(1.中国烟草总公司湖北省公司 武汉 430030)(2.武汉大学计算机学院 武汉 430072)(3.湖北省烟草公司十堰市公司 十堰 442099)
1 引言
由于卷烟配送系统中,客户所处地点、卷烟的销售量,以及交通路线,都会随着时间发生改变。因此,我们必须定期自适应地更改卷烟的物流配送路线。然而,定期改变配送路线,存在一系列的风险与挑战。首先,配送时长与送达时间是评估配送路线的重要指标。虽然可以使用人工经验来衡量配送路线,但这显然无法高效地对比大量路线方案,也无法保证始终得到高准确的评估结果。我们的现有系统中缺少高效的路线方案对比的相关功能;其次,配送路线的改变,是高成本与长周期的。根据我们的经验,一次配送路线的改变,会至少耗费2 个月到5 个月的时间,用于小范围使用实车进行试点配送、优化路线方案、扩大试点范围、把方案投入实际使用等流程;最后,由于新配送路线不一定尽善尽美,因此在试运行期间,我们无法准确把控卷烟的配送时长与送达时间,这会影响我们的服务质量,从而降低用户的体验。
为降低传统卷烟配送路线调整带来的不利影响,本文提出一套卷烟配送时间预测仿真模型,运用模拟仿真理论、XGBoost 模型和数字地图,对配送路线时间进行更精确的模拟仿真,降低调整配送路线所需的成本与时间。与此同时,为客户预测精确的预计送达时间,提高服务质量与服务满意度,为卷烟物流路线优化提供了一种有效的辅助工具。
2 问题分析
卷烟送货时间预测仿真有三个核心部分:配送总时长预测仿真、单户行车时间预测和单户上门服务时间预测。
2.1 配送总时长预测仿真
配送总时长预测仿真模拟了车组进行一次配送的全部流程,包括配送车从出发到返回、完成路线上所有需要送货的客户的卷烟配送,并得到配送流程的整体时间。
我们的卷烟配送流程如下:物流中心或中转站发出车组,按照送货上门、客户核查与签收、配送下一户的流程严格执行。一对一服务每一位客户,手把手送达每一份货物,直至完成所有的配送任务,各车组返回出发点。具体流程见图1。
图1 单个车组配送作业流程
从图1 可知单个车组配送总时长=去往送货区行车时间+送货区工作时间(多个单户服务时间)+回物流中心行车时间。
图2是图1中的单户送货流程,单户服务时间=单户行车时间+单户上门服务时间。配送总时长预测仿真包含下述三条特征:
1)连续两户的送货流程与签收流程的发生时间是随机的。这是因为每两位客户之间的路程不同、不同客户的签收速度不同,因此单户上门服务所耗费的时间也不同。综上,单户服务时间是不确定的,是一个离散事件。
2)每天需要卷烟送货的客户也是随机的。每个车组每天的配送任务是变化的,且按周循环。在添加动态路线规划系统后,我们可以依照当天的客户订单数据,合理规划每个车组每天的送货数量、路线、客户,生成配送任务,配送任务也是随机的。
3)将一系列单户送货流程事件进行排序,以达到对配送路线时间的仿真。事件必须按序发生,不可调序或略过,并且不同事件的分类清晰明白。
通过上述三条特征,我们的卷烟送货路线时间预测防震的需求,符合“离散事件-事件调试法”(下文简称“事件调试法”)应用特点。因此,我们的模型采用“事件调试法”为理论来源。
“事件调试法”是面向事件的,不仅详尽保存事件的发展流程,还会处理事件发生时系统状态的变化结果。王铁宁等[1]采用变步长的推进方法,推进一次仿真时钟,记录和处理一个事件发生所引起的状态变化。本文以十堰烟草物流中心为例,设计的卷烟送货时间预测仿真模型。
2.2 单户行车时间预测
我们以十堰卷烟配送任务为例。在这个案例下,物流管控平台会根据卷烟的销售数据安排客户的配送顺序,生成配送任务。该任务将于两日后被车组配送。每个车组每天根据客户配送顺序、两户之间的路径连接形成配送路线,按配送路线完成80个到150个单户配送任务。因此,为更好地实现配送路线的预测和仿真,我们重点关注两位客户间的路程与时间的预测。
目前,市面上已有多款成熟的电子地图软件,可以根据设定的起点与终点,计算两者之间的路程与时间。这可以帮助我们获取路网、实时路况等重要信息,实现两位客户之间的路径计算。比如我们熟知的百度地图API,就可以依据道路历史运行数据、海量用户数年的大数据积累等,综合得到导航信息,为我们提供高准确率的起点与终点间的距离与时间,甚至可以提供路线上红绿灯数量以及预计等待时间。综上所述,配送路线的预测,可以借助使用合适的电子地图软件来实现。本文直接采用成熟的电子地图工具(Baidu Map API)来实现两位客户之间的行车时间和路径的预测。
2.3 单户上门服务时间预测
在本文中,上门服务包括配送员到达客户收货点,卸货,把烟包交付给客户,客户检查烟包,若没有问题则确认签收,配送员返回车辆并整理烟包(可能有),启动车辆继续给下一位客户配送的时间。卷烟物流配送应用中,客户上门服务时间受到诸多不确定因素影响,如配送方案调整、实时路况、前置送货时间等,这些数据特征具有明显的不确定性,而且在配送路线上后方配送客户的服务时间不确定性会由于前期配送任务的不确定性而累加。因此单户上门服务时间预测是一个不确定、时序关联的复杂学习目标。据我们所知,XGBoost 被认为是非常适合于数据缺失和不确定数据场景的机器学习方法,被广泛地应用于运动预测、商品销售预测、文本分类、行为预测等领域[1~4],结合单户上门服务时间预测任务的服务特点,本文利用XGBoost模型预测单户上门服务时间。
2.4 国内外研究现状
近年来,随着物流配送、共享单车、基于位置服务等各种新形态应用的兴起,路径调度优化研究得到越来越多的来自工业界和学术界的重视。遗传算法是一种模拟生物自然选择的算法模型,很多学者基于遗传算法和各种改进优化算法对路径调度优化问题开展研究[5~15]。现有研究关注了路径优化算法的优化效率和算法收敛速度,但目前针对卷烟物流配送任务中多优化目标、数据不确定、数据缺失问题的路径优化研究还很少,这是本研究的主要研究动机。
3 预测仿真模型的构建
3.1 卷烟配送时长预测仿真模型
由事件调度法仿真钟的推进过程得出模型算法:
T 表示完整配送路线的配送时长;n 表示需要配送服务的客户数目,n≥1;TRij代表客户i 与j 间的单户行车时间,i,j=0,1,…,n,i≠j;TRoi、TRn0依次表示配送车从当前位置到第i 个客户的行车时间、客户n到配送起点的行车时间,i=1,…,n。
TLi表示单户上门服务花费的总时间,包括配送人员到达第i 个客户的收货地点后,卸货并把货物送到客户手中的时间、客户核验货物并签收的时间、配送人员返回配送车耗费的时间、整理烟包时间(可能有)、启动车辆时间,i=1,…,n。
式(1)说明:
1)一组车组的配送总时长=单户服务时间之和+返回物流中心或中转站的行车时间;
2)单户服务时间=单户行车时间+单户上门服务时间。
根据式(1),送货时间预测的准确性由单户行车时间和单户上门服务时间两个因素决定。
3.2 单户行车时间计算方法
式(2)说明xi、yi,依次代表客户ui的经度和纬度,i,j=1,…,n,且i≠j。MAPAPI 表示调用电子地图API,计算出任两个客户的车行时间、车行距离。
3.3 单户上门服务时间计算方法
XGBoost 适用于回归、分类问题,单户上门服务时间预测属于回归模型,表示为式(3)。
式(3)说明fk代表某一函数,K代表函数迭代次数,xi、yi表示第i个样本特征和预测值。
建立预测回归模型时,需要寻找最优的参数,其目标函数为式(4)。
式(4)说明为损失函数是预测值与目标值之间的差值,为正则化项。
式(5)说明yi、yi代表是第i个历史签收数据样本值和预测值,n 是个数,l 是误差函数,fk是第k 颗树。
正则化项式(6)说明:T 代表叶子节点数量,ωj表示叶节点权重。此时目标函数为
其中t 代表训练轮次,constant 为前t-1 颗树正则化项之和。
最后建立决策回归树,计算方法为
4 实证验证
为验证论文方法的有效性,构建了基于XG⁃Boost的卷烟送货时间预测原型系统对论文提出方法进行验证。原型系统基于Python构建,搭建了B/S 系统用于十堰市卷烟配送路径优化。实验数据来自十堰市2019-2020 年的卷烟物流签收数据信息,采用MySQL 存储,共91 万条数据。实验过程中,卷烟送货时间预测仿真模型验证流程共有5 个步骤:数据采集、数据处理、数据特征提取、样本划分、预测及分析。
4.1 数据采集
采集2019年1月至2020年12月十堰市烟草公司卷烟物流签收记录,共91万条物流数据。
4.2 数据处理
由于原有物流数据质量问题,我们首先清洗了原有数据中缺乏重要信息的基础数据。并基于电子地图扩展了网点中任意两点之间的路程与时间,这些信息是使用电子地图API 获取的。清洗后共有67.1万条数据。
4.3 数据特征提取
物流数据维度很大,为提高算法效率首先提取必要数据特征,形成16 维数据集,16 维列名分别是:配送时间(年月日)、配送时间周数、淡旺季标志、路线名称、路线编码、起点编号、起点经纬度、终点编号、终点地理经纬度、送货数量(烟包数)、送货数量(条)、出发时间(时分秒)、服务结束时间(时分秒)、行车时长(s)、行车路程(m)、单户上门服务时长(s)。
总结清洗过的单户上门服务时长数据,得到表1,可以看到,标准差为77s,服务平均时长为94s,与我们跟车调查得到的实际数据相吻合。
表1 单户服务时长统计表
4.4 样本划分
2019年1月至2020年10月数据,划分训练集;
2020 年11 月至12 月数据,划分为验证集,验证集少“单户上门服务时长(s)”数据特征。
4.5 预测及分析
验证集数据共1,083(条次)路线,配送总时长的预测准确率为92.11%,详情见表2。
表2 预测结果统计表
可以看到,配送总时长预测仿真可以达到较高的准确率。同时,我们收集了一天内每条配送路线的配送总时长预测值,并记录单条路线预测的最大偏差值。以2020 年12 月2 日,共26 条路线的预测数据为例,时间预测仿真准确率是高达93.86%,与验证集所在月份的的整体预测值大致相同,因此这是具有代表性的数据。我们将预测偏差定义为真实送货时长与预计送货时长的绝对差值,26 条配送路线的配送时长预测偏差均值为0.6h,除三条路线外,预测偏差均低于一小时。
至于相同路线中的单户服务时间,选则路线“1-1-1-周一”,上午8 时4 分,送货车于物流中转站出发,仿真车辆也随之出发,共为15 位客户提供服务后返回,送货车与仿真车辆的时间偏差小于十分钟。
4.6 准确率统计
卷烟送货时间仿真模型时间预测准确率见表3。
表3 模型时间预测准确率统计
在实际配送工作中,存在一些不可预测的事件或不可抗力对模型的预测产生干扰,剔除这些因素后,模型预测准确率应该还会有所提升。
5 结语
5.1 结论
本文基于卷烟送回的真实流程,研发出一种离散性卷烟送货路线时间预测仿真模型。与实际送货数据相比,我们可以达到92.11%的配送总时长的预测准确率,和85.36%的客户预计送达时间预测准确率。本模型实现了对整条配送路线时长与各单户服务时间的精准预测。通过比较不同的仿真送货路线,降低物流中心更改送货路线带来的时间与人力代价,提高服务质量,提升用户体验。在之后的工作中,我们将持续研究仿真模型与电子地图结合,发展可视化路线仿真、收货预提示、多区域集中可视化调度等功能及应用,通过可视化展示更改路线后配送车的行驶路线,更加高效智能地调度车辆,调整配送路线,为智慧物流发展带来案例。
5.2 讨论
本模型输出的是数据及统计报表是静态的文本工具,存在查看便利性不足的问题,而本仿真模型可与电子地图软件结合,实现卷烟物流可视化模拟仿真,即将规划好的路线,在地图上进行仿真运行,对仿真情况实时语音播报,可以使得路线查看更加直观、物流管理调度更加方便;添加到货预提醒等功能及应用,进一步扩充仿真模型应用场景,达成现代化的卷烟送货任务管理。