【粒子群算法和蝴蝶算法组合】粒子群混沌混合蝴蝶优化算法研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
📚2 运行结果
🎉3 参考文献
🌈4 Matlab代码实现
💥1 概述
文献来源:
摘要:为了解决蝴蝶优化算法(BOA)精度低、收敛速度慢的问题,将两种或两种以上的算法进行杂交以获得优化问题的优解是研究的趋势。提出了一种新的混合算法HPSOBOA,并介绍了三种改进基本BOA的方法。因此,引入了基于一维三次映射的BOA初始化方法,并采用了非线性参数控制策略。此外,将粒子群优化(PSO)算法与BOA算法相结合,改进了全局优化的基本BOA算法。通过两个实验(包括26个知名的基准函数)验证了所提算法的有效性。实验对比结果表明,与PSO、BOA等已知群优化算法相比,混合HPSOBOA算法收敛速度快,在高维数值优化问题上具有更好的稳定性。
蝴蝶优化算法(BOA)由Arora和Singh于2018年提出[1]。
该算法的方法和概念最早在2015年国际信号处理、计算与控制会议(2015 ISPCC)上提出[2]。该算法提出后,作者对BOA进行了大量的研究。Arora和Singh[3]提出了一种改进的带有十个混沌映射的蝴蝶优化算法,用于解决三个工程优化问题。Arora和Singh[4]提出了一种新的混合优化算法,将标准BOA与人工蜂群(Artificial Bee Colony, ABC)算法相结合。Arora和Singh[5]利用BOA求解无线传感器网络中的节点定位问题,并将结果与粒子群优化算法(particle swarm optimization, PSO)和萤火虫算法(firefly algorithm, FA)进行了比较。Arora等[6]提出了一种改进的蝶形优化算法来解决机械设计优化问题。Singh和Anand[7]提出了一种新的自适应蝴蝶优化算法,这是一种改变基本BOA感觉模态的新现象。Sharma和Saha[8]提出了一种新的混合算法(m-MBOA),利用共生生物搜索(symbiosis organisms search, SOS)的互助阶段来增强BOA的开发能力。Yuan等[9]提出了一种改进的蝶形优化算法,根据年成本、能源效率和污染物减排等因素对系统性能进行优化分析。Li等[10]利用交叉熵方法提出了一种改进的工程设计问题BOA。
此外,所提出的优化算法根据其原理主要分为三类,其中著名的元启发式算法主要包括进化算法:遗传算法(Genetic algorithm, GA)[15,16]、差分进化算法(Differential Evolution, DE) [17];群体智能算法:粒子群算法(Particle swarm Optimization, PSO)[18]、蚁群算法(Ant Colony Optimization, ACO)[19]、人工蜂群算法(Artificial Bee Colony, ABC) [20];基于物理的算法:引力搜索算法(GSA)[21]、正弦余弦算法(SCA)[22]和Henry气溶解度优化算法(HGSO)[23]。近十年来,学者们提出了许多新的基于自然界动物行为的群体智能优化算法,也称为自然启发式算法,如蝙蝠启发算法(BA)[24]、磷虾群算法(KH)[25]、果蝇优化算法(FOA)[26]、灰狼优化算法(GWO)[27]、蛾焰优化算法(MFO)[28]、鲸鱼优化算法(WOA)[29]、Salp群算法(SSA)[30]、Grasshopper Optimization Algorithm (GOA)[31]和Marine predator Algorithm (MPA)[32]。要了解更多细节,读者可以参考论文[33-35],其中对最近和流行的算法进行了很好的回顾。
介绍了各种智能优化算法的混合算法和粒子群算法的研究现状。Zhen等[36]提出了一种新的模因算法,称为shuffle particle swarm optimization (SPSO),该算法将PSO与shuffle frog jumping algorithm (SFLA)相结合。Niu和Li[37]提出了一种结合PSO和DE的新型混合全局优化算法PSODE。Lai和Zhang[38]提出了一种结合PSO和GA的新型混合算法,并给出了23个基准问题的实验。Mirjalili和Hashim[39]提出了一种新的混合PSOGSA算法用于函数优化。Wang等[40]提出了一种基于磷虾群和量子粒子群优化(QPSO)的混合算法,用于基准和工程优化。Trivedi等[41]提出了一种新的混合PSO-DA算法,将PSO算法与蜻蜓算法(dragonfly algorithm, DA)相结合,进行全局数值优化。Trivedi等[42]针对全局数值优化问题提出了一种新的PSOWOA算法。Laskar等[43]在对粒子群算法和其他元启发式算法混合算法进行研究的基础上,提出了一种新的用于电子设计优化问题的混合HWPSO算法。此外,粒子群算法与BOA在结构上有一定的相似性,研究一种新的粒子群算法与BOA的混合算法具有重要意义。
📚2 运行结果
可视化:
%% plots
figure('Position',[500 400 800 200]) %[left bottom width height]
subplot(1,2,1);
func_plot_con(Function_name);
title(Function_name)
% xlabel('x_1');
% ylabel('x_2');
% zlabel([Function_name,'( x_1 , x_2 )'])
%% Convergence curves
subplot(1,2,2);
semilogy(BOA_cg_curve,'b-','LineWidth',1)
hold on
semilogy(PSOBOA_cg_curve,'g-','LineWidth',1)
hold on
semilogy(HPSOBOA_cg_curve,'r-','LineWidth',1)
% axis tight
% grid off
xlabel('Iterations');
ylabel('Fitness value');
legend('BOA','PSOBOA','HPSOBOA')
🎉3 参考文献
部分理论来源于网络,如有侵权请联系删除。
🌈4 Matlab代码实现
相关文章:

【粒子群算法和蝴蝶算法组合】粒子群混沌混合蝴蝶优化算法研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

Java设计模式之单例模式详解(懒汉式和饿汉式)
在开发工作中,有些类只需要存在一个实例,这时就可以使用单例模式。Java中的单例模式是一种常见的设计模式,它确保一个类只有一个实例,并提供全局访问点。下面来介绍一下两种常见的单例模式:懒汉式和饿汉式。 一、懒汉式…...

软件测试基本知识
安全测试 安全防护策略?(漏洞扫描、入侵检查、安全日志、隔离防护) 安全日志:用于记录非法用户的登录名称、操作时间及内容等信息,以便发现问题并提出解决措施;安全日志仅记录相关信息,不对非…...

Vue项目中强制刷新页面的方法
我们在动态切换组件的过程中,导航栏和底栏不动,动态切换中间区域的情况,在首页可以进行跳转任意组件,在组件与组件之间不能相互跳转,路由发生了变化,但是页面未改变,这时我们就需要强制刷新页面…...

文件按关键字分组-切割-染色-写入excel
1. 背景 针对下面的文件data.csv,首先根据fid进行排序,然后分组,使相同fid的记录放到同一个excel文件中,并对每列重复的数据元素染上红色。 fid,user_id -1000078398032092029,230410010036537520 -1000078398032092029,23042301…...

爬虫的基本原理:爬虫概述及爬取过程
前言 随着互联网的不断发展和普及,我们的生活越来越离不开网络。而网络世界中有着海量的信息和数据,这些信息和数据对于我们的工作和生活都有很大的帮助。但是,如何高效地获取这些数据呢?这时候,爬虫这个工具就派上用…...

cocos2D插件转3D插件
cocos2D插件转3D插件 use strict;/*** 3d插件api映射,兼容2d插件* */let fs require("fs");let path require("path");let baseDir ;const prsPath (Editor.Project && Editor.Project.path ? Editor.Project.path : Editor.remote.projectP…...

[Angular] 主从表结构,从表记录在主表固定栏位上呈现
Background 主从表结构,有时为了方便数据呈现,在UI上不显示从表资料,那么需要动态把从表的资料加载到主表的固定栏位上。 例如:主表是人员信息,从表是银行卡信息,一个人在同一家银行可能有多张银行卡&…...

Kotlin Multiplatform 创建多平台分发库
目标:通过本教程学习如何使用 Kotlin Multiplatform Library 创建多平台分发库(iOS,安卓)。 创建一个项目 1、本教程使用的是Android Studio创建 2、选择 新建工程,选择 Kotlin Multiplatform Library 3、点击next 输入需要创建的项目名称以…...

[SQL挖掘机] - union/union all 使用注意事项
因为当使用union和union all操作符时,有一些注意事项需要考虑: 1. 列数和数据类型匹配: 要使用union或union all合并结果集,两个或多个查询的 select 语句必须返回相同数量和类型的列。确保每个查询返回相同的列数,并…...

php 单例模式
1,单例模式,属于创建设计模式,简单来说就是一个类只能有一个实例化对象,并提供一个当前类的全局唯一可访问入口; 2,例子 <?phpclass Singleton {private static $instance null;// 禁止被实例化priva…...

【数据结构】实验二:顺序表
实验二 顺序表 一、实验目的与要求 1)熟悉顺序表的类型定义; 2)熟悉顺序表的基本操作; 3)灵活应用顺序表解决具体应用问题。 二、实验内容 1)在一个整数序列a1,a2,…,an中,若存在一个数&…...

【高级数据结构】线段树
目录 最大数(单点修改,区间查询) 线段树1(区间修改,区间查询) 最大数(单点修改,区间查询) 洛谷:最大数https://www.luogu.com.cn/problem/P1198 题目描述 …...

qt简易闹钟
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);ui->stopBtn->setDisabled(true);this->setFixedSize(this->size()); //设置固定大小this->s…...

python和c加加有什么区别,c和c++和python先学哪个
本篇文章给大家谈谈c加加编程和python编程有什么区别,以及python和c加加有什么区别,希望对各位有所帮助,不要忘了收藏本站喔。 1、python和c学哪个好 学C好。 C通常比Python更快,因为C是一种编译型语言,而Python则是…...

Visual Studio 2022 cmake配置opencv开发环境
1. 环境与说明 这里我用的是 widnows 10 64位,Visual Studio 用的 Visual Studio Community 2022 (社区版) 对于Android开发工程师来说,为什么要使用Visual Studio 呢 ? 因为在Visual Studio中开发调试OpenCV方便,可以开发调试好后…...

C++ GDAL找出多时相遥感影像缺失的日期并自动生成新的全零图像作为替补
本文介绍基于C 语言的GDAL库,基于一个存储大量遥感影像的文件夹,依据每一景遥感影像的文件名中表示日期的那个字段,找出这些遥感影像中缺失的成像日期,并新生成多个像元值全部为0的栅格文件,作为这些缺失日期当日的遥感…...

【AI底层逻辑】——篇章5(下):机器学习算法之聚类降维时间序列
续上: 目录 4、聚类 5、降维 6、时间序列 三、无完美算法 往期精彩: 4、聚类 聚类即把相似的东西归在一起,与分类不同的是,聚类要处理的是没有标签的数据集,它根据样本数据的分布特性自动进行归类。 人在认知是…...

P1980 [NOIP2013 普及组] 计数问题
[NOIP2013 普及组] 计数问题 题目描述 试计算在区间 1 1 1 到 n n n 的所有整数中,数字 x x x( 0 ≤ x ≤ 9 0\le x\le9 0≤x≤9)共出现了多少次?例如,在 1 1 1 到 11 11 11 中,即在 1 , 2 , 3 , 4…...

需求管理全过程流程图及各阶段核心关注点详解
分析报告指出,多达76%的项目失败是因为差劲的需求管理,这个是项目失败的最主要原因,比落后的技术、进度失控或者混乱的变更管理还要关键。很多项目往往在开始的时候已经决定了失败,谜底就在谜面上,开始就注定的失败&am…...

Android开源 自定义emoji键盘,EmojiPack v2.1版本
目录 一,简介 二、安装 添加jitpack 仓库 添加依赖: 混淆规则: 三、使用 1、一次性配置emoji显示处理 二、emoji的自定义键盘的使用 一,简介 EmojiPack当前已提供emoji的显示和emoji的选择自定义键盘,在emoji显示这一方面࿰…...

SOLIDWORKS软件的优势分析 硕迪科技
在现代的机械设计领域,SOLIDWORKS是一款备受青睐三维设计软件,它具备强大的建模和设计功能,在全球范围内广泛应用于机械设计和工程领域,为用户提供了全面的工程解决方案。本文就SOLIDWORKS的优势进行详细分析。 1、易于学习和使用…...

Android性能优化之游戏的Theme背景图
近期,对游戏的内存优化,通过内存快照发现,某个Activity的theme背景图 占用3M 多。考虑着手对齐进行优化。 问题 查看游戏中的内存快照,发现有一个图片bitmap 占用3M 多,设置在Activity的背景中: 查看Phon…...

网络安全(黑客)系统自学,成为一名白帽黑客
前言 黑客技能是一项非常复杂和专业的技能,需要广泛的计算机知识和网络安全知识。你可以参考下面一些学习步骤,系统自学网络安全。 在学习之前,要给自己定一个目标或者思考一下要达到一个什么样的水平,是学完找工作(…...

lua学习-2 常见运算符
文章目录 赋值运算符普通赋值多重赋值交换赋值 算数运算符常见符号标识 关系运算符常见符号标识TIP 逻辑运算符常见符号标识模拟三目运算 赋值运算符 普通赋值 a 1b "123"c truec "true"多重赋值 a,b 1,2 a,b,c 2,"ss" -- c的值为nil交换赋…...

【图像处理】使用 OpenCV 将您的照片变成卡通
图像到卡通 一、说明 在当今世界,我们被图像和视频所包围。从社交媒体到广告,图像已成为一种强大的交流媒介。但是你有没有想过,如果你能把你的照片变成卡通会发生什么?想象一下,为您最喜欢的照片创建动画版本…...

暖手宝UL认证 亚马逊UL测试报告 UL499测试项目
UL499测试内容:1、 漏电流测试 2、 输入测试 3、 潮态下漏电流测试4、正常温升测试 5、 耐高压测试 6、 稳定性测试7、异常测试(DRY)8、 异常测试 9、 静压及强度测试10、 烧熔断器测试、 电源线拉力测试11、 电源线推力测试12、 塑件变…...

ES6模块化与异步编程高级用法
1. ES6模块化 1.1 回顾:node.js 中如何实现模块化 node.js 遵循了 CommonJS 的模块化规范。其中: 导入其它模块使用 require() 方法模块对外共享成员使用 module.exports 对象 模块化的好处: 大家都遵守同样的模块化规范写代码࿰…...

spring-cloud-starter-gateway 4.0.6负载均衡失败
spring:application:name: gatewaycloud:gateway:routes:- id: memberuri: lb://memberpredicates:- Path/member/**需要引入下面负载均衡依赖否则503找不到服务 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-s…...

Tomcat注册为Windows服务
要将Tomcat注册为Windows服务,可以使用Tomcat提供的实用工具service.bat。以下是注册和配置Tomcat作为Windows服务的步骤: 打开命令提示符(Command Prompt)或 PowerShell,然后进入Tomcat安装目录的"bin"文件…...