【优化求解】基于正弦余弦算子改进被囊群优化算法求解单目标优化问题matlab代码

119 阅读2分钟

1 简介

针对被囊群优化算法求解精度不高,收敛速度较慢等问题,提出融合正弦余弦被囊群优化算法。

被囊群算法是一种元启发式算法,模拟被囊动物的喷气推进行为和群体行为. 喷气推进行为主 要利用自身的重力、深海中的水流平流、个体之间的相互作用力,实现个体之间搜索冲突避免,同时,也 具有向最优个体移动的能力. 喷气推进行为主要由 3 部分组成: 搜索个体冲突避免,保持接近最佳搜索个体,向最佳个体的位置移动. 群体行为主要为更新搜索个体最优解的位置,通过被囊动物周围的神经感知水流的变化和同伴的发光确定同伴位置,共同向目标食物源位置聚集,达到群体觅食的目的. TSA 采用喷气推进行为和群体行为这两种策略,更真实 地模拟海洋中被囊动物群体觅食行为,达到算法实 现简单、跳出局部最优能力强、寻优精度高的目的. TSA 具体流程如图 1 所示

2 部分代码

clear all 
clc
SearchAgents=30; 
Fun_name='F4';  
Max_iterations=1000[lowerbound,upperbound,dimension,fitness]=fun_info(Fun_name);
[Best_score,Best_pos,TSA_curve]=tsa(SearchAgents,Max_iterations,lowerbound,upperbound,dimension,fitness);


figure('Position',[500 500 660 290])

subplot(1,2,1);
func_plot(Fun_name);
title('Objective space')
xlabel('x_1');
ylabel('x_2');
zlabel([Fun_name,'( x_1 , x_2 )'])

subplot(1,2,2);
plots=semilogx(TSA_curve,'Color','g');
set(plots,'linewidth',2)
hold on
title('Objective space')
xlabel('Iterations');
ylabel('Best score');

axis tight
grid on
box on
legend('TSA')
img =gcf;  %获取当前画图的句柄
print(img, '-dpng', '-r600', './img2.png')         %即可得到对应格式和期望dpi的图像
display(['The best solution obtained by TSA is : ', num2str(Best_pos)]);
display(['The best optimal value of the objective funciton found by TSA is : ', num2str(Best_score)]);

3 仿真结果

4 参考文献

[1]徐松金, & 龙文. (2018). 求解高维优化问题的改进正弦余弦算法. 计算机应用研究, 35(9), 4.

[2}屈迟文, 彭小宁. 信息共享的记忆被囊群算法[J]. 模式识别与人工智能.

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