【改进算法】【IHAOAVOA】天鹰优化算法和非洲秃鹫混合优化算法

news2024/12/23 12:53:50

目录

1 主要内容

2 部分代码

3 程序结果

4 下载链接


主要内容

该程序复现《IHAOAVOA: An improved hybrid aquila optimizer and African vultures optimization algorithm for global optimization problems》,天鹰优化算法(AO)和非洲秃鹫算法(AVOA)各有优势:AO具有强大的全局勘探能力,但其局部开发阶段还不够稳定。另一方面,AVOA具有良好的开发能力,但勘探机制不足。基于这两种算法的特点,提出了一种改进的AO和AVOA混合优化算法,以克服单一算法的不足,为解决全局优化问题提供了更高质量的解决方案。

大家在学习和建立模型过程中,很难原创性的找到智能优化算法,一开始简单的算法改进,如粒子群中的权重非线性化或者种群精英化等均可以提升算法创新性,但是随着各种组合创新的出现,智能算法创新需要结合的方法越来越多,也需要越来越新颖,因此各种文献都祭出多种算法结合的“混合”优化算法,本次分享的两种算法结合的优化代码很具有参考意义,程序采用matlab编程,提供了23个测试函数,通过修改主函数的Function_name即可分别检查该算法对不同测试函数的性能。

  • IHAOAVOA流程图

  • 主要创新点

  1. 增加复合学习算法(COBL)
COBL是智能算法中一个强大的优化工具,已成功用于改进不同的原生元启发式算,主要思想是同时评价当前解的适应度值及其反向解,然后保留更适合的适应度值参与后续的迭代计算。因此,OBL可以有效地增加找到更好的候选解的可能性。
2.结合AO的勘探阶段和AVOA的开发阶段
综合两个算法的优势,实现更加快速找到最优值的作用。

部分代码

% The IHAOAVOA Optimization Algorithm
function [ihaoavoa_score,ihaoavoa_pos,ihaoavoa_curve]=IHAOAVOA(N,max_iter,lb,ub,dim,fobj)
    tic
    % initialize Best_vulture1, Best_vulture2
    ihaoavoa_pos=zeros(1,dim);
    ihaoavoa_score=inf;
    Best_vulture2_X=zeros(1,dim);
    Best_vulture2_F=inf;
    %Initialize the first random population of vultures
    X=initialization(N,dim,ub,lb);   
   %%  Controlling parameter   
   %/********AVOA**********/
    p2=0.4;
    p3=0.6;
    alpha=0.8;
    betha=0.2;
    gamma=2.5;
    %/********AO**********/
    avto = 1:dim;
    u = .0265;
    r0 = 10;
    rao = r0 +u*avto;
    omega = .005;
    phi0 = 3*pi/2;
    phi = -omega*avto+phi0;
    x = rao .* sin(phi);  
    y = rao .* cos(phi); 
    %/********LOBL**********/
    k=12000; % Scale Coefficient
    
    t=1; % Loop counter
%%Main loop
while t <= max_iter
    %% Evaluate the fitness
        for i=1:size(X,1)
            % Calculate the fitness of the population
            current_vulture_X = X(i,:);
            current_vulture_F=fobj(current_vulture_X);
            % Update the first best two vultures if needed
            if current_vulture_Fif current_vulture_F>ihaoavoa_score && current_vulture_F2,2,1,1)*((sin((pi/2)*(t/max_iter))^gamma)+cos((pi/2)*(t/max_iter))-1);
        P1=(2*rand+1)*(1-(t/max_iter))+a;
        %% FDB
        index = fitnessDistanceBalance(X,ihaoavoa_score); 
        %% Update the location
        for i=1:size(X,1)
            current_vulture_X = X(i,:);  % pick the current vulture back to the population
            F=P1*(2*rand()-1);  
            random_vulture_X=random_select(ihaoavoa_pos,Best_vulture2_X,alpha,betha);
          %% Composite opposition-based learning strategy (COBL)
           if rand<0.5
               opposite_X=lb+ub-rand*current_vulture_X;
            else
               opposite_X=(ub + lb)/2 + (ub + lb)/(2*k) - current_vulture_X/k;
            end
            Flag_UB=opposite_X>ub; % check if they exceed (up) the boundaries
            Flag_LB=opposite_Xif they exceed (down) the boundaries
            opposite_X=(opposite_X.*(~(Flag_UB+Flag_LB)))+ub.*Flag_UB+lb.*Flag_LB;
            Fnew=fobj(opposite_X);
            if Fnewif Fnewif abs(F) >= 1 
                if rand <0.5
                    current_vulture_X=ihaoavoa_pos*(1-t/max_iter)+(mean(X(i,:))-ihaoavoa_pos)*rand();
                else
                    current_vulture_X=ihaoavoa_pos.*Levy(dim)+X(index,:)+(y-x)*rand;  
                end
            %% Exploitation stage:AVOA
            elseif abs(F) < 1 
                current_vulture_X = exploitation(current_vulture_X, ihaoavoa_pos, Best_vulture2_X, random_vulture_X, F, p2, p3, dim, ub, lb); % Modified the position-weighted equation
            end
                X(i,:) = current_vulture_X; % place the current vulture back into the population
        end

程序结果

4 下载链接

见下方联系方式->程序目录

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

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

相关文章

智慧工地: 建筑施工一体化信息管理系统源码

智慧工地管理云平台系统是一种利用人工智能和物联网技术来监测和管理建筑工地的系统。它可以通过感知设备、数据处理和分析、智能控制等技术手段&#xff0c;实现对工地施工、设备状态、人员安全等方面的实时监控和管理。 一、智慧工地管理系统让工程施工智能化 1、内容全面&a…

区块链技术与应用 - 学习笔记3【比特币数据结构】

大家好&#xff0c;我是比特桃。本系列笔记只专注于探讨研究区块链技术原理&#xff0c;不做其他违反相关规定的讨论。 区块链技术已被纳入国家十四五规划&#xff0c;在“加快数字发展 建设数字中国”篇章中&#xff0c;区块链被列为“十四五”七大数字经济重点产业之一&#…

(二十五)大数据实战——kafka集群及Kafka-Eagle控制台安装与部署

前言 本节内容我们主要介绍一下搭建kafka集群以及kafka集群的一个web客户端组件Kafka-Eagle的部署安装&#xff0c;使用的kafka版本是kafka_2.12-3.0.0。在搭建kafka集群之前&#xff0c;我们要预先搭建好zookeeper集群&#xff0c;这里作者默认zookeeper的集群环境已经搭建完…

飞行动力学 - 第18节-全机航向稳定性与隐身性 之 基础点摘要

飞行动力学 - 第18节-全机航向稳定性与隐身性 之 基础点摘要 1. 全机航向静稳定性2. 垂尾与隐身3. 参考资料 1. 全机航向静稳定性 机翼贡献 上反角 复杂、极小幅降低 后掠角 增加稳定性 机身贡献 降低稳定性 尾翼贡献 航向静稳定性的最大来源 平尾 类似机翼贡献 垂尾 最大来…

DAMO-YOLO训练自己的数据集,使用onnxruntime推理部署

DAMO-YOLO训练自己的数据集&#xff0c;使用onnxruntime推理部署 DAMO-YOLO 是阿里达摩院智能计算实验室开发的一种兼顾速度与精度的目标检测算法&#xff0c;在高精度的同时&#xff0c;保持了很高的推理速度。 DAMO-YOLO 是在 YOLO 框架基础上引入了一系列新技术&#xff0…

wpf C# 用USB虚拟串口最高速下载大文件 每包400万字节 平均0.7s/M,支持批量多设备同时下载。自动识别串口。源码示例可自由定制。

C# 用USB虚拟串口下载大文件 每包400万字节 平均0.7s/M。支持批量多设备同时下载。自动识别串口。可自由定制。 int 32位有符号整数 -2147483648~2147483647 但500万字节时 write时报端口IO异常。可能是驱动限制的。 之前用这个助手发文件&#xff0c;连续发送&#xff0…

Vim9和其他软件的文本复制、粘贴

大家都知道&#xff1a;在Vim9中使用y和p命令来进行文本的复制和粘贴&#xff0c;今天我来说一说Vim和其他软件之间的文本复制、粘贴操作。 Vim9和其他软件进行复制、粘贴&#xff0c;其原理就是通过系统剪贴板作为中介来执行操作。 一、从Vim9复制文本内容 按住鼠标左键滑出…

局域网内部如何实现文件夹共享

这里写自定义目录标题 1.创建文件夹test2.选择共享--添加用户3.选择高级共享 1.创建文件夹test 2.选择共享–添加用户 3.选择高级共享

《python趣味工具》——酷炫二维码(3)计算机二级考试题

昨天我们学习了如何批量制作合适的二维码&#xff0c;今天来刷几道题练练手&#xff01; 文章目录 1. 制作名单2. 年会抽奖来啦3. 精准查找 1. 制作名单 秋招来了&#xff01;hr部门需要获得简历初筛后的候选者名单&#xff0c;所有候选者简历都按照“小明_xx大学.pdf”命名放…

第8章_瑞萨MCU零基础入门系列教程之SCI SPI

本教程基于韦东山百问网出的 DShanMCU-RA6M5开发板 进行编写&#xff0c;需要的同学可以在这里获取&#xff1a; https://item.taobao.com/item.htm?id728461040949 配套资料获取&#xff1a;https://renesas-docs.100ask.net 瑞萨MCU零基础入门系列教程汇总&#xff1a; ht…

DBSCAN 揭秘:了解此算法的工作原理

一、说明 DBSCAN 代表 基于密度的带噪声应用程序空间聚类。它是一种流行的聚类算法&#xff0c;用于机器学习和数据挖掘&#xff0c;根据数据集中紧密排列在一起的点与其他点的距离对点进行分组。 二、DBSCAN的算法原理 DBSCAN 的工作原理是将数据划分为由密度较低的区域分隔的…

数据结构与算法:数据结构基础

目录 数组 定义 形式 顺序存储 基本操作 读取元素 更新元素 插入元素 删除元素 扩容 初始化 时机 步骤 优劣势 链表 定义 单向链表 特点 双向链表 随机存储 基本操作 查找节点 更新节点 插入节点 删除元素 数组VS链表 栈与队列 栈 定义 基本操作…

分类预测 | Matlab实现SO-RF蛇群算法优化随机森林多输入分类预测

分类预测 | Matlab实现SO-RF蛇群算法优化随机森林多输入分类预测 目录 分类预测 | Matlab实现SO-RF蛇群算法优化随机森林多输入分类预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现SO-RF蛇群算法优化随机森林多输入分类预测&#xff08;完整源码和数据&…

notepad++去除每一行第二个等号之后的内容解决ResolvePackageNotFound

([^])$ 正则表达式用第一行的 https://blog.csdn.net/Charlotte_Si/article/details/132333988 原文的正则表达式不知道为什么没用

XXE-Lab for PHP

环境配置 1.将靶场进行下载.... https://github.com/c0ny1/xxe-lab 2.将PHPStudy的中间件与版本信息调制为php-5.4.45Apache访问以下地址开始练习... http://127.0.0.1/xxelabs/php_xxe/ 靶场实操 1.在登录界面输入账号密码并抓取数据包.... 2.尝试读取本地文件.... <…

第6章_瑞萨MCU零基础入门系列教程之串行通信接口(SCI)

本教程基于韦东山百问网出的 DShanMCU-RA6M5开发板 进行编写&#xff0c;需要的同学可以在这里获取&#xff1a; https://item.taobao.com/item.htm?id728461040949 配套资料获取&#xff1a;https://renesas-docs.100ask.net 瑞萨MCU零基础入门系列教程汇总&#xff1a; ht…

TCP协议报文,核心特性可靠的原因,超时重传详细介绍

目录 一、TCP协议 二、TCP核心特性的保障 三、保留的六位标志位对于应答报文的作用 四、如何处理丢包——超时重传的原理 五、超时重传的时间 一、TCP协议 每一行是四个字节&#xff0c;前面的20个字节是固定的&#xff08;TCP最短长度&#xff0c;20字节&#xff0c;选项…

进制和编码

目标&#xff1a;了解计算机中一些必备的尝试知识&#xff0c;了解常见名词背后的意义 1.python的运行方式 交互式运行脚本式运行 2.进制 2.1 进制的转换 计算机中底层的所有数据都是0101010101的形式存在的 八进制无法直接转为2进制 十进制转其他进制 bin(25) # 10进制转…

[XSCTF]easyxor

查看&#xff0c;main函数&#xff0c;首先是将输入的数据与key中的字符依次异或 在这个循环里&#xff0c;将异或得到的结果每次减去1&#xff0c;同时在数组里写上1&#xff0c;往后遍历数组 直到异或得到的结果减为0&#xff0c;在数组中写一个0进行标记 最后比较数组是否与…

百度飞桨(厦门)人工智能产业赋能中心签约,共创人工智能产业协同服务新生态...

9月8日&#xff0c;第二十三届中国国际投资贸易洽谈会在厦门正式开幕。 当日&#xff0c;厦门市思明区政府和火炬管委会&#xff0c;与百度正式签约&#xff0c;联手共建百度飞桨&#xff08;厦门&#xff09;人工智能产业赋能中心。思明区委书记林重阳&#xff0c;厦门市工信局…