【免费分享】2024最新优化算法-花斑翠鸟优化算法PKO

2024-09-01 21:28

本文主要是介绍【免费分享】2024最新优化算法-花斑翠鸟优化算法PKO,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

斑翠鸟是一种美丽的鸟类,隶属于翠鸟科,主要分布在东南亚地区,如马来西亚、泰国、印度尼西亚等国。斑翠鸟的身体呈蓝色,头部有黑色斑点,翅膀和尾巴同样为蓝色。它们具有长而尖的嘴巴,适合捕食小型水生动物。斑翠鸟偏爱栖息在水边,常见于河流、湖泊和沼泽附近,以鱼类为主要食物,通常通过潜水来捕获猎物。捕食时,斑翠鸟会从栖息地的树枝上俯冲而下,迅速抓住猎物后返回树枝进食。

斑翠鸟优化算法(Pied Kingfisher Optimizer, PKO)是一种由Abdelazim Hussien于2024年提出的新型群体基元启发式算法。该算法受到斑翠鸟独特的狩猎行为和共生关系的启发,围绕三个阶段展开:栖息/悬停猎物(探索/多样化)、潜水寻找猎物(开发/集约化)以及培养共生关系。这些行为被转化为数学模型,用于有效解决不同搜索空间中的多种优化问题。

代码如下

function [Best_fitness,Best_position,Convergence_curve]=PKO(Popsize,Maxiteration,LB,UB,Dim,Fobj)
tic;
BF=8;%beating Factor
Crest_angles=2*pi*rand;
X=Initialization(Popsize,Dim,UB,LB);
Fitness = zeros(1,Popsize);
Convergence_curve=zeros(1,Maxiteration);
for i=1:PopsizeFitness(i)=Fobj(X(i,:));
end
% Calculate the fitness values of initial PKO.
[~,sorted_indexes]=sort(Fitness);
Best_position=X(sorted_indexes(1),:);
Best_fitness = Fitness(sorted_indexes(1));
Convergence_curve(1)=Best_fitness;
t=1;
PEmax=0.5;
PEmin=0;
while t<Maxiteration+1o=exp(-t/Maxiteration)^2;for i=1:Popsizeif rand<.8  %explorationj=i;while i==jseed=randperm(Popsize);j=seed(1);endbeatingRate=rand*(Fitness(j))/(Fitness(i));alpha=2*randn(1,Dim)-1;if rand<.5T=beatingRate-((t)^(1/BF)/(Maxiteration)^(1/BF));X_1(i,:)=X(i,:)+alpha.*T.*(X(j,:)-X(i,:));elseT= (exp(1)-exp(((t-1)/Maxiteration)^(1/BF)))*(cos(Crest_angles));X_1(i,:)=X(i,:)+alpha.*T.*(X(j,:)-X(i,:));endelse %exploitationalpha=2*randn(1,Dim)-1;b=X(i,:)+o^2*randn.*Best_position; HuntingAbility=rand*(Fitness(i))/(Best_fitness);X_1(i,:)=X(i,:)+ HuntingAbility*o*alpha.*(b-Best_position);endendfor i=1:PopsizeFU=X_1(i,:)>UB;FL=X_1(i,:)<LB;X_1(i,:)=(X_1(i,:).*(~(FU+FL)))+UB.*FU+LB.*FL;fitnessn(i) = Fobj(X_1(i,:));if fitnessn(i)<Fitness(i)Fitness(i)=fitnessn(i);X(i,:)=X_1(i,:);endif Fitness(i)<Best_fitnessBest_fitness=Fitness(i);Best_position=X(i,:);endend% Commensal association of the pied kingfisher with foraging Eurasian ottersPE=PEmax-(PEmax-PEmin)*(t/Maxiteration);   %Predatory Efficiencyfor i=1:Popsizealpha=2*randn(1,Dim)-1;if rand>(1-PE)  X_1(i,:)=X(randi([1,Popsize]),:)+o*alpha.*abs(X(i,:)-X(randi([1,Popsize]),:));elseX_1(i,:)=X(i,:);endFU=X_1(i,:)>UB;FL=X_1(i,:)<LB;X_1(i,:)=(X_1(i,:).*(~(FU+FL)))+UB.*FU+LB.*FL;fitnessn(i) = Fobj(X_1(i,:));if fitnessn(i)<Fitness(i)Fitness(i)=fitnessn(i);X(i,:)=X_1(i,:);endif Fitness(i)<Best_fitnessBest_fitness=Fitness(i);Best_position=X(i,:);endendConvergence_curve(t)=Best_fitness;t = t + 1;
end
time = toc;
end

这篇关于【免费分享】2024最新优化算法-花斑翠鸟优化算法PKO的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1128082

相关文章

Python虚拟环境与Conda使用指南分享

《Python虚拟环境与Conda使用指南分享》:本文主要介绍Python虚拟环境与Conda使用指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、python 虚拟环境概述1.1 什么是虚拟环境1.2 为什么需要虚拟环境二、Python 内置的虚拟环境工具

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

Java SWT库详解与安装指南(最新推荐)

《JavaSWT库详解与安装指南(最新推荐)》:本文主要介绍JavaSWT库详解与安装指南,在本章中,我们介绍了如何下载、安装SWTJAR包,并详述了在Eclipse以及命令行环境中配置Java... 目录1. Java SWT类库概述2. SWT与AWT和Swing的区别2.1 历史背景与设计理念2.1.

Java日期类详解(最新推荐)

《Java日期类详解(最新推荐)》早期版本主要使用java.util.Date、java.util.Calendar等类,Java8及以后引入了新的日期和时间API(JSR310),包含在ja... 目录旧的日期时间API新的日期时间 API(Java 8+)获取时间戳时间计算与其他日期时间类型的转换Dur

MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)

《MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)》掌握多表联查(INNERJOIN,LEFTJOIN,RIGHTJOIN,FULLJOIN)和子查询(标量、列、行、表子查询、相关/非相关、... 目录第一部分:多表联查 (JOIN Operations)1. 连接的类型 (JOIN Types)

MySQL 存储引擎 MyISAM详解(最新推荐)

《MySQL存储引擎MyISAM详解(最新推荐)》使用MyISAM存储引擎的表占用空间很小,但是由于使用表级锁定,所以限制了读/写操作的性能,通常用于中小型的Web应用和数据仓库配置中的只读或主要... 目录mysql 5.5 之前默认的存储引擎️‍一、MyISAM 存储引擎的特性️‍二、MyISAM 的主

Python处理大量Excel文件的十个技巧分享

《Python处理大量Excel文件的十个技巧分享》每天被大量Excel文件折磨的你看过来!这是一份Python程序员整理的实用技巧,不说废话,直接上干货,文章通过代码示例讲解的非常详细,需要的朋友可... 目录一、批量读取多个Excel文件二、选择性读取工作表和列三、自动调整格式和样式四、智能数据清洗五、

JDK9到JDK21中值得掌握的29个实用特性分享

《JDK9到JDK21中值得掌握的29个实用特性分享》Java的演进节奏从JDK9开始显著加快,每半年一个新版本的发布节奏为Java带来了大量的新特性,本文整理了29个JDK9到JDK21中值得掌握的... 目录JDK 9 模块化与API增强1. 集合工厂方法:一行代码创建不可变集合2. 私有接口方法:接口

电脑系统Hosts文件原理和应用分享

《电脑系统Hosts文件原理和应用分享》Hosts是一个没有扩展名的系统文件,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应... Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应

Python多进程、多线程、协程典型示例解析(最新推荐)

《Python多进程、多线程、协程典型示例解析(最新推荐)》:本文主要介绍Python多进程、多线程、协程典型示例解析(最新推荐),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定... 目录一、multiprocessing(多进程)1. 模块简介2. 案例详解:并行计算平方和3. 实现逻