?? mainprog.m
字號:
%遺傳算法主程序
% 遺傳算法實(shí)現(xiàn)特征選擇,對初始特征進(jìn)行選擇
%Name:mainprog.m
clear;
%矩陣準(zhǔn)備,準(zhǔn)備各類成分基于各種特征下的值的矩陣形式
% M_red;
% M_white;
% M_shangpi;
% M_cast;
%矩陣準(zhǔn)備結(jié)束%%%%%%%%%%%%%%%%%%%%%%%%%%%
tic; %用于記錄運(yùn)行時(shí)間
%參數(shù)設(shè)置
popsize=20; %設(shè)置初始參數(shù),群體大小
chromlength=5; %字符串長度(個(gè)體長度),染色體長度
pc=0.6; %設(shè)置交叉概率
pm=0.6; %設(shè)置變異概率
%參數(shù)設(shè)置結(jié)束
pop=initpop(popsize,chromlength); %運(yùn)行初始化函數(shù),隨機(jī)產(chǎn)生初始群體
dai=200;
%給最佳染色體及其適應(yīng)度值賦初值%
% [xx,yy]=size(M1);
pop_best=zeros(1,chromlength);
value_best=0;
%結(jié)束
aaa=zeros(1,200); %存放每一代中最好的種群所對應(yīng)的適應(yīng)度值
t=1; %計(jì)數(shù)器
for i=1:dai%200為迭代次數(shù)
fitvalue=calfitvalue(pop); %計(jì)算群體中每個(gè)個(gè)體的適應(yīng)度
[newpop]=selection(pop,fitvalue); %復(fù)制
[newpop]=crossover(newpop,pc); %交叉
[newpop]=mutation(newpop,pm);%變異
[bestindividual,bestfit]=best(pop,fitvalue);%求出群體中適應(yīng)值最大的個(gè)體及其適應(yīng)值
aaa(1,t)=bestfit; %存放每一代中最好的種群所對應(yīng)的適應(yīng)度值
t=t+1;
if bestfit>value_best %保存數(shù)代遺傳之后最好的種群
value_best=bestfit;
pop_best=bestindividual;
end
pop_temp=bestindividual;
value_temp=bestfit;
pop=newpop;
end
pop_best
value_best
%用于記錄運(yùn)行時(shí)間
toc;
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -