嵌入Circle映射和逐维小孔成像反向学习的鲸鱼优化算法-附代码
嵌入Circle映射和逐维小孔成像反向学习的鲸鱼优化算法
文章目录
- 嵌入Circle映射和逐维小孔成像反向学习的鲸鱼优化算法
- 1.鲸鱼优化算法
- 2. 改进鲸鱼优化算法
- 2.1 混沌序列初始化
- 2.2 逐维小孔成像反向学习
- 2.3 融合贝塔分布和逆不完全Γ函数的权重
- 3.实验结果
- 4.参考文献
- 5.Matlab代码
- 6.Python代码
摘要:针对鲸鱼优化算法(WOA)容易陷入局部最优解、收敛速度慢等缺陷,提出一种改进鲸鱼优化算法.首先,利用Circle混沌序列取代原始算法中随机产生的初始种群,提高初始个体的多样性;其次,提出了一种逐维小孔成像反向学习策略,增加寻优位置的多样性,提高了算法摆脱局部最优的能力;最后,提出了融合贝塔分布和逆不完全Γ函数的自适应权重,在保留鲸鱼优化算法优点的前提下,协调了算法的搜索能力.
1.鲸鱼优化算法
基础鲸鱼算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/107559167
2. 改进鲸鱼优化算法
2.1 混沌序列初始化
群体初始化对当前大多数智能优化算法的效率有很大影响,均匀分布的种群可以适度地扩大算法的搜索范围,从而提高算法的收敛速度和求解精度,在WOA种群初始化时,由于没有任何先验条件可以使用,大部分算法都是在搜索空间内随机生成初始种群,这种随机生成的群体位置容易导致鲸鱼位置分布不均匀,搜索范围不广,匡芳君[14] 等人提出利用Tent混沌来初始化种群,使个体尽可能均匀分布在搜索空间中,从而提高了蜂群算法的性能.混沌具有不可预测、非周期等特点,可以利用这种特点来提高算法的性能,其主要思想是利用混沌的特性,将变量映射到混沌变量空间的取值区间内,最后将解线性地转化到优化变量空间.目前优化领域中存在多种不同的混沌映射[15],主要有Tent映射、Circle映射和Gauss映射等.本文采用Circle混沌映射来生成初始群体,Circle映射定义如下:
xi+1=mod(xi+0.2−(0.52π)sin(2πxi),1)(8)x_{i+1}=\bmod \left(x_{i}+0.2-\left(\frac{0.5}{2 \pi}\right) \sin \left(2 \pi x_{i}\right), 1\right) \tag{8} xi+1=mod(xi+0.2−(2π0.5)sin(2πxi),1)(8)
利用Circle映射来产生初始种群, 相比于随机 分布的种群, 改进后的种群初始位置分布更加均 匀, 扩大了鲸鱼群在空间中的搜索范围, 增加了群 体位置的多样性, 一定程度上改善了算法容易陷入 局部极值的缺陷, 从而提高了算法的寻优效率.
2.2 逐维小孔成像反向学习
假设某一空间中, 有一个高度为 hhh 的火 焰 ppp 在 XXX 轴上的投影为 XbestjX_{b e s t}^{j}Xbestj (第 jjj 维最优解), 坐标轴 的上下限为 aj,bja_{j}, b_{j}aj,bj (第 jjj 维解的上下限), 在基点 ooo 上放置 一个有小孔的小孔屏, 火焰通过小孔可以在接收屏 上得到一个高度为 h′h^{\prime}h′ 的倒像 p′p^{\prime}p′, 此时在 XXX 轴上得到 通过小孔成像产生的一个反向点 Xbest ′jX_{\text {best }}^{\prime j}Xbest ′j (第 jjj 维解得反 向解). 所以由小孔成像原理可以得出:
(aj+bj)/2−Xbest jXbest ′j−(aj+bj)/2=hh′(9)\frac{\left(a_{j}+b_{j}\right) / 2-X_{\text {best }}^{j}}{X_{\text {best }}^{\prime j}-\left(a_{j}+b_{j}\right) / 2}=\frac{h}{h^{\prime}} \tag{9} Xbest ′j−(aj+bj)/2(aj+bj)/2−Xbest j=h′h(9)
令 h/h′=nh / h^{\prime}=nh/h′=n, 通过变换得到 Xbest′jX_{b e s t}^{\prime j}Xbest′j, 表达式如下:
Xbest ′j=(aj+bj)2+(aj+bj)2n−Xbest jn(10)X_{\text {best }}^{\prime^{j}}=\frac{\left(a_{j}+b_{j}\right)}{2}+\frac{\left(a_{j}+b_{j}\right)}{2 n}-\frac{X_{\text {best }}^{j}}{n}\tag{10} Xbest ′j=2(aj+bj)+2n(aj+bj)−nXbest j(10)
当 n=1n=1n=1 时, 可得:
Xbest′j=(aj+bj)−Xbestj(11)X_{b e s t}^{\prime} j=\left(a_{j}+b_{j}\right)-X_{b e s t}^{j}\tag{11} Xbest′j=(aj+bj)−Xbestj(11)
由11式可以看出, 当 n=1n=1n=1 时, 此时每维的逐 维小孔成像反向学习就是一般反向学习策略, 通过 改变接收屏与小孔屏的距离来调整调节因子 nnn, 从 而可以得到位置更好的个体.通过对算法保留下来的 最优解进行逐维小孔成像反向学习, 将各维度的值 映射到空间中得到反向解, 避免了各维度之间的干 扰, 同时也扩大了算法的搜索范围, 从而改善算法 的性能. 改进后的算法每迭代一次, 都通过(10)式进 行位置䇠选, 某一维度的值经过反向学习之后与其 他维度的值组成新的解, 通过比较各个适应度值来 进行篮选, 进而确定最优解, 利用这种方式不断求 得更好的解, 用这种精英保留的方式来进行下一维 的反向学习更新, 直到各维度更新结束.与一般反向 学习相比, 本文选择的是当前种群中保留的最优个 体进行逐维反向学习, 一定程度上降低了算法陷入 局部最优的可能性, 同时本文所提策略中 aja_{j}aj 和 bjb_{j}bj 是 动态变化的, 相比于固定边界的反向学习策略具有 更加准确的搜索范围, 从而提高了算法的优化效率.
2.3 融合贝塔分布和逆不完全Γ函数的权重
在WOA中, 惯性权重对算法性能具有很明显的 影响, 当惯性权重大于 1 时, 随着迭代的进行算法会 很快发散; 若惯性权重小于 0 , 则将导致算法很快 停滞.通常情况下, 在算法初期主要注重全局探索, 以确保算法快速到达最优解附近, 此时权重应该较 大; 而在算法后期, 主要侧重局部开发, 此时需要 适当减小相邻两代之间的关联, 在最优解附近进行 精确搜索, 因此权重应该较小.WOA在进行全局搜 索和局部开发时, 权重是固定不变的, 导致鲸鱼群 只能停留在最优解附近, 不能精确的找到最优解, 同时在WOA中没有考虑算法迭代过程中 XrandX_{r a n d}Xrand 随机 性的影响, 因此本文提出一种融合贝塔分布 [18][18][18] 和 逆不完全 Γ\GammaΓ 函数 [19]{ }^{[19]}[19] 的惯性因子调整方法:
ω=ωmin+ωmax−ωminλ×gammaincinc (λ,1−tT)+σB(b1,b2)其中, ωmax=0.9,ωmin=0.4,gammaincinv (λ,a)\begin{aligned} \omega &=\omega_{\min }+\frac{\omega_{\max }-\omega_{\min }}{\lambda} \times \text { gammaincinc }\left(\lambda, 1-\frac{t}{T}\right)+\sigma B\left(b_{1}, b_{2}\right) \\ & \text { 其中, } \omega_{\max }=0.9, \omega_{\min }=0.4, \text { gammaincinv }(\lambda, a) \end{aligned} ω=ωmin+λωmax−ωmin× gammaincinc (λ,1−Tt)+σB(b1,b2) 其中, ωmax=0.9,ωmin=0.4, gammaincinv (λ,a)
为逆不完全 Γ\GammaΓ 函数 γ(λ,a)=∫0λe−tta−1dt\gamma(\lambda, a)=\int_{0}^{\lambda} \mathrm{e}^{-t} t^{a-1} \mathrm{~d} tγ(λ,a)=∫0λe−tta−1 dt 的Matlab调 用函数, λ(λ≥0)\lambda(\lambda \geq 0)λ(λ≥0) 为随机变量, 本文取 λ=0.1\lambda=0.1λ=0.1; B(b1,b2)B\left(b_{1}, b_{2}\right)B(b1,b2) 表示服从贝塔分布的随机数, 其中 b1=1b_{1}=1b1=1,b2=2,σb_{2}=2, \sigmab2=2,σ 为惯性权重调整因子, 本文取 σ=0.1\sigma=0.1σ=0.1 用 来控制惯性权重 ω\omegaω 的偏移程度, 使其能够更好地平 衡算法的全局搜索和局部开发能力. 其中 ttt 为当前迭 代次数, TTT 为算法最大迭代次数, 此时 a=1−t/Ta=1-t / Ta=1−t/T.
本文权值的前两项用来控制 ω\omegaω 从 0.90.90.9 非线性递减 到 0.40.40.4, 进而协调全局搜索和局部开发阶段, 第三项 利用贝塔分布调整 ω\omegaω 整体取值的分布, 使权值的选 取更加合理. 由(12)式可知, 本文改进权重在总体上 随着迭代次数的增加而非线性递减, 满足整个搜索 过程权重的变化, 同时, 在式中加入了服从贝塔分 布的随机数, 一方面在迭代前期权值变化太快时也 可能产生较大的权值, 此时一定程度上增强了算法 的全局搜索能力; 另一方面到迭代后期, 权重系数 随着迭代次数增加而减小, 而且变化比较平稳, 此 时加入服从贝塔分布的随机数使算法有机会获得较 大的权值, 实现了权重的动态变化, 从而提高算法 的收玫速度.结合WOA位置更新公式, MWOA公式 定义如下:
X(t+1)=ω⋅X∗(t)−A⋅D∣A∣<1,p<0.(13)X(t+1)=\omega \cdot X^{*}(t)-A \cdot D|A|<1, p<0 .\tag{13} X(t+1)=ω⋅X∗(t)−A⋅D∣A∣<1,p<0.(13)
X(t+1)=ω⋅Xrand −A⋅Drand ∣A∣≥1,p<0.5(14)\begin{aligned} &X(t+1)=\omega \cdot X_{\text {rand }}-A \cdot D_{\text {rand }}|A| \geq 1, p<0.5 \end{aligned}\tag{14} X(t+1)=ω⋅Xrand −A⋅Drand ∣A∣≥1,p<0.5(14)
X(t+1)=D′⋅ebl⋅cos(2πl)+ωX∗(t)p≥0.5(15)X(t+1)=D^{\prime} \cdot e^{b l} \cdot \cos (2 \pi l)+\omega X^{*}(t) p \geq 0.5 \tag{15} X(t+1)=D′⋅ebl⋅cos(2πl)+ωX∗(t)p≥0.5(15)
鲸鱼算法的模型简单, 相比于传统算法, 鲸鱼 优化算法寻优能力更强, 但是在整个进化过程中主 要通过搜索包围、螺旋更新位置、随机选择鲸鱼位 置来实现寻优, 但是算法在迭代时不断更新领导者 的位置, 这样的领导者更新方式导致算法进行到某 一代陷入局部最优则会使算法陷入停滞, 虽然一些 改进算法利用混沌理论和反向学习增加了算法跳出 局部最优的概率、加入惯性权重来平衡算法的全局 搜索和局部开发能力, 但本质上来说都是对单一的 进化策略进行改进, 因此本文通过结合混沌映射理 论、逐维小孔成像反向学习策略、融合贝塔分布和 逆不完全 Γ\GammaΓ 函数的权重, 来优化算法的寻优效率, 提高算法的稳定性, 以期望在每次迭代过程中获得 更好的优化结果.
3.实验结果
4.参考文献
[1]张达敏,徐航,王依柔,宋婷婷,王栎桥.嵌入Circle映射和逐维小孔成像反向学习的鲸鱼优化算法[J].控制与决策,2021,36(05):1173-1180.
5.Matlab代码
6.Python代码
嵌入Circle映射和逐维小孔成像反向学习的鲸鱼优化算法-附代码相关推荐
- 融合柯西变异和反向学习的改进麻雀算法-附代码
融合柯西变异和反向学习的改进麻雀算法 文章目录 融合柯西变异和反向学习的改进麻雀算法 1.麻雀搜索算法 2.融合柯西变异和反向学习的改进麻雀算法(ISA) 2.1 Sine 初始化种群 2.2 动态自 ...
- 结合重心反向变异的飞蛾扑火优化算法-附代码
结合重心反向变异的飞蛾扑火优化算法 文章目录 结合重心反向变异的飞蛾扑火优化算法 1.飞蛾扑火优化算法 2. 改进飞蛾扑火优化算法 2.1 佳点集初始化种群 2.2 引入动态惯性权重 2.3 重心反向 ...
- 一种基于交叉选择的柯西反向鲸鱼优化算法 -附代码
一种基于交叉选择的柯西反向鲸鱼优化算法 文章目录 一种基于交叉选择的柯西反向鲸鱼优化算法 1.鲸鱼优化算法 2. 改进鲸鱼优化算法 2.1 柯西反向学习 2.2 引入交叉与选择策略的鲸鱼优化算法 3. ...
- 【智能优化算法】基于分段权重和变异反向学习的蝴蝶优化算法求解单目标优化问题附matlab代码
1 简介 针对原始蝴蝶优化算法容易陷入局部最优解,收敛速度慢及寻优精度低等问题,提出分段权重和变异反向学习的蝴蝶优化算法.通过飞行引领策略来矫正邻域内蝴蝶的自身飞行,降低盲目飞行,增强算法跳出局部最优 ...
- 融合正弦余弦和无限折叠迭代混沌映射的蝴蝶优化算法-附代码
融合正弦余弦和无限折叠迭代混沌映射的蝴蝶优化算法 文章目录 融合正弦余弦和无限折叠迭代混沌映射的蝴蝶优化算法 1.蝴蝶优化算法 2. 改进蝴蝶优化算法 2.1 无限折叠迭代混沌映射的种群初始化 2.2 ...
- 基于 Iterative 映射和单纯形法的改进灰狼优化算法-附代码
基于 Iterative 映射和单纯形法的改进灰狼优化算法 文章目录 基于 Iterative 映射和单纯形法的改进灰狼优化算法 1.灰狼优化算法 2. 改进灰狼优化算法(SMIGWO) 2.1 混沌 ...
- 融合最优邻域扰动和反向学习策略的蝴蝶优化算法
文章目录 一.理论基础 1.基本BOA 2.ORBOA 2.1 基于改进Tent混沌映射的蝴蝶位置初始化 2.2 混合最优邻域扰动策略和透镜成像反向学习策略 2.2.1 最优邻域扰动策略 2.2.2 ...
- 融合柯西变异和反向学习的改进麻雀算法
文章目录 一.理论基础 1.基本麻雀搜索算法 2.融合柯西变异和反向学习的麻雀搜索算法 (1)Sin混沌初始化种群 (2)动态自适应权重 (3)改进的侦查预警麻雀更新公式 (4)融合柯西变异和反向学习 ...
- 精英反向与二次插值改进的黏菌算法-附代码
精英反向与二次插值改进的黏菌算法 文章目录 精英反向与二次插值改进的黏菌算法 1.黏菌算法 2.改进黏菌算法 2.1 精英反向学习机制 2.2 二次插值方法 3.实验结果 4.参考文献 5.Matla ...
- 基于精英反向学习和Lévy飞行的鲸鱼优化算法
文章目录 一.理论基础 1.鲸鱼优化算法 2.改进鲸鱼优化算法 (1)基于精英反向学习的种群初始化 (2)自适应权重 (3)Lévy飞行 二.实验结果与分析 三.参考文献 一.理论基础 1.鲸鱼优化算 ...
最新文章
- 36万类别、1800万图像,国内机构创建全球最大人脸数据集
- 陈鑫136201010502
- JAVA基础知识(2)--队列的操作
- MSTP协议介绍和堆叠技术介绍
- 投巧解决JavaScript split方法出现空字符的问题
- CryEngine3 引擎非商业用途将免费
- 新品发布、降价普惠、拥抱开源、出海全球化 | 杭州云栖企业数字化转型峰会上的那些关键词
- 感觉自己不适合编程 确学了计算机专业,高薪程序员:“我劝他学医,别学计算机,却被冤枉在害人”...
- 计算十进制转为二进制后1的个数
- 请说出三种减少页面加载时间的方法
- 基于51单片机的超声波红外避障捡拾小车
- 3.PCIe协议分析1-预备知识点
- linux设备驱动程序之时钟管理
- LiDAR点云数据及其处理
- 前端加密js库--CryptoJs
- 小宁百度了php一句话,赛宁平台web题解(一)
- 隐藏文件去掉隐藏属性
- 旧电脑改路由器加文件服务器,如何将旧电脑改成软路由器 以winxp系统为例
- 电脑反复出现蓝屏重启现象
- 北邮考研_2019_计算机学院/网研院_时间和各科目规划安排
热门文章
- 微信特殊字符php,PHP方法处理微信昵称特殊符号过滤
- word2010设置护眼背景
- Mac上制作Mac os10.12.6启动盘的多次尝试
- 学习嵌入式怎么入门和提高?嵌入式开发教程pdf
- 函数论_E.C.Tichmarsh_Page 4 级数一致收敛的魏尔斯特拉斯 M-判别法 的推广
- docker安装时报服务失败,因为控制进程退出并带有错误代码
- 阿里开源配置服务diamond分析
- ES6: 模板字符串
- 基因组共线性分析~mauve(图文教程)
- 知识直播的“顶流”,正在被复制