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

  • 大小: 4KB
    文件類型: .m
    金幣: 1
    下載: 0 次
    發布日期: 2021-05-13
  • 語言: Matlab
  • 標簽: 優化算法??

資源簡介

傳統粒子群算法的matlab實現代碼,PSO是粒子群優化算法(——Particle Swarm Optimization)的英文縮寫,是一種基于種群的隨機優化技術,由Eberhart和Kennedy于1995年提出。粒子群算法模仿昆蟲、獸群、鳥群和魚群等的群集行為,這些群體按照一種合作的方式尋找食物,群體中的每個成員通過學習它自身的經驗和其他成員的經驗來不斷改變其搜索模式。

資源截圖

代碼片段和文件信息

function?out?=?PSO(problemparams)
out.GlobalBest=[];
out.BestCosts=[];
%%?Problem?Definition
func_num=problem.func_num;
CostFunction=?problem.CostFunction;??????%Change?the?cost?function?here
nVar=problem.nVar?;???????%Number?of?Unknown?(Decision)?Variables
VarSize=?[nVar?1];????????%Matrix?Size?of?Decision?Variables
VarMin=?problem.VarMin;???%Lower?Bound?of?Decision?Variable
VarMax=?problem.VarMax;???%Upper?Bound?of?Decision?Variable

%%?Parameter?of?PSO
MaxIt=?params.MaxIt;?????%Maximum?Number?of?Iterations
nPop=?params.nPop;?????????%Population?Size?(Swarm?Size)
w=?params.w;??????????????????%Inertia?Coefficient
wdamp=?params.wdamp;????%Damping?Ratio?of?Inertia?Coefficient
c1=?params.c1;?????????????????%Personal?Acceleration?Coefficient
c2=?params.c2;?????????????????%Social?Acceleration?Coefficient

%?The?Flag?for?Showing?Iteration?Information
ShowIterInfo=params.ShowIterInfo;

%MaxVelocity?=?(VarMax-VarMin)*0.1;
%MinVelocity?=?-MaxVelocity;


%%?Initialization
%The?Particle?Template
%?empty_particle.Position=[];
%?empty_particle.Velocity=[];
%?empty_particle.Cost=[];
%?empty_particle.Best.Position=[];
%?empty_particle.Best.Cost=[];
%?Create?Population?Members
particle?=?params.particle;????%%repmat(Matrixrowcol)

%?Initialize?Global?Best
GlobalBest.Cost=?inf;

for?i=1:nPop
????%?Generate?Random?Solution
????particle(i).Position=params.particle(i).Position;
????%Initialize?Velocity
????particle(i).Velocity=zeros(VarSize);
????%Evaluation
????particle(i).Cost=feval(CostFunctionparticle(i).Positionfunc_num);
????
????%Update?the?Personal?Best
????particle(i).Best.Position=particle(i).Position;
????particle(i).Best.Cost=particle(i).Cost;
????
????%Update?Global?Best
????if?particle(i).Best.Cost?????????GlobalBest=particle(i).Best;
????end
end
%Array?to?Hold?Best?Cost?Value?on?Each?Iteration
BestCosts=zeros(MaxIt1);

BestCosts(1)=GlobalBest.Cost;
%%?Main?Loop?of?PSO
for?it=2:MaxIt
????for?i=1:nPop
????????%Update?Velocity
????????particle(i).Velocity=?w*particle(i).Ve

評論

共有 條評論