沙丁鱼优化算法(Sardine optimization algorithm,SOA)求解23个函数MATLAB

一、沙丁鱼优化算法

沙丁鱼优化算法(Sardine optimization algorithm,SOA)由Zhang HongGuang等人于2023年提出,该算法模拟沙丁鱼的生存策略,具有搜索能力强,求解精度高等特点。

沙丁鱼主要以浮游生物为食,这些生物包括细菌、腔肠动物、软体动物、原生动物、十足目、幼小藤壶、鱼卵、甲藻、桡足类等。沙丁鱼的季节饵料组成会随着水文条件的变化而改变。在上升流剧烈的时期,饵料组成以浮游植物为主;而在上升流微弱的时期,饵料组成则以浮游动物为主。沙丁鱼是一种滤食动物,它们通过鳃过滤海水,捕获通过鳃的浮游生物。此外,沙丁鱼拥有一双透镜眼,这极大地提高了它们的视力和图像亮度,因此它们能够利用视力追踪在水中过滤的猎物。除了像大多数鱼类一样借助快速的游动逃避捕食者外,沙丁鱼还利用群体行为来躲避捕猎者。例如,当遇到捕食沙丁鱼的海豚时,沙丁鱼会聚成大群来对抗海豚的捕食。在没有外部威胁或障碍物时,鱼群通常会聚成接近球形的形态,以便协同躲避。

参考文献:Zhang, H., Tang, M., Liu, Y. et al. Sardine Optimization Algorithm with Agile Locality and Globality Strategies for Real Optimization ProblemsArab J Sci Eng 48, 9787–9825 (2023). Sardine Optimization Algorithm with Agile Locality and Globality Strategies for Real Optimization Problems | SpringerLink

二、23个测试函数简介

23个测试函数简介

测试集:23组基本测试函数简介及图像(提供python代码)_IT猿手的博客-CSDN博客

参考文献:

[1] Yao X, Liu Y, Lin G M. Evolutionary programming made faster[J]. IEEE transactions on evolutionary computation, 1999, 3(2):82-102.

三、SOA求解23个测试函数

(1)部分代码

close all
clear ;
clc;
SearchAgents_no=20; %  种群数量
Function_name='F1'; % Name of the test function that can be from F1 to F23 (Table 1,2,3 in the paper) 设定适应度函数
Max_iteration=100; % Maximum numbef of iterations 设定最大迭代次数
% Load details of the selected benchmark function
[lb,ub,dim,fobj]=Get_Functions_details(Function_name);  %设定边界以及优化函数
%% Executing SOA algorithm
[BestIndividual,BestFitness,curve]=SOA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj); %开始优化
figure
plot(curve,'Color','r','linewidth',2.5)
title('Objective space')
xlabel('Iteration');
ylabel('Best score obtained so far');
axis tight
grid on
box on
legend('SOA')
display(['The best solution obtained by SOA is ', num2str(BestIndividual)]);
display(['The best optimal value of the objective funciton found by SOA is ', num2str(BestFitness)]);

(2)部分结果

四、完整MATLAB代码

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

建设数字孪生智慧城市是未来城市的重要增长点

中国国家创新与发展战略研究会学术委员会常务副主席、重庆市原市长黄奇帆在《瞭望》撰文指出: AI时代的城市是由实体空间和数字空间组成的数字孪生城市,要充分重视对数字空间的治理。随着城市数字化进程的加快,城市、企业、个人开始形成多样化…

【用unity实现100个游戏之10】复刻经典俄罗斯方块游戏

文章目录 前言开始项目网格生成Block方块脚本俄罗斯方块基类,绘制方块形状移动逻辑限制移动自由下落下落后设置对应风格为不可移动类型检查当前方块是否可以向指定方向移动旋转逻辑消除逻辑游戏结束逻辑怪物生成源码参考完结 前言 当今游戏产业中,经典游…

Matlab学习-自定义函数

Matlab学习-自定义函数 常用自定义函数 文章目录 Matlab学习-自定义函数1. 打印时间2. 计算统计参数3. 画图函数 1. 打印时间 function result calculate_time(time)% Function describe : calculate time% Input : time:N*1% Output : result.hour/min/sec hour/min/sec…

初始化一个 vite + vue 项目

创建项目 首先使用以下命令创建一个vite项目 npm create vite然后根据提示命令 cd 到刚创建的项目目录下,使用npm install安装所需要的依赖包,再使用npm run dev即可启动项目 配置 vite.config.js 添加process.env配置,如果下面 vue-route…

【Java基础篇 | 面向对象】—— 继承

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【JavaSE_primary】 本专栏旨在分享学习JavaSE的一点学习心得,欢迎大家在评论区讨论💌 继承允许一个类继承另一个…

Java8新特性(Stream流)

Stream流是用于对数组和集合进行便捷操作的。 Stream流 学习Stream流的步骤:获取Stream流,Stream流常见的中间方法,Stream流常见的终结方法。 Stream流的创建 获取数组的Stream流:Arrays.stream(arr)获取List集合的Stream流&a…

分享一个基于微信小程序的汽车租赁小程序 车辆出租小程序 汽车租借小程序源码 lw 调试

💕💕作者:计算机源码社 💕💕个人简介:本人七年开发经验,擅长Java、Python、PHP、.NET、微信小程序、爬虫、大数据等,大家有这一块的问题可以一起交流! 💕&…

curl快速学习指南:从新手到专家

文章目录 curl入门指南curl的基本语法curl的常用选项curl示例代码curl入门指南 curl是一个强大的工具,它可以用于从服务器获取或发送数据。它支持多种协议,包括HTTP,HTTPS,FTP等。curl语法简单,易于学习。本教程将介绍curl的基本语法和使用方法,并通过示例代码帮助您理解…

【C#项目实战】控制台游戏 勇士斗恶龙(2)——游戏场景的设置以及玩家战斗逻辑

君兮_的个人主页 即使走的再远,也勿忘启程时的初心 C/C 游戏开发 Hello,米娜桑们,这里是君兮_,最近开始正式的步入学习游戏开发的正轨,想要通过写博客的方式来分享自己学到的知识和经验,这就是开设本专栏的目的。希望…

固定资产管理中净值怎么算

在资产管理的领域中,我们经常听到“净值”这个词。然而,对于许多人来说,净值的概念仍然模糊不清。本文将试图揭示固定资产管理的净值计算方法,并提供一些创新的观点。  我们需要明确什么是净值。在财务术语中,净值是…

模拟实现C语言--strlen函数

模拟实现C语言–strlen函数 模拟实现C语言--strlen函数一、strlen函数是什么?二、strlen函数的模拟实现2.1 计数器方式实现strlen函数2.2 不创建临时变量计数器方式实现strlen函数2.3 指针-指针方式实现strlen函数 三、strlen函数的返回类型 一、strlen函数是什么&a…

hive的建表语句

hive建表语句CREATE TABLE ccwn_zh_event_push (customerid string,cardnumber string,accountnumber string,eventcode string,eventtime string,activities string,activityRefuseCode string,lables string)PARTITIONED BY(dt string)ROW FORMAT SERDE org.apache.hadoop.hi…