2、意偶数,染色体长度取不大于64的整数,交叉概率和变界概率的取值范围为[0,l]o输出数据包括每代最优个体码串、译码值、目标函数值以及用图形显示逐渐逼近最优解的过程。三、实验原理遗传算法模拟自然选择和自然遗传过程中发生的繁殖、交叉和基因突变现象,在每次迭代中都保留一组候选解,并按某种指标从解群中选取较优的个体,利用遗传算子(选择、交叉和变异)对这些个体进行组合,产生新一代的候选解群,重复此过程,直到满足某种收敛指标为止。SGA的框图产生初始群体产生新一代群体四、程序与运行结果第一题:figure(1);fplot('variable.
3、*sin(10*pi*variabl_e)+2.0‘,[-1,2]);%画;1
4、匡[数曲线%定义遗传算法参数NIND=40;%个体数冃MAXGEN=25;%最大遗传代数PRECI=20;%变量的二进制位数GGAP=0.9;弋沟trace=zeros(2,MAXGEN);%寻优结果的初始值FieldD=[20;-l;2;l;0;l;l];%区域描述器Chrom=crtbp(KIND,PRECI);%初始种群gen=0;%代计数器variable=bs2rv(Chrom,FieldD);%计算初始种群的I•进制转换ObjV=variab
5、le・*sin(10*pi*variable)+2・0;%计算目标函数值whilegerKMAXGENFitnV=ranking(-ObjV);%分配适应度值SelCh=select('sus'zChrom,FitnV,GGAP);%选择SelCh=recombin('xovsp',SelCh,0・7);%重组SelCh=mut(SelCh);%变异variable=bs2rv(SelCh,FieldD);%了代个体的十进制转换ObjVSel=variable・*sin(10*pi*variable)+2.0;%计算子代的冃标函数彳
6、肖[ChromObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel);%重新插入子代的新种群variable=bs2rv(Chrom,FieldD);gen=gen+l;%代计数器增加%输出最优解及其序号,并在目标函数图像中标出,Y为最优解,I为种群的序号[Y,I]=max(ObjV);holdon;plot(variable(I),Y,'bo');trace(1,gen)=max(ObjV);%遗传算法性能跟踪trace(2,gen)=sum(ObjV)/length(ObjV);endvariable
7、=bs2rv(Chrom,FieldD);%最优个体的十进制转换holdon,grid;plot(variable,ObjV,'b*');figure(2);holdon;plot(trace(2,:),'-.');gridlegend('解的变化'J种群均值的变化')最后寻优结果为:x二1.8505,f(x)=3.8503第二题:functionresult=zuoye23(Size,umin,umax,pc,pm,e)clc;clear;tic;Size=80;G=100;CodeL=10;umax=5•12;umin=-5•1
8、2;E=round(rand(Size,3*CodeL));fork=l:1:Gtime(k)=k;fors=l:1:Sizem=E(s,:);yl=0;y2=0;ml=m(1:1:CodeL);fori=l:1:CodeLyl=yl+ml(i)*2A(i-1);endxl=(umax-umin)*yl/1023+umin;m2=m(CodeL+1:1:2*CodeL);fori=l:1:CodeLy2=y2+m2(i)*2A(i-1);endx2=(umax-umin)*y2/1023+umin;F(s)=xlA2+x2A2;en
9、dBestJ(k)=min(F);fi=F;%适应度函数[Oderfi,Indexfi]=sort(fi);%按照适应度大小排序Bestfi=Oderfi(1);%Oderfi中最后一个即是最大的适应度BestS=E(Indexfi(