目录
1 月光下的飞蛾
本文是一种新的蛾群算法(MSA),该算法受蛾群朝向月光的启发,用于求解约束最优潮流(OPF)问题特别适合。除了自适应高斯行走和螺旋运动外,还提出了具有即时记忆和群体多样性交叉的Lévy变异联想学习机制,以分别提高开发和探索能力。MSA的有效性和优越性已得到证明。
2 数值实验
3 MSA
%______________________________________________________________________________________________
% Moth Swarm Algorithm (MSA)
%_______________________________________________________________________________________________
% 该算法具有快速收敛的特点。
% 只需少量迭代即可获得满意的结果。
for iji=[1,8,21]
if iji==1;F=('F1');elseif iji==2;F=('F2');elseif iji==3;F=('F3');elseif iji==4;F=('F4');elseif iji==5;F=('F5'); ...
elseif iji==6;F=('F6');elseif iji==7; F=('F7'); elseif iji==8; F=('F8');elseif iji==9; F=('F9'); ...
elseif iji==10; F=('F10');elseif iji==11; F=('F11');elseif iji==12; F=('F12'); ...
elseif iji==13; F=('F13');elseif iji==14; F=('F14');elseif iji==15; F=('F15');
elseif iji==16; F=('F16');elseif iji==17; F=('F17');elseif iji==18; F=('F18');
elseif iji==19; F=('F19');elseif iji==20; F=('F20');elseif iji==21; F=('F21');
elseif iji==22; F=('F22');elseif iji==23; F=('F23');
end
if iji < 14;Max_iteration=1000;else Max_iteration=500;end% 最大迭代次数
SearchAgents_no=30;
Nc=6;% 开拓者的数目: 4 <= Nc <= 20% of SearchAgents_no
%% 加载所选基准函数的详细信息
[lb,ub,dim,fobj]=Get_Functions_details(F);
[Best_pos,Best_score,Convergence_curve]=MSA(SearchAgents_no,Nc,Max_iteration,ub,lb,dim,fobj);
%% 绘制并显示目标函数
figure,semilogy(Convergence_curve); title( F ); xlabel('迭代次数'); ylabel('最优解');
display([F,'的最优解为: ',num2str(Best_pos)]);
display([F,'的最优值为 ', num2str(Best_score)]);
end