鲸鱼优化算法(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. |
!预览·语言的发展趋势一定是动静结合、刚柔并济·Perl凝练晦涩,Python优雅明晰,Ruby精巧灵动,PHP简明单纯·或许优雅正是来自对细节和规范的重视·(RoR)与Ruby结合之后,便如一只猱身而上灵猫,立刻衬托出Java和.NET大象般的身影 ?提问Perl、Python、Ruby和PHP各自有何特点?为什么动态语言多作为轻量级的解决方案?LAMP为什么受欢
// 程序员面试100题之十五 含有指针成员的类的拷贝.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include using namespace std;template class Array_Wrong //含有指针的类复制时,会调用合成的默认复制构造函数,只复制指针的地址,这样容易出现悬垂指针。{public: Array_Wro
创建表create table testTable (id varchar(200) primary key not null,testRecord varchar(200),)为字段添加注释格式如右:execute sp_addextendedproperty 'MS_Description','字段备注信息','user','dbo','table'...
(1)首先要确定自己是否按照官网下载了llvm(2)一般Ubuntu都会自带llvm和clang,所以我们要更改系统指定llvm和clang的版本。llvm 一定要制定官网下载的,clang要制定llvm里bin目录下的clang
今天,可以说是极其痛苦的一天,想办法在某宝上还完款后,我决定关掉透支功能。说实话,以前的我挺不理解这种透支的生活,见到身边很多人,一领到工资,第一件事就是还款。然而,受惢客项目的困扰,我也过上了自己所不理解的那种生活。这让我感悟到了一句话:“不要轻易去评价别人,因为你没有经历过他的人生。”同时,也让我想到了曾经在网络上看到的一句话:“当一个人能力配不上野心,才华撑不起志向的时候,现实会让你活成自己曾经讨厌的样子。”同时,通过对信用透支的体验,从产品角度思考让我感悟到了三个假象:第一个假象就是无限..
8086 Intel 8086是一个由Intel于1978年所设计的16位微处理器芯片,是x86架构的鼻祖。不久,Intel 8088就推出了,拥有一个外部的8位数据总线,允许便宜的芯片用途。它是以8080和8085的设计为基础,拥有类似的寄存器组,但是数据总线扩充为16位。总线界面单元(Bus Interface Unit)透过6字节预存(prefecth) 的队列(queu
解压好了arm-linuxg-gcc 放到了$PATH路径下, 无论怎么执行都提示说: no such file or directory,可明明有这个文件的.N遍之后, 执行了 file arm-Linux-gcc发现这个命令是32位的, 需要安装兼容包,于是apt-get install libc6:i386 libgcc1:i386 gcc-4.6-base:i386:ia32-libsli...
前言在项目中可能会有工具类或者其他类,需要注入Service业务层的类,然而直接注入的话是注入不进去的解决办法可以使用如下办法可以解决 @Componentpublic class ArticleInfoUtils { private static MessageService messageService; @Autowired public v...
一、自定义标签的作用 自定义标签主要用于移除Jsp页面中的java代码。二、自定义标签开发和使用2.1、自定义标签开发步骤 1、编写一个实现Tag接口的Java类(标签处理器类)要编写一个自定义标签,首先要实现一个Tag接口的类。但是Jsp内部已经有实现该接口的类,我们先自己实现一个。package me.gacl.web.tag;import java.io.IOException;impo
RadioGroup默认的横向android:orientation="horizontal"、竖向布局android:orientation="vertical",无法设置每行显示的个数,只能全部横向显示或者竖向显示。而通过线性布局模版后,RadioButton却变成不是同一个组的,变成不是单选的,达不到原先想要的效果。在RadioGroup中一行显示2个RadioButton,上面的方
一 Java中的值传递和引用传递 1.概念说明 当一个对象被当作参数传递到一个方法后,在此方法内可以改变这个对象的属性,那么 这里到底是“按值传递”还是“按引用传递”? 答:是按值传递。Java 语言的参数传递只有“按值传递”。当一个实例对象作为参数被传 递到方法中时,参数的值就是该对象的引用的一个副本。指向同...
github连接很慢的解决方法其实也是网上学来的方法访问https://www.ipaddress.com/ip-lookup查询github.com和github.global.ssl.fastly.netsudo vim /etc/hosts打开文件,把查询到的两个地址添加到后面gitclone很慢经常显示“无法访问”等问题比如git clone https://github.com/google/leveldb.git可以更换为git clone git://github.com/