【粒子群算法和蝴蝶算法组合】粒子群混沌混合蝴蝶优化算法研究(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…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...

微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

SpringTask-03.入门案例
一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...

算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...
Java编程之桥接模式
定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...

spring Security对RBAC及其ABAC的支持使用
RBAC (基于角色的访问控制) RBAC (Role-Based Access Control) 是 Spring Security 中最常用的权限模型,它将权限分配给角色,再将角色分配给用户。 RBAC 核心实现 1. 数据库设计 users roles permissions ------- ------…...