资源简介
依据 IEEE TEC2006 Comprehensive Learning Particle Swarm Optimizer
for Global Optimization of Multimodal Functions 论文改写,其中有详细中文注释,可直接运行。
从网上之前找了很多有关CLPSO的但是感觉有些部分和这篇论文对不上,于是就自己综合了一下编写了这个
代码片段和文件信息
clc;clear;close;
tic
%% 初始化参数
rand(‘state‘sum(100*clock));%确定随机数流
ps = 10;%种群个数大小
dimension = 10;%粒子维数
iter_max = 3000;%最大迭代数
w0=0.9;w1=0.4;
c=1.49445; %加速常数
v_min = -4;v_max = 4;%粒子速度上下限
V = v_min + (v_max - v_min)*rand(ps dimension);%粒子速度
xmin=-5.12;xmax=5.12;%粒子位置的上下限值
mask_min = repmat(xmin 1 dimension);
mask_max = repmat(xmax 1 dimension);
X = rand(ps dimension);%粒子初始化位置
for i = 1 : dimension
X(: i) = repmat(xmin ps 1) + (xmax - xmin)*X(: i);
end
flag = zeros(ps1);%粒子停止改进代数标记
m=5;%刷新间隔
%% 计算适应度值,初始化pbest,gbest
fhd=str2func(‘@(x)sum(x.^2-10.*cos(2.*pi.*x)+102)‘);%定义函数句柄
for i=1:ps
e(i1)=feval(fhdX(i:));%计算每个粒子适应度值
end
%% 初始化pbest和gbest
pbest=X;%初始化位置作为pbest
pbestval=e; %初始化粒子pbest和pbest的适应度值
[gbestvalgbestid]=min(pbestval);%求出适应值最小的粒子索引,得到gbest适应度值
gbest=pbest(gbestid:);%初始化gebst,将具有最小适应值的粒子的pbest作为gbest
%% Pc学习率
t=0:1/(ps-1):1;
t=5.*t;
Pc=0.0+(0.5-0.0).*(exp(t)-exp(t(1)))./(exp(t(ps))-exp(t(1)));%每个粒子的学习可能性
ai=zeros(psdimension);
f_pbest=1:ps;%单独一个粒子
f_pbest=repmat(f_pbest‘1dimension);%每个粒子每个维数需要学习的粒子索引数,初始化为每个粒子每一维从自身学习,行数代表粒子数列数是维数
%% 计算准熵
pbestval_history=pbestval;%将第一次初始化的pbest适应度值保存
P(:1)=pbestval_history(:1)./sum(pbestval_history(:1));%计算第一次迭代的Pti
QE(:1)=-sum(P(:1).*log(P(:1)));%计算初始准熵
%% CLPSO开始
for iter=1:iter_max
w(iter)=w0-iter*(w0-w1)/iter_max;%更新惯性权重
for i=1:ps%每个粒子进行迭代
num=(iter-1)*10+i;%总循环次数
%% 粒子从其他粒子学习的锦标赛选择过程
if flag(i)>=m %当连续没有改进一定代数
flag(i)=0;
for d=1:dimension%粒子每一维迭代
r = rand;%生成随机数
if r < Pc(i)
a=randperm(ps);
相关资源
- 生成节点导纳矩阵matlab
- 三相逆变器MATLAB仿真
- MATLAB雅克比迭代法Jacobi method和高斯
- 机器人控制系统设计与MATLAB仿真:基
- 基于Matlab的图像RGB和HIS互换
- 图像清晰度评价指标_Matlab
- MATLAB 画圆柱体
- nc文件的读取作图
- MATLAB JPEG图像压缩
- matlab图像融合程序
- 导线网平差matlab程序
- ID3算法MATLAB实现,机器学习作业
- 基于颜色的matlab代码
- 图像分类模式识别算法源代码
- MATLAB直方图绘制代码
- matlab 一维传热问题
- matlab实现小波变换融合以及信息熵、
- 小波变换matlab
- matlab编写的地震剖面显示程序
- FMCW毫米波雷达测量呼吸心跳算法mat
- kld采样
- 以高斯塞德尔法和牛顿拉夫逊法为思
- 切比雪夫轨道拟合MATLAB代码
- matlab三维点坐标生成点云
- 改进灰色马尔科夫模型估测湖北省用
- 带时间窗的车辆路径规划问题的粒子
- 步长加速法寻优迭代
- Matlab GUI图像图形基础教程
- 人眼检测、疲劳驾驶检测,MATLAB代码
- 小波神经网络MAtlab工具箱
评论
共有 条评论