一种改进的鲸鱼优化算法

文章目录

  • 一种改进的鲸鱼优化算法
    • 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⁡(avg⁡ij,x^ij)xij⩽avg⁡ijrand⁡(x^ij,avg⁡ij)xij>avg⁡ij(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​⩽avgij​xij​>avgij​​(8)
其中: avg⁡ij=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(μmaxi​tert​π+φ)(10)
其中: max_iter 为最大迭代次数; ttt 为当前迭代次数; μ\muμ 和 φ\varphiφ 是其 表达式相关参数, 选取 μ=12,φ=0\mu=\frac{1}{2}, \varphi=0μ=21​,φ=0 。

2.3 自适应权重策略与随机差分法变异策略

鲸鱼优化算法在后期局部开发时易陷入局部最优, 出现早 熟收敛的现象, 为了使算法能够保持种群的多样性并且能够及 时跳出局部最优, 提出来一种自适应权重策略和随机差分变异策略
自适应权重策略数学表达式如下:
ω=1−etmax⁡iter −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. 混沌策略和单纯形法改进的鲸鱼优化算法-附代码

    混沌策略和单纯形法改进的鲸鱼优化算法 文章目录 混沌策略和单纯形法改进的鲸鱼优化算法 1.鲸鱼优化算法 2. 改进鲸鱼优化算法 2.1 混沌反向学习初始化种群 2.2 非线性收敛因子和自适应权重策略 ...

  2. 一种改进的灰狼优化算法-附代码

    一种改进的灰狼优化算法 文章目录 一种改进的灰狼优化算法 1.灰狼优化算法 2. 改进灰狼优化算法 2.1 基于混沌的种群初始化方法 2.2 修改位置更新方程 2.3 控制参数随机调整策略 3.实验结 ...

  3. 一种改进的鲸鱼优化算法

    文章目录 一.理论基础 1.鲸鱼优化算法 2.改进的鲸鱼优化算法 (1)准反向学习初始化种群 (2)非线性收敛因子 (3)自适应权重策略与随机差分法变异策略 二.仿真实验及分析 三.参考文献 一.理论 ...

  4. 一种基于交叉选择的柯西反向鲸鱼优化算法 -附代码

    一种基于交叉选择的柯西反向鲸鱼优化算法 文章目录 一种基于交叉选择的柯西反向鲸鱼优化算法 1.鲸鱼优化算法 2. 改进鲸鱼优化算法 2.1 柯西反向学习 2.2 引入交叉与选择策略的鲸鱼优化算法 3. ...

  5. 基于混沌的正余弦鲸鱼优化算法-附代码

    基于混沌的正余弦鲸鱼优化算法 文章目录 基于混沌的正余弦鲸鱼优化算法 1.鲸鱼优化算法 2. 改进鲸鱼优化算法 2.1 混沌初始化种群和参数优化 2.2 正余弦鲸鱼优化算法 2.3 混沌自适应的惯性权 ...

  6. 基于自适应调整权重和搜索策略的鲸鱼优化算法-附代码

    基于自适应调整权重和搜索策略的鲸鱼优化算法 文章目录 基于自适应调整权重和搜索策略的鲸鱼优化算法 1.鲸鱼优化算法 2. 改进鲸鱼优化算法 2.1 自适应调整权重 2.2 自适应调整搜索策略 3.实验 ...

  7. 混沌策略和单纯形法改进的鲸鱼优化算法

    文章目录 一.理论基础 1.鲸鱼优化算法 2.改进算法 (1)混沌反向学习初始化种群 (2)非线性收敛因子和自适应权重策略 (3)单纯形法 (4)CSWOA的执行步骤 二.仿真实验与分析 三.参考文献 ...

  8. 一种改进的蚁狮优化算法 改进的ALO算法

    一种改进的蚁狮优化算法 改进的ALO算法[matlab代码] 在原始ALO算法的基础上添加了两种改进策略 改进1:将原先的间断性边界收缩因子变为连续性边界收缩因子,从而增强算法的遍历性 改进2:将原先 ...

  9. 基于Cat混沌与高斯变异的改进灰狼优化算法-附代码

    基于Cat混沌与高斯变异的改进灰狼优化算法 文章目录 基于Cat混沌与高斯变异的改进灰狼优化算法 1.灰狼优化算法 2. 改进灰狼优化算法 2.1 混沌反向学习策略的种群初始化 2. 2 引入个体记忆 ...

最新文章

  1. 东软村医管理平台_软件定义汽车“性感”吗?东软睿驰有自己的答案
  2. zoj 3329 概率dp
  3. libcurl上传文件
  4. 推荐专栏丨《DBA的奋斗路》
  5. jenkins 实践
  6. OpenShift 4 之AMQ Streams(3) - 用Kafka MirrorMaker在Kafka集群间复制数据
  7. 网御神州和北京邮电大学成立信息安全联合实验室(2007-07-04)
  8. 《授予博士、硕士学位和培养研究生的学科、专业目录》 (1997 颁布 )
  9. 7.UNIX 环境高级编程--进程环境
  10. VARCHART XGantt_v5.1用户手册:如何提供数据(.NET版)
  11. Linux服务器集群系统(一)
  12. 用GNS3制作路由交换网络拓扑图
  13. android 的语言适配
  14. HARK学习(八)--LoadSourceLocation
  15. vim中,c/cpp文件如何在头文件和.c/.cpp文件中快速的进行跳转
  16. arm linux 俄罗斯方块,基于ARM的俄罗斯方块游戏的开发教材.doc
  17. html5 3d引擎 星空,使用3D引擎threeJS实现星空粒子移动效果
  18. win7 IIS7.0 【IIS 管理器无法验证此内置帐户是否有访问权】
  19. 不等式视角下的策略梯度算法
  20. 让大学生校招逆袭的Spring三十五问,四万字详解分析(堪称2022年大学生毕业面试指南)

热门文章

  1. 五险一金纠纷的12个处理规则
  2. 【达内课程】集合之ArrayList
  3. Python使用BeautifulSoup简单实现爬取妹子mm图片--初级篇
  4. python编写动漫人或物
  5. 对魔兽攻击伤害算法及平衡性的研究
  6. matlab 函数 未定义,matlab一直说我未定义函数或变量x怎么办?
  7. gogs 导致 ssh 钥匙对登录失败的问题
  8. 《Qt5:QCustomPlot绘制二维图表》
  9. 垂直滤波和水平滤波的区别_有源滤波与无源滤波的区别——帝森克罗德技术科普贴...
  10. 梦想照进现实|CSDN 实体奖牌 第四期