gusucode.com > 《遗传算法工具箱及应用》的源代码 > 《遗传算法工具箱及应用》的源代码/gatbx/gatbx-example/gatbx/yj8.m
%定义遗传算法参数 Dim=20; %变量维数 NIND=20; %个体数目(Number of individuals) Preci=20; %变量的二进制位数(Precision of variables) MAXGEN=100; %最大遗传代数(Maximum number of generations) GGAP=0.8; %代沟(Generation gap) SEL_F='sus'; %选择函数名 XOV_F='xovsp'; %重组函数名 MUT_F='mut'; %变异函数名 OBJ_F='objdopi'; %目标函数名 FieldDR=feval(OBJ_F,[],1); %计算目标函数值 %建立区域描述器(Build field descriptor) FieldDD=[rep([Preci],[1,Dim]);FieldDR;rep([1;0;1;1],[1,Dim])]; Chrom=crtbp(NIND, Dim*Preci); %创建初始种群 gen=0; Best=NaN*ones(MAXGEN,1); %最优解初值 while gen<MAXGEN %最大循环次数 ObjV=feval(OBJ_F,bs2rv(Chrom,FieldDD)); %计算目标函数值 Best(gen+1)=min(ObjV); %最优解 plot(log10(Best),'bo'); FitnV=ranking(ObjV); %分配适应度值(Assign fitness values) SelCh=select(SEL_F,Chrom,FitnV,GGAP); %选择 SelCh=recombin(XOV_F,SelCh); %重组 SelCh=mutate(MUT_F,SelCh); %变异 Chrom=reins(Chrom,SelCh); %重插入 gen=gen+1; end grid; xlabel('迭代次数');ylabel('目标函数值(取对数)');