AO|天鹰优化算法原理及代码实现(MATLAB/Python)

文章来源于我的个人公众号:KAU的云实验台,主要更新智能优化算法的原理、应用、改进

在这里插入图片描述

天鹰优化算法(Aquila Optimizer,AO)是Abualigah等[1]于2021年发表在SCI二区Computers & Industrial Engineering的元启发式优化算法。该算法通过模拟天鹰对不同猎物的不同捕获方法建立数学模型,具有收敛速度快、全局搜索能力强的优点,目前在谷歌学术上引用量达1500+

在这里插入图片描述

本文KAU将介绍其原理,并分享其MATLAB/Python的实现

00 目录

1 天鹰优化算法(AO)

2 代码目录

3 算法性能

4 源码获取

01 天鹰优化算法(AO)

AO模拟天鹰4种不同的捕食策略建立数学模型,根据搜索空间内解的不同特性,灵活应用不同的搜索策略,具体迭代公式如下:(公式来源于AO算法源文献[1])

1.1 天鹰优化算法原理

(1) 拓展探索(阶段1)::垂直俯身高空翱翔

在这一策略中,天鹰从高空飞行,并广泛探索搜索空间,一旦天鹰识别出猎物所在的区域,就进行垂直俯冲。这种行为的数学模型表示为:

在这里插入图片描述

其中,Xbest(t)是最佳个体;XM(t)为天鹰群体的平均值;rand为[0,1]之间的随机数;N为群体数;T为最大迭代次数,t为当前迭代次数;L随迭代次数线性递减。

(2) 缩小探索(阶段2)::短距滑翔攻击的等高飞行

天鹰在目标猎物上空盘旋,准备降落,然后在选定的区域内下降后攻击猎物。AO算法仔细搜索目标猎物(函数)选择的区域,为攻击做准备。这种行为的数学表达式:

在这里插入图片描述

其中,XR(t)为第t次迭代种群内的随机一个解;Levy(D)为Levy飞行分布函数,s和β分别等于0.01和1.5的常数,u和v是0-1之间的随机数;y和x为搜索过程中的螺旋形状参数;D为问题维度;r1的值介于1-20之间,表示搜索的次数;U=0.00565;D1为从1-D的整数组成;w为0.005;θ1=1.5pi。

(3) 拓展开发(阶段3):低空慢速下降攻击

在第三种策略中,当猎物的所在的区域被精准锁定后,天鹰通过垂直下降进行初步攻击来检测猎物的反应。AO开发指定区域来接近并攻击目标猎物(函数)。这种行为表达式:
在这里插入图片描述

其中,α 和 δ 为一个确定的较小的开采调整值,值为0.1;BL 为问题的下界值;BU 为问题的上界值。

(4) 缩小开发(阶段4):游走和抓取猎物

当天鹰接近猎物时,它会追逐猎物并攻击地上的猎物。
在这里插入图片描述

其中,x(t)是当前位置;QF(t)表示用于平衡搜索技术的质量函数值;G1表示天鹰在飞行过程中监测猎物时的运动参数,为[-1,1]之间的随机数;G2表示行程中跟随猎物时的飞行斜率,从2下降到0;r6、r7和r8是介于0和1之间的随机数。

以上为天鹰优化算法的所有迭代公式,其算法流程如下:

在这里插入图片描述

02 代码目录

包含Matlab、Python文件以及AO算法源文献
在这里插入图片描述

代码都经过作者重新注释,代码更清爽,可读性强,其中Readme给出了一些注意:

在这里插入图片描述

03 AO算法性能

采用CEC测试函数初步检验其寻优性能

在MATLAB中,执行程序结果如下:

在这里插入图片描述

在PYTHON中,执行程序结果如下:

在这里插入图片描述

04 源码获取

在**公众号(KAU的云实验台)**后台回复 AO

参考文献

[1] ABUALIGAH L, YOUSRI D, ELAZIZ M A, et al. Aquila optimizer: a novel meta-heuristic optimization algorithm [J].Computers and Industrial Engineering, 2021, 157(10): 50–72.

另:如果有伙伴有待解决的优化问题(各种领域都可),可以发我,我会选择性的更新利用优化算法解决这些问题的文章。

如果这篇文章对你有帮助或启发,可以点击右下角的赞/在看(ง •̀_•́)ง(不点也行),你们的鼓励就是我坚持的动力!若有定制需求,可私信作者。

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

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

相关文章

从零开始手把手Vue3+TypeScript+ElementPlus管理后台项目实战五(引入vue-router,并给注册功能加上美丽的外衣el-form)

安装vue-router pnpm install vue-router创建router src下新增router目录,ruoter目录中新增index.ts import { createRouter, createWebHashHistory } from "vue-router"; const routes [{path: "/",name: "Home",component: () …

git 的用法

git add:将工作区中 新建/修改/删除的文件内容,添加到暂存区。 参数列表 git add -A:提交所有变化( -A --all ) git add -u:提交被修改(modified)和被删除(deleted…

小红书的引流方式

常见的引流方法有:笔记引流、粉丝群聊引流、私信引流。 1、笔记引流 首先要明确你的目标受众是谁,通过他们的兴趣爱好和关注的信息来制定笔记内容计划,有利于我们选择合适的方式来吸引用户的关注。 然后就是优质的笔记内容了; …

使用git上传本地项目到远程仓库github上面

首先需要下载git 下载地址Git - Downloads (git-scm.com) 下载完成后 一、配置用户名和邮箱 #配置用户名 git config --global user.name "用户名" #配置邮箱 git config --global user.email "邮箱" 查询配置:$ git config --global …

QTGUI编程入门:解锁图形用户界面设计的奥秘

QTGUI编程入门:解锁图形用户界面设计的奥秘 QTGUI编程,作为构建图形用户界面(GUI)的重要工具,对于软件开发者而言具有不可替代的价值。本文将从四个方面、五个方面、六个方面和七个方面深入探讨QTGUI编程的入门知识&a…

Windows安装CuPy报error C3615错误

CuPy简介 CuPy 是基于 CUDA 实现与 NumPy 兼容的多维数组的实现。 CuPy 由核心多维数组类 cupy.ndarray 和许多函数组成。 它支持 numpy.ndarray 接口的子集。 问题出现 Windows 环境下安装CuPy pip install cupy 在编译CUDA的.cu文件文件时出现C3615错误,本地编…

六个搜索算法及其python实现

搜索算法 搜索算法的含义可以从以下几个方面进行解释和归纳: 基本定义:搜索算法是利用计算机的高性能来有目的地穷举一个问题解空间的部分或所有的可能情况,从而求出问题的解的一种方法。这本质上是一种穷举算法,旨在列出所有的可…

复合句语法

复合句指的是包含两个或多个独立子句的句子。这些子句可以并列关系,也可以是主从关系,分别构成并列复合句和主从复合句。 复合句的两种主要类型 复合句可以分为两种主要类型: 并列复合句:结构简单,各个简单句平等&am…

【机器学习】训练GNN图神经网络模型进行节点分类

1. 引言 1.1 图神经网络GNN概述 图神经网络(Graph Neural Network,GNN)是一种专门用于处理图结构数据的神经网络方法。它起源于2005年,当时Gori等人首次提出了GNN的概念,用于学习图中的节点特征以及它们之间的关系。…

Rust基础学习-Rust中的文件操作

文件结构 在Rust中,std::fs::File 结构体代表一个文件。它允许我们对文件执行读/写操作。文件 I/O 是通过提供与文件系统交互的功能的 std::fs 模块执行的。 File 结构体中的所有方法都返回std::io::Result的变体,或者简单地是 Result 枚举。这里会涉及…

PowerShell cannot be loaded- execution policy

PowerShell脚本无法运行,报错: cannot be loaded. The file xxxx is not digitally signed. You cannot run this script on the current system. For more information about running scripts and setting execution policy, see about_Execution_Po…

一套java开发的(未来工厂核心MES系统成品源码)技术架构:java+springboot 支撑多端管理,可商用

MES定义为“位于上层的计划管理系统与底层的工业控制之间的面向车间层的管理信息系统” 20世纪90年代初期,中国就开始对MES以及ERP的跟踪研究、告知或试点,而且曾经发言 “管控一体化”,“人、财、物、产、供、销”等颇具中国独具一格的CIMS、…

电商API接口在促进市场扩展中的作用

在电子商务领域,API接口技术不仅使企业能够提供标准化的服务,还能推动市场快速扩展。本文将探讨电商API如何助力企业发现新的客户群体、整合更广泛的供应链,以及如何通过创新的服务提升市场竞争力。 引言 随着电子商务市场的成熟和竞争日益加…

自定义idea插件之hello idea plugin

写在前面 最近一直想研究下自定义idea插件的内容,这样如果是想要什么插件,但又一时找不到合适的,就可以自己来搞啦!这不终于有时间来研究下,但过程可谓是一波三折,再一次切身体验了下万事开头难。那么&…

血清素是怎么产生的,其过高和过低与我们情绪和胃肠健康有哪些关联?

谷禾健康 血清素,5-羟色氨(5-HT)不仅充当体内系统的神经递质和激素,而且还是胃肠系统中的旁分泌信使。 5-HT神经元系统起源于中脑中缝核,下面示意图强调了血清素(5-HT)神经元与释放不同神经递质的其他神经元以及神经胶质细胞之间的解剖相互作…

Java 设置定时任务的三种方式

使用 java.util.Timer 和 java.util.TimerTask: Timer 是一个定时器工具,能够在后台线程中调度任务。TimerTask 是一个实现了 Runnable 接口的抽象类,需要继承它并重写 run 方法。 示例代码: import java.util.Timer; import …

简单使用vue2和elementUI自定义audio支持拖拽进度

<template><div class"music-player"><audio ref"audio" :src"src" timeupdate"updateTime" loadedmetadata"loadedmetadata" ended"onAudioEnded"></audio><!-- 播放暂停按钮 -->…

问题:新零售是以消费者体验为中心的数据驱动的泛零售形态,是基于大数据的“人货场“重构 #其他#知识分享

问题&#xff1a;新零售是以消费者体验为中心的数据驱动的泛零售形态,是基于大数据的"人货场"重构 参考答案如图所示

【PL理论】(8) F#:列表高阶函数之 filter 函数 | 内联谓词函数 | 链式操作:先过滤再映射

&#x1f4ad; 写在前面&#xff1a;上一章中&#xff0c;我们详细讲解了列表的合并&#xff0c;本章我们来详细讲解一下列表的过滤&#xff0c;在 F# 中&#xff0c;过滤列表是指从列表中提取满足某个条件的元素&#xff0c;形成一个新的列表。这个操作通常使用 List.filter 函…

Turnitin揭露AI写作痕迹,是否会影响论述是重复率?

Turnitin&#xff08;www.checktoo.com&#xff09;为学术界提供了便捷的服务&#xff0c;以确保论文的原创性和学术诚信。然而&#xff0c;许多学生和研究人员在使用Turnitin时&#xff0c;常常会想Turnitin查论文AI率和重复率之间的关系。那么&#xff0c;使用Turnitin查重论…