第四章遗传算法的实现技术.pptxVIP

  • 7
  • 0
  • 约1.36万字
  • 约 49页
  • 2016-12-03 发布于重庆
  • 举报
第四章遗传算法的实现技术

第四章 遗传算法的实现技术 80年代以后,遗传算法得到了广泛的使用,在实践过程中,人们对遗传算法的实施提出了许多改进。本节分别予以介绍。 4.1 编码方法 [编码的重要性] 编码是应用遗传算法时要解决的首要问题,也是设计遗传算法的一个关键步骤。 ? 编码方法除了决定个体的染色体排列形式之外,它还决定了个体从搜索空间 的基因型变换到解空间的表现型时的解码方法; ? 编码方法也影响到交叉算子、变异算子等遗传算子的运算方法。 由此可见,编码方法在很大程度上决定了如何进行群体的遗传进化运算以及 遗传进化运算的效率。 [编码原则] 针对一个具体应用问题,如何设计一种完美的编码方案一直是遗传算法的应 用难点之一,也是遗传算法的一个重要研究方向。可以说目前还没有一套既严密 又完整的指导理论及评价准则能够帮助我们设计编码方案。作为参考,De Jong 曾提出了两条操作性较强的实用编码原则(又称为编码规则): ? 编码原则一(有意义积木块编码原则):应使用能易于产生与所求问题相关的且 具有低阶、短定义长度模式的编码方案。 ? 编码原则二(最小字符集编码原则):应使用能使问题得到自然表示或描述的具 有最小编码字符集的编码方案。 由于遗传算法应用的广泛性,迄今为止人们已经提出了许多种不同的编码方法。 总的来说,这些编码方法可以分为三大类: 二进制编码方法 浮点数编码方法 符号编码方法Umax ? umin? = 2l ? 1 4.1.1 二进制编码方法 二进制编码方法是遗传算法中最常用的一种编码方法,它使用的编码符号集 是由二进制符号0和1所组成的二值符号集{0,1},它所构成的个体基因型是一个 二进制编码符号串。 (1) 编码 假设某一参数的取值范围是[umax, umin],我们用长度为l的二进制编码符号串 来表示该参数,则它总共能够产生 2l种不同的编码,参数编码时的对应关系如 下:00000000=0 umin 00000001=1 umin + ? ……11111111=2l–1 umax 二进制编码的编码精度为:1Umax ? umin x = umin + ( ? bi · 2i-1) · 2l ? 1 i=l(2) 解码 假设某一个体的编码是: x: bl bl-1 bl-2……b2b1 则对应的解码公式为: 例如,对于 x?[ 0, 1023] ,若用 10 位长的二进制编码表示该参数的话, 则下述符号串: x:0010101111就可表示一个个体, 它所对应的参数值是 x=175。 编码精度为 ? = 1。 (3) 二进制编码方法的优点: Ⅰ. 编码、解码操作简单易行; Ⅱ. 交叉、变异等遗传操作便于实现; Ⅲ. 符合最小字符集编码原则(使用能使问题得到自然表示或描述的具有最小 编码字符集的编码方案。); Ⅳ. 便于利用模式定理对算法进行理论分析。4.1.2 格雷码编码方法 格雷码编码方法是二进制编码方法的一种变形。 (1) 格雷码编码: 其连续的两个整数所对应的编码值之间仅仅只有一个码位是不相同的, 其余码位都完全相同。如图所示。 (2) 优点: ? 便于提高遗传算法的局部搜索能力; ? 交叉、变异等遗传操作便于实现; ? 符合最小字符集编码原则; ? 便于利用模式定理对算法进行理论分析。44.1.3 浮点数编码方法 (1) 二进制编码的缺点 ? 二进制编码存在着连续函数离散化时的映射误差。 个体编码串的长度较短时,可能达不到精度要求; 个体编码串的长度较长时,虽然能提高编码精度,但却会使遗传算法的搜索 空间急剧扩大。 ? 二进制编码不便于反映所求问题的特定知识,这样也就不便于开发针对问题专 门知识的遗传运算算子,人们在一些经典优化算法的研究中所总结出的一些 宝贵经验也就无法在这里加以利用,也不便于处理非平凡约束条件。 (2) 浮点数编码方法 个体的每个基因值用某一范围内的一个浮点数来表示; 个体的编码长度等于其决策变量的个数。 因为这种编码方法使用的是决策变量的真实值,所以浮点数编码方法也叫做 真值编码方法。 x:5.80 6.90 3.50 3.80 5.00 例如,如果一个优化问题含有5个变量xi(i=1,2,…,5),每个变量都有其对应的上 下限[Uimin , Uimax],则: 表示一个体的基因型, 其对应的表现型是:x:[ 5.80,6.90,3.50,3.80,5.00]T。(3) 注意事项: ? 在浮点数编码方法中: 必须保证基因值在给定的区间限制范围内;遗传算法中所使用的交叉、变异 等遗传算子也必须保证其

文档评论(0)

1亿VIP精品文档

相关文档