基于自适应正态云模型的灰狼优化算法- 附代码

基于自适应正态云模型的灰狼优化算法


摘要: 灰狼优化算法(Grey Wolf Optimization,GWO)是一种模拟狼群等级制度和捕食行为的群体智能算法,存在收敛精度低,易陷入局部最优解等问题。为提高 GWO 算法性能,提出一种基于 Tent 映射和正态云发生器的改进灰狼优化算法(Cloud GWO, CGWO)。在灰狼群初始化阶段引入 Tent 映射,增加种群个体多样性以提高算法的优化效率;在攻击猎物阶段采用正态云模型对狼群位置进行更新,使算法前期具有较好随机性和模糊性,提高全局开发能力,助其跳出局部最优解;随着迭代次数增加,自适应调整正态云模型熵值,使后期随机性和模糊性随之减小,有效改善局部开发能力,提高其收敛精度。

1.灰狼优化算法

基础灰狼算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/107716390

2.基于正态云模型的灰狼优化算法

2.1 基于 Tent 映射的种群初始化

初始种群在搜索空间的分布越均匀,越有利于提高算法的寻优效率和求解精度。混沌序列具有良好的随机性,遍历性以及规律性的特点,其基本原理是通过映射关系在 [0,1] 之间产生混沌序列,再将其转化到个体的搜索空间内。相比较其他映射,Tent映射能生成更均衡分布的序列 ,因此本文用来初始化灰狼种群。Tent 映射的数学表达式如下:
y j + 1 i = { μ y j i , y j i < 0.5 μ ( 1 − y j i ) , y j i ⩾ 0.5 (1) y_{j+1}^{i}=\left\{\begin{array}{l} \mu y_{j}^{i}, y_{j}^{i}<0.5 \\ \mu\left(1-y_{j}^{i}\right), y_{j}^{i} \geqslant 0.5 \end{array}\right. \tag{1} yj+1i={ μyji,yji<0.5μ(1yji),yji0.5(1)
其中:µ ∈ (0,2] 是混沌参数,与混沌性成正比,i 和j 分别表示种群数和混沌变量序号。

Tent 映射对初值的选取极为敏感,式(1)中选取多个具有微小差异的初始值,则可得到相应的混沌序列 y j i y_j^i yji ,随后将其转换到相应的个体搜索空间内得到变量 x j i x_j^i xji
x j i = l b i + ( u b i − l b j ) y j i (2) x_{j}^{i}=l b_{i}+\left(u b_{i}-l b_{j}\right) y_{j}^{i} \tag{2} xji=lbi+(ubilbj)yji(2)
其中, l b i lb_i lbi u b i ub_i ubi 分别为 x j i x^i_j xji 的下限和上限。

2.2 正态云模型

云模型的概念由李德毅院士于 1995 年提出 ,可以实现定量数值与定性概念之间的不确定转换,模型能很好的描述和处理数据的模糊性和随机性。正态云模型是最符合自然界随机概率分布的一种云模型,具有重要的数学意义。

设 C 是定量论域 U 上的定性概念,若定量值x ∈ U 是定性概念 C 的一次随机实现,x 对 C 的确定度 u(x) ∈ [0,1] 是有稳定倾向的随机数,且隶属度函数满足下式:
μ = exp ⁡ [ − ( x − E x ) 2 / ( 2 ( E n ′ ) 2 ) ] (3) \mu=\exp \left[-(x-E x)^{2} /\left(2\left(E n^{\prime}\right)^{2}\right)\right] \tag{3} μ=exp[(xEx)2/(2(En)2)](3)
则所有云滴 x x x 构成的随机变量 X 在论域 U 上的分布称为正态云模型。云模型由期望 Ex、熵 En 和超熵 He 三个数学参数表征。

正向正态云发生器是产生基本服从正态分布云滴的一种算法,每运行一次即产生一个云滴,直到运行生成期望数量的云滴。正态云滴生成过程可定义为如下形式:
X [ x 1 , x 2 , ⋯   , x N d ] = G n c ( E x , E n , H e , N d ) (4) X\left[x_{1}, x_{2}, \cdots, x_{N d}\right]=G n c(E x, E n, H e, N d)\tag{4} X[x1,x2,,xNd]=Gnc(Ex,En,He,Nd)(4)
其中, N d Nd Nd 为期望生成的云滴数。

2.3 CGWO 算法

为进一步改善 GWO 在处理复杂优化问题时跳出局部最优解的能力,并提高算法的收敛精度,在采用 Tent 映射进行种群初始化的基础上引入正态云模型作为狼群位置新的更新机制。新机制中在攻击猎物阶段,选择当前的最优个体,并以其所在位置为正态云模型的期望值 Ex 进行深度开发,新的位置更新公式如下:
KaTeX parse error: Expected '}', got '_' at position 51: …\text { Positon_̲best }, E n, H …
其中,Position_best 是当前最优个体的位置;因此,可通过 En 的取值来调整狼群更新位置距离最优个体的范围,通过 He 来控制狼群位置更新的分散程度。一般而言,在狼群猎捕的早期阶段,狼群距离食物位置较远,此时可选择较大的位置更新范围,随着迭代次数的增加,狼群会逐步接近食物,从而可以逐步缩小更新范围,提高搜索精度。根据狼群捕食过程,En 和 He 的取值可由如下公式进
行自适应调整:
E n = ω × (  MaxIter  − t  MaxIter  ) τ (6) E n=\omega \times\left(\frac{\text { MaxIter }-t}{\text { MaxIter }}\right)^{\tau} \tag{6} En=ω×( MaxIter  MaxIter t)τ(6)

H e = E n × 1 0 − ξ (7) H e=E n \times 10^{-\xi} \tag{7} He=En×10ξ(7)

其中,ω ∈ (0,1),τ、ξ 为正整数,t 为当前迭代次数。

如上所述,本文提出的 CGWO 算法步骤可总结
如下:
(1)初始化算法参数 N、MaxIter、ω、τ 和 ξ;
(2)按照式(1)和(2),在搜索空间内采用 Tent映射初始化种群;
(3)计算灰狼个体的 Fitness 值,Fitness i =f(X i ),并进行排序;
(4)确定此时排列前三的适应度值 Fitness α 、Fitness β 和 Fitness δ ,并记录相应灰狼个体的位置记为 X α 、X β 和 X δ ;
(5)更新 GWO 算法中的收敛因子 a,以及系数向量 A 和 C 的值;
(6)基于标准 GWO 算法计算狼群的位置更新,比较此时的 Fitness 值并确定 Position_best;
(7)按照式(5),通过正态云生成器得到此时的灰狼群体的位置 X ′ ,并找出 Fitness ′ α 、Fitness ′β 、Fitness ′δ 、X′α 、X′β和 X ′δ;
(8)将上述 Fitness ′ α 、Fitness ′β 、Fitness′δ 与Fitness α 、Fitness β 和 Fitness δ 进行比对,更新得到最优的 X α 、X β 和 X δ 的位置;如果 t < MaxIter,则 t = t + 1,返回步骤 (3),否则算法结束。

3.实验结果

请添加图片描述

4.参考文献

[1]张铸,饶盛华,张仕杰.基于自适应正态云模型的灰狼优化算法[J/OL].控制与决策:1-6[2021-02-08].https://doi.org/10.13195/j.kzyjc.2020.0233.

5.Matlab代码

6.python代码

猜你喜欢

转载自blog.csdn.net/u011835903/article/details/125286886