求解函数优化问题的改进鲸鱼优化算法

2024-03-08 23:20

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

文章目录

  • 一、理论基础
    • 1、基本鲸鱼优化算法
    • 2、改进鲸鱼优化算法
      • (1)自适应非线性位置更新
      • (2)引入差分变异操作
  • 二、EWOA算法流程图
  • 三、仿真实验与结果分析
  • 四、参考文献

一、理论基础

1、基本鲸鱼优化算法

请参考这里。

2、改进鲸鱼优化算法

(1)自适应非线性位置更新

本文将自适应策略引入WOA算法的位置更新公式中,加快算法收敛速度、提高算法的寻优精度。具体公式如下: X → ( t + 1 ) = S 1 ⋅ X → ∗ ( t ) − S 2 ⋅ A → ⋅ D → , ∣ A ∣ < 1 p < 0.5 (1) \overrightarrow X(t+1)=S_1\cdot\overrightarrow X^*(t)-S_2\cdot\overrightarrow A\cdot\overrightarrow D,\quad |A|<1\,\,\, p<0.5\tag{1} X (t+1)=S1X (t)S2A D ,A<1p<0.5(1) X → ( t + 1 ) = S 1 ⋅ X → r a n d ( t ) − S 2 ⋅ A → ⋅ D → , ∣ A ∣ ≥ 1 p < 0.5 (2) \overrightarrow X(t+1)=S_1\cdot\overrightarrow X_{rand}(t)-S_2\cdot\overrightarrow A\cdot\overrightarrow D,\quad |A|≥1\,\,\, p<0.5\tag{2} X (t+1)=S1X rand(t)S2A D ,A1p<0.5(2) X → ( t + 1 ) = S 1 ⋅ X → ∗ ( t ) + D → ′ ⋅ e b l ⋅ c o s ( 2 π l ) , p ≥ 0.5 (3) \overrightarrow X(t+1)=S_1\cdot\overrightarrow X^*(t)+\overrightarrow D'\cdot e^{bl}\cdot cos(2\pi l),\quad p≥0.5\tag{3} X (t+1)=S1X (t)+D eblcos(2πl),p0.5(3)其中, S 1 S_1 S1 S 2 S_2 S2分别为当前最优位置和包围步长的自适应调整系数,具体公式表示为: S 1 = − γ ⋅ [ c o s ( π ⋅ t T ) − λ ] (4) S_1=-\gamma\cdot[cos(\pi\cdot \frac tT)-\lambda]\tag{4} S1=γ[cos(πTt)λ](4) S 2 = γ ⋅ [ c o s ( π ⋅ t T ) + λ ] (5) S_2=\gamma\cdot[cos(\pi\cdot\frac tT)+\lambda]\tag{5} S2=γ[cos(πTt)+λ](5)其中, γ \gamma γ表示 S 1 S_1 S1 S 2 S_2 S2变化取值范围; λ \lambda λ表示 S 1 S_1 S1 S 2 S_2 S2取值步长,其取值分别为0.5和1。
从式(4)和式(5)不难看出,自适应调整系数 S 1 S_1 S1随着算法迭代进化呈非线性增大趋势,使种群能够充分朝向精英猎物位置移动;而 S 2 S_2 S2随着算法迭代进化而不断减小,使种群在进化后期具有较小的包围步长而加快收敛速度,从而实现算法全局探索与局部搜索能力的平衡,同时加快算法收敛速度,提高算法的寻优精度。

(2)引入差分变异操作

本文针对WOA算法容易陷入局部最优这一问题,引入差分变异思想,改善算法易陷入局部最优及出现早熟收敛现象。
差分变异思想具体描述如下:
(1)变异操作
选取当前种群中较优的鲸鱼个体进行变异,能够有效扩大算法的搜索域,避免算法陷入局部最优。具体操作如下: V → i ( t + 1 ) = X → i ( t ) + F ( X → r 1 ( t ) − X → r 2 ( t ) ) (6) \overrightarrow V_i(t+1)=\overrightarrow X_i(t)+F(\overrightarrow X_{r_1}(t)-\overrightarrow X_{r_2}(t))\tag{6} V i(t+1)=X i(t)+F(X r1(t)X r2(t))(6)其中, V → i ( t + 1 ) \overrightarrow V_i(t+1) V i(t+1)表示变异后的第 i i i只鲸鱼的位置; F F F表示缩放比例因子; X → r 1 ( t ) − X → r 2 ( t ) \overrightarrow X_{r_1}(t)-\overrightarrow X_{r_2}(t) X r1(t)X r2(t)表示当前迭代次数下鲸鱼位置的差异向量。
(2)选择操作
选择操作是将变异后的新个体与原始个体进行比较,判断其适应度值是否较优,如果较优,则保留,否则舍弃。差分进化算法中通常采用贪婪选择,具体公式如下: X → i ( t + 1 ) = { V → i ( t + 1 ) , f i t ( V → i ( t + 1 ) ) < f i t ( X → i ( t ) ) X → i ( t + 1 ) , f i t ( V → i ( t + 1 ) ) ≥ f i t ( X → i ( t ) ) (7) \overrightarrow X_i(t+1)=\begin{dcases}\overrightarrow V_i(t+1),\quad fit(\overrightarrow V_i(t+1))<fit(\overrightarrow X_i(t))\\\overrightarrow X_i(t+1),\quad fit(\overrightarrow V_i(t+1))≥fit(\overrightarrow X_i(t))\end{dcases}\tag{7} X i(t+1)={V i(t+1),fit(V i(t+1))<fit(X i(t))X i(t+1),fit(V i(t+1))fit(X i(t))(7)

二、EWOA算法流程图

在这里插入图片描述

图1 EWOA算法流程图

三、仿真实验与结果分析

实验中,设置算法的种群规模为 N = 30 N=30 N=30,最大迭代次数为 T = 500 T=500 T=500。以F1、F2、F3为例。
在这里插入图片描述

图2 F1

在这里插入图片描述

图3 F2

在这里插入图片描述

图4 F3

实验结果表明,本文算法具有较好的有效性和优越性。

四、参考文献

[1] 何庆, 魏康园, 徐钦帅. 求解函数优化问题的改进鲸鱼优化算法[J]. 微电子学与计算机, 2019, 36(4): 72-77+83.

这篇关于求解函数优化问题的改进鲸鱼优化算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

解决Maven项目idea找不到本地仓库jar包问题以及使用mvn install:install-file

《解决Maven项目idea找不到本地仓库jar包问题以及使用mvninstall:install-file》:本文主要介绍解决Maven项目idea找不到本地仓库jar包问题以及使用mvnin... 目录Maven项目idea找不到本地仓库jar包以及使用mvn install:install-file基

Python正则表达式语法及re模块中的常用函数详解

《Python正则表达式语法及re模块中的常用函数详解》这篇文章主要给大家介绍了关于Python正则表达式语法及re模块中常用函数的相关资料,正则表达式是一种强大的字符串处理工具,可以用于匹配、切分、... 目录概念、作用和步骤语法re模块中的常用函数总结 概念、作用和步骤概念: 本身也是一个字符串,其中

usb接口驱动异常问题常用解决方案

《usb接口驱动异常问题常用解决方案》当遇到USB接口驱动异常时,可以通过多种方法来解决,其中主要就包括重装USB控制器、禁用USB选择性暂停设置、更新或安装新的主板驱动等... usb接口驱动异常怎么办,USB接口驱动异常是常见问题,通常由驱动损坏、系统更新冲突、硬件故障或电源管理设置导致。以下是常用解决

Mysql如何解决死锁问题

《Mysql如何解决死锁问题》:本文主要介绍Mysql如何解决死锁问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录【一】mysql中锁分类和加锁情况【1】按锁的粒度分类全局锁表级锁行级锁【2】按锁的模式分类【二】加锁方式的影响因素【三】Mysql的死锁情况【1

SpringBoot内嵌Tomcat临时目录问题及解决

《SpringBoot内嵌Tomcat临时目录问题及解决》:本文主要介绍SpringBoot内嵌Tomcat临时目录问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录SprinjavascriptgBoot内嵌Tomcat临时目录问题1.背景2.方案3.代码中配置t

SpringBoot使用GZIP压缩反回数据问题

《SpringBoot使用GZIP压缩反回数据问题》:本文主要介绍SpringBoot使用GZIP压缩反回数据问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot使用GZIP压缩反回数据1、初识gzip2、gzip是什么,可以干什么?3、Spr

MySQL索引的优化之LIKE模糊查询功能实现

《MySQL索引的优化之LIKE模糊查询功能实现》:本文主要介绍MySQL索引的优化之LIKE模糊查询功能实现,本文通过示例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一、前缀匹配优化二、后缀匹配优化三、中间匹配优化四、覆盖索引优化五、减少查询范围六、避免通配符开头七、使用外部搜索引擎八、分

如何解决idea的Module:‘:app‘platform‘android-32‘not found.问题

《如何解决idea的Module:‘:app‘platform‘android-32‘notfound.问题》:本文主要介绍如何解决idea的Module:‘:app‘platform‘andr... 目录idea的Module:‘:app‘pwww.chinasem.cnlatform‘android-32

kali linux 无法登录root的问题及解决方法

《kalilinux无法登录root的问题及解决方法》:本文主要介绍kalilinux无法登录root的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录kali linux 无法登录root1、问题描述1.1、本地登录root1.2、ssh远程登录root2、

shell编程之函数与数组的使用详解

《shell编程之函数与数组的使用详解》:本文主要介绍shell编程之函数与数组的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录shell函数函数的用法俩个数求和系统资源监控并报警函数函数变量的作用范围函数的参数递归函数shell数组获取数组的长度读取某下的