当前位置: 首页 > news >正文

【智能优化算法-麻雀搜索算法】基于萤火虫结合麻雀搜索算法求解单目标优化问题附matlab代码

1 内容介绍

该改进主要是在麻雀搜索后,利用萤火虫扰动对麻雀进行萤火虫扰动,将所有麻雀与最优麻雀利用萤火虫扰动方式,进行位置更新,提高其搜索性,扰动后的麻雀与扰动前的麻雀进行对比,如果更优则更新麻雀位置。

2 部分代码

% 使用方法

%__________________________________________

% fobj = @YourCostFunction        设定适应度函数

% dim = number of your variables   设定维度

% Max_iteration = maximum number of generations 设定最大迭代次数

% SearchAgents_no = number of search agents   种群数量

% lb=[lb1,lb2,...,lbn] where lbn is the lower bound of variable n  变量下边界

% ub=[ub1,ub2,...,ubn] where ubn is the upper bound of variable n   变量上边界

% If all the variables have equal lower bound you can just

% define lb and ub as two single number numbers

% To run SSA: [Best_pos,Best_score,curve]=SSA(pop,Max_iter,lb,ub,dim,fobj)

%__________________________________________

clear all 

clc

close all

rng('default');

SearchAgents_no=50; % Number of search agents 种群数量

Function_name='F2'; % Name of the test function that can be from F1 to F23 (Table 1,2,3 in the paper) 设定适应度函数

Max_iteration=300;

% Load details of the selected benchmark function

[lb,ub,dim,fobj]=Get_Functions_details(Function_name);  %设定边界以及优化函数

[Best_pos,Best_score,SSA_curve]=SSANew(SearchAgents_no,Max_iteration,lb,ub,dim,fobj); %开始优化

figure('Position',[269   240   660   290])

%Draw search space

subplot(1,2,1);

func_plot(Function_name);

title('Parameter space')

xlabel('x_1');

ylabel('x_2');

zlabel([Function_name,'( x_1 , x_2 )'])

%Draw objective space

subplot(1,2,2);

plot(SSA_curve,'Color','r','linewidth',2)

hold on;

title('Objective space')

xlabel('迭代');

ylabel('Best score obtained so far');

axis tight

grid on

box on

legend('FASSA')

3 运行结果

4 参考文献

[1]肖海飞, 曾国辉, 杜涛,等. 基于麻雀搜索算法的PMSM智能控制器设计[J]. 电力电子技术, 2022(056-001).​

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机、雷达通信、无线传感器等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

相关文章:

  • 22-09-04 西安 谷粒商城(01)MySQL主从复制、MyCat读写分离、MyCat分库分表
  • 猿创征文|Python3,10分钟写了一个WIFI 万(破) 能 (解) 钥 (神) 匙 (器),YYDS。
  • 【每日一练】图解:链表内指定区间反转
  • Java 进阶多线程(一)
  • Softing物联网(IoT)方案之OT/IT数据集成
  • 第13讲:DCL类型的SQL语句之用户管理
  • Python实战回归模型-消费者人群画像-信用智能评分(基于中国移动用户数据)
  • 【尚硅谷】MyBatis
  • 用动图详细讲解——栈
  • Spring事务传播性
  • Pinia不就是Vuex5?
  • Scrapy + selenium + 超级鹰验证码识别爬取网站
  • 【高等数学基础进阶】常微分方程-part1
  • AI学习教程:AI(Adobe lliustrator)快速入门
  • lombok中使用@Accessors和@Builder的区别
  • [nginx文档翻译系列] 控制nginx
  • 30天自制操作系统-2
  • Electron入门介绍
  • ERLANG 网工修炼笔记 ---- UDP
  • fetch 从初识到应用
  • javascript面向对象之创建对象
  • JAVA之继承和多态
  • JS学习笔记——闭包
  • spring security oauth2 password授权模式
  • 番外篇1:在Windows环境下安装JDK
  • 工作手记之html2canvas使用概述
  • 关于Java中分层中遇到的一些问题
  • 前端_面试
  • 前端设计模式
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 如何实现 font-size 的响应式
  • 新版博客前端前瞻
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  •  一套莫尔斯电报听写、翻译系统
  • #HarmonyOS:软件安装window和mac预览Hello World
  • #include<初见C语言之指针(5)>
  • (14)Hive调优——合并小文件
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (十)T检验-第一部分
  • (转)关于多人操作数据的处理策略
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • *Django中的Ajax 纯js的书写样式1
  • .net Application的目录
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .net专家(高海东的专栏)
  • .net最好用的JSON类Newtonsoft.Json获取多级数据SelectToken
  • /proc/vmstat 详解
  • ::前边啥也没有
  • @我的前任是个极品 微博分析
  • []使用 Tortoise SVN 创建 Externals 外部引用目录
  • [Angular 基础] - 数据绑定(databinding)
  • [BUG]Datax写入数据到psql报不能序列化特殊字符
  • [BUUCTF]-PWN:[极客大挑战 2019]Not Bad解析