资源简介
有约束的基于适应度和连续世代策略的混沌自适应粒子群算法,利用混沌系统产生混沌粒子群,利用混合自适应策略调节每个粒子的惯性因子和种群规模,利用惩罚函数法去处理约束条件,融合多种改进方案,实现了收敛速度和收敛精度的良好均衡。
代码片段和文件信息
function [gbestxmfvMWn]=yueshu_APSO_FCG_norm(testNc1c2MwmaxwminxmaxxminymaxyminNmaxNmin)
%有约束的基于适应度和连续世代策略的自适应粒子群算法:调节w、N初始化为范围内随机
%test函数为增广目标函数
%停止条件为:最大迭代次数和连续9次最优适应度没有更新
%全局最优增广适应度:gbest
%目标函数的最小值的自变量值:xm
%目标函数的最小值:fv
%最大迭代次数:M
%粒子数目动态轨迹:n
%test增广适应度函数
%粒子数目初始值:N
%学习因子1:c1
%学习因子2:c2
%最大权重:wmax
%最小权重:wmin
%优化变量范围:wmax、wmin、ymaxymin
format long;
%% 在粒子范围内随机初始化
x1=10*rand(N1);
x2=10*rand(N1);
x=[x1x2];
v=rand(N2);
W=zeros(MN);%存放惯性因子,方便绘图
n=zeros(M1);%存放种群规模
gbest=zeros(1M);%预定义全局最优适应度
%% 求解有约束的初始化粒子的历史最优适应度和位置
for i=1:N
f(i)=test(x(i:)0xmaxxminymaxymin);%求解增广适应度
p(i:)=x(i:);%历史最优
end
%比较适应度
pg=x(N:); %pg为全局最优
a=N;
for i=1:(N-1)
if f(i) pg=x(i:);
v1=v(i:);%存放历史最优位置的速度
a=i;
end
end
%% 粒子群算法更新
for t=1:M
n(t)=N;
for j=1:N
fv(j)=test(x(j:)txmaxxminymaxymin); %计算增广目标函数
end
%% 自适应惯性因子
fvag=sum(fv)/N; %适应度平均值
fmin=min(fv); %适应度最小值
for i=1:N
if fv(i) w=wmin+(fv(i)-fmin)*(wmax-wmin)/(fvag-fmin);%减少w
else
w=wmax;%适应度差,增强全局
end
W(ti)=w;%惯性因子
%% 更新位置和速度
v(i:)=w*v(i:)+c1*rand*(p(i:)-x(i:))+c2*rand*(pg-x(i:));
x(i:)=x(i:)+v(i:);
%% 更新有约束的历史最优和全局最优
if test(x(i:)txmaxxminymaxymin) f(i)=test(x(i:)txmaxxminymaxymin);%历史最优适应度
p(i:)=x(i:);%历史最优位置
a=i;
end
if f(i) pg=p(i:);
v1=v(i:);%全局最优位置的速度
end
end
gbest(t)=test(pgtxmaxxminymaxymin);%全局最优适应度
%% 连续世代调整种群规模
if t>=4 %更新4代及其以上时候使用连续世代策略(因为设定连续三代,所以从第四代开始统计
if gbest(t)==gbest(t-1)&&gbest(t)
相关资源
- 机器人焊接轨迹规划matlab仿真程序
- 同步电机模型的MATLAB仿真-毕业设计论
- 通信原理matlab最全仿真,曹丽娜,樊
- 《信息隐藏技术实验教程》MATLAB源码
- libsvm数据格式转换程序
- matlab实现单纯形法
- 基于卡尔曼滤波的三种经典室内定位
- emd和eemd算法的matlab源程序
- 基于MATLAB GUI的多功能计算器
- 用MATLAB做的基于霍夫曼编码的图像压
- 互信息 matlab
- 使用matlab实现ICP点云匹配
- 找出两点间所有最短路径
- MATLAB 夜间车牌识别
- matlab使用有限元方法求解偏微分方程
- matlab纹理特征提取源代码
- 中央大学 EMD HHT Matlab 源代码
- 方崇智《过程辨识》一书中各种辨识
- 求取图像的平均梯度---matlab ---M文件
- matlab潮流程序牛顿拉夫逊+PQ分解法有
- MATLAB 4f光学系统仿真
- 基于肤色模型的人脸检测MATLAB代码
- 自动寻峰算法matlab源文件
- matlab时间序列分析工具程序
- 灰色预测模型及Matlab实现附参考论文
- MSE+ 一对一多类技术的matlab实现
- MIMO-OFDM无线通信技术及MATLAB实现
- MEEM视觉跟踪matlab代码
- MATLAB神经网络43个案例分析源代码
- 数字滤波器的MATLAB与FPGA实现——杜勇
评论
共有 条评论