1、初始化:
初始化粒子群(粒子群共有n个粒子):给每个粒子赋予随机的初始位置和速度
2、计算适应值:
根据适应度函数,计算每个粒子的适应值
3、求个体最佳适应值:
对每一个粒子,将其当前位置的适应值与其历史最佳位置(pbest)对应的适应值比较,如果当前位置的适应值更高,则用当前位置更新历史最佳位置
4、求群体最佳适应值:
对每一个粒子,将其当前位置的适应值与其全局最佳位置(gbest)对应的适应值比较,如果当前位置的适应值更高,则用当前位置更新全局最佳位置
5、更新粒子位置和速度:
根据公式更新每个粒子的速度与位置
6、对个体最优解排序选择
7、判断算法是否结束:
若未满足结束条件,则返回步骤2,若满足结束条件则算法结束,全局最佳位置(gbest)即即全局最优解
% N初始化群体个体数目
% c1学习因子1
% c2学习因子2
% w惯性权重
% M最大迭代次数
% D搜索空间维数
function [xm,fv] = PSO_nature(fitness,N,c1,c2,w,M,D)
format long;
%%%%%%%%%%%%初始化种群的个体%%%%%%%%%%%%%%%%%%%%%%%%
for i=1:N
for j=1:D
x(i,j)=randn; %初始化位置
v(i,j)=randn; %初始化速度
end
end
%%