2024最新算法:斑翠鸟优化算法(Pied Kingfisher Optimizer ,PKO)求解23个基准函数

news2024/11/25 0:36:13

一、斑翠鸟优化算法

斑翠鸟优化算法(Pied Kingfisher Optimizer ,PKO),是由Abdelazim Hussien于2024年提出的一种基于群体的新型元启发式算法,它从自然界中观察到的斑翠鸟独特的狩猎行为和共生关系中汲取灵感。PKO 算法围绕三个不同的阶段构建:栖息/悬停猎物(探索/多样化)、潜水寻找猎物(开发/集约化)和培养共生关系。这些行为方面被转化为数学模型,能够有效地解决不同搜索空间中的各种优化挑战。

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

参考文献:

[1]Pied Kingfisher Optimizer: A new bio-inspired algorithm for solving numerical optimization and industrial engineering problems

二、23个函数介绍

参考文献:

[1] Yao X, Liu Y, Lin G M. Evolutionary programming made faster[J]. IEEE transactions on evolutionary computation, 1999, 3(2):82-102.

三、PKO求解23个函数

3.1部分代码

close all ;
clear
clc
Npop=30;                
Function_name='F8';     % Name of the test function that can be from F1 to F23 ( 
Tmax=500;              
[lb,ub,dim,fobj]=Get_Functions_details(Function_name);
[Best_fit,Best_pos,Convergence_curve]=PKO(Npop,Tmax,lb,ub,dim,fobj);
figure('Position',[100 100 660 290])
%Draw search space
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_curve,'Color','r','linewidth',3)
title('Search space')
xlabel('Iteration');
ylabel('Best score obtained so far');
axis tight
grid on
box on
legend('PKO')
saveas(gca,[Function_name '.jpg']);


display(['The best solution is ', num2str(Best_pos)]);
display(['The best fitness value is ', num2str(Best_fit)]);


3.2部分结果

四、完整MATLAB代码

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

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

相关文章

售前方案工程师:程序员跨界闯新天,解码售前方案的魅力与挑战

在程序员的多元职业迷宫中,除了前端花园的绚烂和后端洞穴的深邃,还存在着一条独特的赛道——售前方案工程师。 这一角色融合了技术深度与商业洞察,是技术与市场交汇的桥头堡,为那些渴望将技术实力转化为商业价值的程序员提供了一…

【推荐】JuiceSSH 一款可以在手机端免费使用的SSH客户端工具

文章目录 一,官网地址二,下载链接三,使用说明 一,官网地址 https://juicessh.com/ 二,下载链接 https://juicessh.com/changelog#v3.2.2 三,使用说明 使用相当简单,手机上点击“快速连接…

GEE 将裁剪后的Sentinel-2影像 在ArcGIS中去除空值

在ArcGIS中,可以使用栅格计算器(Raster Calculator)工具来设置NoData值为空。以下是在ArcGIS中将NoData值设置为空的步骤: 打开ArcGIS软件并加载下载的Sentinel-2影像数据。 影像Nodata空值以黑色背景呈现,影响矢量数据…

就业班 2401--3.6 Linux Day12--计划任务和邮件和ssh远程连接

一、计划任务 计划任务概念解析 在Linux操作系统中,除了用户即时执行的命令操作以外,还可以配置在指定的时间、指定的日期执行预先计划好的系统管理任务(如定期备份、定期采集监测数据)。RHEL6系统中默认已安装了at、crontab软件…

Vue源码系列讲解——过滤器篇【二】(工作原理)

目录 1. 前言 2. resolveFilter函数分析 3. 串联过滤器原理 4. 过滤器接收参数 5. 小结 1. 前言 通过上一篇用法回顾我们知道,过滤器有两种使用方式,分别是在双花括号插值中和在 v-bind 表达式中。但是无论是哪一种使用方式,过滤器都是写…

Python 系统学习总结(基础语法+函数+数据容器+文件+异常+包+面向对象)

🔥博客主页: A_SHOWY🎥系列专栏:力扣刷题总结录 数据结构 云计算 数字图像处理 力扣每日一题_ 六天时间系统学习Python基础总结,目前不包括可视化部分,其他部分基本齐全,总结记录&#xff0…

快速上手:剧本杀dm预约平台小程序的制作流程

在当今的娱乐市场中,剧本杀已经成为一种备受欢迎的娱乐方式。为了给玩家提供更好的服务和体验,开发一个剧本杀DM预约平台小程序是至关重要的。下面,我们将详细介绍如何使用乔拓云第三方平台开发这样一个预约平台。 首先,打开乔拓云…

QLC SSD:LDPC纠错算法的优化方案

随着NAND TLC和QLC出现,LDPC也在不断的优化研究,提升纠错能力。小编看到有一篇来自Microchip发布的比较详细的LDPC研究数据,根据自己的理解分析解读给大家,如有错误,请留言指正! 文档中测试LDPC(Low-Density Parity-Check)码是为了评估其在不同配置下对数据错误的有效…

基于51单片机的四位并行数据主从机传输设计

基于51单片机的四位并行数据主从机传输设计[proteus仿真] 主从机通信系统这个题目算是课程设计和毕业设计中常见的题目了,本期是一个基于51单片机的四位并行数据主从机传输设计 需要的源文件和程序的小伙伴可以关注公众号【阿目分享嵌入式】,赞赏任意文…

spring 事务失效的 12 种场景

文章目录 spring 事务失效的 12 种场景一、事务不生效1.访问权限问题2. 方法用 final 修饰3.方法内部调用(自己玩自己)3.1 新加一个 Service 方法3.2 在该 Service 类中注入自己3.3 通过 AopContent 类 4.Bean没有纳入Spring IOC容器管理5.多线程调用&am…

时间轮奇妙旅程:深度解析Netty中的时间轮机制

欢迎来到我的博客,代码的世界里,每一行都是一个故事 时间轮奇妙旅程:深度解析Netty中的时间轮机制 前言时间轮的基本概念时间轮的工作机制netty中时间轮的实现时间轮实现细节:简化的源码示例: 时间轮的应用场景时间轮的…

调研图基础模型(Graph Foundation Models)

🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 图基础模型(Graph Foundation Models,简称 GFMs) 是一种经过预训练的图大模型,旨在处理不同领域的图数据和任务。让我们详细探讨一下这个概念。 Github …

掌握Nodejs高级图片压缩技巧提升web优化

掌握Nodejs高级图片压缩技巧提升web优化 在当今的数字时代,图像在网络开发中发挥着至关重要的作用。它们增强视觉吸引力、传达信息并吸引用户。然而,高质量的图像通常有一个显着的缺点——较大的文件大小会减慢网页加载时间。为了应对这一挑战并确保快速加载网站,掌握 Node…

SQL注入漏洞,常用注入函数及其pakachu漏洞靶场演示

目录 SQL注入漏洞概述 SQL注入的常用函数 漏洞分类与利用 1.基于联合查询的SQL注入 2.盲注 时间盲注(base on bool)​编辑 3.宽字节注入 4.inset/update/delete注入 5.header注入 &…

【工作向】protobuf编译生成pb.cc和pb.py文件

序言 首先通过protoc --version查看protoc版本,避免pb文件生成方和使用方版本不一致 1. 生成pb.cc 生成命令 protoc -I${proto_file_dir} --cpp_out${pb_file_dir} *.proto参数: -I表示 proto 文件的路径; --cpp_out 表示输出路径&#xff…

关于Mybatis-Plus报错 Not Found TableInfoCache 解决办法

0. 接口结构&#xff1a;1. 方法报错&#xff1a;2. 解决方法&#xff1a;3. 原因分析&#xff1a; 0. 接口结构&#xff1a; 【接口】&#xff1a; public interface PurchaseOrderService extends IService<PurchaseOrder> {}【接口实现类】&#xff1a; public cla…

Java项目:39 springboot007大学生租房平台的设计与实现

作者主页&#xff1a;舒克日记 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 系统有管理员、房东和用户 【主要功能】 1、后台&#xff1a;房源管理、信息审批管理、订单信息管理、房东管理、用户管理 2、前台&#xff1a;注册登…

PackagesNotFoundError:学习利用报错信息找到解决方法

反思&#xff1a;之前看到报错经常是直接复制报错信息去网上搜&#xff0c;但很多情况下报错信息里其实就给出了解决方案 报错信息&#xff1a; Collecting package metadata (current_repodata.json): done Solving environment: unsuccessful initial attempt using frozen …

[LeetBook]【学习日记】有效数字——状态机

题目 有效数字 有效数字&#xff08;按顺序&#xff09;可以分成以下几个部分&#xff1a; 若干空格一个小数或者整数&#xff08;可选&#xff09;一个’e’或’E’&#xff0c;后面跟着一个整数若干空格 小数&#xff08;按顺序&#xff09;可以分成以下几个部分&#xff1a…

React Vite 构建工具如何查看代码占用体积

首先安装 Vite 中的 rollup-plugin-visualizer 插件 cnpm install rollup-plugin-visualizer 接着在你的 vite.config.ts 中引入并且使用到 plugins 中 import { visualizer } from "rollup-plugin-visualizer";export default defineConfig({plugins: [react(),vi…