已阅读0页,还剩46页未读,
继续免费阅读→
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行认领
文档简介
【正文】
来生成。如:100111001000101101,就可表示一个个体,该个体的染色体长度是 18。 (2) 个体适应度评价 基本遗传算法 按与个体适应度成正比的概率来决定当前群体中每个个体遗传到下一代群体中的机会多少。 为正确计算这个概率,这里要求所有个体的适应度必须为正数或零。这样,根据不同种类的问题,必须预先确定好由目标函数值到个体适应度之间的转换规则,特别是要预先确定好当目标函数值为负数时的处理方法。 (3) 遗传算子 基本遗传算法使用下述三种遗传算子: • 选择运算:使用 比例选择算子 ; • 交叉运算:使用 单点交叉算子 ; • 变异运算:使用 基本位变异算子 。 (4) 基本遗传算法的运行参数 基本遗传算法有下述 4个运行参数需要提前设定: • M:群体大小,即群体中所含个体的数量,一般取 20100。 • T:遗传运算的终止进化代数,一般取 100 500 • pc:交叉概率,一般取 • pm:变异概率,一般取 说明 :这 4个运行参数对遗传算法的求解结果和求解效率都有一定的影响,但目前尚无合理选择它们的理论依据。在遗传算法的实际应用中,往往需要经过多次试算后才能确定出这些参数合理的取值大小或取值范围。 基本遗传算法的形式化定义 基本遗传算法可定义为一个 7元组: GA= (M, F, s, c, m, pc, pm ) M—— 群体大小; F—— 个体适应度评价函数; s—— 选择操作算子; c—— 交叉操作算子: m—— 变异操作算子; pc—— 交叉概率; pm—— 变异概率; 基本遗传算法的实现 ( 1) 编码与解码 假设某一参数的取值范围是 [umin , umax],我们用长度为 λ 的二进制编码符号串来表示该参数,则它总共能够产生 2λ种不同的编码,参数编码时的对应关系如下: 00000000„00000000 = 0 umin 00000000„00000001 = 1 umin + 00000000„00000010 = 2 umin + 2 „„ 11111111„11111111=2 λ– 1 umax 其中, 为二进制编码的编码精度,其公式为: = umax umin 2λ 1 x = umin + ( bi 2i1 ) 1 i=l Umax umin 2l 1 假设某一个体的编码是: x: bl bl1 bl2……b 2b1 则对应的解码公式为: [例 ] 设 ≤ x ≤ , 精度要求 =1/10000,由公式: Umax umin 2l = + 1 1/10000 + + 1 = = 151001 即: 217 151001 218 x需要 18位 {0/1} 符号表示。 如: 010001001011010000 解码: x = umin + ( bi 2i1) 1 i=l Umax umin 2l 1 = + 70352(+3)/(2181) = = Umax umin 2l 1 得: ( 2) 个体适应度评价 (1) 当优化目标是求函数最大值,并且目标函数总取正值时,可以直接设定个体的适应度 F(X)就等于相应的目标函数值 f(X),即: F(X)= f(X) (2) 对于求目标函数最小值的优化问题 ,理论上只需简单地对其增加一个负号就可将其转化为求目标函数最大值的优化问题,即: min f(X)= max (f(X)) 但实际优化问题中的目标函数值有正也有负,优化目标有求函数最大值,也有求函数最小值,显然上面两式保证不了所有情况下个体的适应度都是非负数这个要求。 ( 3) 选择算子 作用: 从当前代群体中选择出一些比较优良的个体,并将其复制到下一代群体中。 比例选择算子: 指个体被选中并遗传到下一代群体中的概率与该个体的适应度大小成正比。 轮盘选择: 轮盘法的基本精神是:个体被选中的概率取决于个体的相对适应度,显然,个体适应度愈高,被选中的概率愈大。但是,适应度小的个体也有可能被选中,以便增加下一代群体的多样性。 ( 4) 交叉算子 作用: 通过交叉,子代的基因值不同于父代。交换是遗传算法产生新个体的主要手段。正是有了交换操作,群体的性态才多种多样。 单点交叉算子 的具体计算过程如下: Ⅰ. 对群体中的个体进