一 设计参数:
初始种群大小:50
问题解区间[-6,6]
二进制编码长度:15
迭代次数:100
杂交率:0.7
选择率:0.5
二 最终结果:
图 2- 1 初始种群分布
图 2- 2 函数三维曲面
图 2- 3 最终种群函数值
图 2- 4 适应度曲线
图 2- 5 最终结果
三 代码设计
main.m 函数,主函数设计
clear;clc;close all;
%%遗传参数设置
NUMPOP=50;%初始种群大小
irange_l=-6; %问题解区间
irange_r=6;
LENGTH=15; %二进制编码长度
ITERATION = 25;%迭代次数
CROSSOVERRATE = 0.7;%杂交率
SELECTRATE = 0.5;%选择率
%变异率 0.1
%%
%初始化种群
[popx,popy]=m_InitPop(NUMPOP,irange_l,irange_r);%随机产生种群的 X
% pop_save=pop;
%绘制初始种群分布
% ff=[];
for i=1:size(popx,2)
for j=1:size(popy,2)
ff(:,i)=m_Fx(popx(i),popy(j));
end
end
plot3(popx,popy,ff,'rp')
grid on
title('初始种群分布');
%
%%
fitnessnum=[];
%开始迭代
for time=1:100
% %计算初始种群的适应度
fitness=m_Fitness(popx,popy);
% %选择
parentpopx=m_Select(fitness,popx,SELECTRATE);
parentpopy=m_Select(fitness,popy,SELECTRATE);
% %编码
binpop=。(parentpopx,parentpopy,LENGTH,irange_l);
% % %交叉
kidsPop = crossover(binpop,NUMPOP,CROSSOVERRATE);
% % %变异
kidsPop = Variation(kidsPop,0.005);
% %解码
[kidsPopx,kidsPopy]=m_Incoding(kidsPop,irange_l);
%记录适应度
评论0