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

相关文章

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

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

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

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

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

Java实现复杂查询优化的7个技巧小结

《Java实现复杂查询优化的7个技巧小结》在Java项目中,复杂查询是开发者面临的“硬骨头”,本文将通过7个实战技巧,结合代码示例和性能对比,手把手教你如何让复杂查询变得优雅,大家可以根据需求进行选择... 目录一、复杂查询的痛点:为何你的代码“又臭又长”1.1冗余变量与中间状态1.2重复查询与性能陷阱1.

Python内存优化的实战技巧分享

《Python内存优化的实战技巧分享》Python作为一门解释型语言,虽然在开发效率上有着显著优势,但在执行效率方面往往被诟病,然而,通过合理的内存优化策略,我们可以让Python程序的运行速度提升3... 目录前言python内存管理机制引用计数机制垃圾回收机制内存泄漏的常见原因1. 循环引用2. 全局变

Python多线程应用中的卡死问题优化方案指南

《Python多线程应用中的卡死问题优化方案指南》在利用Python语言开发某查询软件时,遇到了点击搜索按钮后软件卡死的问题,本文将简单分析一下出现的原因以及对应的优化方案,希望对大家有所帮助... 目录问题描述优化方案1. 网络请求优化2. 多线程架构优化3. 全局异常处理4. 配置管理优化优化效果1.

MySQL中优化CPU使用的详细指南

《MySQL中优化CPU使用的详细指南》优化MySQL的CPU使用可以显著提高数据库的性能和响应时间,本文为大家整理了一些优化CPU使用的方法,大家可以根据需要进行选择... 目录一、优化查询和索引1.1 优化查询语句1.2 创建和优化索引1.3 避免全表扫描二、调整mysql配置参数2.1 调整线程数2.

深入解析Java NIO在高并发场景下的性能优化实践指南

《深入解析JavaNIO在高并发场景下的性能优化实践指南》随着互联网业务不断演进,对高并发、低延时网络服务的需求日益增长,本文将深入解析JavaNIO在高并发场景下的性能优化方法,希望对大家有所帮助... 目录简介一、技术背景与应用场景二、核心原理深入分析2.1 Selector多路复用2.2 Buffer

SpringBoot利用树形结构优化查询速度

《SpringBoot利用树形结构优化查询速度》这篇文章主要为大家详细介绍了SpringBoot利用树形结构优化查询速度,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一个真实的性能灾难传统方案为什么这么慢N+1查询灾难性能测试数据对比核心解决方案:一次查询 + O(n)算法解决

小白也能轻松上手! 路由器设置优化指南

《小白也能轻松上手!路由器设置优化指南》在日常生活中,我们常常会遇到WiFi网速慢的问题,这主要受到三个方面的影响,首要原因是WiFi产品的配置优化不合理,其次是硬件性能的不足,以及宽带线路本身的质... 在数字化时代,网络已成为生活必需品,追剧、游戏、办公、学习都离不开稳定高速的网络。但很多人面对新路由器