鲸鱼优化算法(whale optimization algorithm,WOA)是模仿座头鲸的狩猎行为进而提出的一种新型启发式优化算法。在 WOA 算法中,每只座头鲸的位置代表一个可行解。在海洋活动中,座头鲸有
着一种特殊的狩猎方法,这种觅食行为称为bubble-net 捕食策略 [27] ,其狩猎行为如图 1 所示。
座头鲸在狩猎时要包围猎物,为了描述这种行为,Mirjalili 提出了下面的数学模型:
D = ∣ C X ∗ ( t ) − X ( t ) ∣ X ( t + 1 ) = X ∗ ( t ) − A D D=|CX^{*}(t)-X(t)|\\ X(t+1)=X^{*}(t)-AD D=∣CX∗(t)−X(t)∣X(t+1)=X∗(t)−AD
式中: t t t是当前迭代次数; A A A和 C C C为表示系数, X ∗ ( t ) X^{*}(t) X∗(t)表示目前为止最好的鲸鱼位置向量, X ( t ) X(t) X(t)
表示当前鲸鱼的位置向量,$A $和 C C C 由下式可得到
A = 2 a r 1 − a C = 2 r 2 a = 2 − 2 t T m a x A=2ar_{1}-a\\ C=2r_{2}\\ a=2-\frac {2t}{T_{max}} A=2ar1−aC=2r2a=2−Tmax2t
其中, r 1 r_{1} r1 和 r 2 r_{2} r2是(0,1)中的随机数,a 的值从 2到 0 线性下降, t t t 表示当前的迭代次数, T m a x T_{max} Tmax 为最大迭代次数。
根据座头鲸的狩猎行为,它是以螺旋运动游向猎物,故狩猎行为的数学模型如下:
X ( t + 1 ) = X ∗ ( t ) + D p e b l c o s ( 2 π l ) X(t+1)=X^{*}(t)+D_{p}e^{bl}cos(2\pi l) X(t+1)=X∗(t)+Dpeblcos(2πl)
其中, D p = ∣ X ∗ ( t ) − X ( t ) ∣ D_{p} =|X^{*} (t)−X(t)| Dp=∣X∗(t)−X(t)∣表示鲸鱼和猎物之间的距离, X ∗ ( t ) X^{*}(t) X∗(t)表示目前为止最好的位置向量, b b b 是一个常数,用来定义螺线的形状, l l l 是(−1,1)中的随机数。值得注意的是,鲸鱼以螺旋形状游向猎物的同时还要收缩包围圈。因此,在这种同步行为模型中,假设有 P i P_{i} Pi 的概率选择收缩包围机制和 1 − P i 1−P_{i} 1−Pi的概率选择螺旋模型来更新鲸鱼的位置,其数学模型如下:
X ( t + 1 ) = { X ∗ ( t ) − A D , p < P i X ( t ) = X ∗ ( t ) + D p e b l c o s ( 2 π l ) X(t+1)=\begin{cases} X^{*}(t)-AD, p<P_{i}\\ X(t)=X^{*}(t)+D_{p}e^{bl}cos(2\pi l) \end{cases} X(t+1)={
X∗(t)−AD,p<PiX(t)=X∗(t)+Dpeblcos(2πl)
攻击猎物时,在数学模型上靠近猎物设定了减小 a a a 的值,这样 A A A 的波动范围也随$ a$ 下降。在迭代过程中当 a a a的值从2到0下降时, A A A是在 [ − a , a ] [−a,a] [−a,a]内的随机值,当 A A A 的值在[−1,1]内时,鲸鱼的下一个位置可以是它现在的位置和猎物的位置之间的任意位置,算法设定当 A < 1 A<1 A<1 时,鲸鱼向猎物发起攻击。
在搜索猎物时,其数学模型如下:
D = ∣ C X r a n d − X t ∣ X ( t + 1 ) = X r a n d − A D D=|CX_{rand}-X{t}|\\ X(t+1)=X_{rand}-AD D=∣CXrand−Xt∣X(t+1)=Xrand−AD
其中, X r a n d X_{rand} Xrand 是随机选择的鲸鱼位置向量,算法设定当 A ≥ 1 A≥1 A≥1 时,随机选择一个搜索代理,根据随机选择的鲸鱼位置来更新其他鲸鱼的位置,迫使鲸鱼偏离猎物,借此找到一个更合适的猎物,这样可以加强算法的勘探能力使 WOA 算法能够进行全局
搜索。
(1)初始化参数:即鲸鱼种群规模大小 S N SN SN,最大迭代次数 T m a x T_{max} Tmax ;
(2)算法初始化鲸鱼种群的位置;
(3)计算每一头鲸鱼相应的适应度值,根据适应度值的大小排序,并选取 S N SN SN 个作为初始种群;
(4)计算出 S N SN SN个个体适应度值的大小,找出适应度值最小的个体位置作为最优位置;
(5)更新下一代的位置;
(6)若达到终止条件,则输出最优个体,即算法找到的最优解;否则,返回步骤(4)。
[1]Seyedali Mirjalili,Andrew Lewis. The Whale Optimization Algorithm[J]. Advances in Engineering Software,2016,95.
鲸鱼优化算法
改进算法matlab代码
名称 | 说明或者参考文献 |
---|---|
混合策略改进鲸鱼优化算法(IWOA) | [1]徐航,张达敏,王依柔,宋婷婷,樊英.混合策略改进鲸鱼优化算法[J].计算机工程与设计,2020,41(12):3397-3404. |
基于高斯映射和小孔成像学习策略的鲸鱼优化算法(IWOA) | [1]徐航,张达敏,王依柔,宋婷婷,王栎桥.基于高斯映射和小孔成像学习策略的鲸鱼优化算法[J].计算机应用研究,2020,37(11):3271-3275. |
一种非线性权重的自适应鲸鱼优化算法(NWAWOA) | [1]赵传武,黄宝柱,阎跃观,代文晨,张建.一种非线性权重的自适应鲸鱼优化算法[J].计算机技术与发展,2020,30(10):7-13. |
一种基于精英反向和纵横交叉的鲸鱼优化算法(ECWOA) | [1]刘琨,赵露露,王辉.一种基于精英反向和纵横交叉的鲸鱼优化算法[J].小型微型计算机系统,2020,41(10):2092-2097. |
一种全局搜索策略的鲸鱼优化算法(GSWOA) | [1]刘磊,白克强,但志宏,张松,刘知贵.一种全局搜索策略的鲸鱼优化算法[J].小型微型计算机系统,2020,41(09):1820-1825. |
基于自适应决策算子的鲸鱼优化算法(IWOA) | [1]徐航,张达敏,王依柔,宋婷婷,樊英.基于自适应决策算子的鲸鱼优化算法[J].智能计算机与应用,2020,10(09):6-11. |
基于混沌的正余弦鲸鱼优化算法(EWOA) | [1]林杰,何庆,王茜,杨荣莹,宁杰琼.基于混沌的正余弦鲸鱼优化算法[J].智能计算机与应用,2020,10(09):43-48+52. |
一种基于交叉选择的柯西反向鲸鱼优化算法(QOWOA) | [1]冯文涛,邓兵.一种基于交叉选择的柯西反向鲸鱼优化算法[J].兵器装备工程学报,2020,41(08):131-137. |
一种基于自适应策略的混合鲸鱼优化算法(HWBOA) | [1]王廷元,何先波,贺春林.一种基于自适应策略的混合鲸鱼优化算法[J].西华师范大学学报(自然科学版),2021,42(01):92-99. |
一种改进的鲸鱼优化算法(IWOA) | [1]武泽权,牟永敏.一种改进的鲸鱼优化算法[J].计算机应用研究,2020,37(12):3618-3621. |
基于阈值控制的一种改进鲸鱼算法(TIWOA) | [1]黄飞,吴泽忠.基于阈值控制的一种改进鲸鱼算法[J].系统工程,2020,38(02):133-148. |
基于莱维飞行和自适应策略的正弦余弦算法 | [1]黄辉先,张广炎,陈思溢,胡拚.基于混沌权重和精英引导的鲸鱼优化算法[J].传感器与微系统,2020,39(05):113-116. |
基于自适应调整权重和搜索策略的鲸鱼优化算法(AWOA) | [1]孔芝,杨青峰,赵杰,熊浚钧.基于自适应调整权重和搜索策略的鲸鱼优化算法[J].东北大学学报(自然科学版),2020,41(01):35-43. |
嵌入Circle映射和逐维小孔成像反向学习的鲸鱼优化算法(MWOA) | [1]张达敏,徐航,王依柔,宋婷婷,王栎桥.嵌入Circle映射和逐维小孔成像反向学习的鲸鱼优化算法[J].控制与决策,2021,36(05):1173-1180. |
融合动态概率阈值和自适应变异的鲸鱼优化算法(PTMWOA) | [1]毕孝儒,牟琦,龚尚福.融合动态概率阈值和自适应变异的鲸鱼优化算法[J].微电子学与计算机,2019,36(12):78-83+88. |
基于改进螺旋更新位置模型的鲸鱼优化算法(IMWOA) | [1]吴泽忠,宋菲.基于改进螺旋更新位置模型的鲸鱼优化算法[J].系统工程理论与实践,2019,39(11):2928-2944. |
一种增强型鲸鱼优化算法(EWOA) | [1]冯文涛,宋科康.一种增强型鲸鱼优化算法[J].计算机仿真,2020,37(11):275-279+357. |
混沌策略和单纯形法改进的鲸鱼优化算法(CSWOA) | [1]张潮,冯锋.混沌策略和单纯形法改进的鲸鱼优化算法[J].中国科技论文,2020,15(03):293-299. |
精英反向黄金正弦鲸鱼算法(EGoldenSWOA) | [1]肖子雅,刘升.精英反向黄金正弦鲸鱼算法及其工程优化研究[J].电子学报,2019,47(10):2177-2186. |
基于非线性收敛因子和局部扰动的鲸鱼算法(NPWOA) | [1]于俊洋,高宁杰,李涵.基于非线性收敛因子和局部扰动的鲸鱼算法[J].计算机工程与设计,2019,40(10):2861-2866. |
混沌反馈自适应鲸鱼优化算法研究(CFAWOA) | [1]涂春梅,陈国彬,刘超.混沌反馈自适应鲸鱼优化算法研究[J].统计与决策,2019,35(07):17-20. |
基于混沌搜索策略的鲸鱼优化算法(CWOA) | [1]王坚浩,张亮,史超,车飞,丁刚,武杰.基于混沌搜索策略的鲸鱼优化算法[J].控制与决策,2019,34(09):1893-1900. |
基于反馈机制的鲸鱼优化算法(FWOA) | [1]范家承,何杰光.基于反馈机制的鲸鱼优化算法[J].广东石油化工学院学报,2018,28(04):47-51. |
基于随机差分变异的改进鲸鱼优化算法(IWOA) | [1]覃溪,龙文.基于随机差分变异的改进鲸鱼优化算法[J].中国科技论文,2018,13(08):937-942. |
收敛因子非线性变化的鲸鱼优化算法(IWOA) | [1]龙文,伍铁斌,唐斌.收敛因子非线性变化的鲸鱼优化算法[J].兰州理工大学学报,2017,43(06):102-107. |
基于自适应权重和柯西变异的鲸鱼优化算法(WOAWC) | [1]郭振洲,王平,马云峰,王琦,拱长青.基于自适应权重和柯西变异的鲸鱼优化算法[J].微电子学与计算机,2017,34(09):20-25. |
一种随机调整控制参数的鲸鱼优化算法(EWOA) | [1]钟明辉,龙文.一种随机调整控制参数的鲸鱼优化算法[J].科学技术与工程,2017,17(12):68-73. |
算法相关应用matlab代码
名称 | 说明或者参考文献 |
---|---|
鲸鱼优化的BP神经网络(预测) | https://blog.csdn.net/u011835903/article/details/112149776 (原理一样,只是优化算法为鲸鱼) |
鲸鱼优化的BP神经网络(分类) | https://blog.csdn.net/u011835903/article/details/112149394(原理一样,只是优化算法为鲸鱼) |
基于鲸鱼优化的Elman神经网络数据预测 | https://blog.csdn.net/u011835903/article/details/111411129(原理一样,只是优化算法为鲸鱼) |
基于鲸鱼算法的极限学习机(ELM)分类算法 | https://blog.csdn.net/u011835903/article/details/111177850(原理一样,只是优化算法为鲸鱼) |
基于鲸鱼算法的极限学习机(ELM)回归预测 | https://blog.csdn.net/u011835903/article/details/111073635(原理一样,只是优化算法为鲸鱼) |
基于鲸鱼算法优化的广义回归神经网络(GRNN)预测 | https://blog.csdn.net/u011835903/article/details/110941139(原理一样,只是优化算法为鲸鱼) |
基于鲸鱼算法优化的SVM回归预测 | https://blog.csdn.net/u011835903/article/details/110630270(原理一样,只是优化算法为鲸鱼) |
基于鲸鱼算法优化的SVM数据分类 | https://blog.csdn.net/u011835903/article/details/110523352(原理一样,只是优化算法为鲸鱼) |
基于鲸鱼优化的最大熵多阈值分割 | https://blog.csdn.net/u011835903/article/details/108203775(原理一样,只是优化算法为鲸鱼) |
鲸鱼算法优化的otsu多阈值分割 | https://blog.csdn.net/u011835903/article/details/108019744(原理一样,只是优化算法为鲸鱼) |
鲸鱼优化的PID参数优化 | https://blog.csdn.net/u011835903/article/details/109306387(原理一样,只是优化算法为鲸鱼) |
基于鲸鱼算法的无线传感器网(WSN)覆盖优化 | https://blog.csdn.net/u011835903/article/details/109262039(原理一样,只是优化算法为鲸鱼) |
基于鲸鱼算法的3D无线传感器网(WSN)覆盖优化 | https://blog.csdn.net/u011835903/article/details/113834323(原理一样,只是优化算法为鲸鱼) |
改进算法python代码
名称 | 说明或者参考文献 |
---|---|
混合策略改进鲸鱼优化算法(IWOA) | [1]徐航,张达敏,王依柔,宋婷婷,樊英.混合策略改进鲸鱼优化算法[J].计算机工程与设计,2020,41(12):3397-3404. |
基于高斯映射和小孔成像学习策略的鲸鱼优化算法(IWOA) | [1]徐航,张达敏,王依柔,宋婷婷,王栎桥.基于高斯映射和小孔成像学习策略的鲸鱼优化算法[J].计算机应用研究,2020,37(11):3271-3275. |
一种非线性权重的自适应鲸鱼优化算法(NWAWOA) | [1]赵传武,黄宝柱,阎跃观,代文晨,张建.一种非线性权重的自适应鲸鱼优化算法[J].计算机技术与发展,2020,30(10):7-13. |
一种基于精英反向和纵横交叉的鲸鱼优化算法(ECWOA) | [1]刘琨,赵露露,王辉.一种基于精英反向和纵横交叉的鲸鱼优化算法[J].小型微型计算机系统,2020,41(10):2092-2097. |
一种全局搜索策略的鲸鱼优化算法(GSWOA) | [1]刘磊,白克强,但志宏,张松,刘知贵.一种全局搜索策略的鲸鱼优化算法[J].小型微型计算机系统,2020,41(09):1820-1825. |
基于自适应决策算子的鲸鱼优化算法(IWOA) | [1]徐航,张达敏,王依柔,宋婷婷,樊英.基于自适应决策算子的鲸鱼优化算法[J].智能计算机与应用,2020,10(09):6-11. |
基于混沌的正余弦鲸鱼优化算法(EWOA) | [1]林杰,何庆,王茜,杨荣莹,宁杰琼.基于混沌的正余弦鲸鱼优化算法[J].智能计算机与应用,2020,10(09):43-48+52. |
一种基于交叉选择的柯西反向鲸鱼优化算法(QOWOA) | [1]冯文涛,邓兵.一种基于交叉选择的柯西反向鲸鱼优化算法[J].兵器装备工程学报,2020,41(08):131-137. |
一种基于自适应策略的混合鲸鱼优化算法(HWBOA) | [1]王廷元,何先波,贺春林.一种基于自适应策略的混合鲸鱼优化算法[J].西华师范大学学报(自然科学版),2021,42(01):92-99. |
一种改进的鲸鱼优化算法(IWOA) | [1]武泽权,牟永敏.一种改进的鲸鱼优化算法[J].计算机应用研究,2020,37(12):3618-3621. |
基于阈值控制的一种改进鲸鱼算法(TIWOA) | [1]黄飞,吴泽忠.基于阈值控制的一种改进鲸鱼算法[J].系统工程,2020,38(02):133-148. |
基于莱维飞行和自适应策略的正弦余弦算法 | [1]黄辉先,张广炎,陈思溢,胡拚.基于混沌权重和精英引导的鲸鱼优化算法[J].传感器与微系统,2020,39(05):113-116. |
基于自适应调整权重和搜索策略的鲸鱼优化算法(AWOA) | [1]孔芝,杨青峰,赵杰,熊浚钧.基于自适应调整权重和搜索策略的鲸鱼优化算法[J].东北大学学报(自然科学版),2020,41(01):35-43. |
嵌入Circle映射和逐维小孔成像反向学习的鲸鱼优化算法(MWOA) | [1]张达敏,徐航,王依柔,宋婷婷,王栎桥.嵌入Circle映射和逐维小孔成像反向学习的鲸鱼优化算法[J].控制与决策,2021,36(05):1173-1180. |
融合动态概率阈值和自适应变异的鲸鱼优化算法(PTMWOA) | [1]毕孝儒,牟琦,龚尚福.融合动态概率阈值和自适应变异的鲸鱼优化算法[J].微电子学与计算机,2019,36(12):78-83+88. |
基于改进螺旋更新位置模型的鲸鱼优化算法(IMWOA) | [1]吴泽忠,宋菲.基于改进螺旋更新位置模型的鲸鱼优化算法[J].系统工程理论与实践,2019,39(11):2928-2944. |
一种增强型鲸鱼优化算法(EWOA) | [1]冯文涛,宋科康.一种增强型鲸鱼优化算法[J].计算机仿真,2020,37(11):275-279+357. |
混沌策略和单纯形法改进的鲸鱼优化算法(CSWOA) | [1]张潮,冯锋.混沌策略和单纯形法改进的鲸鱼优化算法[J].中国科技论文,2020,15(03):293-299. |
精英反向黄金正弦鲸鱼算法(EGoldenSWOA) | [1]肖子雅,刘升.精英反向黄金正弦鲸鱼算法及其工程优化研究[J].电子学报,2019,47(10):2177-2186. |
基于非线性收敛因子和局部扰动的鲸鱼算法(NPWOA) | [1]于俊洋,高宁杰,李涵.基于非线性收敛因子和局部扰动的鲸鱼算法[J].计算机工程与设计,2019,40(10):2861-2866. |
混沌反馈自适应鲸鱼优化算法研究(CFAWOA) | [1]涂春梅,陈国彬,刘超.混沌反馈自适应鲸鱼优化算法研究[J].统计与决策,2019,35(07):17-20. |
基于混沌搜索策略的鲸鱼优化算法(CWOA) | [1]王坚浩,张亮,史超,车飞,丁刚,武杰.基于混沌搜索策略的鲸鱼优化算法[J].控制与决策,2019,34(09):1893-1900. |
基于反馈机制的鲸鱼优化算法(FWOA) | [1]范家承,何杰光.基于反馈机制的鲸鱼优化算法[J].广东石油化工学院学报,2018,28(04):47-51. |
基于随机差分变异的改进鲸鱼优化算法(IWOA) | [1]覃溪,龙文.基于随机差分变异的改进鲸鱼优化算法[J].中国科技论文,2018,13(08):937-942. |
收敛因子非线性变化的鲸鱼优化算法(IWOA) | [1]龙文,伍铁斌,唐斌.收敛因子非线性变化的鲸鱼优化算法[J].兰州理工大学学报,2017,43(06):102-107. |
基于自适应权重和柯西变异的鲸鱼优化算法(WOAWC) | [1]郭振洲,王平,马云峰,王琦,拱长青.基于自适应权重和柯西变异的鲸鱼优化算法[J].微电子学与计算机,2017,34(09):20-25. |
一种随机调整控制参数的鲸鱼优化算法(EWOA) | [1]钟明辉,龙文.一种随机调整控制参数的鲸鱼优化算法[J].科学技术与工程,2017,17(12):68-73. |
文章浏览阅读3.8k次,点赞9次,收藏28次。直接上一个工作中碰到的问题,另外一个系统开启多线程调用我这边的接口,然后我这边会开启多线程批量查询第三方接口并且返回给调用方。使用的是两三年前别人遗留下来的方法,放到线上后发现确实是可以正常取到结果,但是一旦调用,CPU占用就直接100%(部署环境是win server服务器)。因此查看了下相关的老代码并使用JProfiler查看发现是在某个while循环的时候有问题。具体项目代码就不贴了,类似于下面这段代码。while(flag) {//your code;}这里的flag._main函数使用while(1)循环cpu占用99
文章浏览阅读347次。idea shift f6 快捷键无效_idea shift +f6快捷键不生效
文章浏览阅读135次。Ecmacript 中没有DOM 和 BOM核心模块Node为JavaScript提供了很多服务器级别,这些API绝大多数都被包装到了一个具名和核心模块中了,例如文件操作的 fs 核心模块 ,http服务构建的http 模块 path 路径操作模块 os 操作系统信息模块// 用来获取机器信息的var os = require('os')// 用来操作路径的var path = require('path')// 获取当前机器的 CPU 信息console.log(os.cpus._node模块中有很多核心模块,以下不属于核心模块,使用时需下载的是
文章浏览阅读10w+次,点赞435次,收藏3.4k次。SPSS 22 下载安装过程7.6 方差分析与回归分析的SPSS实现7.6.1 SPSS软件概述1 SPSS版本与安装2 SPSS界面3 SPSS特点4 SPSS数据7.6.2 SPSS与方差分析1 单因素方差分析2 双因素方差分析7.6.3 SPSS与回归分析SPSS回归分析过程牙膏价格问题的回归分析_化工数学模型数据回归软件
文章浏览阅读7.5k次。如何利用hutool工具包实现邮件发送功能呢?1、首先引入hutool依赖<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.7.19</version></dependency>2、编写邮件发送工具类package com.pc.c..._hutool发送邮件
文章浏览阅读867次,点赞2次,收藏2次。docker安装elasticsearch,elasticsearch-head,kibana,ik分词器安装方式基本有两种,一种是pull的方式,一种是Dockerfile的方式,由于pull的方式pull下来后还需配置许多东西且不便于复用,个人比较喜欢使用Dockerfile的方式所有docker支持的镜像基本都在https://hub.docker.com/docker的官网上能找到合..._docker安装kibana连接elasticsearch并且elasticsearch有密码
文章浏览阅读1.3w次,点赞57次,收藏92次。整理 | 郑丽媛出品 | CSDN(ID:CSDNnews)近年来,随着机器学习的兴起,有一门编程语言逐渐变得火热——Python。得益于其针对机器学习提供了大量开源框架和第三方模块,内置..._beeware
文章浏览阅读7.9k次。//// ViewController.swift// Day_10_Timer//// Created by dongqiangfei on 2018/10/15.// Copyright 2018年 飞飞. All rights reserved.//import UIKitclass ViewController: UIViewController { ..._swift timer 暂停
文章浏览阅读986次,点赞2次,收藏2次。1.硬性等待让当前线程暂停执行,应用场景:代码执行速度太快了,但是UI元素没有立马加载出来,造成两者不同步,这时候就可以让代码等待一下,再去执行找元素的动作线程休眠,强制等待 Thread.sleep(long mills)package com.example.demo;import org.junit.jupiter.api.Test;import org.openqa.selenium.By;import org.openqa.selenium.firefox.Firefox.._元素三大等待
文章浏览阅读3k次,点赞4次,收藏14次。Java软件工程师职位分析_java岗位分析
文章浏览阅读2k次。Java:Unreachable code的解决方法_java unreachable code
文章浏览阅读1w次。1、html中设置标签data-*的值 标题 11111 222222、点击获取当前标签的data-url的值$('dd').on('click', function() { var urlVal = $(this).data('ur_如何根据data-*属性获取对应的标签对象