【粒子群算法】基于粒子群算法求解函数极值问题含Matlab源码
【粒子群算法】基于粒子群算法求解函数极值问题含Matlab源码
TT_Matlab
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,完整matlab代码或者程序定制加qq1575304183。
1 简介
2 完整代码
%%%
%%%
%%%
%%%
%%%
%%粒子群算法求函数极值%
%%%
%%%
%%%
%%%
%%%
%%%
%%%
%%%
%
%%%
%%%
%%%
%%%
%%%
%%%
%%%
%%%
初始化
%%%
%%%
%%%
%%%
%%%
%%%
%%%
%%%
%%%
%%%
%%%
clear all; %清除所有变量
close all; %清图
clc; %清屏
N=
100
; %群体粒子个数
D=
10
; %粒子维数
T=
200
; %最大迭代次数
c1=
1.5
; %学习因子
1
c2=
1.5
; %学习因子
2
w=
0
.
8
; %惯性权重
Xmax=
20
; %位置最大值
Xmin=-
20
; %位置最小值
Vmax=
10
; %速度最大值
Vmin=-
10
; %速度最小值
%%%
%%%
%%%
%%%
%%%
%初始化种群个体(限定位置和速度)
%%%
%%%
%%%
%%%
%%%
%
x=rand(N,D) * (Xmax-Xmin)+Xmin;
v=rand(N,D) * (Vmax-Vmin)+Vmin;
%%%
%%%
%%%
%%%
%%%
%%%
初始化个体最优位置和最优值
%%%
%%%
%%%
%%%
%%%
%%%
%
p=x;
pbest=ones(N,
1
);
for
i=
1
:N
pbest(i)=func1(x(i,
:
));
end
%%%
%%%
%%%
%%%
%%%
%%%
%初始化全局最优位置和最优值
%%%
%%%
%%%
%%%
%%%
%%%
g=ones(
1
,D);
gbest=inf;
for
i=
1
:N
if
(pbest(i)<gbest)
g=p(i,
:
);
gbest=pbest(i);
end
end
gb=ones(
1
,T);
%%%
%%%
%%%
%%按照公式依次迭代直到满足精度或者迭代次数%
%%%
%%%
%%%
%%%
for
i=
1
:T
for
j=
1
:N
%%%
%%%
%%%
%%%
%%更新个体最优位置和最优值%
%%%
%%%
%%%
%%%
%%%
%
if
(func1(x(j,
:
))<pbest(j))
p(j,
:
)=x(j,
:
);
pbest(j)=func1(x(j,
:
));
end
%%%
%%%
%%%
%%%
%%%
%更新全局最优位置和最优值
%%%
%%%
%%%
%%%
%%%
if
(pbest(j)<gbest)
g=p(j,
:
);
gbest=pbest(j);
end
%%%
%%%
%%%
%%%
%%%
%%跟新位置和速度值%
%%%
%%%
%%%
%%%
%%%
%%%
%%
v(j,:)=w*v(j,:)+c1*rand*(p(j,:)-x(j,:))...
+c2*rand*(g-x(j,:));
x(j,:)=x(j,:)+v(j,:);
%
%%%
%%%
%%%
%%%
%%%
%%%
%边界条件处理
%%%
%%%
%%%
%%%
%%%
%%%
%%%
%
for
ii=
1
:D
if
(v(j,ii)>Vmax)
| (v(j,ii)< Vmin)
v(j,ii)=rand * (Vmax-Vmin)+Vmin;
end
if
(x(j,ii)>Xmax) |
(x(j,ii)< Xmin)
x(j,ii)=rand * (Xmax-Xmin)+Xmin;
end
end
end
%%%
%%%
%%%
%%%
%%%
%%%
%%记录历代全局最优值%
%%%
%%%
%%%
%%%
%%%
%%%
%%
gb(i)=gbest;
end
g; %
最优个体
gb(
end
); %最优值
figure
plot(gb)
xlabel(
’迭代次数’
);
ylabel(
’适应度值’
);
title(
’适应度进化曲线’
)
%%%
%%%
%%%
%%%
%%%
%%%
%适应度函数
%%%
%%%
%%%
%%%
%%%
%%%
%%
function result=func1(x)
summ=sum(x.^2);
result=summ;
3 运行结果
4 参考文献
[1]夏链等. "基于机器视觉的BGA芯片缺陷检测及其MATLAB实现." 合肥工业大学学报:自然科学版 32.11(2009):4.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
-
2023年血糖新标准公布,不是3.9-6.1,快来看看你的血糖正常吗? 2023-02-07
-
2023年各省最新电价一览!8省中午执行谷段电价! 2023-01-03
-
GB 55009-2021《燃气工程项目规范》(含条文说明),2022年1月1日起实施 2021-11-07
-
PPT导出高分辨率图片的四种方法 2022-09-22
-
2023年最新!国家电网27家省级电力公司负责人大盘点 2023-03-14
-
全国消防救援总队主官及简历(2023.2) 2023-02-10
-
盘点 l 中国石油大庆油田现任领导班子 2023-02-28
-
我们的前辈!历届全国工程勘察设计大师完整名单! 2022-11-18
-
关于某送变电公司“4·22”人身死亡事故的快报 2022-04-26
