第07章遗传算法资料.pptVIP

  • 17
  • 0
  • 约1.15万字
  • 约 43页
  • 2017-05-16 发布于湖北
  • 举报
* * * * * * * * * * * * * * * * * * * * * * * * 九、算法的终止准则 由于遗传算法的许多控制转移规则是随机的,没有利用目标函数的剃度信息,所以在演化过程中,无法确定个体在解空间的位置,从而也无法用传统的方法来判断算法的收敛与否来终止算法。 常用的终止算法有: 预先规定最大演化代数; 连续多代后解的适应值没有明显改进,则终止; 达到明确的解目标,则终止。 * 十、遗传算法简例(1) 例:用遗传算法求解一元函数最大值问题: f(x)=xsin(10πx)+2.0 (1) 编码:如果设定求解精度到6位小数,由于区间长度为2-(-1)=3,因此将闭区间[-1,2]分为3*106等份。因为 2097152=2213*106222=4194304 所以编码的二进制串至少需要22位。 * 十、遗传算法简例(2) 现在采用22位二进制编码,将一个二进制串(b21b20…b0)与区间[-1,2]内对应的实数值建立对应关系: ?bi*2i i=0 21 10 (b21b20…b0)2= =x’ x=-1.0+x’· 2-(-1) 222-1 * 十、遗传算法简例(3) 例如:一个二进制串s1=1000101110110101000111表示实数0.637197。 x’=(1000101110110101000111)2=2 288 967 x=-1.0+2288967· 2-(-1) 222-1 二进制串0000000000000000000000和 1111111111111111111111, 则分别表示区间的两个端点值-1和2。 * 十、遗传算法简例(4) (2) 产生初始种群 一个个体由串长为22的,随机产生的二进制串组成染色体的基因码,用它可以产生一定树木的个体组成的种群。 设产生的4个初始个体为: s1=1000101110110101000111 s2=0000001110000000100000 s3=1110000000111111000101 s4=0010001000110111010010 * 十、遗传算法简例(5) (3) 计算适应度 对于个体的适应度计算,考虑到本例目标函数在定义域内均大于0,而且是求函数的最大值,所以直接引用目标函数作为适应值函数: f(s)=f(x) 这里二进制串s对应变量x的值。以上4个个体的适应值及其所占的比例如表所示。 初始群体与选择 编号 个体串 x 适应值 百分比 累计百分比 s1 1000101110110101000111 0.637197 2.586345 29.1 29.1 s2 0000001110000000100000 -0.58973 1.0078878 12.1 41.2 s3 1110000000111111000101 1.627888 3.250650 36.5 77.7 s4 0010001000110111010010 -0.599032 1.981785 22.3 100 显然,4个个体中s3的适应值最大,为最佳个体。 * 十、遗传算法简例(6) (4) 遗传操作 设按转盘赌方法选择个体,生成的随机数为0.35,0.72。则选中的个体为s2、s3。 对s2和s3进行交叉操作,随机选择一个交叉点,例如选择第5位与第6位之间的位置,交叉后产生新的子个体: s2’=00000 00000111111000101 s3’=11100 01110000000100000 这两个个体的适应值分别为: f(s2’)=f(-0.998113)=1.940865 f(s3’)=f(1.666028)=3.459245 交叉后个体s3’的适应值比其父个体的适应值高。 * 十、遗传算法简例(7) 考察变异操作: 假设已经以一小的概率选择了s3的第5个遗传因子变异,遗传因子由原来的0变成1,产生新的个体为: s3’=1110100000111111000101 个体的适应值为: f(s3’)=f(1.721638)=0.917743 如果选择第10个遗传因子变异,产生的新个体为: s3’’=1110000001111111000101 f(s3’’)=f(1.

文档评论(0)

1亿VIP精品文档

相关文档