一种改进的鲸鱼优化算法-附代码
一种改进的鲸鱼优化算法
文章目录
- 一种改进的鲸鱼优化算法
- 1.鲸鱼优化算法
- 2. 改进鲸鱼优化算法
- 2.1 准反向学习初始化种群
- 2.2 非线性收敛因子
- 2.3 自适应权重策略与随机差分法变异策略
- 3.实验结果
- 4.参考文献
- 5.Matlab代码
- 6.Python代码
摘要: 针对鲸鱼优化算法( whale optimization algorithm,WOA) 容易陷入局部最优和收敛精度低的问题进行了研究,提出一种改进的鲸鱼优化算法( IWOA) 。该算法通过准反向学习方法来初始化种群,提高种群的多样性;然后将线性收敛因子修改为非线性收敛因子,有利于平衡全局搜索和局部开发能力; 另外,通过增加自适应权重改进鲸鱼优化算法的局部搜索能力,提高收敛精度; 最后,通过随机差分变异策略及时调整鲸鱼优化算法,避免陷入局部最优。
1.鲸鱼优化算法
基础鲸鱼算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/107559167
2. 改进鲸鱼优化算法
2.1 准反向学习初始化种群
Gondro 等人 [8]{ }^{[8]}[8] 指出高质量的初始化种群对算法的求解精 度和收敛速度等性能有很大的帮助。然而, 基本的鲸鱼优化算 法采用的是随机初始化的方法, 该方法随机性很大, 不能保证 初始种群的多样性。为了保证初始化种群的多样性, 采用了反 向学习的改进方法, 即准反向学习来初始化种群。
反向学习 [6,9,10]{ }^{[6,9,10]}[6,9,10] 是在明确变量的范围边界, 通过按照一定 的规则来求其对应的反向解, 其详细内容如下:
假设鲸鱼种群的规模为 NNN, 搜索空间为 ddd 维, 第 iii 只鲸鱼 在第 ddd 维空间中的位置可以表示为 Xi=(xi1,xi2,⋯,xid)(i=1\boldsymbol{X}_{i}=\left(x_{i}^{1}, x_{i}^{2}, \cdots, x_{i}^{d}\right)(i=1Xi=(xi1,xi2,⋯,xid)(i=1, 2,⋯,N),xij∈[aij,bij](j=1,2,⋯,d),aij2, \cdots, N), x_{i}^{j} \in\left[a_{i}^{j}, b_{i}^{j}\right](j=1,2, \cdots, d), a_{i}^{j}2,⋯,N),xij∈[aij,bij](j=1,2,⋯,d),aij 和 bijb_{i}^{j}bij 分别表示 xijx_{i}^{j}xij 的 下界和上界,其对应反向解如下:
x^ij=aij+bij−xij(7)\hat{x}_{i}^{j}=a_{i}^{j}+b_{i}^{j}-x_{i}^{j} \tag{7} x^ij=aij+bij−xij(7)
在实际应用中, 反向解的效果并不一定很好, 本文为了解 决这一问题采用了准反向解的方法, 该方法可以根据式 (7) 演 变得到:
xij^={rand(avgij,x^ij)xij⩽avgijrand(x^ij,avgij)xij>avgij(8)\hat{x_{i}^{j}}= \begin{cases}\operatorname{rand}\left(\operatorname{avg}_{i}^{j}, \hat{x}_{i}^{j}\right) & x_{i}^{j} \leqslant \operatorname{avg}_{i}^{j} \\ \operatorname{rand}\left(\hat{x}_{i}^{j}, \operatorname{avg}_{i}^{j}\right) & x_{i}^{j}>\operatorname{avg}_{i}^{j}\end{cases} \tag{8} xij^=⎩⎨⎧rand(avgij,x^ij)rand(x^ij,avgij)xij⩽avgijxij>avgij(8)
其中: avgij=bij−aij2;(a,b)\operatorname{avg}_{i}^{j}=\frac{b_{i}^{j}-a_{i}^{j}}{2} ;(a, b)avgij=2bij−aij;(a,b) 代表在 a、ba 、 ba、b 之间的随机数。
随机产生的 NNN 个初始个体和准反向学习 [9]{ }^{[9]}[9] 求得的 NNN 个准 反向解将其合并, 然后通过一种种群多样性最大化的篮选机 制, 从这 2N2 N2N 个个体中选择种群多样性最大化的 NNN 个个体。
为了使种群获得比较好的初始化种群, 本文将随机解与其 对应的准反向解进行取优化处理, 这样既保证了种群的多样性, 同时又能使种群较快地收敛到全局最优解。其数学模型如下:
fit (X)>fit (V∨)?X,XV(9)\text { fit }(X)>\text { fit }(\stackrel{\vee}{V}) ? X, \stackrel{V}{X} \tag{9} fit (X)> fit (V∨)?X,XV(9)
其中: fit 为适应度函数; XXX 和 XXX 分别表示随机产生的个体和准 反向学习产生的个体。
2.2 非线性收敛因子
与其他群体智能优化算法类似, 鲸鱼优化算法在寻优过程 中同样会遇到全局搜索能力和局部开发能力不平衡的现象。 在基本鲸鱼优化算法中, 其掌握鲸鱼进行全局搜索还是局部搜 索的是参数 ∣A∣|A|∣A∣, 当参数 ∣A∣⩾1|A| \geqslant 1∣A∣⩾1 时, 算法以 0.50.50.5 的概率进行随 机全局搜索, 当 ∣A∣<1|A|<1∣A∣<1 时, 算法进行局部开发。由于收玫因子 aaa 进行线性变化并不能很好地调节全局搜索能力和局部开发 能力, 因此本文提出来一种非线性收敛因子 [5,11,12]{ }^{[5,11,12]}[5,11,12] 为
a=2−2sin(μtmaxiterπ+φ)(10)a=2-2 \sin \left(\mu \frac{t}{{ max_iter }} \pi+\varphi\right) \tag{10} a=2−2sin(μmaxitertπ+φ)(10)
其中: max_iter 为最大迭代次数; ttt 为当前迭代次数; μ\muμ 和 φ\varphiφ 是其 表达式相关参数, 选取 μ=12,φ=0\mu=\frac{1}{2}, \varphi=0μ=21,φ=0 。
2.3 自适应权重策略与随机差分法变异策略
鲸鱼优化算法在后期局部开发时易陷入局部最优, 出现早 熟收敛的现象, 为了使算法能够保持种群的多样性并且能够及 时跳出局部最优, 提出来一种自适应权重策略和随机差分变异策略
自适应权重策略数学表达式如下:
ω=1−etmaxiter −1e−1,X(t+1)=ω⋅Xp(t)−A⋅D(11)\omega=1-\frac{e^{\frac{t}{\max \text { iter }}-1}}{e-1}, \boldsymbol{X}(t+1)=\omega \cdot \boldsymbol{X}_{p}(t)-\boldsymbol{A} \cdot \boldsymbol{D} \tag{11} ω=1−e−1emax iter t−1,X(t+1)=ω⋅Xp(t)−A⋅D(11)
X(t+1)=ω⋅Xp(t)+D⋅ebl⋅cos(2πl)(12)\boldsymbol{X}(t+1)=\omega \cdot \boldsymbol{X}_{p}(t)+\boldsymbol{D} \cdot e^{b l} \cdot \cos (2 \pi l) \tag{12} X(t+1)=ω⋅Xp(t)+D⋅ebl⋅cos(2πl)(12)
随机差分变异策略如下:
X(t+1)=r1×(Xp(t)−X(t))+r2×(X′(t)−X(t))(13)\boldsymbol{X}(t+1)=r_{1} \times\left(\boldsymbol{X}_{p}(t)-\boldsymbol{X}(t)\right)+r_{2} \times\left(\boldsymbol{X}^{\prime}(t)-\boldsymbol{X}(t)\right) \tag{13} X(t+1)=r1×(Xp(t)−X(t))+r2×(X′(t)−X(t))(13)
其中: r1r_{1}r1 和 r2r_{2}r2 为 [0,1][0,1][0,1] 的随机数, X′(t)X^{\prime}(t)X′(t) 为种群中随机选取的个体。
每个个体都要经过包围捕食、螺旋更新、搜索猎物阶段, 当 个体进行包围捕食或螺旋更新时采用自适应权重策略去更新位置,之后个体需要通过随机差分变异策略对其再次更新,取其变化前后的最优位置,加快了种群的收敛,有效地防止了种群陷入局部最优。种群通过这两种策略协同工作,使得算法具有更好的寻优效果。
3.实验结果
4.参考文献
[1]武泽权,牟永敏.一种改进的鲸鱼优化算法[J].计算机应用研究,2020,37(12):3618-3621.
5.Matlab代码
6.Python代码
一种改进的鲸鱼优化算法-附代码相关推荐
- 混沌策略和单纯形法改进的鲸鱼优化算法-附代码
混沌策略和单纯形法改进的鲸鱼优化算法 文章目录 混沌策略和单纯形法改进的鲸鱼优化算法 1.鲸鱼优化算法 2. 改进鲸鱼优化算法 2.1 混沌反向学习初始化种群 2.2 非线性收敛因子和自适应权重策略 ...
- 一种改进的灰狼优化算法-附代码
一种改进的灰狼优化算法 文章目录 一种改进的灰狼优化算法 1.灰狼优化算法 2. 改进灰狼优化算法 2.1 基于混沌的种群初始化方法 2.2 修改位置更新方程 2.3 控制参数随机调整策略 3.实验结 ...
- 一种改进的鲸鱼优化算法
文章目录 一.理论基础 1.鲸鱼优化算法 2.改进的鲸鱼优化算法 (1)准反向学习初始化种群 (2)非线性收敛因子 (3)自适应权重策略与随机差分法变异策略 二.仿真实验及分析 三.参考文献 一.理论 ...
- 一种基于交叉选择的柯西反向鲸鱼优化算法 -附代码
一种基于交叉选择的柯西反向鲸鱼优化算法 文章目录 一种基于交叉选择的柯西反向鲸鱼优化算法 1.鲸鱼优化算法 2. 改进鲸鱼优化算法 2.1 柯西反向学习 2.2 引入交叉与选择策略的鲸鱼优化算法 3. ...
- 基于混沌的正余弦鲸鱼优化算法-附代码
基于混沌的正余弦鲸鱼优化算法 文章目录 基于混沌的正余弦鲸鱼优化算法 1.鲸鱼优化算法 2. 改进鲸鱼优化算法 2.1 混沌初始化种群和参数优化 2.2 正余弦鲸鱼优化算法 2.3 混沌自适应的惯性权 ...
- 基于自适应调整权重和搜索策略的鲸鱼优化算法-附代码
基于自适应调整权重和搜索策略的鲸鱼优化算法 文章目录 基于自适应调整权重和搜索策略的鲸鱼优化算法 1.鲸鱼优化算法 2. 改进鲸鱼优化算法 2.1 自适应调整权重 2.2 自适应调整搜索策略 3.实验 ...
- 混沌策略和单纯形法改进的鲸鱼优化算法
文章目录 一.理论基础 1.鲸鱼优化算法 2.改进算法 (1)混沌反向学习初始化种群 (2)非线性收敛因子和自适应权重策略 (3)单纯形法 (4)CSWOA的执行步骤 二.仿真实验与分析 三.参考文献 ...
- 一种改进的蚁狮优化算法 改进的ALO算法
一种改进的蚁狮优化算法 改进的ALO算法[matlab代码] 在原始ALO算法的基础上添加了两种改进策略 改进1:将原先的间断性边界收缩因子变为连续性边界收缩因子,从而增强算法的遍历性 改进2:将原先 ...
- 基于Cat混沌与高斯变异的改进灰狼优化算法-附代码
基于Cat混沌与高斯变异的改进灰狼优化算法 文章目录 基于Cat混沌与高斯变异的改进灰狼优化算法 1.灰狼优化算法 2. 改进灰狼优化算法 2.1 混沌反向学习策略的种群初始化 2. 2 引入个体记忆 ...
最新文章
- 东软村医管理平台_软件定义汽车“性感”吗?东软睿驰有自己的答案
- zoj 3329 概率dp
- libcurl上传文件
- 推荐专栏丨《DBA的奋斗路》
- jenkins 实践
- OpenShift 4 之AMQ Streams(3) - 用Kafka MirrorMaker在Kafka集群间复制数据
- 网御神州和北京邮电大学成立信息安全联合实验室(2007-07-04)
- 《授予博士、硕士学位和培养研究生的学科、专业目录》 (1997 颁布 )
- 7.UNIX 环境高级编程--进程环境
- VARCHART XGantt_v5.1用户手册:如何提供数据(.NET版)
- Linux服务器集群系统(一)
- 用GNS3制作路由交换网络拓扑图
- android 的语言适配
- HARK学习(八)--LoadSourceLocation
- vim中,c/cpp文件如何在头文件和.c/.cpp文件中快速的进行跳转
- arm linux 俄罗斯方块,基于ARM的俄罗斯方块游戏的开发教材.doc
- html5 3d引擎 星空,使用3D引擎threeJS实现星空粒子移动效果
- win7 IIS7.0 【IIS 管理器无法验证此内置帐户是否有访问权】
- 不等式视角下的策略梯度算法
- 让大学生校招逆袭的Spring三十五问,四万字详解分析(堪称2022年大学生毕业面试指南)