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

  • 大小: 9KB
    文件類型: .m
    金幣: 1
    下載: 1 次
    發布日期: 2021-07-11
  • 語言: Matlab
  • 標簽:

資源簡介

用于matlab的萬有引力搜索算法 考慮了粒子質量和速度 并對其進行適度函數分析

資源截圖

代碼片段和文件信息

%?Gravitational?Search?Algorithm.

function?[FbestLbestBestChartMeanChart]=GSA(F_indexNmax_itElitistCheckmin_flagRpower)

%V:???Velocity.
%a:???Acceleration.
%M:???Mass.??Ma=Mp=Mi=M;
%dim:?Dimension?of?the?test?function.
%N:???Number?of?agents.
%X:???Position?of?agents.?dim-by-N?matrix.
%R:???Distance?between?agents?in?search?space.
%[low-up]:?Allowable?range?for?search?space.
%Rnorm:??Norm?in?eq.8.
%Rpower:?Power?of?R?in?eq.7.
?
?Rnorm=2;?
?
%get?allowable?range?and?dimension?of?the?test?function.
function?[downupdim]=test_functions_range(F_index)
[lowupdim]=test_functions_range(F_index);?

%random?initialization?for?agents.
X=initialization(dimNuplow);?

%create?the?best?so?far?chart?and?average?fitnesses?chart.
BestChart=[];MeanChart=[];

V=zeros(Ndim);

for?iteration=1:max_it
%?????iteration
????
????%Checking?allowable?range.?
????X=space_bound(Xuplow);?

????%Evaluation?of?agents.?
????fitness=evaluateF(XF_index);?
????
????if?min_flag==1
????[best?best_X]=min(fitness);?%minimization.
????else
????[best?best_X]=max(fitness);?%maximization.
????end????????
????
????if?iteration==1
???????Fbest=best;Lbest=X(best_X:);
????end
????if?min_flag==1
??????if?best???????Fbest=best;Lbest=X(best_X:);
??????end
????else?
??????if?best>Fbest??%maximization
???????Fbest=best;Lbest=X(best_X:);
??????end
????end
??????
BestChart=[BestChart?Fbest];
MeanChart=[MeanChart?mean(fitness)];

%Calculation?of?M.?eq.14-20
[M]=massCalculation(fitnessmin_flag);?

%Calculation?of?Gravitational?constant.?eq.13.
G=Gconstant(iterationmax_it);?

%Calculation?of?accelaration?in?gravitational?field.?eq.7-1021.
a=Gfield(MXGRnormRpowerElitistCheckiterationmax_it);

%Agent?movement.?eq.11-12
[XV]=move(XaV);

end?%iteration

%?This?function?gives?boundaries?and?dimension?of?search?space?for?test?functions.
function?[downupdim]=test_functions_range(F_index)

%If?lower?bounds?of?dimensions?are?the?same?then?‘down‘?is?a?value.
%Otherwise?‘down‘?is?a?vector?that?shows?the?lower?bound?of?each?dimension.
%This?is?also?true?for?upper?bounds?of?dimensions.

%Insert?your?own?boundaries?with?a?new?F_index.

dim=30;
if?F_index==1
????down=-100;up=100;
end

if?F_index==2
????down=-10;up=10;
end

if?F_index==3
????down=-100;up=100;
end

if?F_index==4
????down=-100;up=100;
end

if?F_index==5
????down=-30;up=30;
end

if?F_index==6
????down=-100;up=100;
end

if?F_index==7
????down=-1.28;up=1.28;
end

if?F_index==8
????down=-500;up=500;
end

if?F_index==9
????down=-5.12;up=5.12;
end

if?F_index==10
????down=-32;up=32;
end

if?F_index==11
????down=-600;up=600;
end

if?F_index==12
????down=-50;up=50;
end

if?F_index==13
????down=-50;up=50;
end

if?F_index==14
????down=-65.536;up=65.536;dim=2;
end

if?F_index==15
????down=-5;up=5;dim=4;
end

if?F_index==16
????down=-5;up=5;dim=2;
end

if?F_in

評論

共有 條評論