📄 exm06103171.m
字号:
fplot('variable.*sin(10*pi*variable)+2.0',[-1,2]); %画出函数曲线
NIND=40; %个体数目
MAXGEN=25; %最大遗传函数
PRECI=20; %变量的二进制位数
GGAP=0.9; %代沟
trace=zeros(2,MAXGEN); %寻优结果的初始值
FieldD=[20;-1;2;1;0;1;1]; %区域描述器
Chorm=crtbp(NIND,PRECI); %初始种群
gen=0; %代计数器
variable=bs2rv(Chrom,FieldD);
ObjV=variable.*sin(10*pi*variable)+2.0;
while gen<MAXGEN,
FitnV=ranking(-ObjV);
SelCH=select('sus',Chrom,FitnV,GGAP);
SelCH=recombin('xovsp',SelCh,0.7);
SelCh=mut(SelCh);
variable=bs2rv(SelCh,FieldD);
ObjVSel=variable.*sin(10*pi*variable)+2.0;
[Chrom ObjV]=reins(Chrom,SelCh,1.1,ObjV,ObjVSel);
gen=gen+1;
%输出最优解及其序号,并在目标函数中标出,Y为最优解,I为种群的序号
[Y,I]=max(ObjV),hold on;
plot(variable(I),Y,'bo');
trace(1,gen)=max(ObjV);
trace(2,gen)=sum(ObjV)/length(ObjV);
end
variable=bs2rv(Chrom,FielD);
hold on,grid;
plot(variable',ObjV','b*');
Figure(2);
plot(trace(1,:)');
hold on;
plot(trace(2,:)','-.');grid;
legend('解的变化','种群均值的变化')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -