鲸鱼优化算法与其他算法对比_鲸鱼优化算法百度百科

鲸鱼优化算法与其他算法对比_鲸鱼优化算法百度百科文章目录一、理论基础1、鲸鱼优化算法2、鲸鱼优化算法的改进(1)自适应调整权重(2)自适应调整搜索策略(3)AWOA流程图二、仿真对比与分析三、参考文献四、Matlab仿真程序一、理论基础1、鲸鱼优化算法请参考这里。2、鲸鱼优化算法的改进(1)自适应调整权重由于WOA在优化求解的过程中,线性的惯性权重调整策略若选择不合适,将影响算法的收敛速度。因此,本文提出了一种根据当前鲸鱼种群分布情况来自适应改变权值的大小,公式如下:w=d1⋅(Piworst−Pibest)+d2⋅(xiupper−xilo

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

一、理论基础

1、鲸鱼优化算法

请参考这里

2、鲸鱼优化算法的改进

(1)自适应调整权重

由于WOA在优化求解的过程中,线性的惯性权重调整策略若选择不合适,将影响算法的收敛速度。因此,本文提出了一种根据当前鲸鱼种群分布情况来自适应改变权值的大小,公式如下: w = d 1 ⋅ ( P i worst − P i best ) + d 2 ⋅ ( x i upper − x i lower ) / n g (1) w=d_1\cdot(P_{i\text{worst}}-P_{i\text{best}})+d_2\cdot(x_i^{\text{upper}}-x_i^{\text{lower}})/n_g\tag{1} w=d1(PiworstPibest)+d2(xiupperxilower)/ng(1)其中, n g n_g ng表示当前种群的迭代次数; x i upper x_i^{\text{upper}} xiupper x i lower x_i^{\text{lower}} xilower分别为变量 x i x_i xi的上界和下界; P i worst P_{i\text{worst}} Piworst P i best P_{i\text{best}} Pibest分别为当前鲸鱼种群中最差鲸鱼的位置向量和最优鲸鱼的位置向量; d 1 d_1 d1 d 2 d_2 d2是两个常数。因此,当前鲸鱼个体自适应调整权重收缩包围更新位置和自适应调整权重螺旋更新位置公式如下: X ( t + 1 ) = w ⋅ X ∗ ( t ) − A ⋅ D (2) X(t+1)=w\cdot X^*(t)-A\cdot D\tag{2} X(t+1)=wX(t)AD(2) X ( t + 1 ) = w ⋅ X ∗ ( t ) + D p ′ ⋅ e b l ⋅ cos ⁡ ( 2 π l ) (3) X(t+1)=w\cdot X^*(t)+D’_p\cdot e^{bl}\cdot\cos(2\pi l)\tag{3} X(t+1)=wX(t)+Dpeblcos(2πl)(3)这样设计自适应调整权重 w w w的好处在于,其值由两部分决定,前半部分对种群迭代次数过大时起主要调节作用,后半部分对种群陷入局部最优时起主要调节作用。权重 w w w前后两部分会根据当前种群位置的变化情况而发生变化,不拘于某种固定的形式,具有很强的自适应性。

(2)自适应调整搜索策略

为防止算法陷入局部最优,随机搜索阶段,个体根据概率阈值 Q Q Q来选取随机搜索的更新方式,概率阈值定义为 Q = ∣ f ˉ − f min ⁡ ∣ ∣ f max ⁡ − f min ⁡ ∣ (4) Q=\frac{|\bar f-f_{\min}|}{|f_{\max}-f_{\min}|}\tag{4} Q=fmaxfminfˉfmin(4)其中, f ˉ \bar f fˉ表示当前鲸鱼种群的平均适应度值; f min ⁡ f_{\min} fmin为当前鲸鱼种群中最好的适应度值; f max ⁡ f_{\max} fmax为当前鲸鱼种群中最差的适应度值。对于每个鲸鱼个体,以一个 [ 0 , 1 ] [0,1] [0,1]之间的随机数 q q q与计算出的概率阈值 Q Q Q进行数值比较。若 q < Q q<Q q<Q,随机选取的鲸鱼个体 X rand X_{\text{rand}} Xrand根据式(5)更新其位置,其他鲸鱼个体位置不变;否则,其他鲸鱼个体根据基本公式更新其位置。这样设计使得算法在迭代前期能以较大的概率在全局范围内随机产生一组解,避免鲸鱼因聚集在一起而导致种群多样性的缺失,增强了算法的全局搜索能力。 X rand = X j min ⁡ + r ⋅ ( X j max ⁡ − X j min ⁡ ) (5) X_{\text{rand}}=X_{j\min}+r\cdot(X_{j\max}-X_{j\min})\tag{5} Xrand=Xjmin+r(XjmaxXjmin)(5)其中, r r r [ 0 , 1 ] [0,1] [0,1]之间的随机数; X j min ⁡ X_{j\min} Xjmin X j max ⁡ X_{j\max} Xjmax分别为变量 X rand X_{\text{rand}} Xrand取值的最小值和最大值。

(3)AWOA流程图

综上所述,本文提出的AWOA执行过程中的流程图如图1所示。
在这里插入图片描述


图1 AWOA流程图

二、仿真对比与分析

本文测试函数以文献[1]中的f1~f3为例,以30维为例。经过反复多次仿真,对AWOA算法的最优参数设置如下:常数 b = 1 b=1 b=1 d 1 = 1 × 1 0 − 4 d_1=1×10^{-4} d1=1×104 d 2 = 1 × 1 0 − 4 d_2=1×10^{-4} d2=1×104,标准WOA[2]、CWOA[3]、IWOA[4]、CPWOA[5]和WOAWC[6]中的其他参数均按照其对应参考文献设置。种群规模 N = 30 N=30 N=30,最大迭代次数 M a x _ i t e r = 500 Max\_iter=500 Max_iter=500,每个算法独立运算30次。
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

函数:F1
WOA:最优值: 1.0275e-88,最差值:2.2887e-70,平均值:7.6347e-72,标准差:4.1784e-71
CWOA:最优值: 0,最差值:0,平均值:0,标准差:0
IWOA:最优值: 5.8869e-128,最差值:3.9601e-115,平均值:1.6159e-116,标准差:7.3161e-116
CPWOA:最优值: 7.5304e-40,最差值:2.4677e-31,平均值:1.5636e-32,标准差:5.1077e-32
WOAWC:最优值: 0,最差值:0,平均值:0,标准差:0
AWOA:最优值: 0,最差值:0,平均值:0,标准差:0
函数:F2
WOA:最优值: 197.2851,最差值:198.0525,平均值:197.7349,标准差:0.18177
CWOA:最优值: 197.236,最差值:197.8923,平均值:197.5488,标准差:0.15479
IWOA:最优值: 197.4065,最差值:198.1475,平均值:197.7051,标准差:0.17241
CPWOA:最优值: 0.27532,最差值:197.4893,平均值:55.9569,标准差:80.772
WOAWC:最优值: 197.0951,最差值:197.1861,平均值:197.1288,标准差:0.021044
AWOA:最优值: 197.0692,最差值:197.4661,平均值:197.2064,标准差:0.098759
AWOA:最优值: 196.9541,最差值:197.2277,平均值:197.1117,标准差:0.057015
函数:F3
WOA:最优值: 0.080895,最差值:0.99112,平均值:0.43008,标准差:0.26211
CWOA:最优值: 0.33137,最差值:1.4031,平均值:0.75583,标准差:0.27682
IWOA:最优值: 0.72263,最差值:4.3749,平均值:2.7275,标准差:1.0025
CPWOA:最优值: 0.038945,最差值:0.21567,平均值:0.11654,标准差:0.0511
WOAWC:最优值: 0.045654,最差值:0.21824,平均值:0.11793,标准差:0.044555
AWOA:最优值: 0.14015,最差值:0.75181,平均值:0.44644,标准差:0.16601

仿真结果表明,AWOA在收敛精度和收敛速度方面总体上优于其他多种改进的鲸鱼优化算法。

三、参考文献

[1] 孔芝, 杨青峰, 赵杰, 等. 基于自适应调整权重和搜索策略的鲸鱼优化算法[J]. 东北大学学报(自然科学版), 2020, 41(1): 35-43.
[2] Seyedali M, Andrew L. The whale optimization algorithm[J]. Advances in Engineering Software, 2016, 95: 51-67.
[3] 王坚浩, 张亮, 史超, 等.基于混沌搜索策略的鲸鱼优化算法[J]. 控制与决策, 2019, 34(9): 1893-1900.
[4] 龙文, 蔡绍洪, 焦建军, 等. 求解大规模优化问题的改进鲸鱼优化算法[J]. 系统工程理论与实践, 2017, 37(11): 2983-2994.
[5] 黄清宝, 李俊兴, 宋春宁, 等.基于余弦控制因子和多项式变异的鲸鱼优化算法[J]. 控制与决策, 2020, 35(3): 559-568.
[6] 郭振洲, 王平, 马云峰, 等. 基于自适应权重和柯西变异的鲸鱼优化算法[J]. 微电子学与计算机, 2017, 34(9): 20-25.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/185640.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Java获取当前年月日、时间[通俗易懂]

    Java获取当前年月日、时间[通俗易懂]两种方法,通过Date类或者通过Calendar类。Date类比较简单,但是要得到细致的字段的话Calendar类比较方便。importjava.text.DateFormat;importjava.text.SimpleDateFormat;importjava.util.Calendar;importjava.util.Date;importjava.util.L

    2022年10月21日
  • 如何用51单片机控制步进电机运动

    如何用51单片机控制步进电机运动本来接触单片机挺久了的,但是一直只是停留在非常初级的认识阶段,本科的时候上过几门课,但是从来没有自己捣鼓过单片机,这次突然来了兴趣,感觉一下子学到了好多东西,在这里好好整理一下。这篇文章只适合于入门阶段的小白阅读,高手请绕道。12年年初的时候购买了一套普中科技的“单片机开发试验仪”,好多次想好好学学,结果每一次都半途而废,主要原因还是周围的人都不会用,有问题都不知道找谁问,结果锁到箱子里一直到现在。

  • linux单引号双引号反引号_unix和linux的区别

    linux单引号双引号反引号_unix和linux的区别特殊的赋值Shell中可以将数字或字符直接赋予变量,也可以将Linux命令的执行结果赋予变量,如下:(1)$count=9#将数字赋予变量count(2)$name=”ming”#将字符赋予变量name(3)$listc=`ls-la`#将Linux命令赋予listc,listc的值就是该命令的执行结果反引号的作用反引号的作用就是将反引号内的Lin…

    2022年10月25日
  • 八、装饰者模式—巴厘岛,奶茶店的困扰! #和设计模式一起旅行#[通俗易懂]

    善于思考,方法总比问题多!故事背景我和漂亮的模式MM来到巴厘岛,这里火山爆发刚刚结束不久,一切要重新开始,来到这个地方几天后,觉得这个地方还是不错,于是就决定在这里开一个奶茶店,因为这里游客比较多,流量大,反正之前我们也没有开店的体验,那么一拍即合,开个奶茶店,体验一下了。 奶茶店的名字:Beautiful Life milk tea!名字起好了,那么我们就开始想如…

  • hashmap和hashtable数组扩容_散列表扩容

    hashmap和hashtable数组扩容_散列表扩容前言众所周知,hashmap和Arraylist作为java中非常重要的一种数据结构,应用场景非常广泛,这篇文章主要针对HashMap和ArrayList的扩容机制进行分析。HashMap扩容机制分析在说HashMap扩容机制之前,有必要简述下HashMap的基本结构。以便各位更加清除的理解HashMap的底层是如何扩容的。HashMap自JDK1.8之后结构采用数组+单链表【单链表长度达到…

  • java销毁定时器_Java 定时器退出解决方案

    java销毁定时器_Java 定时器退出解决方案项目中用到了Timer每隔一段时间进行一些操作,现在发现有时候莫名其妙地挂在这个计时器上的操作都不做了,用“JConsole”查看其中的线程以后,发现这个定时器线程也不在了(定时器创建的时候带了名字Timertimer=newTimer(“MyTimer”),所以直接能看到),由于日志太多,之前的日志已经找不到了,所以没有办法看是否是有异常发生以及发生在哪里。初步估计,是不是由于T…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号