CEC2005:星雀优化算法(Nutcracker optimizer algorithm,NOA)求解CEC2005(提供MATLAB代码)

news2024/12/24 11:42:58

一、星雀优化算法NOA

星雀优化算法(Nutcracker optimizer algorithm,NOA)由Mohamed Abdel-Basset等人于2023年提出,该算法模拟星雀的两种行为,即:在夏秋季节收集并储存食物,在春冬季节搜索食物的存储位置。
在这里插入图片描述
星鸦单独或成对活动,偶成小群。栖于松林,以松子为食。也埋藏其他坚果以备冬季食用。动作斯文,飞行起伏而有节律。星鸦收集松子,储藏在树洞里和树根底下,准备冬天吃。冬天星鸦从这个地方游荡到哪个地方,从这座森林飞到另一座森林,享用着它们储藏的松子。其实它们每个星鸦每天找到的储藏的食物不一定是自己储藏的,自己储藏的松子也可能成为别人的食物。它们无论谁飞到一片新林子,就到处寻找松子,因为总有别的星鸦藏下的种子。它把树洞扒拉开看看,到树根底下翻检,刨开灌木丛,就是大雪覆盖的灌木丛下,它们也能找到自己同类藏下的食粮。
在这里插入图片描述
星鸦体羽大都咖啡褐色,具白色斑;飞翔时黑翅,白色的尾下覆羽和尾羽白端是很醒目的。体上的白斑点飞行慢时易见。鼻羽污白具不显著暗褐色基部、暗褐羽缘;眼先区为污白或乳白色;额前部为很暗的咖啡褐色到淡黑褐,头顶和颈项则逐渐变为稍亮的暗咖啡褐;下腰到尾上覆羽淡褐黑色;尾下覆羽白色;体羽的其余部分概为暗咖啡褐色,具众多的白色点斑和条纹。颊部、喉和颈部羽毛具纵长白色尖端;下体、翕部、背部和肩部的羽端有点状白斑,每一白色点斑周缘是淡褐黑。翅黑具稍淡蓝灰或淡绿闪光,小覆羽尖端白色,有时中覆羽、大覆羽亦有白色尖端;初级飞羽和次级飞羽有时具细小的白色尖端,但后者常经磨损而消失;第6枚和第7枚在内翈基部具白色新月形斑,有时第5枚初级飞羽亦有较小的白斑。尾羽亮黑,中央尾羽狭窄,最外侧尾羽具宽的白色端斑。翅下覆羽淡黑、尖端白。虹膜暗褐;嘴、跗蹠和足黑色。
在这里插入图片描述

参考文献:
Mohamed Abdel-Basset, Reda Mohamed, Mohammed Jameel, Mohamed Abouhawwash.Nutcracker optimizer: A novel nature-inspired metaheuristic algorithm for global optimization and engineering design problems[J]. Knowledge-Based Systems,2023,262.

二、CEC2005测试简介

CEC2005 测试集共包含 25 个测试问题, 即 f 1 − f 25 f_{1}-f_{25} f1f25 。根据问题的特征, 可进一 步将其分为 4 类: 单峰问题 f 1 − f 5 f_{1}-f_{5} f1f5 , 基本多峰问题 f 6 − f 12 f_{6}-f_{12} f6f12 , 扩展多峰问题 f 13 − f 14 f_{13}-f_{14} f13f14混合复合问题 f 15 − f 25 f_{15}-f_{25} f15f25 。特别地, 单峰问题 f 1 − f 5 f_{1}-f_{5} f1f5的结构相对简单, 常被用来测试算法的收 玫性能,;而基本多峰问题 f 6 − f 12 f_{6}-f_{12} f6f12 有多个局部最优解, 用来测试算法对决策空间进行全局 探索和局部开发的平衡能力 ; 扩展多峰和混合复合问题 f 13 − f 25 f_{13}-f_{25} f13f25 具有更加复杂的结构, 因而对算法的挑战性更大。此外, 该测试集包含了八组可比较的问题, 可测试算法对不同类型问题特征的性能, 如不同条件数、旋转、噪音干扰、不连续、全局最优邻域形状、全局最优解的位置和种群初始范围等. 由此可见, 该测试集能有效评估算法性能。
在这里插入图片描述
参考文献:
[1] Suganthan P N , Hansen N , Liang J J , et al. Problem Definitions and Evaluation Criteria for the CEC 2005 Special Session on Real-Parameter Optimization[J]. Natural Computing, 2005, 341-357.
[2]田梦男. 全局优化问题的高效差分进化算法研究[D].陕西师范大学,2020.

三、实验结果

完整代码添加博客下方博主微信:djpcNLP123

close all
clear 
clc
addpath(genpath(pwd));%加载路径
SearchAgents_no=50; % 种群大小
Function_name=21; %测试函数1-25
Max_iteration=50; % 最大迭代次数
dim=2;%维度 2/10/30/50
Xmin=[-100,-100,-100,-100,-100,-100,0,-32,-5,-5,-0.5,-pi,-3,-100,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,2];
Xmax=[100,100,100,100,100,100,600,32,5,5,0.5,pi,1,100,5,5,5,5,5,5,5,5,5,5,5];
lb=Xmin(Function_name);%变量下界
ub=Xmax(Function_name);%变量上界
[fMin,bestX,curve]=NOA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj);  
figure
plot(curve,'Color','c','linewidth',2.5)
title(['F' num2str(Function_name)])
xlabel('Iteration');
ylabel('BestScore');
grid on
legend('NOA')
% function_plot(Function_name)%画函数图像
display(['The best solution obtained  is : ', num2str(bestX)]);
display(['The best optimal value of the objective funciton found  is : ', num2str(fMin)]);


cec2005之F24求解过程

cec2005之F25求解过程

部分实验结果:

3.1F21

在这里插入图片描述

3.2F22

在这里插入图片描述

3.3F23

在这里插入图片描述

3.4F24

在这里插入图片描述

3.5F25

在这里插入图片描述

四、参考代码

完整代码添加博客下方博主微信:djpcNLP123

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

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

相关文章

C语言循环语句do while和嵌套循环语句讲解

C do…while 循环 不像 for 和 while 循环,它们是在循环头部测试循环条件。在 C 语言中,do…while 循环是在循环的尾部检查它的条件。 do…while 循环与 while 循环类似,但是 do…while 循环会确保至少执行一次循环。 语法 C 语言中 do…w…

杂谈:数组index问题和对象key问题

面试题一: var arr [1, 2, 3, 4] 问:arr[1] ?; arr[1] ?答:arr[1] 2; arr[1] 2 这里可以再分为两个问题: 1、数组赋值 var arr [1, 2, 3, 4]arr[1] 10; // 数字场景 arr[10] 1; // 字符串场景 arr[a] 1; // 字符串…

索莫菲模型的一些理解 Smomerfeld Model

如何解释传统热容算出来的数值与量子模型下的区别? 因为只有费米能附近的电子才能够进行移动,这个是问题的差别所在 我们下面就来介绍如何求费米能(费米能的计算) 既然费米能附近的电子很重要,那么附近的电子有多少很…

语义分割前储知识

CNN中的Layers 除了正向传播计算loss,反向传播更新parameters,我们还需要知道参数是如何计算的,这个很重要。 我们这里介绍几个在deep learning中经常用到的几个层,dense layer(全连接层),con…

Redis源码---有序集合为何能同时支持点查询和范围查询

目录 前言 Sorted Set 基本结构 跳表的设计与实现 跳表数据结构 跳表结点查询 跳表结点层数设置 哈希表和跳表的组合使用 前言 有序集合(Sorted Set)是 Redis 中一种重要的数据类型,它本身是集合类型,同时也可以支持集合中…

记一次Nodejs减低npm版本的踩坑日记

使用了npm install -g npm6.4.1指令之后,把npm版本减低了,让后悲催的就来了。 由于npm 6.4.1 已经过时,导致运行npm时出现 npm does not support Node.js v18.14.2 版本不兼容问题 升级npm版本,npm install -g npmlatest 没用还是…

DM-VIO论文翻译

简介 DM-VIO: Delayed Marginalization Visual-Inertial Odometry DM-VIO: 延迟边缘化惯性视觉里程计 花了两天时间捏着鼻子把这篇论文翻译完了,很多术语和状态的表达方式可能是和这个团队以前的工作DSO以及VI-DSO保持了一致,所以看起来很是费劲&#…

STM32开发(17)----CubeMX配置CRC

CubeMX配置CRC前言一、什么是CRC?二、实验过程1.STM32CubeMX配置2.代码实现重载printf3.实验结果总结前言 本章介绍使用STM32CubeMX对CRC进行配置的方法,CRC的目的是保证数据的完整性,所有的STM32芯片都内置了一个硬件的CRC计算模块&#xf…

指针的进阶【下篇】

文章目录📀8.指向函数指针数组的指针📀9.回调函数📀8.指向函数指针数组的指针 🌰请看代码与注释👇 int Add(int x, int y) {return x y; } int Sub(int x, int y) {return x - y; } int main() {int (*pf)(int, int…

T3 出行云原生容器化平台实践

作者:林勇,就职于南京领行科技股份有限公司,担任云原生负责人,也是公司容器化项目的负责人。主要负责 T3 出行云原生生态相关的所有工作,如服务容器化、多 Kubernetes 集群建设、应用混部、降本增效、云原生可观测性基…

2023年中小企业实施智能制造的建议

智能制造的载体是制造系统,制造系统从微观到宏观有不同的层次,主要包括制造装备、制造单元、制造车间(工厂)、制造企业和企业生态等。随着智能制造的深入推进,未来智能制造将向以下五个方向发展。 (一&…

FPGA采集AD7606全网最细讲解 提供串行和并行2套工程源码和技术支持

目录1、前言2、AD7606数据手册解读输入信号采集范围输出模式选择过采样率设置3、AD7606串行输出采集4、AD7606并行输出采集5、vivado仿真6、上板调试验证7、福利:工程代码的获取1、前言 AD7606是一款非常受欢迎的AD芯片,因为他支持8通道同时采集数据&am…

CFT Show 信息收集篇

CFT Show 信息收集篇1.CFT Show 信息收集篇1.1.WEB-11.1.1.打开靶场1.1.2.寻找Flag1.2.WEB-21.2.1.打开靶场1.2.2.寻找Flag1.3.WEB-31.3.1.打开靶场1.3.2.寻找Flag1.3.2.1.F12查看器1.3.2.2.查看源码1.3.2.3.抓包1.4.WEB-41.4.1.打开靶场1.4.2.寻找Flag1.4.2.1.robots介绍1.4.2…

10个黑客基础教程!简单有效

如果你的电脑运行缓慢,请使用下面介绍的方法来帮助加速、优化和提高电脑的性能。 1.关闭启动时自动运行的应用程序 计算机上安装的许多应用程序都可以将自己配置为在启动期间自动启动并继续在后台运行,但是,如果不是每天都使用这些应用程序…

基于vscode创建SpringBoot项目,连接postgresql数据库 2 更简单

1、Vue下载安装步骤的详细教程(亲测有效) 1_水w的博客-CSDN博客 2、Vue下载安装步骤的详细教程(亲测有效) 2 安装与创建默认项目_水w的博客-CSDN博客 3、基于vscode开发vue项目的详细步骤教程_水w的博客-CSDN博客 4、基于vscode开发vue项目的详细步骤教程 2 第三方图标库FontAw…

Spark RDD持久化

RDD Cache缓存 RDD通过Cache或者Persist方法将前面的计算结果缓存,默认情况下会把数据以序列化的形式缓存在JVM的堆内存中。但是并不是这两个方法被调用时立即缓存,而是触发后面的action时,该RDD将会被缓存在计算节点的内存中,并供…

杂记——14.git在idea上的使用及其实际开发介绍

这篇文章我们来讲一下git在idea上的使用,以及在实际开发过程中各个分支的使用及其具体的流程 目录 1.git在idea上的使用 1.1 idea上的git提交 1.2 idea上的分支切换 2.git在实际运用时的分支及其流程 2.1分支介绍 2.2具体流程 3.小结 1.git在idea上的使用 …

GraalVM-云原生时代的JVM(Java)

文章目录一、GraalVM是什么?二、GraalVM有哪些特点?2.1、高性能2.2、多语言支持2.3、互操作性2.4、安全性三、GraalVM的应用效果3.1、提高性能3.2、简化开发3.3、降低成本3.4、节省资源3.5、支持云环境四、使用GraalVM编译springboot应用程序4.1、下载并…

网络应用之表单提交

表单提交学习目标能够知道表单的提交方式能够知道表单中action属性的作用1. 表单属性设置<form>标签 表示表单标签&#xff0c;定义整体的表单区域action属性 设置表单数据提交地址method属性 设置表单提交的方式&#xff0c;一般有“GET”方式和“POST”方式, 不区分大小…

嵌入式之ubuntu终端操作与shell常用命令详解

目录 文件和目录列表 基本列表功能 显示列表长度 过滤输出列表 浏览文件系统 Linux 文件系统 遍历目录 处理文件 创建文件 复制文件 制表键自动补全 重命名文件 删除文件 处理目录 创建目录 删除目录 ​编辑其他常用命令与操作 Uname命令 clear命令 返回上一级命令 显…