《人工智能的诞生 (40).pdf》由会员分享,可在线阅读,更多相关《人工智能的诞生 (40).pdf(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、考虑下面一元函数求最大值的优化问题为什么选择这个函数?看下函数曲线就知道了,这么多波峰波谷,就看算法能否找到某一范围的极大值。1.遗传算法求解详细过程1)编码 变量x作为实数,可以视为遗传算法的表现形式。从表现型到基因型的映射称为编码。二进制编码将某个变量值代表的个体表示为一个0,1二进制串(遗传算法最简单、最经典的编码方法)。若设定求解精确到6位小数,由于区间长度为2-(-1)=3,必须将区间-1,2分为3*106等份。所以编码的二进制串长至少需要22位。2)产生初始种群 个体由串长为22的随机产生的二进制串组成染色体的基因码,产生一定数目的个体组成种群,种群的大小(规模)就是指种群中的个体
2、数目。3)计算适应度 适应度大的个体其存活和被选中的概率大。适应度的计算就是对个体的计算,本例求函数最大值,目标函数值大的个体适应度大,所以直接引用目标函数作为适应度函数f(s)=f(x)。例如x1=0.637197通过编码得到的二进制串是s1=1000101110110101000111,这个串就是个体。此个体的适应度就是:假设这里选择种群数量为3,每个个体为:s1=1000101110110101000111 s2=0000001110000000010000 s3=1110000000111111000101分别对应于数量值x1=0.637197,x2=-0.958973,x3=1.62
3、7888另两个个体的适应度计算如下:4)选择 轮盘赌选择法,最常用,最直观 f(s1)=2.286345,f(s2)=1.078878,1 f(s3)=3.250650把三个适应度依比例画在轮盘上,转动轮盘,最后停在哪里,就选择谁,适应度大的被选中概率大。5)遗传操作下面是经过选择操作后的两个个体:s2=00000 01110000000010000 s3=11100 00000111111000101首先执行单点交叉,随机选择交叉点,将之后的串交叉 s2=00000 00000111111000101 s3=11100 01110000000010000这两个个体的适应度分别为:6)变异操作假定以一小概率选择S3的第5个遗传因子(第5位)变异,遗传因子由原来的0变为1,产生新个体s3=1110100000111111000101该个体适应度个体的适应度比它的父个体的适应度减小了。但如果选中第11个遗传因子变异,产生新个体为s3=11100000001111111000101适应度又发现s3的适应度比其父个体的适应度改善了。这说明变异操作的“扰动”作用(全局搜索)。2对上述的过程不断迭代,可得到结果。下图是迭代298、299、300次的最优值。3