遗传算法及其MATLAB实现ppt课件.ppt
《遗传算法及其MATLAB实现ppt课件.ppt》由会员分享,可在线阅读,更多相关《遗传算法及其MATLAB实现ppt课件.ppt(32页珍藏版)》请在三一办公上搜索。
1、,遗传算法及其matlab实现,报告人,遗传算法生物学基础,遗传算法是模拟自然界生物进化过程与机制求解极值问题的一类自组织,自适应人工智能技术,其基本思想是模拟自然界遗传机制和生物进化论而形成的一种过程搜索最优解的算法。在自然界,由于组成生物群体中各个个体之间的差异,对所处环境有不同的适应和生存能力,遵照自然界生物进化的基本原则,适者生存、优胜劣汰,将要淘汰那些最差个体,通过交配将父本优秀的染色体和基因遗传给子代,通过染色体核基因的重新组合产生生命力更强的新的个体与由它们组成的新群体。在特定的条件下,基因会发生突变,产生新基因和生命力更强的新的个体;但突变是非遗传的,随着个体不断更新,群体不断
2、朝着最优化方向前进,遗传算法是真实模拟自然界生物进化机制进行寻优的。,1、个体编码2、初始群体的产生3、适应度计算4、新种群的选择复制5、新种群的交配(交叉运算)6、新种群的变异运算,算 法 步 骤,算 法 流 程 图,遗传算法步骤,以一个案例来说明遗传算法的具体过程:,函数的三维图形,1、个体编码,遗传算法的对象运算是表示个体的符号串,所以必须把变量编码为一种符号串,即将变量转换成二进制数串。数串的长度取决于所要求的精度。例如,变量x的区间是(L,U),要求的精度是小数点后四位,也就意味着每个变量应该被分成至少 个部分。对一个变量的二进制数串位数用以下公式计算: 本例精度要求保留小数点后四位
3、,则目标函数的俩个自变量x1及x2所构成的染色体串位数m1=18,m2=15,即本例中任何一染色体串为33位,前18位表示x1后15位表示x2。,染色体编码,2、初始群体的产生,遗传算法是对群体进行的进化操作,需要给其准备一些起始搜索点的初始群体数据初始群体太小时会产生病态基因,且造成有效等位基因先天缺乏初始群体太大会导致结果难以收敛且浪费资源,稳健性下降建议值0100,假设初始种群中有10个个体,其染色体可随机生成如下: U1=000001010100101001 101111011111110 U2=001110101110011000 000010101001000 U3=1110001
4、11000001000 010101001000110 U4=100110110100101100 000000010111001 U5=000010111101100010 001110001101000 U6=111110101011011000 000010110011001 U7=110100010111110001 001100111011101 U8=001011010111111100 010110011001100 U9=111110001011101100 011101000111101 U10=111101001110101010 000010101101010相应的十进制
5、实际值x1,x2为: U1=2.687969,5.361653 , U2=0.474101,4.170144 U3=10.419457,4.661461 , U4=6.159951,4.109598 U5=-2.301286,4.477282 , U6=11.788084,4.174346 U7=9.342067,5.121702 , U8=-0.330256,4.694977 U9=11.671267,4.873501 , U10=11.446273,4.171908,3、适应度计算,遗传算法以个体适应度来评定各个个体的优劣程度从而决定其遗传机会的大小,对一个染色体数串的适应度的评价由下列三
6、个步骤组成。将染色体串进行反编码(解码),转换成真实值,即评价目标函数将目标数值转为适应度值。对于极大值问题,适应度可作为目标函数值:,在遗传算法中,评价函数扮演自然进化中环境的角色,它通过染色体的适应度对其进行评价。上述染色体的适应度如下:eval(U1)=f(-2.687969,5.361653)=19.805119同理可得,eval(U2)=17.370896eval(U3)=9.590546eval(U4)=29.406122eval(U5)=15.686091eval(U6)=11.900541eval(U7)=17.958717eval(U8)=19.763109 eval(U9)
7、=26.401669eval(U10)=10.252480,依照染色体的适应度值进行新种群的复制,步骤如下:计算染色体 的适应度值计算种群的适应度值总和计算每个染色体被复制的概率计算每个染色体被复制的累积概率,4、新种群的选择复制,依照轮盘选择法,转动轮盘10次(假设种群的染色体),每次选择一个作为新种群的染色体,这样,适应度越大的就越有机会复制到下一代,依照轮盘选择法,转动轮盘10次,每次选择一个作为新种群的染色体。假设10次产生的01随机数序列如下: 0.301431 0.322062 0.766503 0.881893 0.350871 0.538392 0.177618 0.34324
8、2 0.032685 0.197577根据以上的计算方法,可以先计算出种群中每个染色体的适应度和概率,如表所列:,种群每条染色体的适应度、被复制概率和被复制的累积概率,第一个随机数为0.301431,大于Q3小于Q4,所以U4被选中;第二个随机数为0.322062,大于Q3小于Q4,所以U4再次被选中;第十个随机数为0.197577,大于Q1小于Q2,所以U2被选中;依照轮盘转法,新种群的染色体组成如下: U1=100110110100101101 000000010111001 U2=100110110100101101 000000010111001 U3=0010110101000011
9、00 010110011001100 U4=111110001011101100 011101000111101 U5=100110110100101101 000000010111001 U6=110100010111110001 001100111011101 U7=001110101110011000 000010101111000 U8=100110110100101101 000000010111001 U9=000001010100101001 101111011111110 U10=00111010110011000 000010101001000 这种轮盘选择法的机理是:染色体
10、的适应度大意味着 , 区间跨度就大,随机数发生器发生的均匀随机数就会有更大的概率落在较大长度的 , 区间里,这样具有较大 值的染色体自然更有机会复制到下一代。,5、新种群的交配(交叉运算),交配染色体数量的确定 交配染色体的数量等于染色体总量乘以交配概率。这里假设交配概率 为0.25,染色体总量为10条,所以 参加交配的染色体数量为2.5条。符号 表示取整,这里取整数2,即交配的染色体数目为2条。交配染色体对象的确定用计算机产生0,1区间的10个随机数如下:0.625721 0.266823 0.288644 0.295114 0.1632740.567461 0.085940 0.39286
11、5 0.770714 0.548656,交叉运算是遗传算法中产生新个体的主要操作过程,它以某一概率相互交互两个个体之间的部分染色体先对群体进行随机配对,其次随机设置交叉点位置,最后再相互交换配对染色体之间的部分基因交叉概率一般取0.40.99,假定其分别对应U1U10这10个个体,则其中低于交配概率0.25的U5和U7参加交配。这样操作的原因是:交配概率越低,低于交配概率以下的随机数的数量就越少,所以参加交配的染色体数量与交配概率可能会成正比。在交配池发生交配 染色体U5和U7被选中作为交配的父辈,交配点的选择以随机数产生。交配的种类有单点交配和多点交配,这里取单点交配。计算机随机生成一个介于
12、032的整数。假设所产生的整数为1,那么两个染色体自1位置开始分割,在染色体1位置右端部分进行交换而生成新的子辈染色体,即U5=1 0011 0110 1001 0110 1000 0000 1011 1001U7=0 0111 0101 1100 1100 0000 0101 0100 1000U5*=1 0111 0101 1100 1100 0000 0101 0100 1000U7*=0 0011 0110 1001 0110 1000 0000 1011 1001,6、新种群的变异运算,依照突变运算规则并假设突变几率 为0.01,亦即种群内所有基因都有0.01的概率进行突变。本例中共
13、有3310=330个基因,即希望每一代中有3.3个突变基因,每个基因的突变几率是相等的。因此,将产生330个介于01之间的随机数,然后将该随机数小于0.01者选出,并将其对应的基因值加以翻转,假设330次中产生01之间的随机数,其值小于0.01者如右表所列。 右表第一列显示的是具体在哪些染色体以及在染色体的什么位置进行了突变。例如第一行表示的是在第4条染色体第6个基因上发生了突变。,变异运算是对个体的某一个或某一些基因座上的基因值按某一较小的概率进行改变,是产生新个体的一种操作方法首先确定出各个个体的基因变异位置,然后依照某一概率将变异点的原有基因值取反,基因突变位置,在突变后,最终新种群的染
14、色体组成如下:U1=100110110100101101 000000010111001U2=100110110100101101 000000010111001U3=001011010100001100 010110011001100U4=111111001011101100 011101000111101U5=101110101110011000 000010101001010U6=110100010111110001 001100111011101U7=100110110100101101 000000010111001U8=100110110100101101 000000010111
15、001 U9=000001010100101001 000000010111001U10=001110101110011000 000010101001010,新一代的对应实际值x1,x2和适应度值如下:eval(U1)=f(6.159951,4.109598)=29.406122eval(U2)=29.406122eval(U3)=19.763190eval(U4)=5.702781 eval(U5)=19.910251eval(U6)=17.958717 eval(U7)=29.406122eval(U8)=29.406122 eval(U9)=19.805119 eval(U10)=17
16、.370896 至此,已完成遗传算法的第一代流程。依此迭代,在第451代得到对应最大目标函数值的染色体: =111110000000111000 111101001010110相应实际值x1,x2=11.631407,5.724824,适应度值eval(U)=38.818208,用MATLAB语言实现遗传算法,1、编码以及产生初始种群 使用二进制编码,通常根据搜索精度(sca_var)、决策变量上界(range(2)的和下界(range(1)来确定各个二进制字符串的长度(bit_n),搜索精度为sca_var=(range (2)-range(1)/(2bit_n-1),,然后再随即产生一个初
17、始种群(be_gen),其规模为popusize,下面用函数encoding来实现编码和产生的初始种群: function be_gen,bit_n=encoding(sca_var,range(1),range(2),popusize) bit_n=ceil(log2(range(2)-range(1)/sca_var); be_gen=randint(popusize,sum(bit_n);,用MATLAB语言实现遗传算法,2、译码 个体种群be_gen要通过解码才能够转换成原问题空间的决策变量构成的种群vgen,才可计算各个适应度。另外,译码需首先求出二进制数对应的十进制数decimal
18、,然后根据公式求出实际决策变量X:X=range(1)+decimal*sca_dec.通常可以用decoding函数来实现译码过程:functionvgen,fitness=decoding(fcn,be_gen,bit_n,range(1),range(2)popusize=size(be_gen,1); n_var=length(bit_n);sca_dec=(range(2)-range(1)/(2bit_n-1);,bit_n=cumsun(bit_n);bit_n=0 bit_n;for i=1:n_varbe_var(i)=be_gen(:,bits(i)+1:bit_n(i +
19、1);var(i)= range( 1)( i )+sum(ones(popusize,1)*2.(size(be_var(i),2)- 1:- 1:0).*be_var(i),2).*sca_dec(i);endvgen=var(1,:);for i=1:popusizefitness(i )=eval(fcn,(var_gene(i,:) );end,用MATLAB语言实现遗传算法,3、选择 选择算子中,先找出当前群体中适应度最高和最低的个体,将最佳个体bes_ind保留并替换最差个体,直接进入下一代,将剩余个体evol_gen按适应值比例选择法进行操作。即1计算个体适应值2计算适应值在群
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 遗传 算法 及其 MATLAB 实现 ppt 课件
链接地址:https://www.31ppt.com/p-1446318.html