【群智能算法改进】一种改进的鹦鹉优化算法 改进鹦鹉优化器 IPO算法【Matlab代码#73】

文章目录

    • 【`获取资源`请见文章第5节:资源获取】
    • 1. 原始鹦鹉优化算法PO
    • 2. 改进后的IPO算法
      • 2.1 自适应切换因子
      • 2.2 混合柯西和高斯变异
    • 3. 部分代码展示
    • 4. 仿真结果展示
    • 5. 资源获取


获取资源请见文章第5节:资源获取】


1. 原始鹦鹉优化算法PO

鹦鹉优化算法(Parrot optimizer,PO)是2024提出来的新算法。作者根据鹦鹉的四种不同的行为特征:觅食、停留、交流和对陌生人的恐惧,提出了这个算法。觅食行为描述鹦鹉在食物丰富的小群体中觅食,可以利用主人的位置和群体的存在,向食物靠近;停留行为描述鹦鹉在主人身体的不同部位随机栖息;交流行为描述鹦鹉在群体中进行交流,既用于社会互动,也用于信息传播;对陌生人的恐惧行为描述鹦鹉离开不熟悉的个体,向它们的主人寻求保护。

2. 改进后的IPO算法

2.1 自适应切换因子

在鹦鹉优化算法的交流行为阶段,有两个公式来更新鹦鹉的位置,其中一个公式描述的是鹦鹉在种群进行交流的行为,另外一个公式描述的是鹦鹉进行信息传播的行为,通过H因子来控制这两种行为的概率。其中,描述信息传播行为的公式,其变异力度较小,当种群陷入局部最优时,并不能有效地跳出局部最优。因此,提出自适应切换因子策略,让鹦鹉在迭代后期更多的进行种群间交流行为,减少低效的信息传播行为。

2.2 混合柯西和高斯变异

在传统鹦鹉优化算法迭代过程中,鹦鹉个体的快速同化可能会导致种群聚集在当前最优位置附近,从而陷入局部最优解而无法发现全局最优解。为了解决这个问题,引入变异算子对个体进行干扰,以增加种群的多样性,跳出局部最优解。柯西和高斯变异是两种常用的变异算子,但各自存在一些缺点。因此,提出一种融合了柯西变异和高斯变异各自的优点的自适应高斯-柯西混合变异策略。
在这里插入图片描述

3. 部分代码展示

close all
clear
clc
N = 30; % Number of search agents
Function_name='F1'; % Name of the test function that can be from F1 to F23 
Max_iteration = 500; % Maximum numbef of iterations% Load details of the selected benchmark function
[lb,ub,dim,fobj] = Get_Functions_details(Function_name);
[Best_pos_PO, Best_score_PO, Convergence_PO] = PO(N,Max_iteration,lb,ub,dim,fobj);
[Best_pos_IPO, Best_score_IPO, Convergence_IPO] = IPO(N,Max_iteration,lb,ub,dim,fobj);% Draw search space
figure('Position',[454   445   694   297]);
subplot(1,2,1);
func_plot(Function_name);
title('Parameter space')
xlabel('x_1');
ylabel('x_2');
zlabel([Function_name,'( x_1 , x_2 )'])% Draw objective space
subplot(1,2,2);
semilogy(Convergence_PO,'Color','k','Linewidth', 1.5)
hold on
semilogy(Convergence_IPO,'Color','r','Linewidth', 1.5)
title('Objective space')
xlabel('Iteration');
ylabel('Best score obtained so far');
axis tight
grid on
box on
legend('PO','IPO')

4. 仿真结果展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5. 资源获取

可更换其他群智能算法,获取完整代码资源。👇👇👇👀名片

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

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

相关文章

C#操作MySQL从入门到精通(6)——对查询数据进行排序

前言 在和MySql数据库交互的过程中,查询数据是使用最频繁的操作,并且我们经常需要对查询到的数据进行排序后输出,比如我想查询1列数据的最小值,那么我可以将查询到的数据进行升序(从小到大)排列,然后取第一个数据就是最小值。本文详细介绍了对查询数据进行排序的各种操…

数学建模-最优包衣厚度终点判别法-二(K-Means聚类)

💞💞 前言 hello hello~ ,这里是viperrrrrrr~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页&#xff…

OpenLCA案例分析:环境影响与碳排放生命周期评估应用、GREET下载与安装、生物质能源的碳排放

目录 第一章 生命周期评价的理论基础 第二章 OpenLCA的安装使用及生命周期评估模型构建 第三章 GREET的介绍 第四章 生物质能源的碳排放 更多应用 生命周期分析是一种分析工具,它可帮助人们进行有关如何改变产品或如何设计替代产品方面的环境决策,即…

./build/examples/openpose/openpose.bin在windows中调用(步骤非常简单)

下载openpose:https://github.com/CMU-Perceptual-Computing-Lab/openpose/releases 打开进入models 这里面还缺几个模型 打开一个github项目:https://github.com/ihp-lab/OpenSense/blob/fefe13ccf250e4811f4f61edf0b212e4ded78d19/Interoperations/O…

【cocos creator】【编辑器插件】cocos creator文件复制时,解决cocos creator uuid冲突

!!!修改前先备份 1、将文件夹放在packages文件夹下 2、打开项目,选择要刷新uuid的文件夹 3、菜单栏点击 扩展->refresh-uuid 4、等控制台提示:资源uuid刷新完成,重启项目(!&#…

算法概述(一)

一、算法 在计算机领域里,算法是一系列程序指令,用于处理特定的运算和逻辑问题。 二、衡量算法的好坏重要标准 1、时间复杂度 2、空间复杂度 三、算法应用场景 1、运算 如:超大整数求积 2、查找 如:在度娘,谷歌上搜索…

小程序变更主体流程是怎样的?

小程序迁移变更主体有什么作用?“小程序主体变更”是指小程序账号开发者将其小程序项下业务交由其他开发者承接、运营和服务。主体变更完成后,小程序的运营权限、主体信息将发生变化。小程序迁移变更主体的条件有哪些?1、境外小程序不支持小程…

4.9QT

完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳转到其他界面 如果账号和密码不匹配&#xf…

Houdini笔记操作技巧_集锦

个人记录下,谨防遗忘。同时丰富下Hou的中文搜素环境。 1、自定义启动界面 ① 设置完界面后,保存自定义界面(Save Current Desktop As...) ② Edit-->Preferences-->General UIInterface-->Startup in Desktop&#xff1…

【redis基础01】数据结构-通用命令、String、Hash、List、Set

目录 1 通用命令1.1 keys 检索匹配特定模式的所有键1.2 del 删除指定的key1.3 exists 判断key是否存在1.4 expire 给key设定有效期1.5 ttl 查看key的剩余有效期1.6 key的层级格式 2 String类型2.1 set&get2.2 mset&mget 批量操作2.3 incr&incrbyfloat 自增2.4 setn…

数据结构之树的性质总结

节点的度:该节点拥有的孩子个数 叶子节点:度为0的节点 层数:根节点为第一层,根的子节点为第二层,以此类推 所有树的性质:所有节点的总度数等于节点数减一 完全m叉树性质 完全m 叉树,节点的…

AI预测福彩3D第32弹【2024年4月10日预测--第7套算法开始计算第5次测试】

今天咱们继续进行进行第7套算法的测试,今天是第5次测试,昨天7码大方案错过,四码小方案直选命中,组选命中。这套算法的目标是争取稳定7码方案中的第一套方案,争取四码小方案的命中率达到50%(十期命中5期,目前…

C# 操作PDF表单 - 创建、填写、删除PDF表单域

通常情况下,PDF文件是不可编辑的,但PDF表单提供了一些可编辑区域,允许用户填写和提交信息。PDF表单通常用于收集信息、反馈或进行在线申请,是许多行业中数据收集和交换的重要工具。 PDF表单可以包含各种类型的输入控件&#xff0…

实验1 eNSP安装与使用

实验1 eNSP安装与使用 一、 原理描述二、 实验目的三、 实验内容四、 实验步骤1.下载并安装eNSP2.eNSP软件界面3.搭建并运行网络拓扑4. Wireshark 捕获分组并分析 一、 原理描述 eNSP(Enterprise Network Simulation Platform)是由华为提供的免费网络模…

idea中jdk版本的配置

配置JDK版本的步骤如下: 下载JDK安装文件:首先,需要从Oracle官方网站(https://www.oracle.com/java/technologies/javase-jdk8-downloads.html)下载适合您操作系统的JDK版本。 安装JDK:双击下载的安装文件…

什么是 DNS 记录?

DNS记录是存储在DNS服务器上的文本指令。它们表明与一个域名相关的IP地址,也可以提供其他信息。DNS记录是计算机用语,指域名系统(Domain Name System,简称DNS)中的一条记录,这条记录存储于DNS服务器中。每一…

全自动ai生成视频源码,利用AI大模型,一键生成高清短视频

MoneyPrinterTurbo-基于Python全自动ai生成视频源码,利用AI大模型,一键生成高清短视频,只需提供一个视频 主题 或 关键词 ,就可以全自动生成视频文案、视频素材、视频字幕、视频背景音乐,然后合成一个高清的短视频。 地…

c++ - 运算符重载

文章目录 一、运算符重载的关键字和注意点二、重载 运算符三、重载 运算符四、重载 运算符五、重载前置 和 后置 运算符六、重载 << >>运算符 一、运算符重载的关键字和注意点 C为了增强代码的可读性引入了运算符重载&#xff0c;运算符重载是具有特殊函数名的函…

【JavaEE】浅谈线程(一)

线程 前言线程的由来线程是什么线程的属性线程更高效的原因举个例子&#xff08;线程便利性的体现&#xff09; 多线程代码线程并发执行的代码jconsole(观测多线程) 线程的调度问题创建线程的几种方法1&#xff09;通过继承Thread 重写run2&#xff09;使用Runnable接口 重写ru…

MySQL 上亿大表,如何深度优化?

背景 分析 测试 实施 索引优化后 delete大表优化为小批量删除 总结 前段时间刚入职一家公司&#xff0c;就遇上这事&#xff01; 背景 XX实例&#xff08;一主一从&#xff09;xxx告警中每天凌晨在报SLA报警&#xff0c;该报警的意思是存在一定的主从延迟&#xff08;…