clc;
clear;
close all;
warning off;
addpath(genpath(pwd));
%遗传算法优化来训练RBF网络权值
%G为进化代数,Size为种群规模,CodeL为参数的二进制编码长度
G = 250;
Size = 30;
CodeL = 10;
%确定每个参数的最大最小值
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
%初始化种群
E = round(rand(Size,12*CodeL));
BsJ = 0;
%进化开始
for kg = 1:1:G
time(kg) = kg
for s = 1:1:Size
m = E(s,:); %取出其中个体
%把二进制表示的参数转化为实数
for j = 1:1:12
y(j) = 0;
mj = m((j-1)*CodeL + 1:1:j*CodeL);
for i = 1:1:CodeL
y(j) = y(j) + mj(i)*2^(i - 1);
end
f(s,j) = (MaxX(j) - MinX(j))*y(j)/1023 + MinX(j);
end
p = f(s,:);
[p,BsJ] = fitness(p,BsJ);
BsJi(s) = BsJ; %记录每个个体的总误差
end
%对误差排序,求出最好误差
[OderJi,IndexJi] = sort(BsJi);
BestJ(kg) = OderJi(1);
BJ = BestJ(kg);
Ji = BsJi + 1e-10;
%对误差取倒数,求出适应度值
fi = 1./Ji; %适应度值
[Oderfi,Indexfi] = sort(fi);
Bestfi = Oderfi(Size); %最佳适应度值
BestS = E(Indexfi(Size),:); %最佳个体
kg %进化次数
p %最佳个体
BJ %最佳个体的误差
%**************Step 2:选择操作**********************%
fi_sum = sum(fi);
fi_Size = (Oderfi/fi_sum)*Size;
fi_S = floor(fi_Size);
kk = 1;
for i = 1:1:Size
for j = 1:1:fi_S(i)
TempE(kk,:) = E(Indexfi(i),:);
kk = kk + 1;
end
end
%***************Step 3:交叉操作***********************************%
pc = 0.60;
n = ceil(20*rand);
for i = 1:2:(Size-1)
temp = rand;
if pc>temp
for j = n:1:20
TempE(i,j) = E(i+1,j);
TempE(i+1,j) = E(i,j);
end
end
end
TempE(Size,:) = BestS;
E = TempE;
%***************Step 4:变异操作**********************************%
pm = 0.001 - [1:1:Size]*(0.001)/Size;
for i = 1:1:Size
for j = 1:1:12*CodeL
temp = rand;
if pm>temp
if TempE(i,j) == 0
TempE(i,j) = 1;
else
TempE(i,j) = 0;
end
end
end
end
%把最佳个体赋于种群中
TempE(Size,:) = BestS;
E = TempE;
end
Bestfi
BestS
fi
Best_J = BestJ(G)
figure(1)
plot(time,BestJ);
title('遗传算法优化RBF网络权值中最小误差进化过程')
xlabel('进化次数');
ylabel('最小误差');
save pfile p;
基于GA遗传算法优化RBF神经网络进行数据预测matlab仿真+代码操作视频
版权申诉
5星 · 超过95%的资源 2 浏览量
2022-06-02
00:29:16
上传
评论 24
收藏 565KB RAR 举报
fpga和matlab
- 粉丝: 15w+
- 资源: 2548
最新资源
- C语言基础-C语言编程基础之Leetcode编程题解之第39题组合总和.zip
- C语言基础-C语言编程基础之Leetcode编程题解之第38题外观数列.zip
- C语言基础-C语言编程基础之Leetcode编程题解之第37题解数独.zip
- C语言基础-C语言编程基础之Leetcode编程题解之第36题有效的数独.zip
- C语言基础-C语言编程基础之Leetcode编程题解之第35题搜索插入位置.zip
- index.wxml
- C语言基础-C语言编程基础之Leetcode编程题解之第33题搜索旋转排序数组.zip
- 基于Python实现的手写数字识别系统源码.zip
- 从网页提取禁止转载的文字
- C语言基础-C语言编程基础之Leetcode编程题解之第32题最长有效括号.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
- 3
- 4
前往页