基于混沌收敛因子和惯性权重的鲸鱼优化算法

2024-01-28 13:30

本文主要是介绍基于混沌收敛因子和惯性权重的鲸鱼优化算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、理论基础
    • 1、鲸鱼优化算法
    • 2、改进的鲸鱼优化算法
      • (1)增强种群多样性的初始化策略
      • (2)混沌收敛因子和惯性权重协同更新策略
      • (3)多项式变异策略
  • 二、仿真实验与结果分析
  • 三、参考文献

一、理论基础

1、鲸鱼优化算法

请参考这里。

2、改进的鲸鱼优化算法

(1)增强种群多样性的初始化策略

采用随机方法产生初始种群不能保证初始种群较好地覆盖待优化问题的寻优空间,导致初始种群分布性较差,所以本文采用一种均匀化与随机化相结合的初始化方法。
假设种群规模为 N N N,解空间的维度为 d d d,解空间中各维变量 x j ( j ∈ [ 1 , d ] ) x_j(j\in[1,d]) xj(j[1,d])的寻优区间为 [ l j , u j ] [l_j,u_j] [lj,uj]。将区间 [ l j , u j ] [l_j,u_j] [lj,uj]均匀划分成 N N N个等长的子区间,初始个体在每一维上的取值需要首先通过随机选定子区间、然后在该子区间内产生随机值而获得。均匀划分后的各子区间有且仅有一次被选取的机会,这样可在最大程度上保证初始群体的多样性。具体流程如下。
在这里插入图片描述

(2)混沌收敛因子和惯性权重协同更新策略

在标准WOA算法中,收敛因子 a a a随迭代次数的增加从2线性减小到0,然而这种简单的参数调整策略不能完全体现实际的鲸鱼群体狩猎过程。因此,本文设计一种带混沌扰动的收敛因子非线性变化策略,混沌收敛因子更新公式为 a = 2 [ 1 − ( t t max ⁡ ) 1 4 ] + 2 ∣ h t ∣ { 1 − ( t t max ⁡ ) 2 − [ 1 − ( t t max ⁡ ) 1 4 ] } (1) a=2\left[1-\left(\frac{t}{t_{\max}}\right)^{\frac14}\right]+2|h_t|\left\{1-\left(\frac{t}{t_{\max}}\right)^2-\left[1-\left(\frac{t}{t_{\max}}\right)^{\frac14}\right]\right\}\tag{1} a=2[1(tmaxt)41]+2ht{1(tmaxt)2[1(tmaxt)41]}(1)其中, h t = 1 − 2 ( h t − 1 ) 2 h_t=1-2\left(h_{t-1}\right)^2 ht=12(ht1)2,且 h t ∈ [ 0 , 1 ] , h 0 ≠ 0.5 h_t\in[0,1],h_0\neq0.5 ht[0,1],h0=0.5
收敛因子 a a a的衰减趋势如图1所示。在搜索前期,收敛因子整体较大,算法注重于全局寻优,但由于混沌扰动因素的存在,在某些寻优迭代中,收敛因子取值较小,算法进行局部寻优,可以提高收敛速度。在搜索后期,收敛因子整体较小,算法注重于局部寻优,同样由于混沌扰动,收敛因子在部分寻优迭代中取值较大,算法可在较大空间中寻优,有助于跳出局部最优。
在这里插入图片描述

图1 混沌收敛因子 a a a的变化曲线

为了进一步平衡算法的全局寻优和局部探索能力,本文引入了惯性权重策略 ,让其配合混沌收敛因子共同协调算法的全局寻优和局部开发能力。惯性权重更新公式为 w = w initial − ( w initial − w final ) sin ⁡ ( π 2 ⋅ t t max ⁡ ) (2) w=w_{\text{initial}}-(w_{\text{initial}}-w_{\text{final}})\sin\left(\frac\pi2\cdot\frac{t}{t_{\max}}\right)\tag{2} w=winitial(winitialwfinal)sin(2πtmaxt)(2)其中, w initial w_{\text{initial}} winitial w final w_{\text{final}} wfinal分别为惯性权重 w w w的初始值和终止值,其取值分别为0.9和0.2。
加入惯性权重更新策略后,当前个体包围猎物时的位置更新公式以及螺旋式运动时的位置更新公式分别为 X ( t + 1 ) = w ⋅ X ∗ ( t ) − A ∣ C ⋅ X ∗ ( t ) − X ( t ) ∣ (3) X(t+1)=w\cdot X^*(t)-A\left|C\cdot X^*(t)-X(t)\right|\tag{3} X(t+1)=wX(t)ACX(t)X(t)(3) X ( t + 1 ) = w ⋅ X ∗ ( t ) + D ′ e b l cos ⁡ ( 2 π l ) (4) X(t+1)=w\cdot X^*(t)+D'e^{bl}\cos(2\pi l)\tag{4} X(t+1)=wX(t)+Deblcos(2πl)(4)

(3)多项式变异策略

在标准鲸鱼优化算法的迭代后期,由于搜索策略的原因,种群中所有鲸鱼个体都会向最优个体聚集,导致种群多样性降低。如果此时最优个体为局部最优解,则算法将出现早熟收敛。为了防止出现这类问题,本文对当前最优鲸鱼位置引入了多项式变异,多项式变异算子形式如下 X i ′ = X i + δ i ( u i − l i ) (5) X_i'=X_i+\delta_i(u_i-l_i)\tag{5} Xi=Xi+δi(uili)(5)其中, δ i = { ( 2 r i ) 1 / ( η + 1 ) r i < 0.5 1 − [ 2 ( 1 − r i ) ] 1 / ( η + 1 ) r i ≥ 0.5 (6) \delta_i=\begin{dcases}(2r_i)^{1/(\eta+1)}\quad\quad\quad\quad\quad\, r_i<0.5\\[2ex]1-\left[2(1-r_i)\right]^{1/(\eta+1)}\quad r_i\geq0.5\end{dcases}\tag{6} δi=(2ri)1/(η+1)ri<0.51[2(1ri)]1/(η+1)ri0.5(6)式(5)~(6)中, u i u_i ui l i l_i li分别为变量 X i X_i Xi的上、下界; r i r_i ri为区间 [ 0 , 1 ] [0,1] [0,1]的随机数; η \eta η为变异分布指数,本文取值为30。

二、仿真实验与结果分析

将CWOA与WOA和IWOA[2]进行对比,以文献[1]中表1的30维的12个函数为例,实验设置种群规模为30,最大迭代次数为500,每种算法独立运算100次,结果显示如下:
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

函数:F1
WOA:最差值: 5.0552e-71, 最优值: 6.1844e-86, 平均值: 6.8793e-73, 标准差: 5.1233e-72, 秩和检验: 5.64e-39
IWOA:最差值: 3.5475e-113, 最优值: 3.8653e-128, 平均值: 6.8774e-115, 标准差: 4.4571e-114, 秩和检验: 5.64e-39
CWOA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
函数:F2
WOA:最差值: 4.2265e-50, 最优值: 4.1969e-59, 平均值: 1.2205e-51, 标准差: 5.8304e-51, 秩和检验: 2.5621e-34
IWOA:最差值: 1.3079e-65, 最优值: 6.5135e-75, 平均值: 4.2263e-67, 标准差: 1.8921e-66, 秩和检验: 2.5621e-34
CWOA:最差值: 1.8783e-173, 最优值: 6.4264e-205, 平均值: 1.8783e-175, 标准差: 0, 秩和检验: 1
函数:F3
WOA:最差值: 90.4992, 最优值: 0.0091817, 平均值: 47.8724, 标准差: 28.7591, 秩和检验: 2.5621e-34
IWOA:最差值: 66.9236, 最优值: 0.00023752, 平均值: 22.1856, 标准差: 17.7885, 秩和检验: 2.5621e-34
CWOA:最差值: 9.1379e-175, 最优值: 5.5243e-196, 平均值: 1.7891e-176, 标准差: 0, 秩和检验: 1
函数:F4
WOA:最差值: 28.7528, 最优值: 26.8789, 平均值: 27.7583, 标准差: 0.43217, 秩和检验: 0.68953
IWOA:最差值: 28.891, 最优值: 3.6695, 平均值: 28.0532, 标准差: 4.1215, 秩和检验: 1.6116e-30
CWOA:最差值: 28.268, 最优值: 27.0873, 平均值: 27.7422, 标准差: 0.22632, 秩和检验: 1
函数:F5
WOA:最差值: 0.01963, 最优值: 5.0594e-05, 平均值: 0.0037346, 标准差: 0.0040676, 秩和检验: 8.2533e-32
IWOA:最差值: 0.0088257, 最优值: 6.7849e-05, 平均值: 0.0020315, 标准差: 0.0020893, 秩和检验: 4.5902e-29
CWOA:最差值: 0.00053376, 最优值: 8.5821e-09, 平均值: 0.00010664, 标准差: 0.0001123, 秩和检验: 1
函数:F6
WOA:最差值: 8.657, 最优值: 0, 平均值: 0.08657, 标准差: 0.8657, 秩和检验: 0.013271
IWOA:最差值: 5.6843e-14, 最优值: 0, 平均值: 1.7053e-15, 标准差: 9.7456e-15, 秩和检验: 0.082738
CWOA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
函数:F7
WOA:最差值: 7.9936e-15, 最优值: 8.8818e-16, 平均值: 4.0856e-15, 标准差: 2.4994e-15, 秩和检验: 3.0982e-24
IWOA:最差值: 7.9936e-15, 最优值: 8.8818e-16, 平均值: 4.2277e-15, 标准差: 2.3041e-15, 秩和检验: 2.8564e-27
CWOA:最差值: 8.8818e-16, 最优值: 8.8818e-16, 平均值: 8.8818e-16, 标准差: 0, 秩和检验: NaN
函数:F8
WOA:最差值: 0.15504, 最优值: 0, 平均值: 0.0030291, 标准差: 0.018558, 秩和检验: 0.082748
IWOA:最差值: 1.0064, 最优值: 0, 平均值: 0.055566, 标准差: 0.22215, 秩和检验: 0.013273
CWOA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
函数:F9
WOA:最差值: 2.3543e-103, 最优值: 1.0294e-142, 平均值: 2.6804e-105, 标准差: 2.3685e-104, 秩和检验: 5.64e-39
IWOA:最差值: 2.4773e-178, 最优值: 3.3018e-228, 平均值: 3.5105e-180, 标准差: 0, 秩和检验: 5.64e-39
CWOA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
函数:F10
WOA:最差值: 3.7908e-65, 最优值: 2.4301e-82, 平均值: 4.5778e-67, 标准差: 3.8628e-66, 秩和检验: 5.64e-39
IWOA:最差值: 4.4858e-107, 最优值: 2.7888e-126, 平均值: 4.507e-109, 标准差: 4.4857e-108, 秩和检验: 5.64e-39
CWOA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
函数:F11
WOA:最差值: 0.099295, 最优值: 0.0041727, 平均值: 0.023861, 标准差: 0.018302, 秩和检验: 0.69494
IWOA:最差值: 0.61227, 最优值: 0.034846, 平均值: 0.19255, 标准差: 0.12939, 秩和检验: 6.6809e-34
CWOA:最差值: 0.045748, 最优值: 0.0053462, 平均值: 0.0201, 标准差: 0.0083432, 秩和检验: 1
函数:F12
WOA:最差值: 1.233, 最优值: 0.096915, 平均值: 0.51947, 标准差: 0.24064, 秩和检验: 2.2364e-32
IWOA:最差值: 2.6685, 最优值: 0.36372, 平均值: 1.4356, 标准差: 0.52229, 秩和检验: 2.5621e-34
CWOA:最差值: 0.22319, 最优值: 0.046715, 平均值: 0.10708, 标准差: 0.038974, 秩和检验: 1

实验结果表明:CWOA在寻优精度、收敛速度和鲁棒性方面均有明显优势。

三、参考文献

[1] 邹浩, 李维刚, 李阳, 等. 基于混沌收敛因子和惯性权重的鲸鱼优化算法[J]. 武汉科技大学学报, 2022, 45(4): 304-313.
[2] 龙文, 蔡绍洪, 焦建军, 等. 求解大规模优化问题的改进鲸鱼优化算法[J]. 系统工程理论与实践, 2017, 37(11): 2983-2994.

这篇关于基于混沌收敛因子和惯性权重的鲸鱼优化算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/653757

相关文章

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

HDFS—存储优化(纠删码)

纠删码原理 HDFS 默认情况下,一个文件有3个副本,这样提高了数据的可靠性,但也带来了2倍的冗余开销。 Hadoop3.x 引入了纠删码,采用计算的方式,可以节省约50%左右的存储空间。 此种方式节约了空间,但是会增加 cpu 的计算。 纠删码策略是给具体一个路径设置。所有往此路径下存储的文件,都会执行此策略。 默认只开启对 RS-6-3-1024k

康拓展开(hash算法中会用到)

康拓展开是一个全排列到一个自然数的双射(也就是某个全排列与某个自然数一一对应) 公式: X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0! 其中,a[i]为整数,并且0<=a[i]<i,1<=i<=n。(a[i]在不同应用中的含义不同); 典型应用: 计算当前排列在所有由小到大全排列中的顺序,也就是说求当前排列是第

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

【数据结构】——原来排序算法搞懂这些就行,轻松拿捏

前言:快速排序的实现最重要的是找基准值,下面让我们来了解如何实现找基准值 基准值的注释:在快排的过程中,每一次我们要取一个元素作为枢纽值,以这个数字来将序列划分为两部分。 在此我们采用三数取中法,也就是取左端、中间、右端三个数,然后进行排序,将中间数作为枢纽值。 快速排序实现主框架: //快速排序 void QuickSort(int* arr, int left, int rig

poj 3974 and hdu 3068 最长回文串的O(n)解法(Manacher算法)

求一段字符串中的最长回文串。 因为数据量比较大,用原来的O(n^2)会爆。 小白上的O(n^2)解法代码:TLE啦~ #include<stdio.h>#include<string.h>const int Maxn = 1000000;char s[Maxn];int main(){char e[] = {"END"};while(scanf("%s", s) != EO

MySQL高性能优化规范

前言:      笔者最近上班途中突然想丰富下自己的数据库优化技能。于是在查阅了多篇文章后,总结出了这篇! 数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 数据库对象的命名要能做到见名识意,并且最后不要超过32个字符 临时库表必须以tmp_为前缀并以日期为后缀,备份