APP下载

基于改进鲸鱼优化算法的物流配送中心选址策略

2019-06-17康建英曹峻玮万志鹏

计算机应用与软件 2019年6期
关键词:测试函数物流配送鲸鱼

尚 猛 康建英 曹峻玮 万志鹏

1(安阳工学院飞行学院 河南 安阳 455000)2(河北经贸大学经济与管理学院 河北 石家庄 050091)3(岭南大学经营学院 韩国 庆山 385141)

0 引 言

随着电子商务的迅速发展,人们对于物流配送效率的要求也越来越高。物流配送中心选址作为物流调度配送问题中的核心问题,起到了中心枢纽的作用,很大程度上决定了物流配送系统的配送模式和配送体系。如何在多个配送地址中合理有效地选取配送中心地址是提高物流配送效率的有效途径,具有重要的现实意义。物流配送中心选址模式属于非线性模型,具有较多复杂的约束条件以及不光滑特性[1],可归于NP-hard问题。近年来,国内外的研究学者对于物流配送选址问题进行了深入的研究,提出了层次分析法、智能优化算法、重心法和动态规划法等,在解决物流配送中心选址的问题上取得了突破性的进展[2]。

袁群等[3]提出了一种基于改进混合遗传算法的物流配送中心选址方法。胡琳等[4]提出了一种基于改进粒子群优化算法的物流配送中心选址策略。马毓咛等[5]提出了一种免疫粒子群算法的物流配送中心选址策略。王坤等[6]提出了一种基于蚁群算法的物流配送中心选址策略。周欢等[7]提出了一种基于布谷鸟算法的电子商务物流配送中心选址策略。卓婧婧等[8]提出了一种基于树型动态规划的物流配送中心选址算法。王朋等[9]提出一种基于重心法的物流配送中心选址。但当物流配送点较多时,单一机制的优化算法在寻优过程中很容易陷入局部最优,降低算法的搜索能力,最后的寻优结果较实际情况易出现较大偏差。

针对上述问题,本文提出一种改进的鲸鱼优化算法物流配送中心选址策略。针对传统的鲸鱼优化算法[10]易陷入局部最优和收敛精度低的问题,本文首先通过引入综合变异算子加强了算法的全局搜索能力,提高了算法的收敛精度。其次加入了随机正弦惯性权重,提高了算法的局部搜索能力和种群多样性,防止算法因丧失种群多样性陷入局部最优。最后将改进的鲸鱼优化算法用于物流配送中心选址问题上,解决了因物流配送点过多引起的选取偏差过大的问题。

1 物流配送中心选址数学模型

物流配送中心选址问题可理解为从N个物流中心备选点中选取M个需求点作为配送中心。由于各配送中心所处地理位置和建设成本的不同,因此,建立带多种约束条件的物流配送中心选址数学模型的目标函数为:

(1)

式中:N为物流配送的全部地址;M为所选出的全部配送中心地址;Fj为每个配送中心的建设费用;hj为0或1,当hj=1时,Fj为配送中心;ψi,j为第i个配送点的需求量;di,j为第i个配送点和与其距离最短的第j个配送中心之间的距离;Zi,j为0或1,当Zi,j=1时,表示配送点i的需求货物由配送中心供应。

物流配送中心选址问题的约束条件为:

(2)

式(2)表示每个配送点的所需量(所需货物总量)皆应小于等于与其对应配送中心的货物总量。

(3)

式(3)表示每个配送点的所需货物只可从距配送点最近的配送中心发货。

Zi,j≤hjj=1,2,…,N

(4)

式(4)表示无配送中心的点没有客户。

(5)

式(5)表示产生P个物流配送中心。

di,j≤t

(6)

式6表示每个配送点都应在与其对应的配送中心可配送范围之内。

2 鲸鱼优化算法

2.1 标准鲸鱼优化算法

鲸鱼优化算法是澳大利亚学者Mirjalili根据鲸鱼猎食方式所提出的一种新启发式优化算法。WOA由三个搜索阶段构成:包围猎物、螺旋捕猎、随机搜索。在WOA中,可将每个鲸鱼都看做一个粒子,每个粒子的位置均代表一个决策变量。鲸鱼在捕猎过程中,并非按直线进行捕食,而是以一种螺旋方式靠近并捕食猎物,其算法流程如下所示:

(1) 包围猎物:

鲸鱼在狩猎时通常会先包围猎物,其数学模型如下所示:

D=|CX*(t)-X(t)|

(7)

X(t+1)=X*(t)-A·D

(8)

式中:t为当前迭代次数,A和C为学习因子,X*(t)表示目前为止最优的鲸鱼位置向量,X(t)表示当前鲸鱼所在位置向量。A和C由如下公式得出:

A=2a×r1-a

(9)

C=2×r2

(10)

a=2-2×t/Tmax

(11)

式中:r1和r2为(0,1)之间的随机数,a的值在(0,2)之间并线性递减,t为当前的迭代次数,Tmax为最大迭代次数。

(2) 螺旋狩猎:

鲸鱼在狩猎过程中,通常会以螺旋运动的方式包围猎物并进行狩猎,其数学模型如下所示:

X(t+1)=X*(t)+Dp·ebl·cos(2πl)

(12)

Dp=|X*(t)-X(t)|

(13)

式中:Dp为鲸鱼和猎物之间的距离,X*(t)为所有迭代至今为止最好的位置向量,b是一个常数,用来定义螺线的形状,l是(-1,1)中的随机数。值得注意的是,鲸鱼以螺旋状游向猎物,但同时还要收缩包围圈。因此,在这种同步行为模型中,假设有Pi的概率选择收缩包围机制和(1-Pi)的概率选择螺旋模型来更新鲸鱼的位置,其数学模型如下:

(14)

在鲸鱼对猎物进行攻击时,越接近猎物,a的值就会越小,A的值也就会越小。在算法迭代过程中,由于a的值是从2到0线性递减的,因此A就成为[-a,a]内的随机数。当A的值在[-1,1]内时,鲸鱼的下一个位置可以是它现在的位置和猎物的位置之间的任意位置。

(3) 搜索猎物:

搜索猎物采用随机个体位置寻找猎物,其数学模型如下:

D=|CXrand-X(t)|

(15)

X(t+1)=Xrand-A·D

(16)

式中:Xrand是随机所得的位置向量,算法设定当A≥1时,随机选择一个搜索领导个体,并通过领导个体的位置来更新其他鲸鱼的位置,以此引导鲸鱼离开当前猎物,借此找到更合适的猎物,目的是加强算法的全局搜索能力。

2.2 改进的鲸鱼优化算法

鲸鱼优化算法作为一种新的启发式优化算法,更新机制简单,调整参数少并具有一定的随机性,相较其他启发式优化算法具有更高的搜索能力和搜索速度。但由于算法螺旋寻优的更新机制,使得算法很容易陷入局部最优,降低算法的收敛精度。因此本文针对上述问题,在算法寻优过程中引入综合变异算子和随机正弦惯性权重,目的是加强算法的全局搜索能力,防止算法陷入局部最优。

首先,从式(7)至式(16)中可知,传统的WOA优化算法的收敛速度回随着迭代次数的增加而减慢,在算法迭代后期,越来越多的鲸鱼个体逐渐向全局最优解靠近,使得算法的收敛速度快速降低,最终导致算法陷入局部最优,影响WOA算法的收敛精度。针对上述问题,本文提出一种基于非均匀变异和柯西变异相融合的综合变异策略,其步骤如下所示:

1) 通过设置变异开关函数,通过对开关条件的判断,对当前鲸鱼的位置进行变异操作,其中变异开关的数学表达式如下所示:

(17)

式中:n为维度,SN为鲸鱼种群规模。定义当0

2) WOA算法的步长由|A|的值决定,当|A|>1时,此时算法处于迭代前期,算法搜索速度较快,范围较广。柯西变异的变异范围较传统的二项式变异,多项式变异和非均匀变异等具有更广,因此在算法处于迭代前期,当粒子选入局部最优时,加入了柯西逆累积分布函数[11],通过柯西变异对粒子施加一个较大的扰动,帮助粒子跳出局部最优。由于WOA算法进行全局搜索时,会通过螺旋运动的方式更新粒子的位置,因此避免了经过柯西变异的粒子会出现盲目变异的情况。其中柯西逆累积分布函数的数学表达式如下所示:

F-1(p;x0,γ)=x0+γ×tan(π×(p-0.5))

(18)

因此可将式(16)改进为:

X(t+1)=xi,j(t)+A·tan(π×(p-0.5))

(19)

式中:xi,j(t)为第i头鲸鱼的第j个位置,γ=A,0≤p≤1。

3) 当|A|<1时,算法处于迭代后期,应对switch(k)进行判断,如有小部分鲸鱼粒子满足变异条件,满足变异条件的粒子会通过非均匀变异移向全局最优解,而不满足变异条件的粒子则通过原来的位置更新公式向全局最优解靠近,加快了算法的搜索速度,减小了算法在迭代前期陷入局部最优的可能。非均匀变异来源于非均匀变异演化算法[12],与传统遗传算法中变异策略有所不同。非均匀变异演化算法在迭代过程中可自适应调整搜索步长,因此当算法处于迭代后期,收敛速度较慢时,将非均匀变异策略与WOA算法相结合,目的是使算法在迭代后期始终都有跳出局部最优的可能,有效克服了算法因早熟易陷入局部最优的问题,提高了算法的全局搜索能力。设鲸鱼种群规模为SN,xi={xi1,xi2,…,xin,…,xiSN}T。假设对第n个分量执行变异操作,则其非均匀变异公式为:

(20)

其次,通过式(9)至式(11)可知,鲸鱼优化算法的全局寻优能力和局部寻优能力完全由参数a的值决定,在迭代后期,a的值线性减小,严重影响算法的收敛精度,使粒子极易陷入局部最优,因此本文通过综合变异策略帮助算法跳出局部最优。本文根据正弦曲线的特性,提出一种随机正弦惯性权重,目的是为了提高算法的种群多样性和全局搜索能力。随机正弦惯性权重的数学表达式如下所示:

w=2×(1-sin(0.5×π×(t/tmax)))×rand()

(21)

由式(21)可得,算法迭代初期,t/tmax的值趋于0,w较大,算法具有较好的全局寻优能力。算法迭代后期,当t趋近于tmax时,w趋近于0,具有较高的局部搜索能力。rand()为[0,1]之间的随机数,目的是为了提高算法的种群多样性,因此式(14)和式(19)可修改为如下形式:

(22)

X(t+1)=wxi,j(t)+A·tan(π×(p-0.5))

(23)

IWOA算法流程如图1所示。

图1 IWOA算法流程图

2.3 基于测试函数的性能测试

为了验证本文所提算法的有效性,本文选取12个基准测试函数对试验进行测试,其中f1至f4为单峰测试函数,f5至f8为多峰测试函数,f9至f12为固定维测试函数,具体测试函数如表1所示。并与改进粒子群算法PSO[13]、改进烟花算法SOWFA[12]和免疫粒子群算法IMPSO[5]进行对比试验,迭代次数为100,并将100次的试验结果求得平均值和最小值,最优解用加粗字体表示,试验结果如表2所示。

表1 12个测试函数

表2 12个测试函数测试结果

由表2可得,对于单峰函数f1和f2而言,本文所提IWAO相较其他三种算法可以求得更小的平均值和标准差,证明IWAO具有更高的求解精度和稳定性。对于测试函数而言,PSO、SOWFA和IMPSO算法均由于陷入局部最优而过早收敛,但IWAO仍具有较高的求解精度和稳定性,这是由于混合变异的引用使得算法从迭代前期到迭代完成期间,始终具有发生变异的可能,因此,在算法寻优期间,当算法陷入局部最优均可能获得一个较大的扰动,帮助粒子跳出局部最优。

对于多峰函数f8而言,虽然四种算法的寻优精度均不理想,但IWOA仍优于其他三种算法。这是由于在IWOA中,随机正弦惯性权重使得算法在迭代过程中始终保持较快的收敛速度并持续向目标解靠近,这一特性是由正弦曲线非线性特性变化所决定,帮助算法在迭代后期也可以充分地进行全局寻优。

对于固定维函数而言,四种算法的收敛精度和稳定性均有提高,这是由于所求目标函数维数较低所致。但对于测试函数f11而言,IWOA算法的标准差更低,说明IWOA相较其他三种算法的稳定性更高,鲁棒性更强。整体而言,IWOA算法具有更高的收敛精度和稳定性,算法的整体性能相较基本WOA有较大提高。

3 改进的鲸鱼优化算法在物流配送中心选址中的应用

通过IWOA算法对物流配送中心选址模型优化时,可将粒子表示为X=[x1,x2,…,xN],N表示物流配送点总数,IWOA算法将在N个配送点中,选取M个配送点作为配送中心。若最终选取的最优粒子X=[1,0,1,1,0,0],表示自在6个配送点中,选取第1、3和4个配送点作为配送中心地址。

为了验证本文所提基于改进鲸鱼优化算法求解物流配送中心选址的高效性,以文献[5]中的全国31个城市的地理位置和供需量为例进行试验仿真,通过对比基于改进烟花算法的选址策略SOFWA[12]、免疫粒子群算法的选址策略IMPSO[5]以及改进粒子群算法的选址策略PSO[13]的试验结果,验证了本文所提方法的有效性。其中四种算法的迭代次数均为100,每种算法独立运行50次。城市坐标以及货物供需量如表3所示,试验结果如表4和图2-图6所示,本文实验均在Win7 64位操作系统,MATLAB 2014a中进行实验仿真。

表3 城市地理位置及货物供需量

表4 四种算法的选址性能比较

图2 基于IWOA算法的物流配送中心选址

图3 基于SOFWA算法的物流配送中心选址

图4 基于IMPSO算法的物流配送中心选址

图5 基于PSO算法的物流配送中心选址

图6 基于4种算法的适应度值对比图

图2-图5分别为基于IWOA的选址策略、基于SOWFA的选址策略、基于IMPSO的选址策略和基于改进PSO的选址策略所求解的平均适应度值和最小适应度值。从图中可以看出,较其他三种算法而言,基于IWOA算法的物流配送中心选址方式在算法初期,所求解的适应度值下降速度更快,说明IWOA算法拥有更好的初值寻优,寻优范围更广。并且基于IWOA的选址策略可以求解答到更小的适应度值,说明基于IWOA的选址策略具有更高的求解精度。从表4中可以看出,IWOA所求解的平均配送费用较其他三种算法有较为明显的降低,很大程度上降低了物流配送的成本,且相较其他三种算法而言,迭代次数明显减小,算法运行时间也明显降低,说明IWOA算法收敛速度更快,求解速度更快。总体而言,IWOA算法较其他三种算法,可以更加快速、精确地选取物流配送中心地址。

4 结 语

本文针对物流配送中心选址问题,提出一种改进的鲸鱼优化选址策略。针对选址过程中算法出现的陷入局部最优和收敛精度低的问题,提出一种综合变异策略和随机正弦惯性权重,加强了算法的全局搜索能力,提高了算法的收敛速度和收敛精度,通过测试函数的对比试验,验证了算法的有效性。最后将改进的鲸鱼优化算法对物流配送中心选址模型进行优化。试验结果证明,本文所提方法,很大程度上减小了配送成本,可以快速选择出合理的配送中心地址。

猜你喜欢

测试函数物流配送鲸鱼
解信赖域子问题的多折线算法
“地铁+电商”模式物流配送体系研究
山西将打造高效农村快递物流配送体系
一种基于精英选择和反向学习的分布估计算法
迷途鲸鱼
基于自适应调整权重和搜索策略的鲸鱼优化算法
鲸鱼
具有收缩因子的自适应鸽群算法用于函数优化问题
鲸鱼会得潜水病吗?
Take a Bus