【群智能算法改进】一种改进的蝴蝶优化算法 改进蝴蝶优化算法 改进BOA[1]【Matlab代码#35】

news2024/9/29 15:34:43

文章目录

    • 【`获取资源`请见文章第5节:资源获取】
    • 1. 原始蝴蝶优化算法
    • 2. 改进蝴蝶优化算法
      • 2.1 动态转换概率策略
      • 2.2 最优邻域扰动策略
      • 2.3 随机惯性权重策略
    • 3. 部分代码展示
    • 4. 仿真结果展示
    • 5. 资源获取
    • 6. 参考文献


获取资源请见文章第5节:资源获取】


1. 原始蝴蝶优化算法

蝴蝶优化算法BOA是一种受启发于蝴蝶种群活动的最新群体智能优化算法,已经广泛应 用 在WSNs定 位、空气质量预警、工程优化、特征选择和云计算调度等领域。但基本BOA算法依然存在寻优精度低、收敛速度慢的不足,尤其在解决高维复杂问题时,算法的寻优稳定性、跳离局部最优能力的适应性依然还可以进一步提升性能。
在这里插入图片描述
在这里插入图片描述

2. 改进蝴蝶优化算法

2.1 动态转换概率策略

在原始BOA算法中,蝴蝶个体不管是在全局搜索还是局部开发阶段都是基于转换概率p值决定的,通常来说,这是一个人为设置设定的固定值,这就使得算法后期的收敛速度得不到保证。因此,本文将转换概率p调整为一个动态变化的值,从而提高算法后期的收敛速度。
在这里插入图片描述

2.2 最优邻域扰动策略

在BOA算法中,蝴蝶进入全局搜索阶段时,其位置更新方式决定了所有蝴蝶会朝着最优蝴蝶所在位置方向飞去,这就容易导致蝴蝶种群的多样性
降低,因此,在全局搜索阶段,需要对最优位置进行邻域扰动,加强对邻域空间的搜索,确保能够跳出局部最优。最优邻域扰动策略公式为:
在这里插入图片描述

2.3 随机惯性权重策略

在BOA算法中,蝴蝶进入局部搜索阶段后,虽是随机搜索,但仍主要是受前一位置影响且影响程度保持不变,这就容易导致在后期易容陷入局部最优,因此,在局部搜索阶段,需要通过随机惯性权重来改变前一位置对当前位置更新的影响。本文设计的随机惯性权重计算公式为:
在这里插入图片描述
从而可以将局部搜索阶段中蝴蝶的位置更新方式调整为:
在这里插入图片描述

3. 部分代码展示

p=0.8; % probabibility switch,开关概率
power_exponent=0.1; % 幂指数
sensory_modality=0.01; % 感觉因子

%Initialize the positions of search agents
Sol=initialization(n,dim,Ub,Lb);

for i=1:n
    Fitness(i)=fobj(Sol(i,:));
end

% Find the current best_pos
[fmin,I]=min(Fitness);
best_pos=Sol(I,:);
S=Sol; 

% Start the iterations -- Butterfly Optimization Algorithm 
for t=1:N_iter       
% ★★改进1:动态转换概率策略★★
p=0.6-0.1*((N_iter-t)/N_iter);

4. 仿真结果展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

5. 资源获取

可以获取完整代码资源。

6. 参考文献

改进蝴蝶优化算法及其在冗余机械臂逆运动学求解中的应用,孟广双,高德东。

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

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

相关文章

React面试题和基础

React的特点: JSX它使用虚拟DOM ,减少 DOM 操作,提升性能。便于和其他平台集成。它可以进行服务器端渲染。单向数据流。组件化 双向数据绑定和单向数据流区别? 单向绑定的优点在于清晰可控,缺点则在于模板代码过多。…

第一部分-基础篇-第二章:PSTN、PBX及呼叫中心业务

文章目录 序言上一篇文章:2.1 PSTN业务2.1.1 POTS2.1.2 商务业务2.1.3 其他增值业务 2.2 PBX业务2.2.1 呼叫转移2.2.2 同组代答 2.3 PBX与中继线2.4 IP-PBX业务2.5 呼叫中心2.5.1 什么是呼叫中心2.5.2 呼叫中心的历史2.5.3 呼叫中心的分类1.交换机类型的呼叫中心2.板…

C++——string

作者:几冬雪来 时间:2023年5月29日 内容:C——string内容讲解 目录 前言: 1.string(续): 1.string::operator[]: 2.string:: length(): 3.string:: max_size(): 4.strin…

华南农业大学|图像处理与分析技术综合测试|题目解答:识别时钟上时间

设计任务 这是一幅表盘图像,试采用图像处理和分析技术,设计适当的算法和程序,计算出表盘上的指示时间(要求精确到秒)。请按统一要求写出算法原理、设计流程,并完成测试分析等报告内容。 算法设计 解题思路…

张小飞的Java之路——第四十二章——字节流

写在前面: 视频是什么东西,有看文档精彩吗? 视频是什么东西,有看文档速度快吗? 视频是什么东西,有看文档效率高吗? 诸小亮:下面我们学习——字节流 张小飞:什么是字…

article-并联机械手爪运动学分析

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3aNKIR4E-1685371700448)(data:image/svgxml;utf8, )] 2.4.3 基于Robotics Toolbox的工具箱的模型检测 上文中,我们已经对采摘机器手爪运动学理论模型进行了创建,接下来要用MA…

V3.0_用exec族函数替代system()

注意点:exec族函数的使用 以execl为例: (1) (2)exec族函数中的函数调用失败时会设置error并返回-1,然后从源程序调用点接着往下执行。 执行成功后不会返回,也不会从源程序调用点接…

Redis缓存一致性问题及解决方案

对于没有并发的用户请求 先更新缓存,后更新数据库先更新数据库,后更新缓存 两者第二步没成功,都有问题 如果更新缓存成功,更新数据库没成功,一旦缓存失效,读取的仍是旧值如果更新数据库成功,…

MySQL官网下载Linux版本安装包

步骤一:https://www.mysql.com/ 步骤二:https://www.mysql.com/downloads/ 步骤三:https://dev.mysql.com/downloads/ 步骤四:https://dev.mysql.com/downloads/mysql/

二十分钟秒懂:实现前后端分离开发(vue+element+spring boot+mybatis+MySQL)

目录 开发者介绍 什么是前后端分离开发 vue与springboot开发的优势 Vue.js 的优势: Spring Boot 的优势: vue与springboot如何实现前后端连接 demo简介 重要部分前端部分代码 重要部分后端代码 后端解决跨域问题 Controller部分 xml部分 se…

商城APP开发需要哪些功能,如何选择开发公司

商城APP开发的功能有很多,从功能上看主要分为以下几个大类: 一、商品展示类:商家可以在这里展示自己产品的种类、数量、价格等信息,消费者在浏览和选择的时候,能直观的看到商家介绍。 二、优惠促销类:商家…

JDBC与DBCP整合

DBCP:DataBase Connection Pool,数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接…

第四章 相似矩阵与矩阵对角化

引言 题型总结中推荐例题有蓝皮书的题型较为重要,只有吉米多维奇的题型次之。码字不易,如果这篇文章对您有帮助的话,希望您能点赞、评论、收藏,投币、转发、关注。您的鼓励就是我前进的动力! 知识点思维导图 补充&…

【Web服务器集群】Apache配置与应用

文章目录 一、构建虚拟web主机1.概述2.httpd服务支持的虚拟主机类型3.构建虚拟Web主机3.1基于域名的虚拟主机3.2基于IP地址的虚拟主机3.3基于端口的虚拟主机 4.Apache连接保持5.Apache访问控制 二、Apache日志管理rotatelogs分隔工具 三、总结1.Web虚拟主机部署步骤2.网页根目录…

DN-DETR代码学习笔记

代码地址:GitHub - IDEA-Research/DN-DETR: [CVPR 2022 Oral]Official implementation of DN-DETR 论文地址: https://arxiv.org/pdf/2203.01305.pdf DN-DETR是在DAB-DETR的基础上完成的,DN-DETR的作者认为导致DETR类模型收敛慢的原因在于匈牙…

【Linux升级之路】4_进程控制

文章目录 前言一、【Linux初阶】fork进程创建 & 进程终止 & 进程等待二、【Linux初阶】进程程序替换 | 初识、原理、函数、应用 & makefile工具的多文件编译三、【Linux初阶】进程替换的应用 - 简易命令行解释器的实现结语 前言 本片博客是 Linux操作系统 进程控制…

【周末闲谈】谈谈数学转码这一年来的体会与反思

——我们走了太远,以至于忘了为何出发 前言 笔者本科读的是数学专业,就是每天和数学分析、高等代数、概率论、随机过程等等这些理论打交道的专业,这个专业出来工作好像一般有两个方向就是金融和计算机,我选择了计算机方向。主要…

【自然语言处理】【大模型】ChatGLM-6B模型结构代码解析(单机版)

ChatGLM-6B模型结构代码解析(单机版) ​ 本文介绍ChatGLM-6B的模型结构,代码来自https://huggingface.co/THUDM/chatglm-6b/blob/main/modeling_chatglm.py。 相关博客 【自然语言处理】【大模型】ChatGLM-6B模型结构代码解析(单机版) 【自然语言处理】【大模型】BL…

日撸 Java 三百行day56-57

文章目录 day56-57 kMeans 聚类1.kMeans聚类理解2.代码理解2.1代码中变量的理解2.2代码理解 day56-57 kMeans 聚类 1.kMeans聚类理解 无监督的机器学习算法,其中k是划分为几个簇,并且选择k个数据作为不同簇的聚类中心,计算每个数据样本和聚…

ASRT语音识别系统的部署以及模型的使用(运用篇)

ASRT语音识别系统的部署以及模型的使用(运用篇) 前言 ASRT是一个中文语音识别系统,由AI柠檬博主开源在GitHub上。 GitHub地址:ASRT_SpeechRecognition 国内Gitee镜像地址:ASRT_SpeechRecognition 文档地址:ASRT语音识别工具文…