%清空运行环境
clear all;
clc;
%更新参数
c1=1.49445;
c2=1.49445;
maxgen=300; %迭代次数
sizepop=20; %种群规模
%个体和速度最大最小值
popmax=2;popmin=-2;
Vmax=0.5;Vmin=-0.5;
%-----种群初始化
for i=1:sizepop
%随机产生一个种群
pop(i,:)=2*rands(1,2); %初始化粒子
V(i,:)=0.5*rands(1,2);
%计算粒子适应度值
fitness(i)=fun(pop(i,:));
end
%-----寻找初始极值--------
[bestfitness bestindex]=min(fitness);
zbest=pop(bestindex,:); %群体极值位置
gbest=pop; %个体极值位置
fitnessgbest=fitness; %个体极值适应度值
fitnesszbest=bestfitness; %群体极值适应度值
%-----迭代寻优
for i=1:maxgen
for j=1:sizepop
V(j,:)=V(j,:)+c1*rand*(gbest(j,:)-pop(j,:))+c2*rand*(zbest-pop(j,:));
V(j,find(V(j,:)>Vmax))=Vmax;
V(j,find(V(j,:)<Vmin))=Vmin;
pop(j,:)=pop(j,:)+0.5*V(j,:);
pop(j,find(pop(j,:)>popmax))=popmax;
pop(j,find(pop(j,:)<popmin))=popmin;
fitness(j)=fun(pop(j,:));
end
for j=1:sizepop
if fitness(j)>fitnessgbest(j)
gbest(j,:)=pop(j,:);
fitnessgbest(j)=fitness(j);
end
if fitness(j)>fitnesszbest
zbest=pop(j,:);
fitnesszbest=fitness(j);
end
end
result(i)=fitnesszbest;
end
%画出每次迭代最优个体适应度值
plot(result);
title('最优个体适应度值','fontsize',12);
xlabel('迭代次数','fontsize',12);
ylabel('适应度值','fontsize',12);
pso.rar_粒子群 最大
版权申诉
18 浏览量
2022-09-20
22:15:38
上传
评论
收藏 948B RAR 举报
JaniceLu
- 粉丝: 79
- 资源: 1万+
最新资源
- chromedriver-linux64.zip 是一个用于在 Linux 系统上运行 Chrome 浏览器的驱动程序
- 基于Python和PyTorch框架完成的一个手写数字识别实验源码(带MINIST手写数字数据集)+详细注释(高分项目)
- 基于Matlab在MNIST数据集上利用CNN完成手写体数字识别任务,并实现单层CNN反向传播算法+源代码+文档说明(高分项目)
- NVIDIA驱动、CUDA和Pytorch及其依赖
- html动态爱心代码一(附源码)
- c40539bc-071a-486c-9d52-9d0c18d62dac 4.html
- 基于物理的非视域成像(NLOS)算法,利用了nerf+python源码+文档说明
- yuluer知更鸟.7z(1).001
- python课程设计-基于tensorflow实现的图文生成程序,数据集flickr30k-images+源代码+文档说明+截图
- python作业-基于Flickr30k数据集实现图像文本跨模态搜索python源码+数据集+测试界面+项目说明(高分课程设计)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈