一种随机调整控制参数的鲸鱼优化算法

2024-01-28 13:30

本文主要是介绍一种随机调整控制参数的鲸鱼优化算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、理论基础
    • 1、基本鲸鱼优化算法
    • 2、改进鲸鱼优化算法
      • (1)佳点集方法初始化
      • (2)随机调整控制参数策略
      • (3)正态变异算法
      • (4)算法步骤
  • 二、仿真实验及分析
  • 三、参考文献

一、理论基础

1、基本鲸鱼优化算法

请参考这里。

2、改进鲸鱼优化算法

(1)佳点集方法初始化

佳点集是一种能均匀取点、有效的实验方法,与随即方法相比,利用佳点集方法所取的点能均匀的分布在该对象中。为了使种群个体尽可能表征解空间的信息,本文采用佳点集方法进行种群初始化,其具体步骤如算法1所示。
在这里插入图片描述

(2)随机调整控制参数策略

本文提出一种随机分布调整控制参数策略,即 a ( t ) = ( a max ⁡ − a min ⁡ ) r a n d ( ) + r a n d n ( ) (1) \boldsymbol a(t)=(\boldsymbol a_{\max}-\boldsymbol a_{\min})rand()+randn()\tag{1} a(t)=(amaxamin)rand()+randn()(1)其中, a max ⁡ \boldsymbol a_{\max} amax a min ⁡ \boldsymbol a_{\min} amin分别为控制参数 a \boldsymbol a a的最大值和最小值,本文取值分别为2和1, r a n d ( ) rand() rand() [ 0 , 1 ] [0,1] [0,1]均匀分布的随机数, r a n d n ( ) randn() randn()为标准正态分布的随机数。由式(1)可知,控制参数 a \boldsymbol a a在进化过程中随机变化,从而下调WOA算法的探索和开发能力。

(3)正态变异算法

在WOA算法进化后期,群体中所有个体均向最优个体区域靠拢,导致群体多样性下降,易陷入早熟收敛。为了有效地避免算法陷入局部最优,引入变异算子是一种常见的方式。
本文引入一个服从正态分布的随机扰动项,对当前最优个体进入解空间的其他区域进行搜索,扩大搜索范围,提高群体多样性,从而避免算法陷入局部最优,其定义为 X best j = X best j + N ( 0 , 1 ) X best j (2) X_{\text{best}}^j=X_{\text{best}}^j+N(0,1)X_{\text{best}}^j\tag{2} Xbestj=Xbestj+N(0,1)Xbestj(2)其中, X best j X_{\text{best}}^j Xbestj为当前最优个体的第 j j j维, N ( 0 , 1 ) N(0,1) N(0,1)为服从均值为0、方差为1的标准正态分布。

(4)算法步骤

提出的EWOA算法步骤如算法2所示。
在这里插入图片描述

二、仿真实验及分析

为了验证本文提出的EWOA算法的性能,将其与PSO、WOA进行对比,以文献[1]中表1的100维的6个测试函数为例。为了公平的比较,三种算法的种群规模均设置为30,最大迭代次数为500,每个算法独立运行30次。
结果显示如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

函数:F1
PSO:最差值: 4168.1914,最优值:2549.7401,平均值:3312.2413,标准差:467.4723
WOA:最差值: 4.1546e-69,最优值:7.7006e-84,平均值:1.3857e-70,标准差:7.5851e-70
EWOA:最差值: 1.5996e-248,最优值:3.3765e-293,平均值:5.332e-250,标准差:0
函数:F2
PSO:最差值: 2358.7347,最优值:1427.654,平均值:1994.3298,标准差:201.0428
WOA:最差值: 4.0477e-48,最优值:1.0576e-58,平均值:3.7102e-49,标准差:9.7964e-49
EWOA:最差值: 8.1487e-131,最优值:4.4095e-166,平均值:2.7162e-132,标准差:1.4877e-131
函数:F3
PSO:最差值: 1588920.4223,最优值:305049.0953,平均值:722922.2431,标准差:270199.4621
WOA:最差值: 98.4631,最优值:97.647,平均值:98.1266,标准差:0.20438
EWOA:最差值: 98.1888,最优值:96.6434,平均值:97.3015,标准差:0.4216
函数:F4
PSO:最差值: 717.0873,最优值:531.3977,平均值:597.0659,标准差:41.8365
WOA:最差值: 0,最优值:0,平均值:0,标准差:0
EWOA:最差值: 0,最优值:0,平均值:0,标准差:0
函数:F5
PSO:最差值: 10.285,最优值:7.9942,平均值:8.9432,标准差:0.57565
WOA:最差值: 7.9936e-15,最优值:8.8818e-16,平均值:5.033e-15,标准差:2.3012e-15
EWOA:最差值: 8.8818e-16,最优值:8.8818e-16,平均值:8.8818e-16,标准差:0
函数:F6
PSO:最差值: 40.8385,最优值:22.3594,平均值:30.5305,标准差:4.2563
WOA:最差值: 0.25556,最优值:0,平均值:0.0085186,标准差:0.046658
EWOA:最差值: 0,最优值:0,平均值:0,标准差:0

结果表明,本文提出的EWOA算法具有较高的寻优精度和较快的收敛速度。

三、参考文献

[1] 钟明辉, 龙文. 一种随机调整控制参数的鲸鱼优化算法[J]. 科学技术与工程, 2017, 17(12): 68-73.

这篇关于一种随机调整控制参数的鲸鱼优化算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Deepseek使用指南与提问优化策略方式

《Deepseek使用指南与提问优化策略方式》本文介绍了DeepSeek语义搜索引擎的核心功能、集成方法及优化提问策略,通过自然语言处理和机器学习提供精准搜索结果,适用于智能客服、知识库检索等领域... 目录序言1. DeepSeek 概述2. DeepSeek 的集成与使用2.1 DeepSeek API

Tomcat高效部署与性能优化方式

《Tomcat高效部署与性能优化方式》本文介绍了如何高效部署Tomcat并进行性能优化,以确保Web应用的稳定运行和高效响应,高效部署包括环境准备、安装Tomcat、配置Tomcat、部署应用和启动T... 目录Tomcat高效部署与性能优化一、引言二、Tomcat高效部署三、Tomcat性能优化总结Tom

解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)

《解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)》该文章介绍了使用Redis的阻塞队列和Stream流的消息队列来优化秒杀系统的方案,通过将秒杀流程拆分为两条流水线,使用Redi... 目录Redis秒杀优化方案(阻塞队列+Stream流的消息队列)什么是消息队列?消费者组的工作方式每

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

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文件

使用C#如何创建人名或其他物体随机分组

《使用C#如何创建人名或其他物体随机分组》文章描述了一个随机分配人员到多个团队的代码示例,包括将人员列表随机化并根据组数分配到不同组,最后按组号排序显示结果... 目录C#创建人名或其他物体随机分组此示例使用以下代码将人员分配到组代码首先将lstPeople ListBox总结C#创建人名或其他物体随机分组