资源简介
有约束的基于适应度和连续世代策略的混沌自适应粒子群算法,利用混沌系统产生混沌粒子群,利用混合自适应策略调节每个粒子的惯性因子和种群规模,利用惩罚函数法去处理约束条件,融合多种改进方案,实现了收敛速度和收敛精度的良好均衡。
代码片段和文件信息
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小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
- k近邻算法matlab实现
- matlab识别系统
- 神经网络分类matlab程序
评论
共有 条评论