基于改进莱维飞行和混沌映射的金鹰优化算法(10种混沌映射随意切换),附matlab代码

news2024/12/28 18:28:57

 本篇文章对金鹰优化算法进行改进,首先通过引入混沌映射机制,对其群体进行初始化,增加金鹰个体的多样性;然后在金鹰个体的位置更新公式上引入改进的莱维飞行机制,提高搜索精度,帮助金鹰个体跳出局部最优。

可以选择1-10不同的映射,1-10分别为,tent、Logistic、Cubic、chebyshev、Piecewise、sinusoidal、Sine,ICMIC, Circle,Bernoulli。选择不同的数字可以随意切换。

先上结果图,在CEC2005函数上进行测试,种群个体设置为50个,循环次数为1000次。

f95d8c32e67e27187e11a8e166cfdd0a.png

783ccb905d6229bd24b049bb16d1e8c4.png

e71c0c3f48154e9cae3c1433d82a4300.png

c6648dae036a8b1dcf46a72fb7b97a89.png

6f581847d9647d59a4a7f66d9dcb0ba7.png

b47d2f971e1aea4c62fc48a685706f26.png

f74f0624d00406ecb55869e9e846c969.png

0701b2d1d616e0c13fe300cc1ccb3803.png

4313bb85b21fee78c5f0eda3fed77cc1.png

df6c9026710fe03c57dad085f6540268.png

这里截选了前10个函数进行展示,可以看到改进前后在收敛速度和寻优精度上都有了很大的改进。

接下来讲一下改进的原理。

  1. 混沌映射

    依旧是采用之前文章提到的10种混沌映射,可以自由切换映射方法,本文选取的映射方法是Logistic映射,大家也可以自行更改。没看过之前文章的小伙伴可以看一下。(1条消息) 10种混沌映射优化灰狼算法,可一键切换,可用于优化所有群智能算法,以灰狼算法为例进行介绍..._今天吃饺子的博客-CSDN博客

  2. 改进的莱维飞行机制

    本文莱维飞行的添加并非如其他文章那样,直接在粒子更新的时候加上莱维系数,而是稍作改进,这样的效果也确实比直接加莱维系数要好。原理公式如下:

112b51ac543145f1a7d754a84d4aca04.png

其中 , α是步长缩放因子,Levy(β)是萊维随机路径。

21f67085bb3c1d1896b2fdc882f97321.png

改进的原理如下:

740ca0842844879eab0e3ee5839047cd.png

a11c958a820c5fb6b6a9bd9495ed68c6.png

这么做的目的是将金鹰算法与莱维飞行进行优势互补,可以动态的调整每次寻优的比例系数。

代码如下:

%%
clear
clc
close all
%% Inputs 
number='F10'; %选定优化函数,自行替换:F1~F23
% [lb,ub,D,y]:下界、上界、维度、目标函数表达式
[lb,ub,nvars,fun]=CEC2005(number);  
% FunctionNumber =6; % 1-23
options.PopulationSize = 50;
options.MaxIterations  = 1000;
%% Run Multi-Objective Golden Eagle Optimizer 


options.AttackPropensity = [0.5 ,   2];
options.CruisePropensity = [0.1   , 0.5];
numm = 2; % 混沌映射:1-10分别为,tent、Logistic、Cubic、chebyshev、Piecewise、sinusoidal、Sine,ICMIC, Circle,Bernoulli
[chaosLx,chaosLfval,chaosLConvergenceCurve] = chaosLGEO (numm,fun,nvars,lb,ub, options); %调用改进的GEO算法
[x,fval,ConvergenceCurve] = GEO (fun,nvars,lb,ub, options);  %调用GEO


%% Figure
maxcycle = options.MaxIterations;
figure1 = figure('Color',[1 1 1]);
G1=subplot(1,2,1,'Parent',figure1);
func_plot(number)
title(number)
xlabel('x')
ylabel('y')
zlabel('z')
subplot(1,2,2)
G2=subplot(1,2,2,'Parent',figure1);
CNT=20;
k=round(linspace(1,options.MaxIterations,CNT)); %随机选50个点
% 注意:如果收敛曲线画出来的点很少,随机点很稀疏,说明点取少了,这时应增加取点的数量,100、200、300等,逐渐增加
% 相反,如果收敛曲线上的随机点非常密集,说明点取多了,此时要减少取点数量
iter=1:1:options.MaxIterations;
semilogy(iter(k),ConvergenceCurve(k),'b-*','linewidth',1);
hold on
semilogy(iter(k),chaosLConvergenceCurve(k),'g-p','linewidth',1);
grid on;
title('收敛曲线')
xlabel('迭代次数');
ylabel('适应度值');
box on
legend('GEO','chaosLGEO')
set (gcf,'position', [200,300,700,300])

注意看第16行变量numm,可以选择1-10不同的映射,1-10分别为,tent、Logistic、Cubic、chebyshev、Piecewise、sinusoidal、Sine,ICMIC, Circle,Bernoulli。选择不同的数字可以随意切换。

获取完整代码方式,下方卡片回复关键词:LGEO

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

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

相关文章

谈谈NLP中 大语言模型LLM的 思维链 Chain-of-Thought(CoT)

Chain-of-Thought(CoT) 1.介绍 在过去几年的探索中,业界发现了一个现象,在增大模型参数量和训练数据的同时,在多数任务上,模型的表现会越来越好。因而,现有的大模型LLM,最大参数量已经超过了千亿。 然而…

大数据Doris(五十五):BACKUP数据备份案例和注意事项

文章目录 BACKUP数据备份案例和注意事项 一、BACKUP数据备份案例 1、Doris中创建数据库,以及建表插入数据 2、创建远端仓库 3、全量备份指定 Doris 库下所有表所有分区数据 4、查看 backup 作业执行情况 5、查看远端仓库中已备份结果 二、注意事项 BACKUP数…

【花雕】青少年机器人技术等级考试理论综合试卷(一级)2021年9月

随着科技的不断进步,机器人技术已经成为了一个重要的领域。在这个领域中,机械结构是机器人设计中至关重要的一部分,它决定了机器人的形态、运动方式和工作效率。对于青少年机器人爱好者来说,了解机械结构的基础知识,掌…

Drools用户手册翻译——第二章 入门(下)测试和评估

因为篇幅原因,所以分为上下两个部分,主要就是通过一个交通违章项目的例子,带你先粗略感受一下决策模型的使用流程,总体来说有详细,也有没说清的地方,如果想要了解一下决策模型,可以进来了解一下…

[探地雷达]利用Faster RCNN对B-SCAN探地雷达数据进行目标检测

引用量较高的一篇会议论文。 由于真实雷达图像较少,作者采用了GPR工具箱,使用不同配置,合成了部分模拟雷达图。然后采用Cifar-10数据(灰度图)对Faster RCNN进行预训练,再采用真实和合成数据进行微调。 论…

(0021) H5-Vuejs配合 mint-ui 开发移动端web

mint-ui 初衷 element-ui主打pcweb,导致移动端上UI适配问题突出,趟了很多坑。这次更加理智些,选择了饿了么团队的主打移动端的mint-ui,目前来说体验很好。 认识Mint-ui 首先在手机上体验其demo,扫描链接:…

双层玻璃门碎了一面怎么更换

更换双层玻璃门的碎片需要按照以下步骤进行: 1. 备齐工具和材料:你需要准备以下工具和材料:安全手套、安全护目镜、扁头螺丝刀、绳子、玻璃胶和新的玻璃门。 2. 移除残存玻璃:首先,将门上的残留玻璃及其框架小心地取下…

12给图片加水印(matlab程序)

代码 clear;clc size512; block8; blocknosize/block; LENGTHsize*size/64; Alpha10.02; Alpha20.02; T1100; Izeros(size,size); Dzeros(size,size); BWzeros(size,size); block_dct1zeros(block,block); iimread(watermark64by64.png); %水印原图 markreshape(i…

springboot 2.6.6接入prometheus

springboot是2.6.6版本&#xff0c;刚开始用的是simpleclient客户端 <dependency><groupId>io.prometheus</groupId><artifactId>simpleclient</artifactId><version>0.16.0</version> </dependency>接入后一直报AbstractEnd…

Linux:CentOS安装Git

报错如下&#xff1a;git: 未找到命令... 这是因为没有安装git。 解决方案 使用yum安装git yum -y install git 查看是否安装git,若出现版本号&#xff0c;则代表已经安装了git git --version

ubuntu18实现QT与ROS通信

背景介绍&#xff1a;老板需求&#xff1a;qt开发ui界面&#xff0c;实现与ros通讯。同伴A已经使用qt开发了部分功能&#xff0c;但是没有弄与ros通讯相关&#xff0c;与A沟通了解项目细节。当前主要任务&#xff1a;先实现ros与qt通讯&#xff0c;实现ros话题发布、接收 经验…

Vue开发记录

文章目录 1、解决表格el-table多出一条横线1.1、现象1.2、解决方案 2、el-row高度问题2.1、现象2.2、解决方案 1、解决表格el-table多出一条横线 1.1、现象 <el-table:data"tableData"style"width: 100%"><el-table-columnprop"date"…

Nginx【Nginx场景实践(什么是限流、限流算法、限流实战 )】(十一)-全面详解(学习总结---从入门到深化)

目录 Nginx场景实践_什么是限流 Nginx场景实践_限流算法 Nginx场景实践_限流实战 Nginx场景实践_什么是限流 生活中的限流 春运&#xff0c;一项全人类历史上最大规模的迁移活动&#xff0c;抢火车票一直是每年跨年以后的热点话题。 为什么需要限流 系统设计时一般会预估…

快速排序的三路划分方法和归并排序的递归和非递归实现

目录 快速排序的三路划分方法 归并排序的递归实现 归并排序的非递归实现 快速排序的三路划分方法 首先快排的时间复杂度为O(N*logN)&#xff0c;空间复杂度O(logN),不稳定。 三路划分&#xff1a;将数据分为三份&#xff1b;可以提高当数据中出现多个重复数字时的效率。 …

青岛大学_王卓老师【数据结构与算法】Week04_03_双向链表_学习笔记

本文是个人学习笔记&#xff0c;素材来自青岛大学王卓老师的教学视频。 一方面用于学习记录与分享&#xff0c;另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。 如有侵权&#xff0c;请留言作删文处理。 课程视频链接&#xff1a; 数据结构与算法基础–…

2022(特等奖)C2592儿童安全监护与救援指挥系统

作品介绍 1 需求分析 现如今人口拐卖犯罪已成为世界上增长最快、最有利可图的犯罪之一&#xff0c;年利润仅次于毒品和军火&#xff0c;其中儿童拐卖犯罪最为引人注目&#xff0c;且被拐数量惊人&#xff0c;已成为国际社会共同关注的问题。2021年4月&#xff0c;国务院发布了…

Kafka入门, 消费者工作流程

kafka消费方式 pull(拉)模式&#xff1a; consumer采用从broker中主动拉取数据。 Kafka采用这种方式。 push(推)模式&#xff1a; Kafka没有采用这种方式&#xff0c;因为由broker决定消息发送速率&#xff0c;很难适应所有消费者的速率。例如推送速度是50m/s&#xff0c;consu…

云原生时代,如何通过 KubeSphere x 极狐GitLab 构建安全应用?

本文整理自云原生 Meetup 杭州站上&#xff0c;极狐(GitLab) DevOps 技术布道师马景贺的演讲。 当听到云原生的时候&#xff0c;你会想起什么&#xff1f; 可能很多人很自然地就会想到 Kubernetes、容器、微服务、开源等等&#xff0c;这些关键词是我们接触云原生绕不开的话题。…

CleanMyMac X4.13中文版mac电脑优化加速工具

CleanMyMac X 可以卸掉系统的额外负担 让您的电脑明显提速 不要再因为运行缓慢的 Mac 而拖慢您的效率。CleanMyMac X已经正式发布&#xff0c;作为最新的系统清理和应用管理软件&#xff0c;可以让用户一键智能化清理Mac电脑&#xff0c;自动扫描Mac上的所有文件&#xff0c;包…

Day44

思维导图 练习 全局变量&#xff0c;int monster 10000;定义英雄类hero&#xff0c;受保护的属性string name&#xff0c;int hp,int attck&#xff1b;公有的无参构造&#xff0c;有参构造&#xff0c;虚成员函数 void Atk(){blood-0;}&#xff0c;法师类继承自英雄类&#…