Aquila优化算法(基本原理+matlab源代码)—— 基于Aquila Optimizer原始论文分析

Matlab源代码位于: Aquila Optimizer: A meta-heuristic optimization
algorithm - File Exchange - MATLAB Central
(mathworks.cn)

1 Aquila优化算法

AO是一种基于种群优化方法,受启发于Aquila捕获猎物的方式。Aquila捕获猎物的方式主要有四种:(1)有垂直弯曲的高空翱翔(2)用短滑翔攻击的轮廓飞行(3)带缓慢下降的低空飞行(4)走和抓取猎物

对以上四种方法进行建模:

1.1 解决方案的初始化

在给定问题的上界(UB)和下界(LB)使用公式21721625858481

随机生成候选集(X,如公式1所示),获得的最优解被认为是在每次迭代过程中的近似优化解。

1721625907257

在公式2中,候选集(Xij)=随机数(rand)*(给定问题的第j个上界(UBj)-给定问题的第j个下界(LBj))+给定问题的第j个下界(LBj) ,N表示候选集的总数量,Dim表示问题维度的大小。

1.2 AO的数学模型

1.2.1 扩展探索(X1)

扩展搜索的行为示意图如图1所示。被建模为公式3:

1721617493257

在公式3中,第t次迭代的下一次迭代解(X1(t+1)) = 总共的第t次迭代中最好的解(Xbest(t)) × 通过迭代次数去控制探索范围的等式(1-t/T) + 第t次迭代中所有解的均值(Xm(t))(如公式4所示)- 总共的第t次迭代中最好的解(Xbest(t)) × 位于0和1的随机值(rand) ,t代表现在的迭代次数,T代表总共的迭代次数。

1721617825259

1721617393672

1.2.2 缩小探索范围(X2)

缩小探索范围的行为示意图如图2所示。被建模为公式5:
在这里插入图片描述

在公式5中,第t次迭代的下一次迭代解(X2(t+1)) = 总共的第t次迭代中最好的解 (Xbest(t)) × 征费飞行分布函数(Levy(D))(如公式6所示)+ 第i次迭代时在[1 N]范围内取的随机解(XR(t))+(搜索中的螺旋形(y)-搜索中的螺旋形(x))×位于0和1的随机值(rand),x和y如公式8、9所示,图3展示了螺旋计算的示意图:

1721620187470

在公式6中,征费飞行分布函数(Levy(D)) = 固定值0.01(s) ×(位于0和1之间的随机数(rand)× σ (如公式7所示))/ | 位于0和1之间的随机数(v)|的1/β次方,其中β是固定值1.5。

1721620442412

1721620538029

其中

1721620611943

在公式10中,r = 位于1至20的固定搜索周期(r1)+ 0.00565(U) × 从1到搜索空间的长度(Dim) 的整数(D1),在公式11中, ω代表0.05。

1721618164764

1721620854188

1.2.3 扩展开发(X3)

扩展开发的行为示意图如图4所示。被建模为公式13:

1721621126225

在公式13中,第t次迭代的下一次迭代解 (X3(t+1)) =(总共的第t次迭代中最好的解 (Xbest(t)) - 第t次迭代中所有解的均值(Xm(t)))× 较小的开采调整参数0.01(ɑ) - 位于0到1的随机数(rand) +((给定问题的上界(UB) -给定问题的下界(LB))× 位于0到1的随机数(rand) + 给定问题的下界(LB)) × 较小的开采调整参数0.01(ʠ)。

1721621447390

1.2.4 缩小开发范围(X4)

缩小开发范围的行为示意图如图5所示。被建模为公式14:

1721621571901

在公式14中, 第t次迭代的下一次迭代解 (X4(t+1)) = 用于平衡搜索策略的质量函数(QF)(如公式15所示)× 总共的第t次迭代中最好的解 (Xbest(t)) - 在奔跑过程中用来追踪猎物的各种AO运动(G1)(如公式16所示)× 第t次迭代解(X(t)) × 0到1的随机数(rand) - 表示AO在从第一个位置(1)到最后一个位置(t)的私奔过程中用于跟踪猎物的飞行斜率(G2)(如公式17所示)× 征费飞行分布函数(Levy(D))(如公式6所示)+ 0到1的随机数(rand) × 在奔跑过程中用来追踪猎物的各种AO运动(G1)(如公式16所示):

1721622042354

1721621596103

2 matlab代码(部分)

% AO函数
% input:N群体数目,T迭代次数,LB问题最低下限,UB问题最高下限,Dim问题维度,F_obj目标函数的句柄,用于评估解的质量
% output:Best_FF AO算法获得的最佳解,Best_P AO算法找到目标函数的最优值
function [Best_FF,Best_P,conv]=AO(N,T,LB,UB,Dim,F_obj)
Best_P=zeros(1,Dim);
Best_FF=inf; % inf无穷大,全局最优解% 解决方案的初始化
X=initialization(N,Dim,UB,LB);
Xnew=X;
Ffun=zeros(1,size(X,1));        % 1*N,存储每个解的目标函数值(最优)
Ffun_new=zeros(1,size(Xnew,1)); % 1*N,存储每个解的目标函数值(当前)t=1;alpha=0.1;
delta=0.1;while t<T+1% 循环处理每个解for i=1:size(X,1)% 判断是否超过上界或者下界F_UB=X(i,:)>UB;F_LB=X(i,:)<LB;% 修正超过边界的解,超过上界的设为UB,超过下界的设为LBX(i,:)=(X(i,:).*(~(F_UB+F_LB)))+UB.*F_UB+LB.*F_LB;% 计算修正解的目标函数值,用于评估解的质量Ffun(1,i)=F_obj(X(i,:));% 更新最优解和最优目标函数值if Ffun(1,i)<Best_FFBest_FF=Ffun(1,i);Best_P=X(i,:);endendG2=2*rand()-1; % Eq. (16)在奔跑过程中用来追踪猎物的各种AO运动G1=2*(1-(t/T));  % Eq. (17)表示AO在从第一个位置(1)到最后一个位置(t)的私奔过程中用于跟踪猎物的飞行斜率(G2)to = 1:Dim;u = .0265;r0 = 10;r = r0 +u*to;  % Eq. (10)omega = .005;  phi0 = 3*pi/2;phi = -omega*to+phi0;  % Eq. (11)x = r .* sin(phi);  % Eq. (9)y = r .* cos(phi); % Eq. (10)QF=t^((2*rand()-1)/(1-T)^2); % Eq. (15)% AO begin-------------------------------------------------------------------------------------for i=1:size(X,1)% 扩展探索(X1) -------------------------------------------------------------------------------------if t<=(2/3)*Tif rand <0.5Xnew(i,:)=Best_P(1,:)*(1-t/T)+(mean(X(i,:))-Best_P(1,:))*rand(); % Eq. (3) and Eq. (4)Ffun_new(1,i)=F_obj(Xnew(i,:));if Ffun_new(1,i)<Ffun(1,i)X(i,:)=Xnew(i,:);Ffun(1,i)=Ffun_new(1,i);endelse% 缩小探索范围(X2) -------------------------------------------------------------------------------------Xnew(i,:)=Best_P(1,:).*Levy(Dim)+X((floor(N*rand()+1)),:)+(y-x)*rand;       % Eq. (5)Ffun_new(1,i)=F_obj(Xnew(i,:));if Ffun_new(1,i)<Ffun(1,i)X(i,:)=Xnew(i,:);Ffun(1,i)=Ffun_new(1,i);endend% 扩展开发(X3) -------------------------------------------------------------------------------------elseif rand<0.5Xnew(i,:)=(Best_P(1,:)-mean(X))*alpha-rand+((UB-LB)*rand+LB)*delta;   % Eq. (13)Ffun_new(1,i)=F_obj(Xnew(i,:));if Ffun_new(1,i)<Ffun(1,i)X(i,:)=Xnew(i,:);Ffun(1,i)=Ffun_new(1,i);endelse% 缩小开发范围(X4) -------------------------------------------------------------------------------------Xnew(i,:)=QF*Best_P(1,:)-(G2*X(i,:)*rand)-G1.*Levy(Dim)+rand*G2; % Eq. (14)Ffun_new(1,i)=F_obj(Xnew(i,:));if Ffun_new(1,i)<Ffun(1,i)X(i,:)=Xnew(i,:);Ffun(1,i)=Ffun_new(1,i);endendendend% AO end-------------------------------------------------------------------------------------% 判断是否达到迭代次数100,如果达到则展示结果if mod(t,100)==0display(['At iteration ', num2str(t), ' the best solution fitness is ', num2str(Best_FF)]);endconv(t)=Best_FF;  % 每一轮迭代的最优值t=t+1;
endendfunction o=Levy(d)
beta=1.5;
sigma=(gamma(1+beta)*sin(pi*beta/2)/(gamma((1+beta)/2)*beta*2^((beta-1)/2)))^(1/beta);
u=randn(1,d)*sigma;v=randn(1,d);step=u./abs(v).^(1/beta);
o=step;
end

运行结果:

1721635837590

参考: https://doi.org/10.1016/j.cie.2021.107250

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

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

相关文章

JVM常用工具中jmap实现手动进行堆转储(heap dump文件)并使用MAT(Memory Analyzer Tool)进行堆分析-内存消耗分析

场景 JVM-常用工具(jps、jstat、jinfo、jmap、jhat、jstack、jconsole、jvisualvm)使用&#xff1a; JVM-常用工具(jps、jstat、jinfo、jmap、jhat、jstack、jconsole、jvisualvm)使用_jvm分析工具-CSDN博客 上面讲了jmap的简单使用。 下面记录其常用功能&#xff0c;实现堆…

【瑞芯微RV1126(板端摄像头图像数据采集)】②使用v4l2视频设备驱动框架采集图像数据

RV1126开发板&#xff1a;使用v4l2视频设备驱动框架采集图像数据 前言一、按键二、LCD显示三、V4L2 摄像头应用编程四、完整代码 前言 本系列的目的是&#xff0c;不仅仅将能够进行图片推理的模型部署于板端&#xff0c;还提供了两种摄像头数据采集的方法&#xff0c;集成到自…

国际化技术参考

一、概述 国际化就是用户可以选择对应的语言,页面展示成对应的语言; 一个系统的国际化按照信息的所在位置,可以分为三种国际化信息: 前端页面信息后端提示信息数据库的字典类信息二、前端页面国际化 使用i18n库实现国际化 i18n国际化库思路:通过jquery或者dom操作拿到需…

15现代循环神经网络—GRU与LSTM

目录 1.门控循环单元 GRU关注一个序列门候选隐状态(candidate hidden state)隐状态总结从零开始代码实现代码简洁实现2.长短期记忆网络 LSTM门候选记忆单元(candidate memory cell)记忆单元隐状态代码1.门控循环单元 GRU GRU 是最近几年提出来的,在 LSTM 之后,是一个稍微简…

Spring Boot + Spring Cloud 入门

运行配置 java -jar spring-boot-config-0.0.1-SNAPSHOT.jar --spring.profiles.activetest --my1.age32 --debugtrue "D:\Program Files\Redis\redis-server.exe" D:\Program Files\Redis\redis.windows.conf "D:\Program Files\Redis\redis-cli.exe" &q…

开源安全态势感知平台Security Onion

简介 Security Onion是一款由安全防御人员为安全防御人员构建的免费开放平台。它包括网络可见性、主机可见性、入侵检测蜜罐、日志管理和案例管理等功能。详细信息可以查看官网Security Onion Solutions 在网络可见性方面&#xff0c;Security Onion提供了基于签名的检测&…

一文了解LLM大模型会话 QA 增强

概述 在日常对话中&#xff0c;由于我们的大脑记录了对话的历史信息&#xff0c;为了减少冗余的内容&#xff0c;在进行回复时通常会存在指代和省略的情况。因为人脑具有记忆的能力&#xff0c;能够很好地重建对话历史的重要信息&#xff0c;自动补全或者替换对方当前轮的回复…

创建最佳实践创建 XML 站点地图--SEO

您是否正在努力让您的网站被搜索引擎索引&#xff1f;您想提高您网站的搜索引擎知名度吗&#xff1f;如果是&#xff0c;您可能会错过 XML 站点地图的重要性。XML 站点地图在改善您网站的 SEO 方面发挥着至关重要的作用。‍ XML 站点地图是您网站结构的蓝图&#xff0c;可帮助…

详解Stable Diffusion 原理图

参考英文文献&#xff1a;The Illustrated Stable Diffusion – Jay Alammar – Visualizing machine learning one concept at a time. 在这个Stable Diffusion模型的架构图中&#xff0c;VAE&#xff08;变分自编码器&#xff09;模型对应的是图中的 E 和 D 部分。 具体来说…

【深入理解SpringCloud微服务】深入理解Eureka核心原理

深入理解Eureka核心原理 Eureka整体设计Eureka服务端启动Eureka三级缓存Eureka客户端启动 Eureka整体设计 Eureka是一个经典的注册中心&#xff0c;通过http接收客户端的服务发现和服务注册请求&#xff0c;使用内存注册表保存客户端注册上来的实例信息。 Eureka服务端接收的…

JS 鼠标拖动实现移动滚动条的滚动效果

效果 现在很多场景都以移动端为基本开发&#xff0c;比如说需要隐藏滚动条&#xff0c;在pc上实现鼠标拖动和手机触摸拖动差不多的效果。 实现 以mdn的overflow属性中范例为基础&#xff0c;内容溢出时候可使用overflow: auto;和overflow: scroll;实现滚动效果。 要实现鼠标…

聚焦智慧出行,TDengine 与路特斯科技再度携手

在全球汽车行业向电动化和智能化转型的过程中&#xff0c;智能驾驶技术正迅速成为行业的焦点。随着消费者对出行效率、安全性和便利性的需求不断提升&#xff0c;汽车制造商们需要在全球范围内实现低延迟、高质量的数据传输和处理&#xff0c;以提升用户体验。在此背景下&#…

java用freemarker导出word

freemarker导出word 第一步、将word转换为xml格式第二步、将转换后的xml文件修改后缀为ftl后复制到项目 resources 目录下&#xff08;可以自己新建一个文件夹放在文件夹中&#xff09;第三步、格式化xml代码&#xff08;如果问价太大可能会无法格式化&#xff09;这时候需要在…

Windows上让Qt支持https请求

一.前言 Qt默认其实支持https的&#xff0c;但需要openssl的支持。所以有时候你代码中写了支持https的请求连接&#xff0c;发现程序可以运行&#xff0c;但到了https请求时会报错&#xff0c;如下&#xff1a; 这就是没有openssl的支持&#xff0c;导致QSslSocket无法进行ht…

从理论到实践:如何用 TDengine 打造完美数据模型​

在用 TDengine 进行数据建模之前&#xff0c;我们需要回答两个关键问题&#xff1a;建模的目标用户是谁&#xff1f;他们的具体需求是什么&#xff1f;在一个典型的时序数据管理方案中&#xff0c;数据采集和数据应用是两个主要环节。如下图所示&#xff1a; 对于数据采集工程师…

浅谈断言之XML断言

浅谈断言之XML断言 XML断言是JMeter的一个组件&#xff0c;用于验证请求的响应数据是否符合XML结构。这对于测试返回XML格式数据的Web服务特别有用。 如何添加XML断言&#xff1f; 要在JMeter测试计划中添加XML断言&#xff0c;遵循以下步骤&#xff1a; 打开测试计划&…

适用于 Mac 或 MacBook 的最佳数据恢复软件

Apple 设计的电脑可靠且用户友好&#xff0c;但即使是最好的最新款 MacBook硬件也会出现故障。当您的存储出现问题时&#xff0c;数据恢复软件可以帮助您恢复丢失和损坏的文件。 数据丢失的另一个原因是有时会发生令人尴尬的错误。如果您不小心丢弃了所需的文件&#xff0c;然…

Web前端:HTML篇(二)元素属性

HTML 属性 属性是 HTML 元素提供的附加信息。 HTML 元素可以设置属性属性可以在元素中添加附加信息属性一般描述于开始标签属性总是以名称/值对的形式出现&#xff0c;比如&#xff1a;name"value"。 属性实例 HTML 链接由 <a> 标签定义。链接的地址在 href …

【启明智显分享】甲醛检测仪HMI方案:ESP32-S3方案4.3寸触摸串口屏,RS485、WIFI/蓝牙可选

今年&#xff0c;“串串房”一词频繁引发广大网友关注。“串串房”&#xff0c;也被称为“陷阱房”“贩子房”——炒房客以低价收购旧房子或者毛坯房&#xff0c;用极度节省成本的方式对房子进行装修&#xff0c;之后作为精修房高价租售&#xff0c;因甲醛等有害物质含量极高&a…

恐怖数字暗影:猜中才能逃离

大家可以看看这个&#xff0c;也很有意思&#xff01; 猜数字游戏&#xff08;老六版&#xff09;-CSDN博客 1、 剧情介绍 在一个阴暗潮湿的古堡中&#xff0c;你独自一人走进了一间散发着诡异气息的房间。房间的正中央有一张古老的桌子&#xff0c;上面放着一本泛黄的羊皮卷…