融合正余弦和柯西变异的麻雀搜索算法(Matlab代码实现)

news2024/11/20 7:14:30

 💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

麻雀搜索算法(sparrow search algorithm,SSA)是薛建凯等[1] 在2020年提出的一种新型优化算法,主要通过模拟麻雀捕食和反捕食的行为特征进行数学建模。麻雀搜索算法具备结构简单、控制参数少、求解精度高等优点。尽管出现时间较短,但在实际工程应用也逐步增加,Liu 等[2] 针对现有的脑瘤诊断算法存在成功率不足,以及在治疗过程中不能及时跟踪进程,引进了 SSA进行优化,增强了检测能力。Zhu 等[3] 使用 SSA 对聚合物电解质燃料电池(PEMFC)堆的辨识参数进行优化,成功地降低了电池中电压误差,提高了电能转换效率。

针对SSA算法在寻优后期出现群体多样性损失,造成落入局部极值的几率升高,引发收敛精度不足问题,本文采用一种折射反向学习机制对麻雀种群初始化。反向学习是 Tizhoosh 提出的一种优化策略[9] ,基本思想是通过计算当前解的反向解来扩大搜索范围,借此找出给定问题更好的备选解。文献[10-11]将智能算法与反向学习结合,均能有效提高算法求解精度。同时反向学习仍存在一定的不足,在寻优早期引进反向学习能够加强算法的收敛性能,但在后期易使算法陷入早熟收敛。

因此在反向学习策略中引进一种折射原理[12] 以降低算法在搜索后期陷入早熟收敛的几率。折射反向学习原理如图1所示。

📚2 运行结果

部分代码:

%% Figure
figure1 = figure('Color',[1 1 1]);
G1=subplot(1,2,1,'Parent',figure1);
func_plot(Function_name)
title(Function_name)
xlabel('x')
ylabel('y')
zlabel('z')
subplot(1,2,2)
G2=subplot(1,2,2,'Parent',figure1);
CNT=35;
k=round(linspace(1,iter,CNT)); %随机选CNT个点
% 注意:如果收敛曲线画出来的点很少,随机点很稀疏,说明点取少了,这时应增加取点的数量,100、200、300等,逐渐增加
% 相反,如果收敛曲线上的随机点非常密集,说明点取多了,此时要减少取点数量
iter=1:1:iter;
semilogy(iter(k),PSO_curve(k),'k-','linewidth',1);
hold on
semilogy(iter(k),GWO_Convergence_curve(k),'r-','linewidth',1);
hold on
semilogy(iter(k),SSA_Convergence_curve(k),'c-','linewidth',1);
hold on
semilogy(iter(k),SCSSA_Convergence_curve(k),'m-','linewidth',1);
grid on;
title('收敛曲线')
xlabel('迭代次数');
ylabel('适应度值');
box on
legend('PSO','GWO','SSA','SCSSA')
set (gcf,'position', [300,300,800,320]) 

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]李爱莲,全凌翔,崔桂梅等.融合正余弦和柯西变异的麻雀搜索算法[J].计算机工程与应用,2022,58(03):91-99.

🌈4 Matlab代码实现

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

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

相关文章

【数据结构】排序(插入、选择、交换、归并) -- 详解

一、排序的概念及其运用 1、排序的概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记…

APP弱网测试

测试用例 在弱网的条件下 页面的响应正常页面展示的数据无误页面的一致性无误(图片展示、排版预期一致、数据展示无误)是否会出现ANR、Crash 在网络切换的情况下 页面交互无误无奔溃、显示错乱客户端服务端数据一致性展示无误请求堆积的出路无误 在无网…

谈谈智能安防领域

目录 1.什么是智能安防 2.智能安防的发展过程 3.智能安防涉及到的知识 4.智能安防给人类带来的福利 1.什么是智能安防 智能安防是基于人工智能技术的安全防护系统,旨在通过智能化的方法保护人员和财产的安全。它利用传感器、摄像头、算法等技术,通过识…

前端面试必备 | uni-app 篇(P1-15)

文章目录 1. 请简述一下uni-app的定义和特点。2. uni-app兼容哪些前端框架?请列举几个。3. 请简述一下uni-app的跨平台工作原理。4. 什么是条件编译?在uni-app中如何实现条件编译?5. uni-app中的页面生命周期有哪些?请简要介绍。6…

【卷积神经网络】MNIST 手写体识别

LeNet-5 是经典卷积神经网络之一,1998 年由 Yann LeCun 等人在论文 《Gradient-Based Learning Applied to Document Recognition》中提出。LeNet-5 网络使用了卷积层、池化层和全连接层,实现可以应用于手写体识别的卷积神经网络。TensorFlow 内置了 MNI…

网络基础知识socket编程

目录 网络通信概述网络互连模型:OSI 七层模型TCP/IP 四层/五层模型数据的封装与拆封 IP 地址IP 地址的编址方式IP 地址的分类特殊的IP 地址如何判断2 个IP 地址是否在同一个网段内 TCP/IP 协议TCP 协议TCP 协议的特性TCP 报文格式建立TCP 连接:三次握手关…

vue2 支持图片放大

添加 :preview-src-list属性 <el-imagev-for"item in specialData.urls":src"item":key"item.index":preview-src-list[item]class"pictrue"/>

李跳跳apk

李跳跳下载&#xff0c;密码 65c9

【VRRP】虚拟路由冗余协议

什么是VRRP&#xff1f; 虚拟路由冗余协议VRRP&#xff08;Virtual Router Redundancy Protocol&#xff09;是一种用于提高网络可靠性的容错协议。通过VRRP&#xff0c;可以在主机的下一跳设备出现故障时&#xff0c;及时将业务切换到备份设备&#xff0c;从而保障网络通信的…

【桌面小屏幕项目】ESP32开发环境搭建

视频教程链接&#xff1a; 【【有手就行系列】嵌入式单片机教程-桌面小屏幕实战教学 从设计、硬件、焊接到代码编写、调试 ESP32 持续更新2022】 https://www.bilibili.com/video/BV1wV4y1G7Vk/?share_sourcecopy_web&vd_source4fa5fad39452b08a8f4aa46532e890a7 一、esp…

C++标准库STL容器详解

目录 C标准模板库STL容器容器分类容器通用接口 顺序容器vectorlistdeque 容器适配器queuestackpriority_queue 关联容器&#xff1a;红黑树setmultisetmapmultimap 关联容器&#xff1a;哈希表unordered_set和unordered_multisetunordered_map和unordered_multimap 附1&#xf…

机械硬盘HDD的基础知识介绍

机械硬盘在价格&#xff0c;容量&#xff0c;磨损度上面都只有着SSD不可取代的地方&#xff0c;目前世界上80%的数据仍然存储在HDD上&#xff0c;不过随着科技的进步&#xff0c;以及SSD技术不断的突破和逐渐降低的价格&#xff0c;HDD的占比会越来越低,至于未来会不会被SSD完全…

任务执行和调度----Spring线程池/Quartz

定时任务 在服务器中可能会有定时任务&#xff0c;但是不知道分布式系统下次会访问哪一个服务器&#xff0c;所以服务器中的任务就是相同的&#xff0c;这样会导致浪费。使用Quartz可以解决这个问题。 JDK线程池 RunWith(SpringRunner.class) SpringBootTest ContextConfi…

Redis的五大数据类型的数据结构

概述 Redis底层有六种数据类型包括&#xff1a;简单动态字符串、双向链表、压缩列表、哈希表、跳表和整数数组。这六种数据结构五大数据类型关系如下&#xff1a; String&#xff1a;简单动态字符串List&#xff1a;双向链表、压缩列表Hash&#xff1a;压缩列表、哈希表Sorted…

指针(个人学习笔记黑马学习)

1、指针的定义和使用 #include <iostream> using namespace std;int main() {int a 10;int* p;p &a;cout << "a的地址为&#xff1a;" << &a << endl;cout << "a的地址为&#xff1a;" << p << endl;…

CPU和GPU的区别

介绍什么是GPU, 那就要从CPU和GPU的比较不同中能更好更快的学习到什么是GPU CPU和GPU的总体区别 CPU&#xff1a; 叫做中央处理器&#xff08;central processing unit&#xff09; 可以形象的理解为有25%的ALU(运算单元)、有25%的Control(控制单元)、50%的Cache(缓存单元)…

“短视频类”App个人信息收集情况测试报告

近期&#xff0c;中国网络空间安全协会对“短视频类”公众大量使用的部分App收集个人信息情况进行了测试。测试情况及结果如下&#xff1a; 一、测试对象 本次测试选取了19家应用商店⁽⁾累计下载量达到1亿次的“短视频类”App&#xff0c;共计6款&#xff0c;其基本情况如表…

StarRocks 在金融科技行业的存算分离应用实践

小编导读&#xff1a; 自从 2023 年 4 月正式推出 3.0 版本的存算分离功能以来&#xff0c;目前已有包含芒果TV、聚水潭、网易邮箱、浪潮、天道金科等数十家用户完成测试&#xff0c;多家用户也已开始逐步将其应用于实际业务中。目前&#xff0c;StarRocks 存算分离上线的场景…

【少年的救赎——放牛班的春天】

风中飞舞的风筝&#xff0c;请你别停下 池塘之底 这是马修在池塘之底写下的日记 他所有的故事&#xff0c;还有“我们”的 1949年一月十五日&#xff0c;在经历了所有领域的挫折后&#xff0c;马修来到了人生低谷期&#xff0c;“池塘之底”像专为他挑选的一般。那是在一个…

19 NAT穿透|python高级

文章目录 网络通信过程NAT穿透 python高级GIL锁深拷贝与浅拷贝私有化import导入模块工厂模式多继承以及 MRO 顺序烧脑题property属性property装饰器property类属性 魔法属性\_\_doc\_\_\_\_module\_\_ 和 \_\_class\_\_\_\_init\_\_\_\_del\_\_\_\_call\_\_\_\_dict\_\_\_\_str…