【优化算法】自适应反对粘液霉菌算法 (Matlab实现)

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

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

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

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

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现

💥1 概述

Slime Mould Algorithm (SMA) 是一种受自然界黏菌觅食行为启发的优化算法。在 SMA 中,通常是从整个种群中随机选取两个搜索代理(search agents),以此来决定最优搜索代理未来的移动方向和距离。然而,这种方法可能会导致算法在开发(局部搜索)与探索(全局搜索)之间失去平衡,从而影响其性能。为了解决上述问题,研究人员提出了一种自适应的方法来决定是否采用基于反对的学习 (Opposition-Based Learning, OBL) 技术。OBL 是一种旨在同时考虑可能解空间中与当前解相对位置的解,以此来增强算法探索能力的技术。当 SMA 需要更广泛的搜索范围时,OBL 可以被激活以促进更多的探索。另外,在位置更新的过程中,该技术还会用当前最优的搜索代理来替代随机挑选的一个普通搜索代理,从而确保算法的利用效率。所提出的改进技术被称为自适应对置粘液霉菌算法 (Adaptive Opposition-based Slime Mould Algorithm, AOSMA)。该算法旨在通过动态调整 SMA 中的探索与开发比例,并结合 OBL 提高全局搜索能力,来提升函数优化的效果,从而更好地解决实际工程问题。AOSMA 在保持原有 SMA 算法优点的同时,能够更有效地平衡探索与开发之间的关系,使得算法能够在更广泛的优化场景下表现出更好的性能。

📚2 运行结果

主函数部分代码:

clearvars
close all
clc

disp('The AOSMA is tracking the problem');

N=30; % Number of slime mould
Function_name='F5' % Name of the test function that can be from F1 to F23 
MaxIT=500; % Maximum number of iterations

[lb,ub,dim,fobj]=Get_Functions_details(Function_name); % Function details

Times=21; %Number of independent times you want to run the AOSMA
display(['Number of independent runs: ', num2str(Times)]);

for i=1:Times
[Destination_fitness(i),bestPositions(i,:),Convergence_curve(i,:)]=AOSMA(N,MaxIT,lb,ub,dim,fobj);
display(['The optimal fitness of AOSMA is: ', num2str(Destination_fitness(i))]);
end

[bestfitness,index]=min(Destination_fitness);
disp('--------Best Fitness, Average Fitness, Standard Deviation and Best Solution--------');
display(['The best fitness of AOSMA is: ', num2str(bestfitness)]);
display(['The average fitness of AOSMA is: ', num2str(mean(Destination_fitness))]);
display(['The standard deviation fitness of AOSMA is: ', num2str(std(Destination_fitness))]);
display(['The best location of AOSMA is: ', num2str(bestPositions(index,:))]);

semilogy(Convergence_curve(index,:),'LineWidth',3);
xlabel('Iterations');
ylabel('Best fitness obtained so far');
legend('AOSMA');
box on;
axis tight;
grid off;

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]魏泉增,范江涛,张成丽,等.BP神经网络结合遗传算法优化链霉菌产葡萄糖异构酶发酵条件[J].食品科技,2021,46(12):34-41.DOI:10.13684/j.cnki.spkj.2021.12.006.

[2]陆宋晗. 白带有形成份中霉菌自动识别算法技术的研究[D].电子科技大学,2018.

🌈4 Matlab代码实现

图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值