• 欢迎访问3777金沙娱场城在线官方网站
货物查询

全国咨询热线400-663-9099
3777金沙娱场城在线

基于改进麻雀搜索算法的物流配送路径优化研究

字号:T|T
文章出处:作者:人气:-发表时间:2024-06-24 09:22:00

 

1 引言

在当今快速变化的市场环境中,有效的物流管理对于保持企业竞争力至关重要。随着消费者需求的日益多样化和服务预期的不断提高,企业面临着提供快速、可靠且成本效益高的配送服务的挑战。在这个背景下,物流配送路径优化成为了供应链管理领域的一个核心议题。合理规划配送路径不仅可以显著降低运输成本,还能提高服务效率和客户满意度,从而为企业带来竞争优势。

车辆路径问题(Vehicle Routing Problem, VRP)是一个著名的NP难问题,随着问题规模的增加,找到最优解的难度也急剧上升。因此,开发有效的算法来求解大规模VRP问题,对于实现供应链的高效运作有重要意义。近年来,众多研究者致力于利用启发式和元启发式算法来解决这一问题,旨在在可接受的时间内找到接近最优的解决方案。王力锋等采用遗传算法对车辆路径优化进行研究[1];张杨阳等以配送线路长度最短为目标,提出了一个改进型多种群竞争遗传算法[2];宋晓博等提出一种自适应蚁群算法对车辆路径规划问题进行求解[3]。然而,上述方法存在一些局限性,例如收敛速度慢、全局寻优能力不足和求解速度较慢等。

针对以上问题,本文以麻雀搜索算法(Sparrow Search Algorithm, SSA)为基础算法,辅以Cubic混沌映射的种群初始化方法,并在迭代过程中通过重心反向学习机制对麻雀个体进行适时变异,此外,还融合了粒子群优化技术,以进一步提高算法的寻优精度和稳定性。通过仿真实验验证,本文提出的改进麻雀搜索算法在降低物流成本方面显示出了良好的性能,为企业在控制物流成本方面提供了有效的参考。

2 数学模型构建

2.1 模型假设

(1)所有运输车辆为同一类型,具有相同的载货量和运行特性。

(2)不同地级市批发商之间的货物种类相同,允许使用相同的车辆进行配送。

(3)车辆匀速行驶,不考虑交通、天气等其他因素的影响。

(4)每个地级市批发商的位置、时间窗、货物需求量以及配送中心的位置均已知且固定。

(5)每个地级市批发商有一个特定的配送时间窗,迟到将产生基于迟到时间的惩罚成本。

(6)车辆每次出行都有固定的损耗成本。

(7)送货至地级市批发商的费用与空车返回配送中心的费用不同。

(8)每个地级市批发商在每条路径中只被访问一次,每次配送后车辆必须返回配送中心。

2.2 模型参数定义

表1 模型参数定义 导出到EXCEL

 

 


符号
定义

n
地级市批发商的数量

V
节点集合,包含配送中心和所有地级市批发商

A
边集合,表示可能的配送路径

dij
从点i到点j的距离

di0
从点i返回配送中心的距离

v
车的固定行驶速度

tij
从点i到点j的行驶时间,tij=dijv" role="presentation" style="padding: 0px; margin: 0px; display: inline; line-height: normal; word-spacing: normal; overflow-wrap: normal; text-wrap: nowrap; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; position: relative;">???=????

α
单位时间车辆运输成本(配送)

β
单位时间车辆运输成本(空车返程)

Q
车辆的最大载货量

qi
i个地级市批发商的物资需求量

m
车辆数量

[ei,li]
i个地级市批发商的服务时间窗

pi(t)
车辆在t时到达i地级市批发商的惩罚成本函数

f
车辆每次出行的固定损耗成本

cij
从点i到点j的行驶成本,cij=α×dij

xij
车辆从地级市批发商i到地级市批发商j为1,否则为0

pe
车辆早到时,单位时间的惩罚成本

pl
车辆迟到时,单位时间的惩罚成本

ci0
从点i空车返回配送中心的成本,ci0=β×di0

yi
车辆i是否从配送中心出发到地级市批发商i,出发为1,否则为0
 

 

 

2.3 模型构建

配送总成本由车辆总成本和迟到或提前到达地级市批发商的惩罚成本构成。车辆总成本进一步分为运输成本、车辆损耗成本以及空车返回成本。如图1所示,如果车辆在指定的时间窗[ei,li]之外到达地级市批发商,将会根据提前或延迟的时间产生额外的惩罚费用,在时间窗内到达则不会有惩罚。

正在加载图片

图1 惩罚区间图   下载原图

 

车辆运输成本公式如下:

TC=∑i=1n" role="presentation" style="padding: 0px; margin: 0px; display: inline; line-height: normal; text-indent: 0px; text-align: left; letter-spacing: normal; word-spacing: normal; overflow-wrap: normal; text-wrap: nowrap; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; position: relative;">?=1?j=1,jin" role="presentation" style="padding: 0px; margin: 0px; display: inline; line-height: normal; text-indent: 0px; text-align: left; letter-spacing: normal; word-spacing: normal; overflow-wrap: normal; text-wrap: nowrap; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; position: relative;">?=1,???cij×xij (1)

车辆损耗成本公式如下:

WTC=∑i=1n" role="presentation" style="padding: 0px; margin: 0px; display: inline; line-height: normal; text-indent: 0px; text-align: left; letter-spacing: normal; word-spacing: normal; overflow-wrap: normal; text-wrap: nowrap; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; position: relative;">?=1?(1-yif (2)

空车返回成本公式如下:

ERC=∑i=1n" role="presentation" style="padding: 0px; margin: 0px; display: inline; line-height: normal; text-indent: 0px; text-align: left; letter-spacing: normal; word-spacing: normal; overflow-wrap: normal; text-wrap: nowrap; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; position: relative;">?=1?ci0×(1-xij) (3)

车辆总成本公式如下:

TVC=TC+WTC+ERC (4)

早到或者迟到惩罚成本公式如下:

LDPC=∑i=1n" role="presentation" style="padding: 0px; margin: 0px; display: inline; line-height: normal; text-indent: 0px; text-align: left; letter-spacing: normal; word-spacing: normal; overflow-wrap: normal; text-wrap: nowrap; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; position: relative;">?=1?pi(t) (5)

其中

正在加载图片 

 

综上所述,目标函数如下:

F=TC+WTC+ERC+LDPC (7)

约束条件如下:

正在加载图片 

 

j=1n" role="presentation" style="padding: 0px; margin: 0px; display: inline; line-height: normal; text-indent: 0px; text-align: left; letter-spacing: normal; word-spacing: normal; overflow-wrap: normal; text-wrap: nowrap; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; position: relative;">?=1?qj×xijQ×yi ∀i∈{1,…,m} (9)

yi≤∑j=1n" role="presentation" style="padding: 0px; margin: 0px; display: inline; line-height: normal; text-indent: 0px; text-align: left; letter-spacing: normal; word-spacing: normal; overflow-wrap: normal; text-wrap: nowrap; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; position: relative;">?=1?xij ∀i∈{1,…,m} (10)

i=1m" role="presentation" style="padding: 0px; margin: 0px; display: inline; line-height: normal; text-indent: 0px; text-align: left; letter-spacing: normal; word-spacing: normal; overflow-wrap: normal; text-wrap: nowrap; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; position: relative;">?=1?yim (11)

其中,公式(8)确保每个地级市批发商都恰好被访问一次,公式(9)确保任何车辆的配送量不超过其最大容量,公式(10)是车辆使用约束,公式(11)确保使用的车辆总数不超过可用车辆数。

3 算法介绍

3.1 麻雀算法基本原理

麻雀搜索算法(Sparrow Search Algorithm, SSA)是由薛建凯提出的一种新型群智能优化算法[4],主要模拟了麻雀群体觅食和反捕食行为[5]。在自然界中,麻雀通过有效的社会合作和信息共享机制寻找食物,同时在面对掠夺者威胁时采取逃避策略。这种行为特点激发了SSA的设计,使其在求解优化问题时能够有效地探索解空间,并避免陷入局部最优解。

麻雀种群分为发现者、跟随者、侦查者,发现者负责探索新的食物来源(解),引导群体的搜索方向;跟随者在发现者附近搜索食物,进行局部搜索;侦查者观察麻雀群体内部有无危险,提醒全麻雀群体安全。

每代发现者的位置更新公式如下:

正在加载图片 

 

每代跟随者的位置更新公式如下:

正在加载图片 

 

侦查者位置更新公式如下:

正在加载图片 

 

3.2 PSO算法

粒子群优化算法(Particle Swarm Optimization, PSO)主要通过更新粒子的速度和位置信息寻找最优解。粒子群优化算法的应用较为广泛,且收敛速度快,调整参数也较少[6]。考虑有N个粒子在D维空间搜索,初始粒子群算法更新表示为:

正在加载图片 

 

其中,d为迭代次数,vij表示第i个粒子在i维的速度,xij表示第i个粒子在j维的位置。ω表示惯性权重,控制粒子速度的惯性。c1c2是学习因子,控制粒子个体和群体经验对速度的影响。r1r2是范围在[0,1]之间的随机数。

3.3 麻雀算法改进

①Cubic混沌映射初始化麻雀种群。

在优化领域,混沌映射可以用于替代伪随机数生成器,生成0到1之间的混沌数[7]。Cubic混沌映射具有良好的混沌特性,能够在整个搜索空间内生成分布广泛的初始解,从而提高算法的全局搜索能力。

Cubic表达式如下:

xn+1=αxn(1-xn2" role="presentation" style="padding: 0px; margin: 0px; display: inline; line-height: normal; text-indent: 0px; text-align: left; letter-spacing: normal; word-spacing: normal; overflow-wrap: normal; text-wrap: nowrap; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; position: relative;">?2) (16)

其中,xn是当前迭代的混沌变量值,初值为(0,1),α是系统参数,它决定了映射的混沌行为,取xn=0.2,α=0.2493。

②重心反向学习。

反向学习是一种经典的智能优化算法加速技术,它在当前点和它的反向点之中择优选择[8]。Rahnamayan等[9]提出了一种基于重心的反向学习,能够结合整个麻雀种群的搜索经验,提高搜索效率,还能扩大问题空间的探索范围。重心反向学习策略是基于这样的假设:当一个个体发现其当前位置不理想或面临潜在威胁时,它可能会向与当前重心相反的方向移动,以期寻找新的食物来源或避免掠夺者。这种机制增加了个体跳出局部最优解、探索新区域的可能性,从而提高了全局搜索能力。

重心计算公式如下:

Μ=1ni=1nxi" role="presentation" style="padding: 0px; display: inline; line-height: normal; text-indent: 0px; text-align: left; letter-spacing: normal; word-spacing: normal; overflow-wrap: normal; text-wrap: nowrap; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; position: relative; margin: 0px 30px !important;">?=1??=1??? (17)

重心反向解的计算公式:

xi,new=2×k×M-xi (18)

在迭代过程中,算法会对麻雀种群的更新位置进行重心反向变异。由于不能保证每次变异都能得到更优的位置,因此采用贪心策略来决定是否更新位置:仅当变异后的新位置更优时,才用其替换原有位置,否则保留原位置。其中,k是[0,1]范围内均匀分布的随机数,加入收缩因子可以拓展反向搜索空间的范围,增大找到更优解的概率[10]

3.4 混合算法求解过程

混合麻雀算法和粒子群算法的核心思想在于,将粒子群算法的位置信息作为改进后麻雀算法的相关参数,从而运行麻雀算法,最终进行模型求解,如图2所示。

正在加载图片

图2 算法求解过程   下载原图

 

混合算法的运行步骤如下:

步骤1 初始化:设定麻雀和粒子群的种群数量、迭代次数等参数。利用公式(16)初始化麻雀种群位置,增加搜索范围的多样性。

步骤2 适应度评估与排序:根据适应度函数对麻雀进行排序,识别并记录每个麻雀的个体最优和全局最优适应度值及对应位置。

步骤3位置更新:使用公式(12)、公式(13)、公式(14)更新发现者、跟随者、侦察者的位置。

步骤4重心反向变异:对处于最优位置的麻雀使用公式(18)实施重心反向变异,增强全局搜索能力。

步骤5适应度再评估:重新计算适应度值,更新麻雀的个体和全局最优位置。

步骤6位置优化判断:比较麻雀的当前最优位置与粒子群的最优位置。如果麻雀位置更优,进入粒子群优化阶段;否则,回到步骤2继续迭代。

步骤7粒子群位置与速度更新:使用公式(15)更新各粒子群的位置和速度。

步骤8粒子群最优位置更新:更新粒子群个体最优和全局最优位置。

步骤9迭代终止判断:如果迭代次数达到预设的最大值,则结束,输出全局最佳位置;这一位置作为麻雀算法的重要参数,用于求解目标函数。如果未达到最大迭代次数,回到步骤6继续迭代。

4 仿真实验

4.1 实验参数设置

为了全面评估本研究提出算法的优越性,我们将其与SSA、PSO和SSA - PSO算法进行对比分析。设定最大迭代次数为200,各算法种群数量为40。外部参数设定情况如下:车辆最大载货量为200箱,车辆初始数量和地级市批发商数量相等,运货行驶单位时间成本为2元,空车返回配送中心的单位时间成本为1元,车辆每次出行的固定成本为5元。

4.2 实验数据

为了验证所提算法的优越性,本实验选取某大型快销品公司的1个物流配送中心和20个地级市批发商为例进行路径规划。配送中心和地级市批发商的位置分布如图3所示。

正在加载图片

图3 物流配送中心和地级市批发商分布图   下载原图

 

4.3 模型求解结果及分析

在实验中,将上述参数和数据输入模型,并通过Python实现了相关算法。模型得出的车辆配送路径结果如图4所示。

正在加载图片

图4 车辆配送路径图   下载原图

 

表2 改进麻雀算法及其它算法物流路径优化结果 导出到EXCEL

 

 

名称 改进麻雀算法 SSA-PSO SSA PSO

总运输距离(km)
470.81 481.7 512.6 523.1

总空车返回距离(km)
175.61 173.2 189.7 192.6

总费用(元)
1153.23 1183.87 1260.83 1279.35

使用车辆数(辆)
5 5 6 6

运行时间(s)
23.26 27.32 31.57 32.13
 

 

 

从表2的统计结果可以看出,改进麻雀算法在总运输距离、总费用和计算效率上优于其他算法,体现了其在减少成本和提高车辆利用率方面的优势。SSA-PSO在总空车返回距离上表现较好,但在其他方面仍稍逊于改进麻雀算法。相比之下,标准SSA和PSO表现较弱。

5 结语

本文研究分析了企业物流配送路径优化问题,提出一种改进的麻雀搜索算法,通过引入Cubic混沌映射和粒子群优化技术,有效地提高了算法的全局搜索能力,同时有效避免了早熟收敛的问题。实验结果表明,与传统的SSA和PSO算法相比,改进的麻雀搜索算法在总运输距离、总费用以及运行时间等关键性能指标上具有显著的优势。未来的研究可以考虑更复杂的实际约束条件,如多种类型的车辆、不同的货物类型以及动态的配送需求。

推荐产品

同类文章排行

最新资讯文章

您的浏览历史

    正在加载...