📄 integerpso.m
字号:
% 整数PSO====2005.7.5
clear;
clc;
% 参数给定
xmax=100;
xmin=-100;
vmax=2;
vmin=-2;
popsize=20;
dimsize=5;
% w=0.8;
wmax=1.2;
wmin=0.2;
c1=2;
c2=2;
itermax=2000;
% 初始化群体x
x=round((0.5-rand(popsize,dimsize))*(xmax-xmin));
vid=(vmax-vmin)*rand(popsize,dimsize);
% [y]=intefun(x); %计算popsize个初始微粒的fitness
[y]=intefun1(x,popsize);
pbestx=x; % 初始个体经历过的最优点位置
pbesty=y; % 初始个体经历过的最优位置的fitness
for i=1:popsize
if y(i)==min(y)
gbestx=x(i,:);
gbesty=min(y);
end
end
%主循环
for iter=1:itermax
w=wmax-iter*(wmax-wmin)/itermax;
[x]=adaptintx(w,c1,c2,popsize,dimsize,x,vid,vmax,vmin,xmax,xmin,pbestx,gbestx);
% [y]=intefun(x);
[y]=intefun1(x,popsize);
[pbestx,pbesty,gbestx,gbesty]=adaptbest3(popsize,x,y,pbestx,pbesty,gbestx,gbesty); % 更新当前个体最优和群体最优
end
x
gbestx
gbesty
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -