翻筋斗觅食策略改进灰狼算法(IGWO)

   

目录

一、动态扰动因子策略

二、翻筋斗觅食策略 

三、改进灰狼算法收敛曲线图


       灰狼优化算法存在收敛的不合理性等缺陷,目前对GWO算法的收敛性改进方式较少,除此之外,当GWO迭代至后期,所有灰狼个体都逼近eq?%5Calpha狼、eq?%5Cbeta狼、eq?%5Cdelta狼,导致算法陷入局部最优。针对以上问题,提出了一种增强型的灰狼优化算法IGWO。首先引入一种扰动因子,平衡了算法的开采和勘探能力;其次引入翻筋斗觅食策略,在后期使其不陷入局部最优的同时也使得前期的群体多样性略有提升。对IGWO算法的寻优性能进行验证,结果表明IGWO算法在寻优性能上较GWO算法有明显优势。

d2ea22103d26243d581e603a6b72aa62.jpeg

一、动态扰动因子策略

       在原始GWO算法中,开采与勘探的过渡是由H决定的,也就是由收敛因子a决定。|H|>1时,狼群进行全局搜索,扩大勘探范围的同时增强其全局性;|H|<1时,狼群进行局部搜索,提高局部搜索效率。然而缺点是a的前半段与后半段下降幅度是相同的,导致无法在前期更好地全局搜索,而后期无法更有效地进行局部搜索,这在处理复杂优化问题时会显露弊端。大多数情况不能保证全局最优解在收敛的末端出现,会出现早熟收敛和后期陷入局部最优的情形。关于a的改进一般是变线性为非线性,使前期的a平稳过渡,增强全局勘探能力;后期a急速下降呈陡崖状,增强其局部开采能力。本文将引入新的动态扰动因子策略以确保精度,扰动因子E和更新后的H如式1所示。这里的H为灰狼算法中的A,eq?%5Crho%20_%7B1%7D为灰狼算法中的eq?r_%7B1%7D

5c5d082b275b4fef92e9f0f3092d938b.png

式1 扰动因子E和更新后的H

 其中:randn代表服从高斯正态分布的随机数;ω代表某一常数,它决定了扰动因子峰值的位置。

         图1可以看出不同ω值的扰动因子振幅情况,振幅随着ω的增加而减小,最早出现较大振幅的是ω=2的扰动因子。

315f7f39d873431eb22f57120c049c35.png

图1 不同ω值的扰动因子E振幅情况

       由于H值是位置更新的一部分,它不仅是全局和局部搜索转换的关键,而且还影响了算法的收敛性。具体来说,其数值越大、勘探越多,数值越小、开采越多。图 2 给出了随着迭代的更新H的变化。从图中可以看出,当ω=2时,|H|在迭代后期会突然大于1,且扰动因子的振幅较大,严重影响了收敛性;当ω=3时,扰动因子的振幅较小,后期跳出局部最优的能力会变弱,但是并不影响算法本身的性能;当ω=2.5时,可以看出收敛性略有提升。对比之下,若是优化一些包含局部最优的适应度函数,将ω设为3可能会降低精度,而将ω设为2,得到的结果与原算法相似,而将ω设为2.5可以提升算法的性能。

35c198029d124d1eb64617eb765f3edf.png

图2 不同w值下H的变化

二、翻筋斗觅食策略 

       由于灰狼优化算法后期易陷入局部最优,通过蝠鲼觅食会突然翻身捕捉浮游生物,引入较为新颖的翻筋斗觅食策略来改善GWO算法跳出局部最优的能力。这种捕猎行为,可以将猎物视为一个支点,每次捕猎将会更新到当前位置与对称于支点对面位置的某一位置,数学模型如下:

9e82ac770d5d4c12b88d5555c499bead.png

其中:eq?S代表空翻因子,决定了翻到猎物对面的位置,取eq?S%3D2eq?x_%7Bbest%7D%5E%7Bd%7D为猎物位置;eq?N为狼群数量;eq?d为维度;eq?r_%7B1%7Deq?r_%7B2%7D为两个在[0,1]的随机数。灰狼翻筋斗觅食示意图如图3所示。

a15e9a4f35b94541822f649b65589837.png

图3 灰狼翻筋斗觅食示意图

        由图3可以看出,每一只灰狼移动的位置位于当前位置和对称于猎物位置的位置之间,在于寻求一个靠近最优解的更佳搜索域,随着个体位置与最优解之间的距离越来越小,当前位置的波动也会越来越小,最终每一只狼都将逼近最优解,搜索空间也会越来越小。因此,随着迭代次数的增加,翻筋斗觅食的范围也在自适应地减小。在每一次的迭代中,当前灰狼eq?x_%7Bi%7D%5E%7Bd%7D%28t%29会与其跳跃支点后的灰狼进行适应度对比,如果此时已经陷入局部最优,则灰狼eq?x_%7Bi%7D%5E%7Bd%7D%28t%29可能会被跳跃支点后的灰狼取代(取决于适应度值),而随着迭代的进行,被取代的概率就越大,跳出局部最优的效果就越明显。与反向学习策略不同的是,翻筋斗策略在更新位置时是围绕最优狼进行的,这使得算法具有更强的收敛性。

三、改进灰狼算法收敛曲线图

F1:

The best optimal value of the objective funciton found by GWO is : 3.061e-28
The best optimal value of the objective funciton found by IGWO is : 0

4ed2d109745945be985e632aa1514934.png

F2:

The best optimal value of the objective funciton found by GWO is : 3.3e-17
The best optimal value of the objective funciton found by IGWO is : 0

763b55d2cb66489c9b9b05372c3ac2d7.png

 F6:

The best optimal value of the objective funciton found by GWO is : 1.2632
The best optimal value of the objective funciton found by IGWO is : 1.2102e-13

bf64816cc79344b28bf8153f2c190c61.png

F12:

The best optimal value of the objective funciton found by GWO is : 0.02005
The best optimal value of the objective funciton found by IGWO is : 1.1497e-12

90182a12b9f64c178954a09704bd01a1.png

 F13:

The best optimal value of the objective funciton found by GWO is : 0.86909
The best optimal value of the objective funciton found by IGWO is : 1.0803e-14

7b17057212a84598aef5f8d30115dadf.png

 F21:

The best optimal value of the objective funciton found by GWO is : -10.1505
The best optimal value of the objective funciton found by IGWO is : -10.1532

1c5549e0b9dc45559718253f97d44b8e.png

 F23:

The best optimal value of the objective funciton found by GWO is : -10.5352
The best optimal value of the objective funciton found by IGWO is : -10.5363

13729e556e7f46a19618ee74b1220eed.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/31079.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

A Neural Conversational Model 读后感

目录 摘要 1、介绍 2、相关工作 3、模型 4、数据&#xff08;后面都是具体的东西&#xff0c;不赘述&#xff09; 5、总结 使用微软翻译得到的中文原文&#xff1a; 摘要 会话建模是自然语言理解和机器智能中的一项重要任务。尽管存在以前的方法&#xff0c;但它们通常仅…

React中的HOC高阶组件处理

先了解函数柯里化 柯里化函数&#xff08;Currying Function&#xff09;是指将一个接受多个参数的函数转化成一系列只接受单个参数的函数&#xff0c;并且返回接受单个参数的函数&#xff0c;达到简化函数调用和提高可读性的目的。 简单来说&#xff0c;柯里化即将接收多个参…

Pytorch数据类型Tensor张量操作(操作比较全)

文章目录 Pytorch数据类型Tensor张量操作一.创建张量的方式1.创建无初始化张量2.创建随机张量3.创建初值为指定数值的张量4.从数据创建张量5.生成等差数列张量 二.改变张量形状三.索引四.维度变换1.维度增加unsqueeze2.维度扩展expand3.维度减少squeeze4.维度扩展repeat 五.维度…

Jenkins-pipeline自动化构建Java应用

本实验操作需要&#xff1a;Jenkins&#xff0c;git代码仓库&#xff08;如gitlab&#xff0c;gitee等都可以&#xff09;&#xff0c;maven&#xff0c;docker&#xff0c;docker镜像仓库&#xff08;habor&#xff0c;nexus或者阿里云ACR等&#xff09;以及k8s环境。 前期准…

Python网络爬虫基础进阶到实战教程

文章目录 认识网络爬虫HTML页面组成Requests模块get请求与实战效果图代码解析 Post请求与实战代码解析 发送JSON格式的POST请求使用代理服务器发送POST请求发送带文件的POST请求 Xpath解析XPath语法的规则集&#xff1a;XPath解析的代码案例及其详细讲解&#xff1a;使用XPath解…

k8s使用ceph存储

文章目录 初始化操作k8s使用ceph rbdvolumePV静态pv动态pv k8s使用cephfsvolume静态pv 初始化操作 ceph创建rbd存储池 ceph osd pool create k8s-data 32 32 replicated ceph osd pool application enable k8s-data rbd rbd pool init -p k8s-dataceph添加授权&#xff0c;需…

吴恩达ChatGPT《Building Systems with the ChatGPT API》笔记

1. 课程介绍 使用ChatGPT搭建端到端的LLM系统 本课程将演示使用ChatGPT API搭建一个端到端的客户服务辅助系统&#xff0c;其将多个调用链接到语言模型&#xff0c;根据前一个调用的输出来决定使用不同的指令&#xff0c;有时也可以从外部来源查找信息。 课程链接&#xff1a…

client-go的Indexer三部曲之三:源码阅读

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码)&#xff1a;https://github.com/zq2599/blog_demos 《client-go的Indexer三部曲》全部链接 基本功能性能测试源码阅读 本篇概览 本文是《client-go的Indexer三部曲》系列的终篇&#xff0c;主要任务是阅读和…

VR全景智慧园区,沉浸式数字化体验,720度全视角展示

导语&#xff1a; 随着科技的迅猛发展&#xff0c;虚拟现实&#xff08;Virtual Reality&#xff0c;简称VR&#xff09;全景技术已经成为了人们趋之若鹜的新兴领域。 而城市园区作为现代社会的重要组成部分&#xff0c;也正在积极寻求创新的方式来吸引更多的人流和投资。 一&…

C++基础

C基础入门 1 C初识 1.1 第一个C程序 编写一个C程序总共分为4个步骤 创建项目创建文件编写代码运行程序 1.1.1 创建项目 ​ Visual Studio是我们用来编写C程序的主要工具&#xff0c;我们先将它打开 1.1.2 创建文件 右键源文件&#xff0c;选择添加->新建项 1.1.3 编…

SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=》提升)

SignalR快速入门 ~ 仿QQ即时聊天&#xff0c;消息推送&#xff0c;单聊&#xff0c;群聊&#xff0c;多群公聊&#xff08;基础》提升&#xff0c;5个Demo贯彻全篇&#xff0c;感兴趣的玩才是真的学&#xff09; 官方demo:http://www.asp.net/signalr/overview/getting-started…

【面试】标准库相关题型(二)

文章目录 1. deque底层实现原理1.1 概述1.2 原理图1.3 类结构1.4 操作函数 2. 什么时候使用vector、list、deque2.1 vector2.2 list2.3 deque 3. priority_queue的底层实现原理3.1 一句话概括&#xff1a;用堆来实现优先级队列3.2 堆结构3.3 底层容器3.4 STL对堆结构提供的接口…

Java-API简析_java.lang.SecurityManager类(基于 Latest JDK)(浅析源码)

【版权声明】未经博主同意&#xff0c;谢绝转载&#xff01;&#xff08;请尊重原创&#xff0c;博主保留追究权&#xff09; https://blog.csdn.net/m0_69908381/article/details/131346082 出自【进步*于辰的博客】 其实我的【Java-API】专栏内的博文对大家来说意义是不大的。…

Python入门(二十七)测试(二)

测试&#xff08;二&#xff09; 1.测试类2.各种断言方法3.一个要测试的类4.测试AnonymousSurvey类5.方法setUp() 1.测试类 前面我们编写了针对单个函数的测试&#xff0c;下面来编写针对类的测试。很多程序中都会用到类&#xff0c;因此证明我们的类能够正确工作大有裨益。如…

学了那么长时间的编程,C语言的各种操作符都搞不懂?点开这里有详细的介绍—>

目录 前言 一、原码、反码、补码的基础概念 1.原码 2.反码 3.补码 二、原码、反码、补码的计算方法 1.原码 2.反码 3.补码 三、算术操作符 四、移位操作符 1. 左移操作符 移位规则&#xff1a; 2. 右移操作符 移位规则&#xff1a; &#xff08;1&#xff09; …

电脑怎么录屏?推荐2款录制电脑屏幕的软件!

案例&#xff1a;我经常需要把电脑上的内容分享给别人&#xff0c;一般通过手机拍摄的方式。这就导致视频十分模糊&#xff0c;给人的观感不太好&#xff0c;有没有什么方法可以实现在电脑上直接录屏&#xff1f; 【我想录制我的电脑屏幕上的内容分享给别人&#xff0c;但是我…

几个SQL的高级写法

一、ORDER BY FLELD() 自定义排序逻辑 MySql 中的排序 ORDER BY 除了可以用 ASC 和 DESC&#xff0c;还可以通过 ORDER BY FIELD(str,str1,...) 自定义字符串/数字来实现排序。这里用 order_diy 表举例&#xff0c;结构以及表数据展示&#xff1a; ORDER BY FIELD(str,str1,..…

【Neo4j教程之CQL函数基本使用】

&#x1f680; Neo4j &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;C…

3d重建+神经渲染

3d重建 基于深度相机(结构光、TOF、双目摄像头)的三维重建基于图像的三维重建&#xff1a;深度学习基于视觉几何的传统三维重建&#xff1a;这种三维重建方法研究时间比较久远&#xff0c;技术相对成熟。主要通过多视角图像对采集数据的相机位置进行估计&#xff0c;再通过图像…

一种对不同类型齐格勒-尼科尔斯 P-I-D 控制器调谐算法研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…
最新文章