matlab遗传算法实例 .docx
《matlab遗传算法实例 .docx》由会员分享,可在线阅读,更多相关《matlab遗传算法实例 .docx(10页珍藏版)》请在第壹文秘上搜索。
1、matlab遗传算法实例%卜.面举例说明遗传算法%求下列函数的最大值%f(x)=10*sin(5x)+7*cos(4x)x0,10%将X的值用一个10位的二值形式表示为二值问题,一个10位的二值数提供的分辨率是每为(10-0)(210-1)0.01o%将变量域0,10离散化为二值域0,1023,x=0+10*b1023,其中b是0,1023中的一个二值数。%编程%2.1初始化(编码)%initpop.m函数的功能是实现群体的初始化,popsize表示群体的大小,Chromlength表示染色体的长度(二值数的长度),%长度大小取决于变量的二进制编码的长度(在本例中取10位)。%遗传算法子程序%
2、Name:initpop.m%初始化functionpop=initpop(popsize,Chromlength)pop=round(rand(popsize,Chromlength);%rand随机产生每个单元为0,1行数为popsize,列数为Chromlength的矩阵,%roud时矩阵的每个单元进行圆整。这样产生的初始种群。%2.2计算目标函数值%2.2.1将二进制数转化为卜进制数(1)%遗传算法子程序%Name:decodebinary,m%产生2n2(-1).1的行向量,然后求和,将二进制转化为十进制functionpop2=decodebinary(pop)p,py=size(
3、pop);%求POP行和列数fori=1:pypop1(:,i)=2.A(py-i).*pop(:,i);endpop2=sum(pop1,2);%求PoPl的每行之和%2.2.2将二进制编码转化为卜进制数(2)%decodechrom.m函数的功能是将奥色体(或二进制编码)转换为卜进制,参数spoint表示待解码的二进制串的起始位置%(对于多个变量而言,如有两个变量,采用20为表示,每个变量10为,则第一个变量从1开始,另一个变量从11开始。本例为1),%参数Iength表示所截取的长度(本例为10)。%遗传算法子程序%Name:decodechrom.m%将二进制编码转换成卜进制funct
4、ionpop2=decodechrom(pop,spoint,length)pop1=pop(:,spoint:spoint+length-1);pop2=decodebinary(pop1);%2.2.3计算目标函数值%calobjvalue.m函数的功能是实现目标函数的计算,其公式采用本文示例仿真,可根据不同优化问题予以修改。%遗传算法子程序%Name:calobjvalue.m%实现目标函数的计算functionobjvalue=calobjvalue(pop)tempi=decodechrom(pop,1,10);%将PoP每行转化成卜进制数x=temp1*10/1023;%将二值域中
5、的数转化为变量域的数objvalue=10*sin(5*x)+7*cos(4*x);%计算I-I标函数值%2.3计算个体的适应值%遗传算法子程序%Name:calfitvalue.m%计算个体的适应值functionIitvalue=CalfitvaIue(ObjvaIue)globalCmin;Cmin=O;p,py=size(objvalue);fori=1:pxifobjvalue(i)+Cmin0temp=Cmin+objvalue(i);elsetemp=0.0;endfitvalue(i)=temp;endfitvalue=fitvalue,;%2.4选择第制%选择或复制操作是决定
6、哪些个体可以进入卜.一代。程序中采用赌轮盘选择法选择,这种方法较易实现。%根据方程pi=fi0i=fifsum,选择步骤:%1)在第t代,由(1)式计算fsum和Pi%2)产生0,1的随机数rand(.),求s=rand(.)*fsum%3)求fis中最小的k,则第k个个体被选中%4)进行N次2)、3)操作,得到N个个体,成为第t=t+1代种群%遗传算法子程序%Name:selection.m%选择复制functionnewpop=selection(pop1fitvalue)totalfit=sum(fitvalue);%求适应值之和fitvalue=fitvaluetotalfit;%单个



- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab遗传算法实例 matlab 遗传 算法 实例
