欢迎来到天天文库
浏览记录
ID:19546965
大小:106.50 KB
页数:7页
时间:2018-10-03
《遗传算法案例及源代码》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、计算智能作业三:遗传算法计算问题1.问题描述:求下述二元函数的最大值:S.t.2.程序结构:(1)变量:C:是一个1*6数组,每个数组里面是一个6位二进制数,它是遗传算法中的染色体。new_c:每一轮的新变量c。first_c:初始群体矩阵。sur_value:个体适应值的概率值,为0-1之间的数,所有概率值和为1。survived:经过选择运算后产生的个体基因型组合。intersect_c:经过交叉运算后产生的个体基因型组合。mutation_c:经过变异运算后产生的个体基因型组合。f:最后计算得到
2、的最大值(2)程序里面的方程functionout=value_function(ci):价值函数(自适应度函数),即。function[sur_value]=calc_value(c):计算群体中每一个个体的适应度的值functionsurvived=surviver(sur_value):利用概率选择函数function[intersect_c]=intersect(new_c):交叉运算function[mutation_c,mutation_value]=mutation(intersect_
3、c):变异运算3.源程序(1)遗传算法的主程序主程序包括初始群体产生,最终结果展示,即各函数之间的调用关系。l个体编码遗传算法的运算对象是表示个体的符号串,所以必须把变量x1,x2编码为无符号二进制整数。这个二进制整数位个体的基因型。因为x1,x2为0~7之间的整数,所以分别用3位无符号二进制整数来表示,将它们连接在一起所组成的6位无符号二进制数就形成了个体的基因型,表示一个可行解。 如一下表格表示基因型和表现型之间的对应关系:个体基因型表现型1111001(7,1)2100111(4,7
4、)3011011(3,3)4101110(5,6)5100101(4,5)6111011(7,3)l初始群体的产生遗传算法是对群体进行的进化操作,需要给其淮备一些表示起始搜索点的初始群体数据。本例中,群体规模的大小取为6,即群体由6个个体组成,每个个体可通过随机方法产生。%初始群体的产生,本例中,群体规模大小取为6,即由6个个体组成,每个个体随机产生。c=rand(6,6);%产生随机群体,c表示个体变量。%第一个6表示个体个体,第二个6表示基因型由6位无符号二进制数组成c(c>0.5)=1;c(c<
5、0.5)=0;%显示初始群体first_c=c;%一轮算法包括选择,交叉,变异,变异完成后产生新的个体,作为子代群体进行下一轮进化。一共设置1000次进化forn=1:1000%设置循环次数sur_value=calc_value(c);survived=surviver(sur_value);new_c=zeros(6,6);forii=1:6new_c(ii,:)=c(survived(ii),:);endintersect_c=intersect(new_c);%交叉个体mutation_c=m
6、utation(intersect_c);%变异个体,作为子代群体c=mutation_c;%子代群体作为新一轮的个体,继续选择,交叉,变异end%设置最后结果的输出,f值即最后的结果。f=0;forjj=1:6b=value_function(c(jj,:));%选择最好群体中每行个体进行适应度计算,以下是6个个体大小的判断%选择最终适值最大的个体,其运算结果即为最后结果ifb>ff=b;endEnd(2)适应值计算遗传算法中以个体适应度的大小来评定各个个体的优劣程度,从而决定其遗传机会的大小。本例
7、中,目标函数总取非负值,并且是以求函数最大值为优化目标,故可直接利用目标函数值作为个体的适应度。functionout=value_function(ci)%遗传算法的价值函数,同时也可以将此目标函数值作为个体的适应度。x1=4*ci(1)+2*ci(2)+1*ci(3);%x1的基因型转换为表现型x2=4*ci(4)+2*ci(5)+1*ci(6);%x2的基因型转换为表现型ifx1==0x1=1;endifx2==0x2=1;endout=x1^2+x2^2;%通过表现型的值计算最终结果funct
8、ion[sur_value]=calc_value(c)%计算群体中每一个个体的适应度的值value=zeros(1,6);forii=1:6%对于第1到第6个个体value(ii)=value_function(c(ii,:));%计算每个个体的适应度值endsur_value=value./sum(value);%将适应度值归一化,即每个个体被遗传到下一代群体中的概率end(2)选择运算选择运算(或称为复制运算)把当前群体中适应度较高的个体按某种规则
此文档下载收益归作者所有