⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainprog_compare_40.m

📁 两种改进的遗传算法(自适应交叉概率的遗传算法
💻 M
字号:
%两种遗传算法:AGA和LAGA比较主程序
% 对40个特征的数据,比较 AGA 与 LAGA 的特征选择结果
%Name:mainprog_compare_40.m
clear;
close all;
%矩阵准备,准备各类成分基于各种特征下的值的矩阵形式
M_red=load('wave0.txt');
M_white=load('wave1.txt');

%归一化处理 
M_red=M_red(1:1000,1:40);
M_white=M_white(1:1000,1:40);  
[x_red,y_red]=size(M_red);
[x_white,y_white]=size(M_white);

%将红细胞和白细胞样本矩阵组合在一起,并且统一进行归一化,然后,再分拆回去
M_total=zeros((x_white+x_red),y_red);  
for i=1:x_red  
    M_total(i,:)=M_red(i,:);    
end
for i=1:x_white       
    M_total((i+x_red),:)=M_white(i,:); 
end
%M_total
[x_total,y_total]=size(M_total);
for j=1:y_total  
    for i=1:x_total      
        M_total(i,j)=(M_total(i,j)-min(M_total(:,j)))/(max(M_total(:,j))-min(M_total(:,j)));    
    end
end
% M_total
for i=1:x_red   
    M_red(i,:)=M_total(i,:);
end
for i=1:x_white
    M_white(i,:)=M_total((i+x_red),:);
end
%将红细胞和白细胞样本矩阵组合在一起,并且统一进行归一化,然后,再分拆回去,结束!!!!!!!!!
%矩阵准备结束%%%%%%%%%%%%%%%%%%%%%%%%%%%
[x_length,y_length]=size(M_red);
popsize=30; %设置初始参数,群体大小
chromlength=y_length; %字符串长度(个体长度),染色体长度
pop=initpop(popsize,chromlength); %运行初始化函数,随机产生AGA 和 LAGA 共同的初始种群

[pop_best1,error1,i1,bestfit_temp1]=adapt_pc(M_red,M_white,pop);  %调用AGA,进行特征选择,i1为算法退出时的代数,i1-9 就是第一次达到最优适应值的代数
[pop_best1_chain,error2,i2,bestfit_temp1_chain]=chain(M_red,M_white,pop); %调用LAGA进行特征选择,i2为算法退出时的代数,i2-9 就是第一次达到最优适应值的代数

%两种算法的最优适应值随代数增长的比较图
plot(1:i1,bestfit_temp1,'b'),title('bestfit_ temp1');
gtext('adapt_ pc')
hold on;
plot(1:i2,bestfit_temp1_chain,'r'),title('bestfit_ temp1');
gtext('add_ chain')
xlabel('generation')
ylabel('fitvalue')











⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -