天天看點

【智能優化算法-煙花算法】基于煙花算法求解單目标優化問題含Matlab源碼

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算法疊代曲線');

3 運作結果

4 參考文獻

部分理論引用網絡文獻,若有侵權聯系部落客删除。

繼續閱讀