1 内容介紹
近幾十年,群體智能算法已經成為全世界用于解決優化問題的研究熱點.傳統的數學理論建構的最優化模型如梯度下降法,牛頓法,拉格朗日乘數法等,在面對日益複雜的非線性,複雜性優化問題時已經捉襟見肘.研究人員通過模仿自然界中生物的社會行為,以及根據自然現象或者實體現象提出了各式各樣的群體智能算法,在設計,計劃,管理,控制四個方面廣泛應用.現有的群體智能算法固然簡單高效且具普适性,但算法機制本身仍然會導緻陷入局部收斂的問題
2 部分代碼
%% 煙花算法進行函數優化
%%求函數的最小值
%fitness适應度函數,N煙花數,D變量維數,M變異火花數,Er爆炸半徑,En爆炸數目
%LB,UB分别為變量上下界,T為疊代次數,a,b為爆炸數目限制因子
clear;clc
close all
N=100; % N煙花數
D=2; % D變量維數
M=5; % M變異火花數
En=6; % En爆炸數目
Er=5; % Er爆炸半徑
a=0.3; % a,b為爆炸數目限制因子
b=0.6;
T=500; % T為疊代次數
%求最大值變量上下界
LB=[-10,-10];
UB=[10,10];
%求最大值輸出
[F(T),Y]=min(Fit);
fmin=min(F);
xm=x(Y,:);
fprintf('xm=%f %f\n',xm(1),xm(2));
fprintf('fmin=%f\n',fmin);
figure(1);
t=1:T;
plot(t,F)
xlabel('疊代次數')
ylabel('目标函數值')
title('FWA算法疊代曲線');