function [T,result,bestpop]=PSOfun(fg)
%%
%计算P
P=imhist(fg);
Pt=cumsum(P);
P=P/Pt(end);
e=0.1*10^(-3);
index=P==0;
P(index)=e;
Pt=cumsum(P);
%%
c1=1.5;
c2=1.5;
maxgen=300;
popSize=20;
popmax=255;
popmin=0;
Vmax=50;
Vmin=-50;
%%
pop=round(255*rand(popSize,1));
V=zeros(popSize,1);
fitness=FitFun(pop,P,Pt);
result=zeros(maxgen,1);
bestPop=ones(maxgen,1);
%%
%初始化
[bestFitness bestIndex]=max(fitness);
zbest=pop(bestIndex);
gbest=pop;
fitnessgbest=fitness;
fitnesszbest=bestFitness;
index=1;
load maydata.mat
for ii=1:maxgen
V=(V)*0.7+c1*rand(popSize,1).*(pop-gbest)+c2*randn(popSize,1).*(pop-zbest);
V(V>Vmax)=Vmax;
V(V<Vmin)=Vmin;
pop=pop+0.7*V;
pop(pop>popmax)=255*rand();
pop(pop<popmin)=255*rand();
fitness=FitFun(pop,P,Pt);
%
for j=1:popSize
if fitness(j)>fitnessgbest(j)
gbest(j,:)=pop(j,:);
fitnessgbest(j)=fitness(j);
end
if fitness(j)>fitnesszbest
zbest(:,1)=pop(j,1);
fitnesszbest=fitness(j);
index=j;
bestpop = [bestpop pop(index)];
end
end
result(ii)=fitnesszbest;
bestPop(ii)=pop(index);
% if i>1
% line([i-1,i],[result(i-1),result(i)]);
% end
end
% bestFitness=FitFun(bestPop);
T=bestPop(end);
% Best=bestPop;
%%
% figure(1),hold on
% plot3(pop(:,1),pop(:,2),fitness,'o')
% legend('Surface of the function','Initial solve','Final solve',0)
% plot3(bestPop(:,1),bestPop(:,2),result,'o')
% X1=ones(size(pop(:,2)))*pop(:,1)';
% Y1=pop(:,2)*ones(size(pop(:,1)'));
% z1=sin(sqrt(X1.^2+Y1.^2))./sqrt(X1.^2+Y1.^2)+exp((cos(2*pi*X1)+cos(2*pi*Y1))./2)-2.71289;
%
基于粒子群算法优化遥感图像阈值分割(代码完整,数据齐全)
版权申诉
48 浏览量
2023-08-14
20:57:58
上传
评论 2
收藏 440KB RAR 举报
神经网络机器学习智能算法画图绘图
- 粉丝: 2471
- 资源: 603
最新资源
- Libraries-Comm-Controller
- 豆瓣电影爬虫 爬取top电影的评论 + 每个用户的看过的电影的评论 用于推荐系统的 协同过滤+源代码+文档说明
- 交互设计课程竞品分析内容案例设计
- c07c4b30caf2ab290c3f2eea8339b34b.mp4
- emqx服务器搭建文件
- Libraries-Comm-Controller-DOC-V2-0-1-en.pdf
- update9-20240601.5.205.slice.img.7z.003
- 9f9ae03ea06c5c991afa26c5813d8831.amr
- 计算机等级考试Python二级真题.zip
- 爱普生L301清零程序
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈