基于Tent映射的自适应鲸鱼优化算法

2024-01-28 13:30

本文主要是介绍基于Tent映射的自适应鲸鱼优化算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、理论基础
    • 1、标准鲸鱼优化算法(WOA)
    • 2、改进鲸鱼优化算法(IWOA)
      • (1)Tent映射
      • (2)引入自适应权重
      • (3)自适应阈值
      • (4)IWOA算法步骤
  • 二、函数测试与结果分析
  • 三、参考文献

一、理论基础

1、标准鲸鱼优化算法(WOA)

请参考这里。

2、改进鲸鱼优化算法(IWOA)

(1)Tent映射

混沌具有随机性和遍历性和初值敏感性,能使算法有更快的收敛速度。本文采用Tent映射来产生混沌序列,对种群进行初始化,使得初始解尽可能均匀的分布在解空间内。 z k + 1 = { 2 z k , 0 ≤ z ≤ 0.5 2 ( 1 − z k ) , 0.5 < z k ≤ 1 (1) z_{k+1}=\begin{dcases}2z_k,\quad\quad\,\,\,\quad 0≤z_≤0.5\\2(1-z_k),\quad 0.5<z_k≤1\end{dcases}\tag{1} zk+1={2zk,0z0.52(1zk),0.5<zk1(1)其中, k k k表示映射次数, z k z_k zk表示第 k k k次映射函数值。
经过伯努利移位变换后表示如下: x n + 1 = ( 2 x n ) mod 1 (2) x_{n+1}=(2x_n)\text{mod}\,1\tag{2} xn+1=(2xn)mod1(2)

(2)引入自适应权重

本文把惯性权重引入WOA中,作用于包围猎物和螺旋更新机制的位置更新中,权值 w w w随之迭代次数的增加而非线性递减,当算法在初期时的权重系数比较大时,此时具有较强的全局搜索能力,随着迭代次数的增加,权重系数在减小,算法可以在某一区域内进行精细搜索,防止陷入局部最优,提高求解的精度,鲸鱼位置更新公式如下: X ( t + 1 ) = w X ∗ ( t ) − A ⋅ D (3) X(t+1)=wX^*(t)-A\cdot D\tag{3} X(t+1)=wX(t)AD(3) X ( t + 1 ) = D ′ ⋅ e b l ⋅ cos ⁡ ( 2 π l ) + w X ∗ ( t ) (4) X(t+1)=D'\cdot e^{bl}\cdot\cos(2\pi l)+wX^*(t)\tag{4} X(t+1)=Deblcos(2πl)+wX(t)(4)其中: w ( t ) = e − ( t M a x _ i t e r ) k (5) w(t)=e^{-\left(\frac{t}{Max\_iter}\right)^k}\tag{5} w(t)=e(Max_itert)k(5)其中, t t t为当前迭代次数, M a x _ i t e r Max\_iter Max_iter是最大迭代次数, k k k是调节系数,调节权重的大小。调节系数取不一样值权重变化如图1所示。
在这里插入图片描述

图1 权重变化曲线

本文取 k = 0.4 k=0.4 k=0.4,来平衡鲸鱼优化算法的全局和局部搜索能力。

(3)自适应阈值

标准鲸鱼优化算法设置概率阈值为0.5,来同步包围和螺旋过程。通过随机生成的 p p p值与概率阈值来选择不同的狩猎策略。但是随着迭代次数的增加,这种方式的捕食方式会导致算法陷入局部最优等问题,因此本文提出一个对数形式的自适应概率阈值 p ′ p' p来平衡全局搜索和局部开发的能力,表达式如下: p ′ = 1 − log ⁡ 10 ( 1 + 9 t M a x _ i t e r ) (6) p'=1-\log_{10}\left(1+\frac{9t}{Max\_iter}\right)\tag{6} p=1log10(1+Max_iter9t)(6)

(4)IWOA算法步骤

综上,本文提出的改进的鲸鱼优化算法的主要步骤如下:
步骤1:初始化鲸鱼算法基本参数,种群规模 N N N,最大迭代次数 M a x _ i t e r Max\_iter Max_iter,问题维数 D D D,对数螺线形状参数 b b b
步骤2:利用Tent混沌映射初始化鲸鱼位置;
步骤3:对目标函数进行求解,计算每个搜索个体的适应度,找到当前最优解;
步骤4:若 p < p ′ p<p' p<p ∣ A ∣ < 1 |A|<1 A<1,按式(3)进行更新;
步骤5:若 p < p ′ p<p' p<p ∣ A ∣ ≥ 1 |A|≥1 A1,按WOA对应公式进行螺旋运动的方式向猎物进行更新;
步骤6:若 p ≥ p ′ p≥p' pp,按式(4)进行全局搜索;
步骤7:位置更新完毕,计算每个个体的适应度值,与先前的最佳搜索代理位置进行比较,若优于 X ∗ X^* X,则替换 X ∗ X^* X
步骤8:判断是否达到最大迭代次数,若满足则终止迭代,同时输出最优解和适应度值,反之返回步骤4。

二、函数测试与结果分析

为验证改进鲸鱼优化算法的有效性,选用标准鲸鱼优化算法(WOA)、灰狼优化算法(GWO和粒子群优化算法(PSO)和其进行对比,算法参数设置如文献[1]中表1所示。设置种群规模为30,最大迭代次数为500,每个算法独立运算20次,以文献[1]中表2的6个30维的测试函数为例。结果显示如下:
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

函数:F1
PSO:最差值: 147.8448,最优值:23.4933,平均值:63.9767,标准差:32.1388,秩和检验:6.7956e-08
GWO:最差值: 1.7889e-26,最优值:7.1869e-29,平均值:1.36e-27,标准差:3.9183e-27,秩和检验:6.7956e-08
WOA:最差值: 1.0992e-72,最优值:2.7991e-84,平均值:9.2059e-74,标准差:2.8764e-73,秩和检验:6.7956e-08
IWOA:最差值: 3.6756e-276,最优值:9.4649e-296,平均值:1.8382e-277,标准差:0,秩和检验:1
函数:F2
PSO:最差值: 13.6415,最优值:3.7539,平均值:8.1522,标准差:2.8786,秩和检验:6.7956e-08
GWO:最差值: 3.699e-16,最优值:7.9544e-18,平均值:8.2037e-17,标准差:8.5695e-17,秩和检验:6.7956e-08
WOA:最差值: 6.4078e-50,最优值:1.1677e-60,平均值:3.5018e-51,标准差:1.4268e-50,秩和检验:6.7956e-08
IWOA:最差值: 9.864e-142,最优值:6.1064e-152,平均值:5.4801e-143,标准差:2.2039e-142,秩和检验:1
函数:F3
PSO:最差值: 632.6858,最优值:100.3085,平均值:254.1884,标准差:144.4872,秩和检验:6.7956e-08
GWO:最差值: 28.7687,最优值:25.8787,平均值:27.0773,标准差:0.90809,秩和检验:1.8074e-05
WOA:最差值: 28.7457,最优值:27.1368,平均值:27.8405,标准差:0.4534,秩和检验:0.00083572
IWOA:最差值: 28.626,最优值:27.9667,平均值:28.2328,标准差:0.18107,秩和检验:1
函数:F4
PSO:最差值: 5.9211,最优值:3.6118,平均值:4.9672,标准差:0.6327,秩和检验:8.0065e-09
GWO:最差值: 1.3589e-13,最优值:6.4837e-14,平均值:1.0036e-13,标准差:1.9356e-14,秩和检验:7.3694e-09
WOA:最差值: 7.9936e-15,最优值:8.8818e-16,平均值:3.908e-15,标准差:2.6473e-15,秩和检验:2.1716e-05
IWOA:最差值: 8.8818e-16,最优值:8.8818e-16,平均值:8.8818e-16,标准差:0,秩和检验:NaN
函数:F5
PSO:最差值: 2.527,最优值:1.2815,平均值:1.6516,标准差:0.32439,秩和检验:8.0065e-09
GWO:最差值: 0.029495,最优值:0,平均值:0.0064644,标准差:0.010063,秩和检验:0.0045321
WOA:最差值: 0.15438,最优值:0,平均值:0.0077188,标准差:0.034519,秩和检验:0.34211
IWOA:最差值: 0,最优值:0,平均值:0,标准差:0,秩和检验:NaN
函数:F6
PSO:最差值: 78.0917,最优值:36.101,平均值:57.2082,标准差:13.0797,秩和检验:8.0065e-09
GWO:最差值: 9.4769,最优值:5.6843e-14,平均值:2.4972,标准差:3.4197,秩和检验:7.4242e-09
WOA:最差值: 5.6843e-14,最优值:0,平均值:2.8422e-15,标准差:1.2711e-14,秩和检验:0.34211
IWOA:最差值: 0,最优值:0,平均值:0,标准差:0,秩和检验:NaN

实验结果表明,IWOA相比于其他三种算法求解精度更高,收敛速度更快,有更好的全局搜索能力。

三、参考文献

[1] 赵晶, 祝锡晶, 孟小玲, 等. 改进鲸鱼优化算法在机械臂时间最优轨迹规划的应用[J/OL]. 机械科学与技术: 1-10 [2021-11-08].

这篇关于基于Tent映射的自适应鲸鱼优化算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J

在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码

《在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码》在MyBatis的XML映射文件中,trim元素用于动态添加SQL语句的一部分,处理前缀、后缀及多余的逗号或连接符,示... 在MyBATis的XML映射文件中,<trim>元素用于动态地添加SQL语句的一部分,例如SET或W

C#中图片如何自适应pictureBox大小

《C#中图片如何自适应pictureBox大小》文章描述了如何在C#中实现图片自适应pictureBox大小,并展示修改前后的效果,修改步骤包括两步,作者分享了个人经验,希望对大家有所帮助... 目录C#图片自适应pictureBox大小编程修改步骤总结C#图片自适应pictureBox大小上图中“z轴

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1

MySQL不使用子查询的原因及优化案例

《MySQL不使用子查询的原因及优化案例》对于mysql,不推荐使用子查询,效率太差,执行子查询时,MYSQL需要创建临时表,查询完毕后再删除这些临时表,所以,子查询的速度会受到一定的影响,本文给大家... 目录不推荐使用子查询和JOIN的原因解决方案优化案例案例1:查询所有有库存的商品信息案例2:使用EX

MySQL中my.ini文件的基础配置和优化配置方式

《MySQL中my.ini文件的基础配置和优化配置方式》文章讨论了数据库异步同步的优化思路,包括三个主要方面:幂等性、时序和延迟,作者还分享了MySQL配置文件的优化经验,并鼓励读者提供支持... 目录mysql my.ini文件的配置和优化配置优化思路MySQL配置文件优化总结MySQL my.ini文件

正则表达式高级应用与性能优化记录

《正则表达式高级应用与性能优化记录》本文介绍了正则表达式的高级应用和性能优化技巧,包括文本拆分、合并、XML/HTML解析、数据分析、以及性能优化方法,通过这些技巧,可以更高效地利用正则表达式进行复杂... 目录第6章:正则表达式的高级应用6.1 模式匹配与文本处理6.1.1 文本拆分6.1.2 文本合并6

Vue3 的 shallowRef 和 shallowReactive:优化性能

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