具有自适应调整策略的混沌灰狼优化算法-附代码

具有自适应调整策略的混沌灰狼优化算法


摘要: 灰狼优化算法(GWO )是新型启元优化算法,相比于其他群体智能优化算法,该算法同样存在收敛速度较慢、不稳定、易陷入局部最优等问题。针对上述问题,根据 GWO算法的结构特点,提出了一种自适应调整策略的混沌灰狼优化算法( chaotic local Search GWO ),利用自适应调整策略来提高 GWO 算法的收敛速度,通过混沌局部搜索策略增加种群的多样性,使搜索过程避免陷入局部最优。

1.灰狼优化算法

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

2. 改进灰狼优化算法

2.1 自适应调整策略

灰狼算法中适应度值是反映个体与全局最优值之间的重 要参数。在灰狼进行寻优的过程中, α , β , δ \alpha, \beta, \delta α,β,δ 的位置对于寻找最 优解至关重要, 但在进行更新位置时, 没有体现出 α , β , δ \alpha, \beta, \delta α,β,δ 之间 的真实位置的相对关系, 只是进行了简单的求平均值, 导致扩 大了搜索的范围, 减缓了收敛速度。
为了进一步提高 G W O \mathrm{GWO} GWO 算法的收敛速度, 同时 也为了平 衡 GWO 算法的全局搜索能力和局部改良能力, 控制参数值 a a a 采用自适应调整策略。在该策略中, 将当前个体的适应度值 J i J_{i} Ji 与灰狼群的平均适应度值 J a v g J_{a v g} Javg 进行比较, 如果 J i J_{i} Ji 优千平均 适应度值 J a v g J_{a v g} Javg, 其相应灰狼个体的控制参数 a a a 较小, 便于使其 向最好的位置靠拢; 如果 J i J_{i} Ji 次于 J a v g J_{a v g} Javg, 那么其相应灰狼个体 的控制参数值 a a a 会较大, 使其到更广阔的区域搜索, 向较好的 搜索区域靠拢。
本文采用的控制参数自适应调整策略表达式如下:
a i = { a min ⁡ + ( a max ⁡ − a min ⁡ ) ⋅ ( J i − J min ⁡ ) J a v g − J min ⁡ , J i ⩽ J a v g a max ⁡ , J i > J a v g (9) a_{i}= \begin{cases}a_{\min }+\frac{\left(a_{\max }-a_{\min }\right) \cdot\left(J_{i}-J_{\min }\right)}{J_{a v g}-J_{\min }}, & J_{i} \leqslant J_{a v g} \\ a_{\max }, & J_{i}>J_{a v g}\end{cases}\tag{9} ai={ amin+JavgJmin(amaxamin)(JiJmin),amax,JiJavgJi>Javg(9)
其中, a min ⁡ , a max ⁡ a_{\min }, a_{\max } amin,amax 分别为控制参数的最小值和最大值, a i a_{i} ai 为灰狼 个体当前的控制参数值, J i J_{i} Ji 表示灰狼个体当前的适应度值, J a v g J_{a v g} Javg J min ⁡ J_{\min } Jmin 分别表示当前灰狼群体的平均适应度值和最小适 应度值。在上式中, 控制参数值会随着灰狼个体的适应度值 而自动改变。
本文同时提出了一种基于适应度值的位置更新策略, 通 过 α , β , δ \alpha, \beta, \delta α,β,δ 相互之间的适应值比值对 3 个灰狼的位置赋予权 重, 然后再对猎取的位置进行求解。其表达式为:
x ( t + 1 ) = ( J a / J δ ) x 1 + ( J β / J δ ) x 2 + x 3 3 (10) x(t+1)=\frac{\left(J_{a} / J_{\delta}\right) x_{1}+\left(J_{\beta} / J_{\delta}\right) x_{2}+x_{3}}{3}\tag{10} x(t+1)=3(Ja/Jδ)x1+(Jβ/Jδ)x2+x3(10)
其中, J α J_\alpha Jα 为灰狼 α \alpha α 的适应度值, J β J_\beta Jβ 为灰狼 β \beta β的适应度值, J δ J_{\delta} Jδ 为灰狼 δ {\delta} δ的适应度值。

2. 2 混沌局部搜索策略

混沌优化算法是根据混沌现象的随机性、遍历性和规律 性, 通过把混沌状态引入到优化变量, 利用混沌运动的遍历性 使算法具有避免陷入局部最优的能力,因此可以利用混沌算 法改进灰狼优化算法, 以提高其收敛质量。Logistic 映射就 是一个典型混沌系统。
x n + 1 = μ x n ( 1 − x n ) x_{n+1}=\mu x_{n}\left(1-x_{n}\right) xn+1=μxn(1xn)
其中, μ \mu μ 为混沌控制参数, μ \mu μ 的取值直接影响着 Logistic 方程 的混沌程度, 当 μ \mu μ 值越大, 混沌程度越高, μ \mu μ 一般在 [ 0 , 4 ] [0,4] [0,4] 之间 取值, x n ∈ [ 0 , 1 ] x_{n} \in[0,1] xn[0,1]
初值对混沌的影响非常大, 因此给式 (11) 赋 i i i 个微小差 异的初值, 得到 i i i 个混沌变量。
混沌灰狼优化算法要涉及到混沌局部搜索算法 (Chaotic Local Search, CLS), 因此 CLS 算法步骤如下。

Step1 当 k = 0 k=0 k=0 时, 将决策变量 x j k x_{j}^{k} xjk 按式 (12) 映射为 0 到 1 之间的混沌变量 s j k s_{j}^{k} sjk :
s j k = x j k − x min ⁡ , j x j k − x max ⁡ , j (12) s_{j}^{k}=\frac{x_{j}^{k}-x_{\min , j}}{x_{j}^{k}-x_{\max , j}} \tag{12} sjk=xjkxmax,jxjkxmin,j(12)
其中, x min ⁡ , j x_{\min , j} xmin,j x max ⁡ , j x_{\max , j} xmax,j 分别为决策变量 X X X 的第 j j j 维变量的搜索 上下界。

Step2 根据式(13), 计算混沌局部搜索算法内部下一步 迭代的混沌变量 s j k + 1 s_{j}^{k+1} sjk+1 :
s j k + 1 = 4 s j k ( 1 − s j k ) (13) s_{j}^{k+1}=4 s_{j}^{k}\left(1-s_{j}^{k}\right) \tag{13} sjk+1=4sjk(1sjk)(13)
Step3 根据式(14), 将混沌变量 s j k + 1 s_{j}^{k+1} sjk+1 转换为决策变量 x j k + 1 : x_{j}^{k+1}: xjk+1:
x j k + 1 = x min ⁡ , j + s j k + 1 ( x max ⁡ , j − x min ⁡ , j ) (14) x_{j}^{k+1}=x_{\min , j}+s_{j}^{k+1}\left(x_{\max , j}-x_{\min , j}\right) \tag{14} xjk+1=xmin,j+sjk+1(xmax,jxmin,j)(14)
Step4 根据决策变量 x j k + 1 x_{j}^{k+1} xjk+1, 对新解进行评价, 若新解优 于初始解 X ( 0 ) = [ x 1 ( 0 ) , x 2 ( 0 ) , ⋯   , x n ( 0 ) ] X^{(0)}=\left[x_{1}^{(0)}, x_{2}^{(0)}, \cdots, x_{n}^{(0)}\right] X(0)=[x1(0),x2(0),,xn(0)] 或者混沌搜索已经达到 最大迭代步数, 则将新解作为 CLS 的搜索结果, 否则转到 Step2 继续搜索。

请添加图片描述

3.实验结果

请添加图片描述

4.参考文献

[1]张悦,孙惠香,魏政磊,韩博.具有自适应调整策略的混沌灰狼优化算法[J].计算机科学,2017,44(S2):119-122+159.

5.Matlab代码

6.Python代码

猜你喜欢

转载自blog.csdn.net/u011835903/article/details/125549913
今日推荐