1 模型
2 部分代码
function [xm,fv] = SAPSO(fitness,N,c1,c2,wmax,wmin,M,D)
format long;
%------初始化种群的个体------------
for i=1:N
for j=1:D
x(i,j)=randn; %随机初始化位置
v(i,j)=randn; %随机初始化速度
end
end
%------先计算各个粒子的适应度----------------------
for i=1:N
p(i)=fitness(x(i,:));
y(i,:)=x(i,:);
end
pg=x(N,:); %Pg为全局最优
for i=1:(N-1)
if fitness(x(i,:))<fitness(pg)
pg=x(i,:);
end
end
%------进入主要循环------------
for t=1:M
for j=1:N
fv(j) = fitness(x(j,:));
end
fvag = sum(fv)/N;
fmin = min(fv);
for i=1:N
if fv(i) <= fvag
w = wmin + (fv(i)-fmin)*(wmax-wmin)/(fvag-fmin);
else
w = wmax;
end
v(i,:)=w*v(i,:)+c1*rand*(y(i,:)-x(i,:))+c2*rand*(pg-x(i,:));
x(i,:)=x(i,:)+v(i,:);
if fitness(x(i,:))<p(i)
p(i)=fitness(x(i,:));
y(i,:)=x(i,:);
end
if p(i)<fitness(pg)
pg=y(i,:);
end
end
end
xm = pg';
fv = fitness(pg);
5 结论
改进的PSO算法通过与模拟退火算法的结合,能够有效地调节全局搜索与局部搜索能力,不容易陷入局部最优,能得到更好的优化效果。粒子群算法与各种优化算法的结合近年来发展很快,但其数学基础比较薄弱,缺乏深刻且具有普遍意义的理论分析,这也是今后需要研究的一个重要方向[9]。
参考文献
[1] Kennedy J, Eberhart R C. Particle swarm optimization [A]. Proceedings of IEEE International Conference on Neural Networks [C]. Piscataway, NJ: IEEE Press, 1995.1942-1948.
[2] Eberhart R C, Kennedy J. A new optimizer using particle swarm theory [A]. Proceeding of the sixth International symposium on micromachine and human science[C]. Piscataway: IEEE Service Center, 1995. 39-43.
[3] 刘康,余玲.一种仿生优化算法-微粒群算法[J].四川轻化工学院学报, 2003, (3): 9-11.
[4] Eberhart R C, Simpson P K, Dobbins R W. Computational Intelligence PC Tools [M]. Boston, MA: Academic Press Professional, 1996.
[5] Shi Y, Eberhart R C. A modified particle swarm optimizer [A]. Proceedings of the IEEE Congress on Evolutionary Computation [C]. Piscataway, NJ: IEEE Press, 1998.303-308.
[6] Shi Y, Eberhart R C. Empirical study of particle swarm optimization [A]. Proceedings of the IEEE Congress on
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。