具有自适应调整策略的混沌灰狼优化算法
文章目录
具有自适应调整策略的混沌灰狼优化算法1.灰狼优化算法2. 改进灰狼优化算法2.1 自适应调整策略2. 2 混沌局部搜索策略3.实验结果4.参考文献5.Matlab代码6.Python代码摘要: 灰狼优化算法(GWO )是新型启元优化算法,相比于其他群体智能优化算法,该算法同样存在收敛速度较慢、不稳定、易陷入局部最优等问题。针对上述问题,根据 GWO算法的结构特点,提出了一种自适应调整策略的混沌灰狼优化算法( chaotic local Search GWO ),利用自适应调整策略来提高 GWO 算法的收敛速度,通过混沌局部搜索策略增加种群的多样性,使搜索过程避免陷入局部最优。
1.灰狼优化算法
基础灰狼算法的具体原理参考,我的博客:/u011835903/article/details/107716390
2. 改进灰狼优化算法
2.1 自适应调整策略
灰狼算法中适应度值是反映个体与全局最优值之间的重 要参数。在灰狼进行寻优的过程中, α,β,δ\alpha, \beta, \deltaα,β,δ 的位置对于寻找最 优解至关重要, 但在进行更新位置时, 没有体现出 α,β,δ\alpha, \beta, \deltaα,β,δ 之间 的真实位置的相对关系, 只是进行了简单的求平均值, 导致扩 大了搜索的范围, 减缓了收敛速度。
为了进一步提高 GWO\mathrm{GWO}GWO 算法的收敛速度, 同时 也为了平 衡 GWO 算法的全局搜索能力和局部改良能力, 控制参数值 aaa 采用自适应调整策略。在该策略中, 将当前个体的适应度值 JiJ_{i}Ji 与灰狼群的平均适应度值 JavgJ_{a v g}Javg 进行比较, 如果 JiJ_{i}Ji 优千平均 适应度值 JavgJ_{a v g}Javg, 其相应灰狼个体的控制参数 aaa 较小, 便于使其 向最好的位置靠拢; 如果 JiJ_{i}Ji 次于 JavgJ_{a v g}Javg, 那么其相应灰狼个体 的控制参数值 aaa 会较大, 使其到更广阔的区域搜索, 向较好的 搜索区域靠拢。
本文采用的控制参数自适应调整策略表达式如下:
ai={amin+(amax−amin)⋅(Ji−Jmin)Javg−Jmin,Ji⩽Javgamax,Ji>Javg(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+Javg−Jmin(amax−amin)⋅(Ji−Jmin),amax,Ji⩽JavgJi>Javg(9)
其中, amin,amaxa_{\min }, a_{\max }amin,amax 分别为控制参数的最小值和最大值, aia_{i}ai 为灰狼 个体当前的控制参数值, JiJ_{i}Ji 表示灰狼个体当前的适应度值, JavgJ_{a v g}Javg 和 JminJ_{\min }Jmin 分别表示当前灰狼群体的平均适应度值和最小适 应度值。在上式中, 控制参数值会随着灰狼个体的适应度值 而自动改变。
本文同时提出了一种基于适应度值的位置更新策略, 通 过 α,β,δ\alpha, \beta, \deltaα,β,δ 相互之间的适应值比值对 3 个灰狼的位置赋予权 重, 然后再对猎取的位置进行求解。其表达式为:
x(t+1)=(Ja/Jδ)x1+(Jβ/Jδ)x2+x33(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_\alphaJα 为灰狼 α\alphaα 的适应度值,JβJ_\betaJβ 为灰狼 β\betaβ的适应度值, JδJ_{\delta}Jδ 为灰狼δ{\delta}δ的适应度值。
2. 2 混沌局部搜索策略
混沌优化算法是根据混沌现象的随机性、遍历性和规律 性, 通过把混沌状态引入到优化变量, 利用混沌运动的遍历性 使算法具有避免陷入局部最优的能力,因此可以利用混沌算 法改进灰狼优化算法, 以提高其收敛质量。Logistic 映射就 是一个典型混沌系统。
xn+1=μxn(1−xn)x_{n+1}=\mu x_{n}\left(1-x_{n}\right) xn+1=μxn(1−xn)
其中, μ\muμ 为混沌控制参数, μ\muμ 的取值直接影响着 Logistic 方程 的混沌程度, 当 μ\muμ 值越大, 混沌程度越高, μ\muμ 一般在 [0,4][0,4][0,4] 之间 取值, xn∈[0,1]x_{n} \in[0,1]xn∈[0,1] 。
初值对混沌的影响非常大, 因此给式 (11) 赋 iii 个微小差 异的初值, 得到 iii 个混沌变量。
混沌灰狼优化算法要涉及到混沌局部搜索算法 (Chaotic Local Search, CLS), 因此 CLS 算法步骤如下。
Step1 当 k=0k=0k=0 时, 将决策变量 xjkx_{j}^{k}xjk 按式 (12) 映射为 0 到 1 之间的混沌变量 sjks_{j}^{k}sjk :
sjk=xjk−xmin,jxjk−xmax,j(12)s_{j}^{k}=\frac{x_{j}^{k}-x_{\min , j}}{x_{j}^{k}-x_{\max , j}} \tag{12} sjk=xjk−xmax,jxjk−xmin,j(12)
其中, xmin,jx_{\min , j}xmin,j 和 xmax,jx_{\max , j}xmax,j 分别为决策变量 XXX 的第 jjj 维变量的搜索 上下界。
Step2 根据式(13), 计算混沌局部搜索算法内部下一步 迭代的混沌变量 sjk+1s_{j}^{k+1}sjk+1 :
sjk+1=4sjk(1−sjk)(13)s_{j}^{k+1}=4 s_{j}^{k}\left(1-s_{j}^{k}\right) \tag{13} sjk+1=4sjk(1−sjk)(13)
Step3 根据式(14), 将混沌变量 sjk+1s_{j}^{k+1}sjk+1 转换为决策变量 xjk+1:x_{j}^{k+1}:xjk+1:
xjk+1=xmin,j+sjk+1(xmax,j−xmin,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,j−xmin,j)(14)
Step4 根据决策变量 xjk+1x_{j}^{k+1}xjk+1, 对新解进行评价, 若新解优 于初始解 X(0)=[x1(0),x2(0),⋯,xn(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].计算机科学,,44(S2):119-122+159.
5.Matlab代码
6.Python代码
如果觉得《具有自适应调整策略的混沌灰狼优化算法-附代码》对你有帮助,请点赞、收藏,并留下你的观点哦!