【单目标优化算法】樽海鞘群算法(Matlab代码实现)

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
EMR Serverless StarRocks,5000CU*H 48000GB*H
简介: 【单目标优化算法】樽海鞘群算法(Matlab代码实现)

💥 💥 💞 💞 欢迎来到本博客 ❤️ ❤️ 💥 💥



🏆 博主优势: 🌞 🌞 🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。



⛳ 座右铭:行百里者,半于九十。


📋 📋 📋 本文目录如下: 🎁 🎁 🎁

目录

💥1 概述

📚2 运行结果

🎉3 文献来源

🌈4 Matlab代码实现


💥1 概述

在过去的十年中,元启发式技术已经变得非常流行。这种流行是由于几个主要原因:灵活性、无梯度机制和这些算法的局部最优避免。前两个优点源于元启发式通过仅查看输入和输出来考虑和解决优化问题。换句话说,元启发式方法将优化问题假设为黑盒。因此,无需计算搜索空间的导数。这使得它们在解决各种问题方面具有高度的灵活性。由于元启发式属于随机优化技术家族,因此它们受益于随机运算符。这有助于他们在解决实际问题时避免局部解决方案,这些问题通常具有大量的局部最优。由于这些优点,元启发式的应用可以在科学和工业的不同分支中找到。


元启发式算法分为两大类:进化[1]和群体智能[2]技术。进化算法模仿自然界中的进化概念。此类中最好和最受推崇的算法是遗传算法(GA)[3]。该算法模拟了达尔文进化论的概念。在 GA 中,优化是通过针对特定问题的一组随机解决方案启动的。通过目标函数评估解后,根据解的适应度值修改解的变量。由于最好的个体更有可能参与改进其他解决方案,因此随机初始解决方案很可能得到改进。文献中还有其他几种进化算法,如差分进化(DE)[4],进化策略(ES)[5]和进化规划(EP)[6],[7]和基于生物地理学的优化(BBO)算法[8]。


群体智能技术模仿自然界中群体、牛群、学校或成群生物的智能。这些算法的主要基础源于一群生物的集体行为。例如,蚂蚁能够在没有集中控制单元的情况下共同保证蚁群的生存。换句话说,没有人告诉蚂蚁在哪里以及如何找到食物来源,但它们会合作在离巢穴很远的地方找到食物。此类中最受欢迎的两种算法是蚁群优化 (ACO) [9] 和粒子群优化 (PSO) [10]。ACO算法模仿蚂蚁的社会行为,以找到巢穴和源食物之间的最短路径。PSO算法模拟鸟类在导航和狩猎中的集体行为。文献中的其他群体智能技术包括:人工蜂群(ABC)算法[11],布谷鸟搜索(CS)算法[12],萤火虫算法(FA)[13],蝙蝠算法(BA)[14],灰狼优化器(GWO)[15],[16],[17],海豚回声定位(DE)[18],鲸鱼优化算法(WOA)[19],果蝇优化算法(FOA)[20]和和谐搜索[21],[22]。


无论进化和群体智能技术之间的差异如何,共同点是在优化过程中改进一个或一组解决方案。如果一种算法只改进了一个解决方案,它被称为个人主义算法。如果一组解决方案得到改进,则称为集体算法。个人主义算法是有益的,因为所需的函数评估数量少,并且整体优化过程简单。然而,局部最优停滞的概率非常高。集体算法能够更好地避免局部解决方案并交换有关搜索空间的信息。但是,此类技术需要更多的功能评估。一些个人主义算法是禁忌搜索(TS)[6],[23],爬山[24],迭代局部搜索(ILS)[25]和模拟退火(SA)[26],变量邻域搜索(VNS)[27]和引导局部搜索[28]。众所周知的集体算法是 GA、ACO、PSO、DE 和 ES。


尽管文献中提出的算法有其优点,但无免费午餐(NFL)[29]已经证明,这些算法都不能解决所有优化问题。换句话说,在解决所有优化问题时,所有元启发式方法的表现都相似。该定理揭示了新算法和特定算法在不同领域的重要性,因为算法在解决一组问题时的有效性并不能保证它在不同的测试问题集中取得成功。这就是本文的动机,首先提出了一种新的元启发式优化算法来解决单目标问题,然后扩展到多目标版本。本文的其余部分组织如下。


第二节回顾文献和相关著作。第2节介绍了所提出的灵感和数学模型。本节还提出了Salp Swarm算法(SSA)和多目标Salp Swarm算法(MSSA)。第3节介绍和讨论了两种算法在各种基准函数上的定性和定量结果。SSA和MSSA都被用来解决第4节中几个具有挑战性的实际问题。最后,第5节总结了这项工作,并提出了几个未来的研究方向。


本工作提出了两种新颖的优化算法,称为Salp Swarm算法(SSA)和多目标Salp Swarm算法(MSSA),用于解决具有单个和多个目标的优化问题。SSA和MSSA的主要灵感是在海洋中航行和觅食时鲈鱼的成群行为。这两种算法在几个数学优化函数上进行了测试,以观察并确认它们在寻找优化问题的最佳解决方案方面的有效行为。数学函数结果表明,SSA算法能够有效地改进初始随机解,并向最优收敛。MSSA结果表明,该算法能够在高收敛性和覆盖率下逼近帕累托最优解。本文还考虑使用SSA和MSSA解决几个具有挑战性且计算成本高昂的工程设计问题(例如翼型设计和船用螺旋桨设计)。真实案例研究的结果证明了所提出的算法在解决具有困难和未知搜索空间的实际问题方面的优点。


📚2 运行结果


ca76059a938a446aadf7523531835a4f.png


部分代码:

function [FoodFitness,FoodPosition,Convergence_curve]=SSA(N,Max_iter,lb,ub,dim,fobj)
if size(ub,1)==1
ub=ones(dim,1)*ub;
lb=ones(dim,1)*lb;
end
Convergence_curve = zeros(1,Max_iter);
%Initialize the positions of salps
SalpPositions=initialization(N,dim,ub,lb);
FoodPosition=zeros(1,dim);
FoodFitness=inf;
%calculate the fitness of initial salps
for i=1:size(SalpPositions,1)
SalpFitness(1,i)=fobj(SalpPositions(i,:));
end
[sorted_salps_fitness,sorted_indexes]=sort(SalpFitness);
for newindex=1:N
Sorted_salps(newindex,:)=SalpPositions(sorted_indexes(newindex),:);
end
FoodPosition=Sorted_salps(1,:);
FoodFitness=sorted_salps_fitness(1);
%Main loop
l=2; % start from the second iteration since the first iteration was dedicated to calculating the fitness of salps
while l<Max_iter+1
c1 = 2*exp(-(4*l/Max_iter)^2); % Eq. (3.2) in the paper
for i=1:size(SalpPositions,1)
SalpPositions= SalpPositions';
if i<=N/2
for j=1:1:dim
c2=rand();
c3=rand();
%%%%%%%%%%%%% % Eq. (3.1) in the paper %%%%%%%%%%%%%%
if c3<0.5
SalpPositions(j,i)=FoodPosition(j)+c1*((ub(j)-lb(j))*c2+lb(j));
else
SalpPositions(j,i)=FoodPosition(j)-c1*((ub(j)-lb(j))*c2+lb(j));
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
end
elseif i>N/2 && i<N+1
point1=SalpPositions(:,i-1);
point2=SalpPositions(:,i);
SalpPositions(:,i)=(point2+point1)/2; % % Eq. (3.4) in the paper
end
SalpPositions= SalpPositions';
end
for i=1:size(SalpPositions,1)
Tp=SalpPositions(i,:)>ub';Tm=SalpPositions(i,:)<lb';SalpPositions(i,:)=(SalpPositions(i,:).*(~(Tp+Tm)))+ub'.*Tp+lb'.*Tm;
SalpFitness(1,i)=fobj(SalpPositions(i,:));
if SalpFitness(1,i)<FoodFitness
FoodPosition=SalpPositions(i,:);
FoodFitness=SalpFitness(1,i);
end
end
Convergence_curve(l)=FoodFitness;
l = l + 1;
end


🎉3 文献来源

部分理论来源于网络,如有侵权请联系删除。

[1] S. Mirjalili, A.H. Gandomi, S.Z. Mirjalili, S. Saremi, H. Faris, S.M. Mirjalili,

Salp Swarm Algorithm: A bio-inspired optimizer for engineering design problems

Advances in Engineering Software


🌈4 Matlab代码实现


相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
7天前
|
算法 安全 数据安全/隐私保护
基于game-based算法的动态频谱访问matlab仿真
本算法展示了在认知无线电网络中,通过游戏理论优化动态频谱访问,提高频谱利用率和物理层安全性。程序运行效果包括负载因子、传输功率、信噪比对用户效用和保密率的影响分析。软件版本:Matlab 2022a。完整代码包含详细中文注释和操作视频。
|
4天前
|
人工智能 算法 数据安全/隐私保护
基于遗传优化的SVD水印嵌入提取算法matlab仿真
该算法基于遗传优化的SVD水印嵌入与提取技术,通过遗传算法优化水印嵌入参数,提高水印的鲁棒性和隐蔽性。在MATLAB2022a环境下测试,展示了优化前后的性能对比及不同干扰下的水印提取效果。核心程序实现了SVD分解、遗传算法流程及其参数优化,有效提升了水印技术的应用价值。
|
7天前
|
机器学习/深度学习 算法 调度
基于ACO蚁群优化的VRPSD问题求解matlab仿真,输出规划路径结果和满载率
该程序基于ACO蚁群优化算法解决VRPSD问题,使用MATLAB2022a实现,输出优化收敛曲线及路径规划结果。ACO通过模拟蚂蚁寻找食物的行为,利用信息素和启发式信息指导搜索,有效求解带时间窗约束的车辆路径问题,最小化总行程成本。
|
5天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化CNN-LSTM网络的数据分类识别算法matlab仿真
本项目展示了基于贝叶斯优化(BO)的CNN-LSTM网络在数据分类中的应用。通过MATLAB 2022a实现,优化前后效果对比明显。核心代码附带中文注释和操作视频,涵盖BO、CNN、LSTM理论,特别是BO优化CNN-LSTM网络的batchsize和学习率,显著提升模型性能。
|
10天前
|
存储
基于遗传算法的智能天线最佳阵列因子计算matlab仿真
本课题探讨基于遗传算法优化智能天线阵列因子,以提升无线通信系统性能,包括信号质量、干扰抑制及定位精度。通过MATLAB2022a实现的核心程序,展示了遗传算法在寻找最优阵列因子上的应用,显著改善了天线接收功率。
|
12天前
|
监控 算法 数据安全/隐私保护
基于三帧差算法的运动目标检测系统FPGA实现,包含testbench和MATLAB辅助验证程序
本项目展示了基于FPGA与MATLAB实现的三帧差算法运动目标检测。使用Vivado 2019.2和MATLAB 2022a开发环境,通过对比连续三帧图像的像素值变化,有效识别运动区域。项目包括完整无水印的运行效果预览、详细中文注释的代码及操作步骤视频,适合学习和研究。
|
10天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化卷积神经网络(Bayes-CNN)的多因子数据分类识别算法matlab仿真
本项目展示了贝叶斯优化在CNN中的应用,包括优化过程、训练与识别效果对比,以及标准CNN的识别结果。使用Matlab2022a开发,提供完整代码及视频教程。贝叶斯优化通过构建代理模型指导超参数优化,显著提升模型性能,适用于复杂数据分类任务。
|
3月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
161 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
3月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
116 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
3月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
84 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码