1. 引言
在当今数字化时代,电商行业呈现出蓬勃发展的态势。电商平台的兴起极大地改变了消费者的购物习惯,使得生鲜产品的线上购买量迅猛增长。消费者越来越倾向于通过电商平台便捷地选购各类新鲜的水果、蔬菜、肉类等生鲜商品,并且期望能够快速、新鲜地收到所购物品。这就对生鲜冷链运输提出了更高的要求。物流企业需要高效且优质地完成从产地到消费者手中的冷链配送环节,以保障生鲜产品的品质不受损。电动冷藏车在这一背景下成为了一个重要的运输工具选择,因为它既能满足冷链运输的温度控制需求,又契合国家减排政策的导向,有助于打造绿色物流配送体系。这不仅是响应环保号召的体现,也为行业发展带来了新的机遇和挑战。其中企业如何在满足各方需求的前提下科学地对电动冷藏车进行调度和线路规划是一个较为核心的问题,而使用高效的智能优化算法无疑能够很好地解决这个问题。
车辆路径问题是Dantzig和Ramser [1]于1959年首次提出。电动汽车路径规划问题由于需要考虑充电和电池的因素变得更为复杂。针对带时间窗的电动汽车路径问题许多学者进行了研究,M. B等[2]在研究时结合了能耗模型中的有效载荷和车速等多个因素。Yong W等[3]则考虑到了共享充电站和协同多车场作业的问题。Jianhua X等[4]主要考虑到了混合回程问题。常海平等[5]则考虑了混合时间窗的问题。而针对NSGA-II算法的改进方面。杨亮等[6]在NSGA-II算法中引入C-W节约算法构造问题初始解。陈照学[7]则在NSGA-II算法中引入了变异算子。郭亚辉[8]则是在NSGA-II算法中引入PSO算子来优化算法。
综上,本文将在前人研究的基础上,立足当前经济发展态势,以国家环保政策导向与冷链物流兴起为背景。鉴于冷链物流企业发展所面临的电动冷藏车调度与线路规划核心难题,构建了一个多目标冷链物流配送路径优化模型,该模型同时涵盖综合运输成本、碳排放量以及企业配送水平等要素。并且设计了改进型的NSGA-II算法,通过算例求解的方式,对算法和模型的有效性进行了验证。
2. 模型建立
2.1. 问题描述与假设
本文聚焦于某生鲜配送企业电动冷藏车的配送问题,这些冷藏车从配送中心出发,向多个客户点配送生鲜。在此情境中,客户对配送服务存在软时间窗要求,这意味着车辆可以在特定时间范围内提前或延迟到达。不过,早到或晚到都会产生相应的额外成本,比如生鲜产品因等待时间过长致使品质下降所产生的成本,或者因客户不满而可能造成的潜在损失等。
为了更好的研究该问题,我们在这里做出以下假设:① 电动冷藏车运输电能消耗与行驶距离、冷藏室电能消耗和使用时间均呈正比关系。② 电动冷藏车的载重、电池容量都已知,且每辆车的载重不会超过最大载重。③ 每辆电动冷藏车都从配送中心出发,完成配送任务后均返回配送中心。④ 配送过程中所产生的碳排放量与该过程中的电力相关。⑤ 不考虑道路拥堵等特殊情况。⑥ 所有客户的位置和货物需求量都是已知的,且针对每一个客户点而言,有且仅有一辆冷藏车为其进行配送服务。
2.2. 符号说明
为解决上述所描述问题,设立了一系列的模型参数与决策变量,相关模型参数的详细描述如下表1所示。
Table 1. Model parameters
表1. 模型参数
参数 |
描述 |
参数 |
描述 |
a |
每辆车的固定成本 |
|
客户点j的时间窗 |
b |
单位电量电价 |
|
车辆到达点节点j的实际时间 |
|
电动冷藏车单位里程所消耗的电能 |
|
冷藏车早到对企业的配送水平影响系数 |
c |
养路费及其他费用的单位里程成本 |
|
冷藏车晚到对企业的配送水平影响系数 |
|
节点i与节点j之间的距离 |
|
j点的货物需求量 |
|
单位时间的制冷耗电能 |
Q |
电动冷藏车的最大载货量 |
|
电动冷藏车在节点j的服务时间 |
|
电动冷藏车在节点i与j行驶的时间 |
|
表示节点i与配送中心0的距离 |
E |
电动冷藏车的最大电量 |
M |
单位碳排放量的碳税成本 |
|
生鲜产品单位价 |
|
电网排放因子默认值 |
|
生鲜产品的保质期 |
d |
单位时间延迟成本 |
|
生鲜产品对时间的敏感系数 |
2.3. 目标函数
本模型基于上述问题与假设,所设立的多个目标函数分别为企业使用电动冷藏车的综合运输成本、配送过程中企业由于外购电力所额外产生的二氧化碳排放量和企业配送水平函数。
2.3.1. 综合运输成本
本研究所解决的EVPRTW问题,所构建的综合运输成本目标函数包括了固定成本、能源成本、碳排放成本、货损成本、等待成本和延迟成本等方面。
(1)
(2)
(3)
(4)
(5)
(6)
其中0、M、F、K、P、N分别表示配送中心、客户节点集合、充电站集合、电动冷藏车集合、非配送中心集合、节点集合,
为0~1变量表示车辆k是否从节点i到节点j;式(1)表示电动冷藏车进行配送的固定成本;式(2)表示冷藏车由于行驶所消耗的能耗成本;式(3)表示冷藏车在行驶过程由于制冷所消耗的能源成本;式(4)表示电动冷藏车在配送过程由于早到客户点产生的等待成本;式(5)表示电动冷藏车在配送过程中由于晚点客户点所产生的延迟成本;式(6)表示本文依据陈靖[9]所使用的生鲜损耗系数的计算办法来表示整个配送过程中所产生的生鲜货损成本。
2.3.2. 碳排放量的测算
电动冷藏车配送时因外购电量产生的碳排放量通常与配送中消耗的电量呈正比关系。关于碳排放的具体计算方式,可以参照《物流企业温室气体排放核算方法(征求意见稿)》里的有关方法来进行。具体的计算公式如下:
(7)
(8)
其中式(7)表示电动冷藏车在行驶过程中消耗电能所产生的碳排放量,式(8)表示冷藏车的冷藏室在完成配送任务之前运行所消耗电能所产生的碳排放量。
2.3.3. 企业配送水平函数
在冷链物流企业的运营评价体系中,配送水平函数占据着关键地位,是衡量企业配送服务质量的重要评价指标。在此,我们采用如下公式对企业配送水平展开评价:
(9)
(10)
其中
、
均为0~1变量,分别表示车辆k在节点j是否早到或是晚到;式(9)、式(10)分别表示配送车辆由于早到或晚到货物点对企业配送水平的影响,这两个值越小表示车辆越能在规定的时间窗内完成配送任务,也就意味着企业的配送水平越高。
2.3.4. 多目标优化模型
上述对于各目标函数的描述,结合各种需要考虑的实际约束,本节以综合运输成本、碳排放量、企业配送水平为目标函数,建立以下多目标模型:
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
其中式(11)表示每辆电动冷藏车均从配送中心出发,完成配送任务后最终返回配送中心;式(12)、式(13)表示针对每一个客户点有且仅有一辆冷藏车对其进行服务;式(14)表达的是某一辆电动冷藏车所配送的货物量不超过最大载重;式(15)表示电动冷藏车k由节点i到达下一节点j的时间表达式;式(16)表示冷藏车在任意节点的载货量不为负;式(17)表示冷藏车的初始载货量约束;式(18)表示车辆k在由节点i到节点k的电量约束;式(19)表示车辆k在任意节点电量约束;
3. 改进NSGA-II算法设计
3.1. NSGA-算法简介
NSGA-II算法是由Deb K等[10]在2002年提出的一种多目标优化算法。基础的NSGA算法存在排序效率低下、种群多样性难以维持等问题,NSGA-II算法针对这些缺陷,引入了快速非支配排序、拥挤度比较算子和精英保留策略等改进措施,这使得它在处理多目标优化问题时有着更加优秀的性能。
3.2. 改进的NSGA-II算法
3.2.1. 问题分析
NSGA-II算法在多目标优化问题中虽具有广泛适用性,但也存在一些缺陷:
1) 对初始种群敏感。传统NSGA-II算法在很大程度上依赖于初始种群的质量与多样性。若初始种群选取不当,算法性能就可能不稳定。传统NSGA-II算法通常采用随机初始化的方式生成初始种群,这种方法易使初始种群在初始解空间中的分布不够均匀。
2) 交叉变异概率固定。在传统NSGA-II算法里,交叉变异概率一般是固定参数。然而,交叉、变异概率过高或过低都会使算法产生各类问题[11],交叉概率过高会导致优良基因被破坏、算法收敛性降低;而交叉概率过低又会导致搜索效率低下、陷入局部最优解。此外,变异概率过高会导致算法丧失稳定性、种群结构被破坏;而变异概率过低则会导致种群多样性不足、难以跳出局部最优解的问题。
3) 局部搜索能力有限。传统NSGA-II算法主要着眼于全局搜索,通过交叉和变异操作对搜索空间进行探索。不过,其局部搜索能力相对较弱,这可能致使算法在接近最优解时收敛速度减慢,甚至无法精确找到最优解。
3.2.2. 改进策略
针对上述所描述传统NSGA-II算法所存在的缺陷问题,做出如下改进:
1) 佳点集生成初始种群策略:佳点集具有均匀性和对称性,可更均匀布点。利用其理论生成初始种群,能使解空间分布更合理,提高搜索和收敛性能。在多目标优化中,有助于更快找到Pareto前沿和得到多样化非支配解集,还能降低算法对初始种群的敏感性,提高稳定性和可靠性。已知种群的空间维度为n,种群数量为m,佳点集初始化种群的方法如下:
(20)
(21)
(22)
具体步骤为首先通过式(20)计算出相应的r值,其中
代表的是种群的第i个个体。然后根据式(21)计算出数量为m的佳点集,其中
是s维的欧式几何空间,
表示加点集,而r指的是佳点。最后通过式(22)将
映射到种群所在的可行域上,其中
表示当前维度的上限,
表示当前维度的下限。
2) 自适应交叉变异概率策略:针对传统NSGA-II算法交叉变异概率固定问题引入自适应机制。对于算法而言,在算法迭代的早期阶段较大的交叉概率有助于快速探索解空间,而此时种群中的个体具有较高的多样性,此时较小的变异概率可以避免对种群造成过大的扰动,防止算法陷入无意义的随机搜索;但在算法迭代的后期阶段,种群中的个体逐渐向最优解靠近,此时较低的交叉概率有利于保护和传承优良基因,加快算法的收敛速度,而一个较高的变异概率又可以使算法有机会跳出局部最优解,从而增加找到全局最优解的可能性。此外对于个体而言,一般情况下,rank值较低(即等级较优)的个体具有更好的适应度和更接近Pareto前沿的特性,一般来说针对这些个体我们通常需要在不破坏个人的前提下赋予它们更小的交叉概率及更大的变异概率,提高它们的局部寻优能力。我们可以根据非支配排序后个体的rank值和迭代次数来动态的调整它们的交叉变异概率,具体表达式如下:
(23)
(24)
其中,
表示交叉概率,该概率会随着迭代次数
的增加或相应的非支配排序等级
的减小而减小;
表示变异概率,该概率会随着迭代次数
的增加或相应的非支配排序等级
的减小而增大;
、
分别代表初始设定的最大、最小交叉概率;
、
分别代表初始设定的最大、最小变异概率。
3) 模拟退火局部搜索策略:模拟退火算法具有较强的局部搜索能力,它可以在当前解的邻域中展开细致搜索,进而找到更优质的局部解。引入模拟退火局部搜索策略后,改进后的NSGA-II算法可以在保持全局搜索优势的基础上,更好地优化局部区域,提高解的质量。对经过遗传操作生成的子代个体,根据设定的概率
、个体的rank值以及拥挤度距离决定是否对其进行模拟退火局部搜索。我们可以优先选择rank值较低且拥挤度距离较大的子代个体进行模拟退火局部搜索,这样既能保证搜索的重点放在较优的区域,又能进一步提高解集的多样性。对于需要进行模拟退火局部搜索的个体,我们可以根据其rank值及拥挤度距离为这些个体分配不同的搜索资源。具体表达式如下:
(25)
(26)
(27)
其中式(25)表示在模拟退火局部搜索算法中选择个体初始温度
的计算;式(26)表示选择个体温度退火率
的计算;式(27)表示算法在模拟退火局部搜索中接受新解的概率P。此外,T为当前温度,
为所选择个体的拥挤度,
表示新个体劣于旧个体的目标函数个数,
、
分别表示同非支配排序等级下个体之间的有限最大拥挤度距离及最小拥挤度距离。
3.2.3. 算法流程
改进后的NSGA-II算法的具体流程如下图1所示:① 确定最大迭代次数T、种群规模N及交叉、变异概率函数等参数,引入佳点集并生成相应的初始种群
。② 对初始种群进行非支配排序,并计算他们的拥挤度。③ 依据自适应的交叉变异概率进行相应的选择、交叉、变异操作生成子代种群
,将子代种群和父代种群合并为种群规模为2N的集合
。④ 对种群的一定个体进行模拟退火局部搜索操作,根据相关参数的变化以及当前模拟退火算法中的“温度”参数,决定是否接受这个新解。⑤ 对合并种群
重新进行非支配排序及拥挤度的计算,然后从中选择N个个体形成新一代父代种群
。⑥ 判断是否达到最大迭代次数。若满足,则输出当前种群中的非支配解集作为最终结果;若不满足,则返回步骤③继续迭代。
Figure 1. Improved flowchart of NSGA-II algorithm
图1. 改进的NSGA-II算法流程图
4. 算例分析
4.1. 参数设定
针对前文构建的模型,为对算法有效性进行验证,我们创建了相应算例。此算例的数据是对Solomon数据集R211中的前31个点加以改编而得,算例的详细参数展示于表2。我们运用Python3.11.4进行编程,以此实现本文所设计的算法。其运行环境为配备12th Gen Intel (R) Core (TM) i7 - 12700H 2.30 GHz CPU、16G运行内存的计算机,操作系统为Windows 11。在算法运行中,将迭代次数设定为200,种群大小设为100。
Table 2. Related parameters of each node
表2. 各节点相关参数表
序号 |
坐标 |
需求量t |
时间窗h |
服务时间h |
序号 |
坐标 |
需求量t |
时间窗h |
服务时间h |
0 |
(35, 35) |
0 |
(0.00, 16.00) |
0.00 |
17 |
(5, 30) |
0.04 |
(7.4, 16.0) |
0.28 |
1 |
(41, 49) |
0.2 |
(7.52, 16.00) |
0.20 |
18 |
(20, 40) |
0.24 |
(3.82, 9.7) |
0.39 |
2 |
(35, 17) |
0.14 |
(0.30, 8.90) |
0.17 |
19 |
(15, 60) |
0.34 |
(1.58, 9.2) |
0.13 |
3 |
(55, 45) |
0.26 |
(6.30, 12.22) |
0.23 |
20 |
(45, 65) |
0.18 |
(6.97, 16.0) |
0.16 |
4 |
(55, 20) |
0.38 |
(7.95, 16.00) |
0.29 |
21 |
(45, 20) |
0.22 |
(0.6, 8.48) |
0.27 |
5 |
(15, 30) |
0.52 |
(0.33, 10.17) |
0.36 |
22 |
(45, 10) |
0.36 |
(4.1, 10.95) |
0.26 |
6 |
(25, 30) |
0.06 |
(4.08, 11.4) |
0.13 |
23 |
(55, 5) |
0.58 |
(0.6, 8.57) |
0.26 |
7 |
(20, 50) |
0.1 |
(2.87, 9.48) |
0.15 |
24 |
(65, 35) |
0.06 |
(7.25, 16.0) |
0.19 |
8 |
(10, 43) |
0.18 |
(4.08, 10.67) |
0.19 |
25 |
(65, 20) |
0.12 |
(7.3, 16.0) |
0.31 |
9 |
(55, 60) |
0.32 |
(3.85, 11.1) |
0.26 |
26 |
(45, 30) |
0.34 |
(7.13, 16.0) |
0.37 |
10 |
(30, 60) |
0.32 |
(7.17, 12.98) |
0.26 |
27 |
(35, 40) |
0.32 |
(0.08, 9.13) |
0.33 |
11 |
(20, 65) |
0.24 |
(0.55, 8.52) |
0.22 |
28 |
(41, 37) |
0.32 |
(0.1, 8.77) |
0.21 |
12 |
(50, 35) |
0.38 |
(0.83, 8.72) |
0.29 |
29 |
(64, 42) |
0.18 |
(0.48, 8.55) |
0.24 |
13 |
(30, 25) |
0.46 |
(7.7, 16.0) |
0.12 |
30 |
(40, 60) |
0.42 |
(1.52, 8.7) |
0.41 |
14 |
(15, 10) |
0.4 |
(0.53, 11.57) |
0.22 |
31 |
(39, 37) |
0 |
(0.0,16.0) |
0.5 |
15 |
(30, 5) |
0.16 |
(0.5, 8.65) |
0.27 |
32 |
(60, 45) |
0 |
(0.0,16.0) |
0.5 |
16 |
(10, 20) |
0.38 |
(1.7, 9.05) |
0.19 |
|
|
|
|
|
其中,节点0表示配送中心,它的营运时间为早上6点至晚上10点,时间窗表示为(0.0, 16.0);节点1到点30表示对应的客户点;节点31和32表示充电站。
4.2. 算例求解及有效性验证
分别运行两种算法10次,根据每次所得Pareto解集中各目标函数均值及算法收敛情况进行分析,结果如表3所示。
根据上述表格所得结果,我们可以得到改进后算法所得到的Pareto解集中各目标函数的均值都相对较小,前沿较改进前的算法而言更加优秀。从十次运行结果均值分析,使用改进后算法所获得的Pareto
Table 3. Algorithm result table
表3. 算法结果表
运行次数 |
改进前的NSGA-II算法 |
改进后的NSGA-II算法 |
运输成本 |
碳排放量 |
配送水平 |
收敛代数 |
运输成本 |
碳排放量 |
配送水平 |
收敛代数 |
1 |
1334.48 |
99.19 |
3.23 |
152 |
1261.84 |
98.25 |
2.1 |
83 |
2 |
1327.46 |
96.23 |
3.40 |
143 |
1209.88 |
97.77 |
1.65 |
72 |
3 |
1400.99 |
99.08 |
3.94 |
130 |
1275.76 |
98.98 |
3.01 |
78 |
4 |
1323.10 |
97.65 |
3.50 |
138 |
1313.21 |
95.41 |
3.24 |
75 |
5 |
1377.23 |
95.48 |
4.45 |
112 |
1359.71 |
97.31 |
3.61 |
125 |
6 |
1379.61 |
95.61 |
4.30 |
148 |
1230.47 |
95.04 |
2.14 |
85 |
7 |
1372.45 |
96.82 |
4.07 |
155 |
1303.35 |
98.98 |
3.15 |
135 |
8 |
1471.95 |
96.42 |
4.89 |
150 |
1285.36 |
95.89 |
2.82 |
68 |
9 |
1298.55 |
99.62 |
3.03 |
135 |
1371.24 |
86.96 |
4.9 |
93 |
10 |
1407.98 |
101.54 |
3.50 |
146 |
1312.08 |
92.99 |
3.81 |
52 |
均值 |
1369.38 |
97.76 |
3.83 |
140.9 |
1292.29 |
95.76 |
3.04 |
86.6 |
解集中,运输成本的均值降低了5.63%,碳排放量减少了2.05%,企业配送水平提高了20.63%;此外,得到改进后的算法收敛速度较前者提高了约38.54%。由此可见,本文所设计的改进后的NSGA-II算法能够有效提高算法的收敛速度并获得更加有效的Pareto解集。在此,我们选择最接近均值的改进后算法第8次运行结果作为本算例的求解结果。该Pareto解集有14个解,在解空间中的表现如下图2所示,我们选择其中的典型解进一步进行分析。各个典型方案的各目标函数值如下表4所示。
Figure 2. Pareto frontier location map in solution space
图2. Pareto前沿在解空间的位置图
Table 4. Objective function value table of typical scheme
表4. 典型方案目标函数值表
|
a |
b |
c |
d |
综合运输成本/元 |
1114.78 |
1757.83 |
1131.53 |
1344.43 |
碳排放量/kg |
112.15 |
80.20 |
106.72 |
89.25 |
企业配送水平 |
0.14 |
10.76 |
0.10 |
4.5 |
在上表中,四个方案表示在该Pareto解集中的典型解,其中方案a代表运输成本最低的方案;方案b代表碳排放量最低的方案;方案c代表企业配送水平最高的方案;方案d代表折中方案。企业实际选择配送方案时可以结合当前企业的战略目标、财务状况、环保政策以及客户服务要求等多方面因素进行综合考量。如果企业当前面临成本压力,例如资金紧张或者追求短期利润最大化,那么方案a可能是较为合适的选择,因为其综合运输成本最低,可以有效降低开支。若企业高度重视环境保护,积极响应低碳发展的号召,致力于减少自身碳足迹,方案b则成为优先选项,它能在降低碳排放方面发挥显著作用。而对于那些以客户满意度和配送效率为核心竞争力的企业而言,方案c由于企业配送水平最高,能够更好地满足客户需求,保障货物及时、准确地送达,有助于提升企业在市场中的口碑和形象。至于方案d,作为一种折中的方案,它在运输成本、碳排放量和企业配送水平之间取得了相对平衡,适合那些需要兼顾多方面因素,在各目标之间寻求稳定协调发展的企业,避免了过度侧重于某一目标而可能导致的其他问题。
5. 结束语
本文针对生鲜冷链配送中电动冷藏车的路径优化问题,构建了综合考虑运输成本、碳排放量和企业配送水平的多目标优化模型,并设计出改进的NSGA-II算法。通过引入佳点集生成初始种群、自适应交叉变异概率和模拟退火局部搜索等策略,有效克服了传统NSGA-II算法对初始种群敏感、易陷入局部最优解的不足。算例分析结果表明,改进算法在收敛速度和Pareto解集质量上均有显著提升,为企业在生鲜冷链配送路径规划决策方面提供了更具优势的参考案例。
然而,在实际的生鲜冷链物流运营中,企业的运营环境复杂多变,可能会涉及到更多因素,如道路临时管制、车辆突发故障等不确定因素,这将是未来研究的方向之一。此外,随着技术的不断进步,电动冷藏车的性能参数以及充电设施的布局也会发生变化,模型和算法需要进一步优化以适应新的形势。同时,多目标优化问题中各目标之间的平衡关系可能会随着社会发展和企业战略的调整而改变,如何更灵活地构建和求解模型也是值得深入探讨的课题,期望本研究能够为冷链物流行业的可持续发展和高效运营提供有益的参考和借鉴。
NOTES
*通讯作者。