91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 7KB
    文件類型: .m
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-03
  • 語言: Matlab
  • 標簽: PSO??

資源簡介

完整的PSO代碼,其中包括標準函數的測試。

資源截圖

代碼片段和文件信息

function?PSOstandard_benchmarks_Test
clear?all;
close?all;
c1=1.49445;c2=1.49445;%
global?dimension??Size
dimension=40;Size=40;%種群維數?dimension、規模?Size
Tmax=1000;%%最大迭代次數?Tmax
%%選擇不同測試函數的速度和位置限制范圍%%
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)]);???%初始軸的范圍的設置
????%??axis?square;
???????grid?on;
???????set(Swarmscope‘EraseMode‘‘xor‘‘MarkerSize‘12);?%設置用來顯示粒子.
%%initial?Position?Velocity%%
Position=zeros(dimensionSize);%以后位置Position統一為此種記法:行?dimension;列?Size;
Velocity=zeros(dimensionSize);%每個粒子的位置、速度對應于一列。
[PositionVelocity]=initial_Position_Velocity(dimensionSizeXmaxXminVmaxVmin);
%%個體最優?P_p?和全局最優?globe?初始賦值%%
P_p=Position;globe=zeros(dimension1);
%%評價每個粒子適應值,尋找出?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);
%%打散參數設置%%
?N_dismiss=51;%太小,不利于初始尋優
?N_dismissed=0;%記錄被打散的次數
?deltaP_gg=0.001%種群過分收斂衡量標準值(適應度變化率)
%??reset?=?1;??%設置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
?????????????[PositionVelocity]=initial_Position_Velocity(dimensionSizeXmaxXminVmaxVmin);%重新初始化位置和速度
?????????????N_dismissed=N_dismissed+1;
?????????????N_dismissed
?????????????warning(‘粒子過分集中!重新初始化……‘);??????%???給出信息
?????????????itrtn
??????????end
???????end?
????end
????
?????Weight=0.4+0.5*(Tmax-itrtn)/Tmax;
%????????Weight=1;
?????r1=rand(1);r2=rand(1);
????for?i=1:Size
????????Velocity(:i)=Weight*

評論

共有 條評論