引力搜索算法(Gravitational_Search_algorithm,GSA)附matlab代碼
?作者簡介:熱愛科研的Matlab仿真開發(fā)者,修心和技術(shù)同步精進,matlab項目合作可私信。
??個人主頁:Matlab科研工作室
??個人信條:格物致知。
更多Matlab仿真內(nèi)容點擊??
智能優(yōu)化算法 ?神經(jīng)網(wǎng)絡(luò)預(yù)測 雷達通信 無線傳感器
信號處理 圖像處理 路徑規(guī)劃 元胞自動機 無人機
? 內(nèi)容介紹
GSA是2009年提出的一種新型的啟發(fā)式群智能優(yōu)化算法,具有全局搜索能力強、收斂速度快等優(yōu)點。在GSA中,種群粒子相當于空間中運動的個體,這些個體在萬有引力的作用下彼此吸引、運動,個體的質(zhì)量是評價粒子好壞的標準,質(zhì)量越大的個體吸引其他粒子的能力越強,即表示其對應(yīng)的解更好,整個種群憑借粒子相互間力的作用相互運動實現(xiàn)信息的共享,并朝著最優(yōu)區(qū)域展開搜索。

? 部分代碼
% GSA code v1.1.
% Generated by Esmat Rashedi, 2010.?
% " E. Rashedi, H. Nezamabadi-pour and S. Saryazdi,
%揋SA: A Gravitational Search Algorithm? Information sciences, vol. 179,
%no. 13, pp. 2232-2248, 2009."
%
%This function checks the search space boundaries for agents.
function? X=space_bound(X,up,low);
[N,dim]=size(X);
for i=1:N?
%? ? ?%%Agents that go out of the search space, are reinitialized randomly .
? ? Tp=X(i,:)>up;Tm=X(i,:)<low;X(i,:)=(X(i,:).*(~(Tp+Tm)))+((rand(1,dim).*(up-low)+low).*(Tp+Tm));
%? ? ?%%Agents that go out of the search space, are returned to the boundaries.
%? ? ? ? ?Tp=X(i,:)>up;Tm=X(i,:)<low;X(i,:)=(X(i,:).*(~(Tp+Tm)))+up.*Tp+low.*Tm;
end
? 運行結(jié)果


? 參考文獻
[1]畢曉君, 刁鵬飛. 基于引力搜索算法的異構(gòu)無線傳感器網(wǎng)絡(luò)路由分簇算法[J]. 控制與決策, 2017, 32(3):7.
?? 關(guān)注我領(lǐng)取海量matlab電子書和數(shù)學(xué)建模資料
??部分理論引用網(wǎng)絡(luò)文獻,若有侵權(quán)聯(lián)系博主刪除
