📄 main.m
字号:
clear('all');
clc;
[t_x,t_y,te_x,te_y]=rosen;
%获得样本
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%第一次进化
pro4=zeros(1,500);
m=50;
G=100;
init=zeros(22,4,100);
init(:,1,:)=round(rand(22,1,100));
init(:,2:3,:)=-1+2*rand(22,2,100);
init(:,4,:)=1+4*rand(22,1,100);
vault=rand(m,size(t_x,1)+1);
[nvault,pro4,result4]=hia(init,t_x,t_y,vault,G);
vault=nvault;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
save('matlabhia1.mat','pro4','result4','t_x','t_y','te_x','te_y','vault');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear('all');
clc;
load('matlabhia1.mat');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
count=find_error(result4,t_x,t_y,0.15);
%找出需要逼近的样本
temp_x=t_x;
temp_y=t_y;
temp_x(:,count)=[];
temp_y(:,count)=[];
%删除这些样本形成新的样本集
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
init=zeros(22,4,100);
init(:,1,:)=round(rand(22,1,100));
init(:,2:3,:)=-2+4*rand(22,2,100);
init(:,4,:)=1+7*rand(22,1,100);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%依据新形成的样本重新进化
G=500;
[nvault,pro3,result3]=hia(init,temp_x,temp_y,vault,G);
vault=nvault;
save('matlabhia2.mat','pro3','result3','t_x','t_y','te_x','te_y','count','vault');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear('all');
load('matlabhia2.mat');
load('matlabhia1.mat');
clc;
XX=t_x(:,count);
[IDX,C]=kmeans(XX',8);
%对需要细拟合的样本作重新逼近
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
init=zeros(30,4,50);
init(:,1,:)=1;
init(1:22,:,1)=result3;
init(23:30,2:3,1)=C;
init(23:30,4,1)=1+2*rand(8,1,1);
for i=2:10
init(:,2:4,i)=init(:,2:4,1)+2*rand(30,3,1);
end
init(:,2:3,11:50)=-2+4*rand(30,2,40);
init(:,4,11:50)=1+7*rand(30,1,40);
%重新生成种群
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%第三次进化获得最终结果
G=500;
%vault=rand(50,size(t_x,1)+1);
[nvault,pro2,result2]=hia(init,t_x,t_y,vault,G);
vault=nvault;
save('matlabhia31.mat','pro2','result2','t_x','t_y','te_x','te_y','vault');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -