- 1、本文档共37页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数学建模专题之
遗传算法的MATLAB实现
Contents I
1 Matlab编程实现GA
2 Matlab函数调用实现GA
3 Matlab工具箱实现GA
Matlab编程实现GA
例1:计算目标函数值函数
f (x) 2x 10sin(5x) 7 cos(4x) x [0,10]
max f (x) ?
Matlab编程实现GA
pop=initpop(popsize,chromlength); % 随机产生初始群体
主程序 for i=1:Gene %20为迭代次数
[objvalue]=calobjvalue(pop,chromlength,Xmax,Xmin); %计算目标函数
fitvalue=calfitvalue(objvalue); %计算群体中每个个体的适应度
%遗传算法主程序
[newpop]=selection(pop,fitvalue); %复制
function My_GA [newpop]=crossover(newpop,pc); %交叉
global Cmin; [newpop]=mutation(newpop,pm); %变异
Cmin=-10^6; [bestindividual,bestfit]=best(pop,fitvalue); %求出群体中适应值最大的
popsize=50; %群体大小 个体及其适应值
Gene=20; x(i)=decodechrom(bestindividual,1,chromlength)*10/(2^chromlength-1);
%最佳个体解码
chromlength=20; %字符串长
度(个体长度) y(i)=bestfit+Cmin; %最佳个体适应度
pc=0.8; %交叉概率 y_mean(i)=mean(fitvalue+Cmin); %第i代平均适应度
pm=0.01; %变异概率 pop=newpop;
Xmax=10; end
Xmin=0; fplot(2*x+10*sin(5*x)+7*cos(4*x),[0 10])
hold on
plot(x,y,r*)
hold off
Matlab编程实现GA
初始化(编码)
% initpop.m函数的功能是实现群体的初始化,popsize表示群体的大小,
chromlength表示染色体的长度(二值数的长度) ,
% 长度大小取决于变量的二进制编码的长度(在本例中取20位) 。
%Name: initpop.m
function pop=initpop(popsize,chromlength)
pop=round(rand(popsize,chromlength)); % rand随机产生每个单元为{0,1}
行数为popsize ,列数为c
文档评论(0)