📄 example5_38.m
字号:
%每个种群中的个体数目
NIND = 20;
%最大代数
MAXGEN = 100;
GGAP = .8;
SEL_F = 'sus'; % 选择函数
XOV_F = 'xovsp'; % 交叉函数
MUT_F = 'mut'; % 变异函数
OBJ_F = 'objfun1'; % 目标函数
% 目标函数的边界
FieldDR = feval(OBJ_F,[],1);
% 目标函数变量的数目
NVAR = size(FieldDR,2);
% 描述矩阵
PRECI = 20;
FieldDD = [rep([PRECI],[1, NVAR]);...
FieldDR;...
rep([1; 0; 1 ;1], [1, NVAR])];
%生成种群
Chrom = crtbp(NIND, NVAR*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');
xlabel('generation');
ylabel('log10(Best)');
% 适度分配
FitnV = ranking(ObjV);
% 选择个体
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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -