非洲秃鹫优化算法(AVOA)(含MATLAB代码)

news2024/11/25 18:49:32

先做一个声明:文章是由我的个人公众号中的推送直接复制粘贴而来,因此对智能优化算法感兴趣的朋友,可关注我的个人公众号:启发式算法讨论。我会不定期在公众号里分享不同的智能优化算法,经典的,或者是近几年提出的新型智能优化算法,并附MATLAB代码。

非洲秃鹫优化算法(African Vultures Optimization Algorithm, AVOA)是Abdollahzadeh等人在2021年提出的一种新的元启发式算法,目前已经在许多实际工程项目中得到应用。AVOA模拟了非洲秃鹫的觅食和导航行为。为了评估AVOA的性能,在36个标准Benchmark函数上进行了测试,结果证明了所提出算法与几种先进算法相比的优越性。它的原始参考文献如下:

Abdollahzadeh B, Gharehchopogh F S, Mirjalili S. African vultures optimization algorithm: A new nature-inspired metaheuristic algorithm for global optimization problems[J]. Computers & Industrial Engineering, 2021, 158: 107408.

图片

01
灵感来源

图片

秃鹫是自然界猛禽中的一种,几乎没有天敌、主要以动物的腐烂尸体为食,被誉为“草原上的清洁工”。大多数秃鹫是秃顶的,头顶没有规则的羽毛,这种生物特征使得秃鹫在进食动物尸体时防止自身受到污染。另外,研究表明裸露的皮肤在调节体温方面起着至关重要的作用。如在寒冷的天气里,秃鹫会把头浸入两翼的羽毛中,在炎热的天气则会把脖子和头露出来。非洲大陆生活着数量众多的秃鹫,但大多数有着相似的生活习性,常单独活动,偶尔也结成小群,彼此遭遇时常为食物而战。

图片

生活在非洲的秃鹫类型大致可以分为三种,每一种都有一些独特的身体特征。第一种是身体格外强壮的秃鹫,这种秃鹫往往更容易获得食物、如肉垂秃鹫;第二种是比第一种类型稍弱的秃鹫,如非洲白背秃鹫;最后一种就是力量和身形比前两种类型都弱的秃鹫,如巾冠兀鷲。在自然环境中,秃鹫不断地进行长途飞行搜索食物,秃鹫最常见的飞行方式是旋转飞行。在觅食过程中,有时几种秃鹫会移动到同一个食物源而互相冲突,饥饿中的虚弱秃鹫会变得更具有攻击性,通过包围攻击强壮秃鷲,消耗他们的体力,使之变得疲劳来增加自己获取食物的机会。群智能算法一般分为勘探和开发两个阶段,与非洲秃鹫的长途飞行寻找食物和在食物附近盘旋、冲突等生物活动相联系。

Abdollahzadeh等人通过数学模型模拟了秃鹫种群行为,把种群个体位置移动转化为目标求解变量各维度分量的最优化过程,从而提出了AVOA。

02
算法设计

AVOA的种群初始化方法与大多数智能优化算法相同,即随机产生搜索空间中的若干候选解作为初始个体,具体可看往期的推送,这里不再赘述。

AVOA 是通过对非洲秃鹰的觅食行为和生活习惯进行模拟和建模而提出的。在AVOA中,非洲秃鹰的生活习惯和觅食行为主要包括了以下几个阶段。

第一阶段:确定群体最优

图片

第二阶段:计算种群饥饿率

图片

第三阶段:勘探阶段

图片

第四阶段:开发阶段

图片

图片

03
计算流程

AVOA的计算流程图如图1所示:
 

图片

图1 AVOA流程图

04
实验仿真

这里对AVOA的性能进行简单的测试。将AVOA用于函数寻优,算法的MATLAB程序是严格按照它的原始参考文献进行编码的。此外,种群规模取的50,Benchmark函数分别采用了CEC2005测试集、CEC2013测试集、CEC2014测试集、CEC2017测试集和CEC2020优化函数测试集。这里对仿真结果进行简要展示,就不再进一步做分析了。

首先,我们来检验一下AVOA对全局勘探和局部开发的平衡能力。如图2所示,是AVOA在CEC2005测试函数f7上的勘探和开发占比曲线。

图片

图2 AVOA在CEC2005 f7上的勘探和开发百分占比变化曲线

其次,以CEC2005测试集中的单峰函数f2和多峰函数f10为例,展示AVOA在30维环境下的收敛效果,如图3所示。对比算法选择:灰狼优化(GWO)、鲸鱼优化(WOA)、哈里斯鹰优化(HHO)、蜣螂优化(DBO)和金豺优化(GJO)。

图片

(a) f2

图片

(b) f10

图3 六种进化算法在CEC2005两个测试函数上的收敛曲线

再次,以CEC2013测试集中的单峰函数F1为例,展示AVOA在30维环境下的收敛效果,如图4所示。对比算法选择:灰狼优化(GWO)、鲸鱼优化(WOA)、浣熊优化(COA)、沙猫群优化(SCSO)和火鹰优化(FHO)。

(注意是画的误差曲线)

图片

图4 六种进化算法在CEC2013 F1上的误差收敛曲线

接着,以CEC2014测试集中的单峰函数F3为例,展示AVOA在30维环境下的收敛效果,如图5所示。对比算法选择:灰狼优化(GWO)、鲸鱼优化(WOA)、浣熊优化(COA)、沙猫群优化(SCSO)和火鹰优化(FHO)。(注意是画的误差曲线)

图片

图5 六种进化算法在CEC2014 F3上的误差收敛曲线

再然后,以CEC2017测试集中的混合函数F14为例,展示AVOA在30维环境下的收敛效果,如图6所示。对比算法选择:灰狼优化(GWO)、鲸鱼优化(WOA)、哈里斯鹰优化(HHO)、蜣螂优化(DBO)、浣熊优化(COA)。(注意是画的误差曲线)

图片

图6 六种进化算法在CEC2017 F14上的误差收敛曲线

最后,以CEC2020优化函数测试集中的混合函数F5为例,展示AVOA算法在10维环境下的收敛效果,如图7所示。对比算法选择:灰狼优化(GWO)、鲸鱼优化(WOA)、哈里斯鹰优化(HHO)、蜣螂优化(DBO)、浣熊优化(COA)。(注意是画的误差曲线)

图片

图7 六种进化算法在CEC2020 F5上的误差收敛曲线

进一步,可将AVOA应用于复杂工程约束优化问题,例如之前推送的两期算法应用内容:

算法应用:基于DBO算法的工程优化设计(第1期)(含MATLAB代码)

算法应用:工程优化设计(第2期)(含MATLAB代码)

这里以压力容器设计(Pressure vessel design)问题为例,展示求解效果。在该设计问题中,目标函数为压力容器的总成本,包括材料、成形和焊接成本。如图8所示,压力容器的两端都有盖子封顶,头部一端的封盖为半球状。该优化问题包括4个决策变量:容器壁的厚度(Ts)、半球头部的厚度(Th)、内半径(R)、和圆柱截面的长度(L)。

图片

图8 压力容器设计

其数学模型如下:

图片

将AVOA应用于压力容器设计(Pressure vessel design)问题,采用往期推送“算法应用:基于DBO算法的工程优化设计(第1期)(含MATLAB代码)”中介绍的惩罚函数处理约束条件。对比算法选择:灰狼优化(GWO)、哈里斯鹰优化(HHO)、沙猫群优化(SCSO)、蜣螂优化(DBO)、浣熊优化(COA)。收敛曲线如图9所示。

图片

图9 六种进化算法在压力容器设计问题上的目标函数收敛曲线

05
MATLAB代码

公众号里有,关注:启发式算法讨论

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LayUI框架实现OA会议系统——增删改查

目录 前言 1. 配置准备 1.1 Layui框架 1.2 mysql数据库表 1.3 用户管理JSP页面 1.4 新增、修改用户共用界面 2. 后台编写 2.1 编写UserDao类增删改查方法 2.2 R工具类 2.3 BaseDao数据库查询方法 2.4 UserAction控制器类 3. 前台JS编写 3.1 userManage页面JS 3.2…

测试报告?Python自动化测试-Allure测试报告使用大全,一篇全通透

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 安装并配置环境变…

工业相机的基础参数释义

景深: 可以清晰拍摄被测物的距离范围。 工作距离: 相机镜头至被测物的距离。 物像距离: 被测物至芯片靶面的距离。 像元尺寸: 一个像素在长和宽方向上所代表的实际大小,单位通常为微米。像元尺寸越大,分辨率…

记录stm32c8t6使用TIM4_CH1、TIM4_CH2输出PWM波控制编码电机出现的问题

由于之前是使用PB9、PB7引脚即TIM4_ch3\TIM4_ch4,由于项目更改为c8t6的PB、PB7引脚(TIM4_ch3\TIM4_ch4) 改为配置后发现只有一边的轮子可以转到,明明配置没什么问题,编译也没有报错,最后将pwm的调制模式更改…

Android 进程与进程之间的通信--AIDL详细教程,以传递对象为例,两个app实现

我这里案例是 通过 IPC 传递对象 (以DemoBean类为例) 如下: AIDL 使用一种简单语法,允许您通过一个或多个方法(可接收参数和返回值)来声明接口。参数和返回值可为任意类型,甚至是 AIDL 生成的其…

TypeScript 学习笔记 环境安装-类型注解-语法细节-类-接口-泛型

文章目录 TypeScript 学习笔记概述TypeScript 开发环境搭建 类型注解类型推断 数据类型JS的7个原始类型Array数组object、Object 和 {}可选属性 ? 和 可选链运算符?. function函数TS类型: any类型 | unknow类型TS类型: void类型TS类型:never类型 (几乎…

数据库应用:CentOS 7离线安装MySQL与Nginx

目录 一、理论 1.安装依赖 二、实验 1.离线安装MySQL与Nginx 2.离线安装Nginx 三、问题 1.执行nginx -v命令报错 四、总结 一、理论 1.安装依赖 (1)概念 安装依赖是指在软件开发中,为了运行或者编译一个程序或者库,在计…

JVM——类加载和垃圾回收

目录 前言 JVM简介 JVM内存区域划分 JVM的类加载机制 1.加载 双亲委派模型 2.验证 验证选项 3.准备 4.解析 5.初始化 触发类加载 JVM的垃圾回收策略 GC 一:找 谁是垃圾 1.引用计数 2.可达性分析 (这个方案是Java采取的方案&#x…

k210学习篇(一)环境搭建

一、为什么选择Canmv开发板? 便宜!便宜!便宜!淘宝200即可买到一个能带摄像头和LCD屏等等的开发板 二、利用Maix Hub在线训练 Maix Hub官网https://maixhub.com/home Maix Hub使用教程:K210学习笔记——MaixHub在线训练模型(新版) 注意: 三、配置开发环境 1.MaixPy IDE…

某网站提交登陆信息加密JS逆向实战分析

1. 写在前面 对于爬虫开发者来说,职业生涯中可能或多或少会遇到各种各样的网站,其中有些必要要求登陆才能浏览。那么模拟登陆的时候发现提交的登陆信息(用户名、密码)都是经过加密后的,如何处理?这里找到了…

我只改五行代码,接口性能提升了 10 倍!

背景 某公司的一个 ToB 系统,因为客户使用的也不多,没啥并发要求,就一直没有经过压测。这两天来了一个“大客户”,对并发量提出了要求:核心接口与几个重点使用场景单节点吞吐量要满足最低500/s的要求。 当时一想&am…

C++ IO流

文章目录 C语言的输入与输出流是什么?CIO流C标准IO流C文件流 stringstream的简单介绍 C语言的输入与输出 在C语言中,我们使用最频繁的输入输出方式为: scanf 和 printf. scanf : 从输入设备(键盘)读取数据,并将值存放在变量中.printf: 将指定的文字/字符串输出到标准输出设备…

数据库约束与表的关系(数据库系列4)

目录 前言: 1.数据库的约束 1.1约束类型 1.1.1 not null 1.1.2 unique 唯一约束 1.1.3 default 默认值约束 1.1.4 primary key 主键约束 1.1.5 foreign key 外键约束 2.表的关系 2.1 一对一 2.2 一对多 2.3 多对一 3.新增 4.聚合查询 4.1聚合函数 4.…

Pinecone - 向量数据库

文章目录 关于 PineconeRoadMapSemantic SearchChatbots购买查看 API Key创建索引代码调用安装库 pinecone-client查看已经创建的索引创建索引插入数据获取索引统计分析信息查询索引,获取相似向量删除索引关于 Pinecone 官网 : https://www.pinecone.i

利用layui构建OA系统基本操作

一.编写方法(增加,删除,修改,查询) 通过继承BaseDao来实现通用,从而减少代码量,提高小路 1.增加 public int add(User user) throws Exception {String sql "insert into t_oa_user(name…

Windows7中使用SRS集成音视频一对一通话

SRS早就具备了SFU的能力,比如一对一通话、多人通话、直播连麦等等。在沟通中,一对一是常用而且典型的场景, 让我们一起来看看如何用SRS做直播和RTC一体化的一对一通话。 一、启动windows7-docker 二、拉取SRS镜像 执行命令:docker pull oss…

修改jar包中的文件内容

文章目录 导引查找是否存在需要修改的文件vim命令修改配置文件jar命令替换jar包中的文件(也可新增)解压jar包,修改后重新打包jar修改clas文件jar命令参数 导引 首先问问为什么要直接修改jar包中的文件,而不是重新打包,在非必要的情况下&…

【动手学深度学习】pytorch-参数管理

pytorch-参数管理 概述 我们的目标是找到使损失函数最小化的模型参数值。 经过训练后,我们将需要使用这些参数来做出未来的预测。 此外,有时我们希望提取参数,以便在其他环境中复用它们, 将模型保存下来,以便它可以在…

python数据挖掘基础环境安装和使用

文章目录 一.安装python环境二、库的安装2.1 使用pip命令安装virtualenvv扩展:cmd无法使用pip,报错:Fatal error in launcher: Unable to create process using ... 2.2 安装virtualenvwrapper-win2.3 新建一个用于人工智能环境的…

腾讯云 API 3.0(V3版签名) 通用接口 Delphi 版

目录 一、腾讯云API 3.0 简介: 二、Delphi 接口函数说明: 1. Delphi 接口包含的单元: 2. 同步调用和异步调用的区别: 3. 程序调用示例: 三、Delphi 版腾讯云API 3.0 版接口函数下载 四、演示程序录播 下载源程序…