鲸鱼算法的优化

2021-01-20 04:48刘紫娟田文艳
物联网技术 2021年1期
关键词:鲸鱼猎物惯性

刘紫娟,田文艳

(1.山西工程职业学院,山西 太原 030000;2.太原科技大学,山西 太原 030000)

0 引 言

研究者通过模拟自然界生物的社会行为来构造概率搜索算法。基于上述方法来求解优化问题的过程,只涉及基本的数学操作,因此具有计算复杂度低、计算速度快等特点。其中最有名的算法是由Kennedy 和Eberhart提出的粒子群算法[1](Particle Swram Optimization, PSO)。该算法用于搜索并追随当前状态下附近空间中的最优粒子。除此之外,还有蚁群算法[2]、人工鱼群算法[3]、猴子搜索[4]、狼群搜索[5]、海豚伙伴优化[6]等诸多算法。

本文首先介绍了基本的鲸鱼算法,详细分析了该算法的基本原理,并在此基础上提出了一种改进的鲸鱼算法,并用8组测试函数对其相关性能进行测试。通过对8组通用测试函数的仿真可以得出,改进鲸鱼算法的收敛速度与收敛精度高于普通鲸鱼算法。

1 原 理

鲸鱼算法(Whale Optimization Algorithm, WOA)是一种模拟驼背鲸捕食猎物行为的新型元启发式优化算法。这种新型群体智能优化算法于2016年由澳大利亚格里菲斯大学的Seyedali Mirjalili和Andrew Lewis提出[7],该算法具有参数少、操作简单等优点。

1.1 仿生学原理

驼背鲸通过一种“泡沫网”路径觅食,即沿着圆圈的气泡或形如“9”的路径行进[8]。2013年Goldbogen等研究了从9只独立的驼背鲸获得的300个气泡网的标签,发现了与产生泡沫相关的两种策略,分别被命名为“盘旋上升”和“双重循环”[9],上述过程可以描述成三个阶段,分别为猎物环绕、泡沫攻击、搜索猎物,可以建立相应的数学模型。

1.2 数学模型

1.2.1 环绕猎物

假设最优解为目标猎物的位置,鲸鱼向最优位置前进的行为可以描述为公式(1)和公式(2):

图1(a)表示公式(2)的二维图。图中,鲸鱼可以根据目前最好位置(X*, Y*)来更新它的当前位置(X, Y),即图中的黑色实心圆标明的点,鲸鱼也可以通过调整和向最优解附近靠近。图1(b)表示公式(2)的三维图。鲸鱼可以通过定义的到达图中任意位置。

1.2.2 泡沫攻击

通过缩水式环绕和螺旋位置更新两种机制,将鲸鱼的泡沫网行为转化为数字模型。

(2)螺旋位置更新:这种机制的行进过程可以表示为如图2(b)所示。用这种方法可以计算出鲸鱼(X, Y)与猎物(X*, Y*)之间的距离。螺旋位置更新如公式(5):

图1 二维和三维位置向量和它们可能的位置

图2 鲸鱼的泡沫网机制

鲸鱼以螺旋式方法游向猎物的同时还要收缩包围圈。为了模拟这种行为,假设鲸鱼以pi的概率按照公式(2)执行缩水式环绕,那么它就会以1-pi的概率按公式(5)进行螺旋位置更新。

1.2.3 搜索猎物

图3 鲸鱼算法的搜索机制

1.3 算法优化

通过以上描述可以发现,WOA算法对参数的随机性有较大依赖,因此在实际计算过程中,该算法存在收敛精度低、收敛速度慢等缺点。

Shi Y等对粒子群算法进行了分析并引入惯性权重因子ω,使粒子群算法能够快速收敛于全局最优解,并分析指出全局搜索在较大惯性权重下具有优势,局部搜索在较小惯性权重下具有优势[10]。根据上述理论,本文对WOA引入惯性权重因子ω,得到鲸鱼优化算法(IWOA),可得公式(8):

式中:ωmax为惯性权重因子的最大值(0.08);ωmin为最小值(0.01);n为迭代次数;Nmax为最大迭代次数。

综合公式(2)和公式(5)可以得到优化的位置更新:

式中,p∈(0, 1)。由公式(8)可知,ω随迭代次数的增加而减小,这样的变化使得迭代前期有利于全局搜索,迭代后期有利于局部搜索。同时,ω下降幅度较大,更有利于算法进行局部寻优。

1.4 算法分析

假定最大迭代次数为Nmax,种群规模为NP,维度为k,根据鲸鱼算法的原理可以求得原始鲸鱼算法的运算量近似等于((5-4pi)k+(1-pi)log NP)·NP·Nmax,在改进算法中,增加惯性权重因子仅增加了一步乘法运算。所以,加入惯性权重后鲸鱼算法的复杂度与原始鲸鱼算法相当。

2 仿真验证

选取文献[11-13]给出的经典单峰、多峰以及固定维度的多峰函数,共计8组。用这8组函数测试IWOA算法的有效性、可行性及算法的综合能力。实验中,种群和最大迭代次数分别设置为30和500。图4(a)所示为WOA和IWOA在相同概率下8组函数的收敛曲线。其中,实线为WOA的收敛曲线,虚线为IWOA的收敛曲线。

本小节使用的实验设备配置、仿真软件和全局参数如下。

(1)操作系统:Windows 10;

(2)处理器:Inter(R)Core(TM)i5-5200U处理器;

(3)主频:2.2 GHz;

(4)内存:4 GB;

(5)仿真实现软件:MATLAB R2014b;

(6)初始化种群规模:30;

(7)最大迭代次数:500;

(8)运行次数:30。

从图4(a)可以看出,WOA在初期迭代过程中有些鲁莽,后期慢慢收敛。对于函数而言,IWOA比WOA有更快的收敛速度,同时收敛精度更接近理论上的最优解。表1所列为WOA与IWOA进行30次迭代所需用时的平均值。表2所列为不同概率下的WOA与IWOA的性能比较。

从表1中可以看出,IWOA平均耗时与WOA具有相同的数量级,这也充分证明两种算法具有相同的复杂度。

不同概率对IWOA两个阶段会产生不同的影响,同时还会影响算法的整体性能。设p=0.3、0.5、0.8,对IWOA进行性能测试,并分析各自达到最优解时的迭代次数。图4(b)中横坐标表示迭代次数,纵坐标表示目前达到的最优解。

图4 收敛曲线

表1 相同概率下的WOA与IWOA平均每次迭代所需用时

表2 不同概率下的WOA与IWOA的性能比较

表2记录了不同概率下8组函数各自寻优时长的平均值(avg)和方差(std),以及IWOA获得最优解所需最大迭代次数(C.I)。表中粗体字为最好结果。

由表2可知,IWOA相比WOA有较为明显的优势,而且不同概率的影响也不同,但总体而言,IWOA在概率为0.5时性能最好。单峰函数在三种不同概率下都能找到全局最优解,对于F1和F2而言,概率为0.5时的迭代次数最少;对于F3和F4而言,概率为0.3时的迭代次数最少。多峰函数在三种不同概率下也可以找到全局最优解,并且概率为0.5时的迭代次数最少。固定维度多峰函数在不同概率下的平均值以及优化不太明显,但在概率为0.3时也可以得到最少迭代次数。

通过对WOA、IWOA以及蝙蝠算法(BA)的比较来验证IWOA的有效性实验结果,具体见表3所列。

表3 三种算法对基准函数的运行结果

单峰函数只有一个全局最优解。从表3可以看出,IWOA相比WOA和蝙蝠算法(BA)具有更低的寻优时长平均值和方差。

与单峰函数不同的是,多峰函数有多个局部最优解,且其最优解的数量会随着问题规模的增加而呈指数增长。因此,这种测试函数对用于评估算法的探索能力非常有效。根据表3中对多峰函数(F5~F8)的仿真可知,IWOA具有很好的探索能力。

3 结 语

本文介绍了一种群体智能优化算法—WOA。WOA具有参数少、操作简单等优点,在此基础上,利用粒子群算法中的惯性权重因子对鲸鱼算法进行改进,并给出了IWOA的数学模型。随后,分别利用IWOA、WOA、蝙蝠算法(BA)对8组函数进行仿真,做横向与纵向对比实验表明,IWOA在收敛速度和收敛精度方面相比WOA和蝙蝠算法(BA)有较为明显的提升,同时也充分证明了算法改进后的有效性和可行性。

猜你喜欢
鲸鱼猎物惯性
小鲸鱼
迷途鲸鱼
可怕的杀手角鼻龙
鲸鱼岛——拖延症
霸王龙的第一只大型猎物
普遍存在的惯性
你是创业圈的猎人还是猎物