function [] = extremum_of_function_3()
%% 用离散粒子群优化算法解决函数极值问题
%% 初始化
clear all; %清除所有变量
close all; %清图
clc; %清屏
N=100; %群体粒子个数
D=20; %粒子维数
T=200; %最大迭代次数
c1=1.5; %学习因子1
c2=1.5; %学习因子2
Wmax=0.8; %惯性权重最大值
Wmin=0.4; %惯性权重最小值
Xs=9; %位置最大值
Xx=0; %位置最小值
Vmax=10; %速度最大值
Vmin=-10; %速度最小值
% 初始化种群个体
x = rand(N,D); %随机获得二进制编码的初始种群
v=rand(N,D)*(Vmax-Vmin)+Vmin;
% 初始化个体最优位置和最优值
p=x;
pbest=ones(N,1);
for i=1:N
pbest(i)=func3(x(i,:),Xs,Xx);
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 (func3(x(j,:),Xs,Xx) < pbest(j))
p(j,:)=x(j,:);
pbest(j)=func3(x(j,:),Xs,Xx);
end
% 更新全局最优位置和最优值
if (pbest(j) < gbest)
g=p(j,:);
gbest=pbest(j);
end
% 计算动态惯性权重值
w=Wmax-(Wmax-Wmin)*i/T;
% 更新速度和位置
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)
while (v(j,ii)>Vmax | v(j,ii) < Vmin)
v(j,ii) = rand * (Vmax-Vmin)+Vmin;
end
end
vx(j,:)=1./(1+exp(-v(j,:)));
for jj=1:D
%if (x(j,ii)>Xmax | x(j,ii) < Xmin)
%while (x(j,ii)>Xmax | x(j,ii) < Xmin)
% x(j,ii) = rand * (Xmax-Xmin)+Xmin;
%end
if vx(j,jj) > rand
x(j,jj) = 1;
else
x(j,jj) = 0;
end
end
end %for j
% 记录历代全局最优值
gb(i) = gbest;
end %for i
disp('最优个体');
g %最优个体
disp('最优的目标函数值');
m = 0;
for j=1:D
m=g(j)*2^(j-1)+m;
end
f1 = Xx+m*(Xs-Xx)/(2^D-1);
f1
gb(end) %最优的目标函数值
figure
plot(gb,'LineWidth',4);
xlabel('迭代次数','fontsize',18);
ylabel('目标函数值','fontsize',18);
title('适应度进化曲线','fontsize',28);
PSO程序.rar_PSO_clockow5_改进PSO_改进的_粒子群
版权申诉
169 浏览量
2022-09-20
11:04:42
上传
评论
收藏 3KB RAR 举报
alvarocfc
- 粉丝: 105
- 资源: 1万+
最新资源
- Screenshot_20240430_144340_com.ss.android.ugc.live.jpg
- 回到山沟沟.mp3
- 基于matlab实现自适应波束形成RLS及LMS算法仿真源程序1.rar
- 基于matlab实现自己编写的基于卡尔曼滤波的利用加速度传感器的计步器,测试数据是传感器放在腰部和手臂 .rar
- 基于matlab实现阵列信号处理,波束形成.rar
- 111111111111111111
- 基于matlab实现计步器编程;对当前的计步器装置的数值算法模拟 .rar
- Mdb学习查看PW;access;mdb;pw;password;patch
- 基于matlab实现关于语音信号声源定位DOA估计所用的一些传统算法.rar
- 基于ultralytics-yolov8, 将其检测/分类/分割/姿态等任务移植到rk3588上
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈