資源簡介
粒子群算法(pso)標(biāo)準(zhǔn)測試函數(shù)驗證程序。在一個m文件中包括了目前文獻中用于驗證的7個標(biāo)準(zhǔn)測試函數(shù)(Ackley等)、三維動態(tài)顯示,粒子過分集中時打散等功能。旨在為學(xué)習(xí)和研究者pso算法的同仁提供一個功能較為完備、簡單易懂的標(biāo)準(zhǔn)版本,對于初學(xué)者可以通過此程序快速的實現(xiàn)入門,以便將更多的精力投入到深層次的研究中去!同時愿與所有致力于此的朋友共同探討pso算法的改進與應(yīng)用方面(如多目標(biāo)、動態(tài)系統(tǒng)等)的經(jīng)驗。

代碼片段和文件信息
function?PSOstandard_benchmarks_Test
%???感謝親親使用此代碼,此代碼解決您的問題了嗎~(@^_^@)~
%???沒解決的話告訴親親一個好消息,登錄淘寶店鋪“大成軟件工作室”,可以下載(????)1分錢成品代碼(′▽‘〃)哦~
%???是的,親親真的沒有看錯,撓破頭皮的問題真的1分錢就可以解決了(づ??????)づ
%???小的這就把傳送門給您,記得要收藏好哦(づ ̄3 ̄)づ╭?~
%???傳送門:https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-15151018122.5.uwGoq5&id=538759553146
%???如果傳送門失效,親親可以來店鋪討要,客服MM等親親來騷擾哦~(*/ω╲*)
web?https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-15151018122.5.uwGoq5&id=538759553146?-browser
clear?all;
close?all;
c1=1.49445;c2=1.49445;%
global?dimension??Size
dimension=40;Size=40;%種群維數(shù)?dimension、規(guī)模?Size
Tmax=1000;%%最大迭代次數(shù)?Tmax
%%選擇不同測試函數(shù)的速度和位置限制范圍%%
F_n=1;
switch?F_n
??case?1???%%??f1_Sphere????????????????????%%
???????????Vmax(1:dimension)=?30;??Vmin(1:dimension)=-30;
???????????Xmax(1:dimension)=?30;??Xmin(1:dimension)=-30;
??case?2???%%??f2_Quadric????[-100100]?????%%?
???????????Vmax(1:dimension)=?100;??Vmin(1:dimension)=-100;
???????????Xmax(1:dimension)=?100;??Xmin(1:dimension)=-100;
??case?3???%%??f3_Ackley?????[-3030]???????%%
???????????Vmax(1:dimension)=?30;??Vmin(1:dimension)=-30;
???????????Xmax(1:dimension)=?30;??Xmin(1:dimension)=-30;
??case?4???%%??f4_griewank???[-600600]?????%%
???????????Vmax(1:dimension)=?600;??Vmin(1:dimension)=-600;
???????????Xmax(1:dimension)=?600;??Xmin(1:dimension)=-600;
??case?5???%%??f5_Rastrigin??[-5.125.12]???%%
???????????Vmax(1:dimension)=?5.12;??Vmin(1:dimension)=-5.12;
???????????Xmax(1:dimension)=?5.12;??Xmin(1:dimension)=-5.12;
??case?6???%%??f6_Rosenbrock?[-2.4082.408]?%%
???????????Vmax(1:dimension)=?2.408;??Vmin(1:dimension)=-2.408;
???????????Xmax(1:dimension)=?2.408;??Xmin(1:dimension)=-2.408;
??case?7???%%??f7_Schaffer‘s?f6?%%
???????????Vmax(1:dimension)=?2.408;??Vmin(1:dimension)=-2.408;
???????????Xmax(1:dimension)=?2.408;??Xmin(1:dimension)=-2.408;??
?end
%%三維顯示粒子群運動變化%%
global?Swarmscope;?
???????Swarmscope?=?plot(00?‘.‘);
???????axis([Xmin(1)?Xmax(1)?Xmin(2)?Xmax(2)?Xmin(3)?Xmax(3)]);???%初始軸的范圍的設(shè)置
????%??axis?square;
???????grid?on;
???????set(Swarmscope‘EraseMode‘‘xor‘‘MarkerSize‘12);?%設(shè)置用來顯示粒子.
%%initial?Position?Velocity%%
Position=zeros(dimensionSize);%以后位置Position統(tǒng)一為此種記法:行?dimension;列?Size;
Velocity=zeros(dimensionSize);%每個粒子的位置、速度對應(yīng)于一列。
[PositionVelocity]=initial_Position_Velocity(dimensionSizeXmaxXminVmaxVmin);
%%個體最優(yōu)?P_p?和全局最優(yōu)?globe?初始賦值%%
P_p=Position;globe=zeros(dimension1);
%%評價每個粒子適應(yīng)值,尋找出?globle%%
for?j=1:Size
????Pos=Position(:j);
????fz(j)=Fitness_Function(PosF_n);
end
[P_gI]=min(fz);%P_g??1*1??
globe=Position(:I);
%%打散參數(shù)設(shè)置%%
?N_dismiss=51;%太小,不利于初始尋優(yōu)
?N_dismissed=0;%記錄被打散的次數(shù)
?deltaP_gg=0.001%種群過分收斂衡量標(biāo)準(zhǔn)值(適應(yīng)度變化率)
%??reset?=?1;??%設(shè)置reset?=?1時指示粒子群過分收斂時將被打散,如果reset=0則不打散
?reset_dismiss?=?0;
%%迭代開始%%
for?itrtn=1:Tmax
???time(itrtn)=itrtn;
%%過于集中時打散%%
???if?reset_dismiss==1
???????bit=1;
???????if?itrtn>N_dismiss
??????????bit=bit&((P_gg(itrtn-1)-P_gg(itrtn-N_dismiss))/P_gg(itrtn-1)??????????if?bit==1
?????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2006-05-15?13:17??benchmarks_test_pso\
?????文件????????8119??2016-09-23?06:29??benchmarks_test_pso\PSOstandard_benchmarks_Test.m
評論
共有 條評論