clear all
close all
%G为迭代次数,n为个体长度(包括12个参数),m为总群规模
%w,c1,c2为粒子群算法中的参数
G =250;
n = 12;
m = 20;
w = 0.1;
c1 = 2;
c2 = 2;
for i = 1:3
MinX(i) = 0.1*ones(1);
MaxX(i) = 3*ones(1);
end
for i = 4:1:9
MinX(i) = -3*ones(1);
MaxX(i) = 3*ones(1);
end
for i = 10:1:12
MinX(i) = -ones(1);
MaxX(i) = ones(1);
end
pop = rands(m,n);
for i = 1:m
for j = 1:3
if pop(i,j) < MinX(j)
pop(i,j) = MinX(j);
end
if pop(i,j) > MaxX(j)
pop(i,j) = MaxX(j);
end
end
for j = 4:9
if pop(i,j) < MinX(j)
pop(i,j) = MinX(j);
end
if pop(i,j) > MaxX(j)
pop(i,j) = MaxX(j);
end
end
for j = 10:12
if pop(i,j) < MinX(j)
pop(i,j) = MinX(j);
end
if pop(i,j) > MaxX(j)
pop(i,j) = MaxX(j);
end
end
end
V = 0.1*rands(m,n);
BsJ = 0;
%根据初始化的种群计算个体好坏,找出群体最优和个体最优
for s = 1:m
indivi = pop(s,:);
[indivi,BsJ] = chap10_3b(indivi,BsJ);
Error(s) = BsJ;
end
[OderEr,IndexEr] = sort(Error);
Error;
Errorleast = OderEr(1);
for i = 1:m
if Errorleast == Error(i)
gbest = pop(i,:);
break;
end
end
ibest = pop;
for kg = 1:G
kg
for s = 1:m;
%个体有4%的变异概率
for j = 1:n
for i = 1:m
if rand(1)<0.04
pop(i,j) = rands(1);
end
end
end
%r1,r2为粒子群算法参数
r1 = rand(1);
r2 = rand(1);
%个体和速度更新
V(s,:) = w*V(s,:) + c1*r1*(ibest(s,:)-pop(s,:)) + c2*r2*(gbest-pop(s,:));
pop(s,:) = pop(s,:) + 0.3*V(s,:);
for j = 1:3
if pop(s,j) < MinX(j)
pop(s,j) = MinX(j);
end
if pop(s,j) > MaxX(j)
pop(s,j) = MaxX(j);
end
end
for j = 4:9
if pop(s,j) < MinX(j)
pop(s,j) = MinX(j);
end
if pop(s,j) > MaxX(j)
pop(s,j) = MaxX(j);
end
end
for j = 10:12
if pop(s,j) < MinX(j)
pop(s,j) = MinX(j);
end
if pop(s,j) > MaxX(j)
pop(s,j) = MaxX(j);
end
end
%求更新后的每个个体适应度值
[pop(s,:),BsJ] = chap10_3b(pop(s,:),BsJ);
error(s) = BsJ;
%根据适应度值对个体最优和群体最优进行更新
if error(s)<Error(s)
ibest(s,:) = pop(s,:);
Error(s) = error(s);
end
if error(s)<Errorleast
gbest = pop(s,:);
Errorleast = error(s);
end
end
Best(kg) = Errorleast;
end
plot(Best);
save pfile1 gbest;
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
粒子群算法(Particle Swarm Optimization,PSO)是一种启发式优化算法,通常用于求解连续优化问题。在优化 RBF(Radial Basis Function)神经网络的参数时,可以采用粒子群算法来搜索参数空间以最小化模型的目标函数(例如均方误差)。 下面是使用粒子群算法优化 RBF 网络的一般步骤: 定义目标函数: 将 RBF 网络的参数作为目标函数的输入,目标函数的输出为模型的性能度量,例如均方误差。 初始化粒子群: 随机生成一群粒子,每个粒子表示 RBF 网络的一组参数。每个粒子都有一个与之相关的速度,用于指导下一步的搜索。 评估粒子群: 计算每个粒子对应的目标函数值,即 RBF 网络在当前参数设置下的性能。 更新粒子位置和速度: 根据粒子群的历史最优位置和全局最优位置,更新每个粒子的位置和速度。这一步是 PSO 算法的核心。 终止条件: 检查是否满足终止条件,例如达到最大迭代次数或目标函数值足够小。 返回最优参数: 返回找到的最优参数,即具有最小目标函数值的 RBF 网络参数。
资源推荐
资源详情
资源评论
收起资源包目录
35.粒子群算法优化RBF网络.zip (4个子文件)
35.粒子群算法优化RBF网络
chap10_3b.m 1KB
PSO.m 3KB
pfile1.mat 270B
chap10_3c.m 1KB
共 4 条
- 1
资源评论
AIDog
- 粉丝: 823
- 资源: 33
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功