基于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

相关文章

Spring Boot基于 JWT 优化 Spring Security 无状态登录实战指南

《SpringBoot基于JWT优化SpringSecurity无状态登录实战指南》本文介绍如何使用JWT优化SpringSecurity实现无状态登录,提高接口安全性,并通过实际操作步骤... 目录Spring Boot 实战:基于 JWT 优化 Spring Security 无状态登录一、先搞懂:为什

Java JAR 启动内存参数配置指南(从基础设置到性能优化)

《JavaJAR启动内存参数配置指南(从基础设置到性能优化)》在启动Java可执行JAR文件时,合理配置JVM内存参数是保障应用稳定性和性能的关键,本文将系统讲解如何通过命令行参数、环境变量等方式... 目录一、核心内存参数详解1.1 堆内存配置1.2 元空间配置(MetASPace)1.3 线程栈配置1.

SpringMVC配置、映射与参数处理​入门案例详解

《SpringMVC配置、映射与参数处理​入门案例详解》文章介绍了SpringMVC框架的基本概念和使用方法,包括如何配置和编写Controller、设置请求映射规则、使用RestFul风格、获取请求... 目录1.SpringMVC概述2.入门案例①导入相关依赖②配置web.XML③配置SpringMVC

OFD格式文件及如何适应Python将PDF转换为OFD格式文件

《OFD格式文件及如何适应Python将PDF转换为OFD格式文件》OFD是中国自主研发的一种固定版式文档格式,主要用于电子公文、档案管理等领域,:本文主要介绍OFD格式文件及如何适应Python... 目录前言什么是OFD格式文档?使用python easyofd库将PDF转换为OFD第一步:安装 eas

Elasticsearch 的索引管理与映射配置实战指南

《Elasticsearch的索引管理与映射配置实战指南》在本文中,我们深入探讨了Elasticsearch中索引与映射的基本概念及其重要性,通过详细的操作示例,我们了解了如何创建、更新和删除索引,... 目录一、索引操作(一)创建索引(二)删除索引(三)关闭索引(四)打开索引(五)索引别名二、映射操作(一

深入理解Mysql OnlineDDL的算法

《深入理解MysqlOnlineDDL的算法》本文主要介绍了讲解MysqlOnlineDDL的算法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小... 目录一、Online DDL 是什么?二、Online DDL 的三种主要算法2.1COPY(复制法)

使用MapStruct实现Java对象映射的示例代码

《使用MapStruct实现Java对象映射的示例代码》本文主要介绍了使用MapStruct实现Java对象映射的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、什么是 MapStruct?二、实战演练:三步集成 MapStruct第一步:添加 Mave

Docker多阶段镜像构建与缓存利用性能优化实践指南

《Docker多阶段镜像构建与缓存利用性能优化实践指南》这篇文章将从原理层面深入解析Docker多阶段构建与缓存机制,结合实际项目示例,说明如何有效利用构建缓存,组织镜像层次,最大化提升构建速度并减少... 目录一、技术背景与应用场景二、核心原理深入分析三、关键 dockerfile 解读3.1 Docke

SpringBoot路径映射配置的实现步骤

《SpringBoot路径映射配置的实现步骤》本文介绍了如何在SpringBoot项目中配置路径映射,使得除static目录外的资源可被访问,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一... 目录SpringBoot路径映射补:springboot 配置虚拟路径映射 @RequestMapp

从原理到实战解析Java Stream 的并行流性能优化

《从原理到实战解析JavaStream的并行流性能优化》本文给大家介绍JavaStream的并行流性能优化:从原理到实战的全攻略,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的... 目录一、并行流的核心原理与适用场景二、性能优化的核心策略1. 合理设置并行度:打破默认阈值2. 避免装箱