, W* i( U; p6 Z8 E $ r0 S. e+ h7 N0 a/ r! F3 B( T80年代以后,遗传算法得到了广泛的使用,在实践过程中,人们对遗传算法的实施提出了许多改进。本节分别予以介绍。 ; ~2 u' M: u# |% |& `8 M3 _* }& J8 a0 N/ Y$ Z
1 编码方法 7 u4 E* ^. j8 i, A ; h# m- f H: a8 J) H' a [编码的重要性]9 \- {1 {: A# T# C3 T0 M4 D
编码是应用遗传算法时要解决的首要问题,也是设计遗传算法的一个关键步骤。4 Z3 s/ |+ [* M! \5 n
$ O1 A. D0 [5 i • 编码方法除了决定个体的染色体排列形式之外,它还决定了个体从搜索空间的基因型变换到解空间的表现型时的解码方法; . H! e' N" C& l2 L5 ]5 m • 编码方法也影响到交叉算子、变异算子等遗传算子的运算方法。; A8 j8 [* |; Q$ w( Y- {" O
由此可见,编码方法在很大程度上决定了如何进行群体的遗传进化运算以及遗传进化运算的效率。. K) o+ B& A. B0 y# m
[编码原则] * N, q' u6 [/ b- E
针对一个具体应用问题,如何设计一种完美的编码方案一直是遗传算法的应用难点之一,也是遗传算法的一个重要研究方向。可以说目前还没有一套既严密又完整的指导理论及评价准则能够帮助我们设计编码方案。作为参考,De Jong曾提出了两条操作性较强的实用编码原则(又称为编码规则): 0 E* W# @+ j3 C, R1 C9 K4 ~# z7 v8 b1 |/ L
• 编码原则一(有意义积木块编码原则):应使用能易于产生与所求问题相关的且具有低阶、短定义长度模式的编码方案。! Z* a: F) i- x0 ^
• 编码原则二(最小字符集编码原则):应使用能使问题得到自然表示或描述的具有最小编码字符集的编码方案。 + i- B' Q: O. [/ |; k! z
! b! P/ P/ }: W7 E 由于遗传算法应用的广泛性,迄今为止人们已经提出了许多种不同的编码方法。总的来说,这些编码方法可以分为三大类: - S( C( B4 Z* N, H$ U; g2 b9 S 二进制编码方法 . I. b) ~( o5 l$ [9 k5 H8 A 浮点数编码方法 ! X+ R/ R8 o& x" P' o 符号编码方法 7 B$ d- w0 K/ H3 x' O 2 I. ~; ]0 A' _3 S) J, T; Y. ]' a' M