《遗传算法的Matlab实现讲解》由会员分享,可在线阅读,更多相关《遗传算法的Matlab实现讲解(37页珍藏版)》请在人人文库网上搜索。
1、数学建模专题之遗传算法的MATLAB实现,Contents I,Matlab编程实现GA,1,Matlab编程实现GA,例1:计算目标函数值函数,主程序,遗传算法主程序 function My_GA global Cmin; Cmin=-106; popsize=50; %群体大小 Gene=20; chromlength=20; %字符串长度(个体长度) pc=0.8; %交叉概率 pm=0.01; %变异概率 Xmax=10; Xmin=0,Matlab编程实现GA,pop=initpop(popsize,chromlength); %随机产生初始群体 for i=1:Gene %20为迭。
2、代次数 objvalue=calobjvalue(pop,chromlength,Xmax,Xmin); %计算目标函数 fitvalue=calfitvalue(objvalue); %计算群体中每个个体的适应度 newpop=selection(pop,fitvalue); %复制 newpop=crossover(newpop,pc); %交叉 newpop=mutation(newpop,pm); %变异 bestindividual,bestfit=best(pop,fitvalue); %求出群体中适应值最大的个体及其适应值 x(i)=decodechrom(bestindivid。
3、ual,1,chromlength)*10/(2chromlength-1); %最佳个体解码 y(i)=bestfit+Cmin; %最佳个体适应度 y_mean(i)=mean(fitvalue+Cmin); %第i代平均适应度 pop=newpop; end fplot(2*x+10*sin(5*x)+7*cos(4*x),0 10) hold on plot(x,y,r*) hold off,初始化(编码, initpop.m函数的功能是实现群体的初始化,popsize表示群体的大小,chromlength表示染色体的长度(二值数的长度), % 长度大小取决于变量的二进制编码的长度(在。
4、本例中取20位)。 %Name: initpop.m function pop=initpop(popsize,chromlength) pop=round(rand(popsize,chromlength); % rand随机产生每个单元为 0,1 行数为popsize,列数为chromlength的矩阵, % round对矩阵的每个单元进行取整。这样产生的初始种群,Matlab编程实现GA,将二进制数转化为十进制数,将二进制数转化为十进制数 %产生 2