?? main.m
字號:
%------給定初始化條件----------------------------------------------
c1=1.4962; %學習因子1
c2=1.4962; %學習因子2
w=0.7298; %慣性權重
MaxDT=100; %最大迭代次數
D=30; %搜索空間維數(未知數個數)
N=50; %初始化群體個體數目
eps=10^(-6); %設置精度(在已知最小值時候用)
%------初始化種群的個體(可以在這里限定位置和速度的范圍)------------
for i=1:N
for j=1:D
x(i,j)=randn; %隨機初始化位置
v(i,j)=randn; %隨機初始化速度
end
end
%------先計算各個粒子的適應度,并初始化Pi和Pg----------------------
for i=1:N
p(i)=fitness(x(i,:),D);
y(i,:)=x(i,:);
end
pg=x(1,:); %Pg為全局最優
for i=2:N
if fitness(x(i,:),D)<fitness(pg,D)
pg=x(i,:);
end
end
%------進入主要循環,按照公式依次迭代,直到滿足精度要求------------
for t=1:MaxDT
for i=1:N
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,:),D)<p(i)
p(i)=fitness(x(i,:),D);
y(i,:)=x(i,:);
end
if p(i)<fitness(pg,D)
pg=y(i,:);
end
end
Pbest(t)=fitness(pg,D);
end
%------最后給出計算結果
disp('*************************************************************')
disp('函數的全局最優位置為:')
Solution=pg'
disp('最后得到的優化極值為:')
Result=fitness(pg,D)
disp('*************************************************************')
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -