3 T" V. A5 I: x1 j4 Z2 c' K0 I5 A遗传算法的基本思想是基于Darwin进化论和Mendel的遗传学说的。& H6 V( ^; C. N- y; i8 i
: U! L. [0 m8 z nDarwin进化论最重要的是适者生存原理。它认为每一物种在发展中越来越适应环境。物种每个个体的基本特征由后代所继承,但后代又会产生一些异于父代的新变化。在环境变化时,只有那些熊适应环境的个体特征方能保留下来。; J/ K8 G( B" }
6 F A6 R8 O. ^3 P7 I
Mendel遗传学说最重要的是基因遗传原理。它认为遗传以密码方式存在细胞中,并以基因形式包含在染色体内。每个基因有特殊的位置并控制某种特殊性质;所以,每个基因产生的个体对环境具有某种适应性。基因突变和基因杂交可产生更适应于环境的后代。经过存优去劣的自然淘汰,适应性高的基因结构得以保存下来。 + J+ ]* x+ P9 s0 a! x- d/ P& M# u
由于遗传算法是由进化论和遗传学机理而产生的直接搜索优化方法;故而在这个算法中要用到各种进化和遗传学的概念。这些概念如下: 8 Y( Q/ a$ d. [1 b; \3 a3 G2 U0 |% E: w u' J" y, X
一、串(String) + g! N, o: i0 ?7 N ! a0 W' w/ T: Q! o& Q2 M! O+ ]- R N% v它是个体(Individual)的形式,在算法中为二进制串,并且对应于遗传学中的染色体(Chromosome)。 ; `1 D* j- H# @. y: {& Y4 Y; S) Z$ J# Q! F
二、群体(Population) / i8 }2 E3 s9 }8 I: Y/ P4 I( }! m+ P$ s/ e
个体的集合称为群体,串是群体的元素 $ Z$ n/ h8 L1 ^1 U$ {$ o* I( \" _+ f8 ~! x* W
三、群体大小(Population Size) ! s" ?% ^1 B( C8 ~5 ^! |$ Z L& [; _ [
在群体中个体的数量称为群体的大小。 ; \5 r6 g+ w* E5 w: x& b & l2 R1 V! E4 w* B四、基因(Gene) 1 [, G3 S# E. u4 G: V. ~/ _) C 3 _0 h5 R4 Q! @' y3 N+ ^基因是串中的元素,基因用于表示个体的特征。例如有一个串S=1011,则其中的1,0,1,1这4个元素分别称为基因。它们的值称为等位基因(Alletes)。 ! r$ t" U, o8 U2 K2 H8 M' Q. z( e- L/ F2 E! x6 d9 ]
五 、基因位置(Gene Position) ! H9 M3 r8 q- p' ]+ t! j + Y) b: Q b, X9 {2 d" {" m7 M0 i一个基因在串中的位置称为基因位置,有时也简称基因位。基因位置由串的左向右计算,例如在串S=1101中,0的基因位置是3。基因位置对应于遗传学中的地点(Locus)。 9 ]- w3 B7 j8 Z . [( Z, \2 l$ c' s J& U' M+ {六、基因特征值(Gene Feature) * i' F" J; ]) `9 p8 ^1 v( V" a( u
1 h9 B, a- r4 q' m1 V在用串表示整数时,基因的特征值与二进制数的权一致;例如在串S=1011中,基因位置3中的1,它的基因特征值为2;基因位置1中的1,它的基因特征值为8。/ _3 s' U$ a+ B$ m
! m. s a; m$ u' R+ ?
七、串结构空间SS ]1 Q) Y9 W* U- A! c" ]8 h6 m9 o2 X$ S3 A" }# b' l, E; ?2 U
在串中,基因任意组合所构成的串的集合。基因操作是在结构空间中进行的。串结构空间对应于遗传学中的基因型(Genotype)的集合。$ T4 C# }8 z* K) G3 w0 H2 w
# a; b0 K4 F/ X6 [/ f1 ~# }' @9 A5 Z
八、参数空间SP ; ?- P3 t4 l7 b, \9 N
: e- q4 a# Z4 w: U这是串空间在物理系统中的映射,它对应于遗传学中的表现型(Phenotype)的集合。% b o/ a+ n) t4 G8 A+ ?# a
9 V$ Z+ t2 \8 x2 r! B6 b/ r九、非线性$ U/ ^% t) m. g( C2 ?) A- g
: b3 J$ y- R% y/ ?- r, C) [它对应遗传学中的异位显性(Epistasis) ; i0 k7 v" T+ l& b w, M 9 x+ b( B5 i2 m. }十、适应度(Fitness) ! i. V: l5 S9 c) |* t
$ F8 P/ C0 W k. ]. c) n
表示某一个体对于环境的适应程度。 $ D T6 d/ K: t2 W- m" P- X4 r+ X " K/ W" ~1 m6 f/ W遗传算法还有一些其它的概念,这些概念在介绍遗传算法的原理和执行过程时,再进行说明。 4 Z. J$ |- z5 q( F6 i - h7 d( x/ x! i" [) @4 r x; {3.2.2遗传算法的原理 l) l6 O4 m3 E1 q" Q& D
- O. g `4 G3 H6 ~6 v; O8 q遗传算法GA把问题的解表示成“染色体”,在算法中也即是以二进制编码的串。并且,在执行遗传算法之前,给出一群“染色体”,也即是假设解。然后,把这些假设解置于问题的“环境”中,并按适者生存的原则,从中选择出较适应环境的“染色体”进行复制,再通过交叉,变异过程产生更适应环境的新一代“染色体”群。这样,一代一代地进化,最后就会收敛到最适应环境的一个“染色体”上,它就是问题的最优解。 9 h- J/ @6 Z- U4 p$ r& G5 B: P) M5 C( ?$ H I" f/ ]* G9 \
一、遗传算法的目的 & T. o$ S0 e+ W* K. e2 c ; n0 q. T1 v. b8 G典型的遗传算法CGA(Canonical Genetic Algorithm)通常用于解决下面这一类的静态最优化问题: ; N& M7 n9 I" @ . ?1 d3 V- o# g! q) G& l; Z2 V考虑对于一群长度为L的二进制编码bi,i=1,2,…,n;有 4 l/ Z( L/ @3 M8 W9 P3 c, N) E % z1 N7 O& u, r9 ?3 ?- y/ Ybi∈{0,1}L (3-84) . `: U* e$ j5 p/ y. a9 S2 E
, _. B) Y6 ~% ~* r
给定目标函数f,有f(bi),并且 ) M% l9 U' @! ]% ~: I' Z: U D/ O8 X5 C/ S
0<F(BI)<∞< P> 9 Z, F6 i8 M' q; J1 U
0 A ?: j( T( s& o% x0 L同时7 L8 k* P4 x$ B6 h2 k! w2 o
$ [( k$ D) e! K2 [9 a$ H. [
f(bi)≠f(bi+1) & C# k8 L: g. K$ x# L
0 R7 F5 P8 z; `: S3 K
求满足下式 ! F- Y) q( h$ X) ~9 m % E$ c. O4 K8 b+ N; X2 smax{f(bi)|bi∈{0,1}L} & R3 e0 N- a9 t! s , Y ?5 `% M" y的bi。 3 v$ [; o$ f d$ Y1 h8 D" A/ c # ^3 L. ^$ \+ [* x( x) v' F5 Y很明显,遗传算法是一种最优化方法,它通过进化和遗传机理,从给出的原始解群中,不断进化产生新的解,最后收敛到一个特定的串bi处,即求出最优解。; b* H4 V( D2 w& _6 h0 k% v0 v u
) j) ?" V, k+ }4 u3 v Q' M+ o
二、遗传算法的基本原理 ; O6 u* w. g* T$ _( J5 r2 |* _ t* z3 H
长度为L的n个二进制串bi(i=1,2,…,n)组成了遗传算法的初解群,也称为初始群体。在每个串中,每个二进制位就是个体染色体的基因。根据进化术语,对群体执行的操作有三种: * ^7 X& q: N# W" U) e2 j + Q( U1 T+ B7 |4 [; O/ ^ h$ E! m1.选择(Selection) " h) x/ e# n% e3 s) o
' P. F6 [8 h3 o0 C% D0 i
这是从群体中选择出较适应环境的个体。这些选中的个体用于繁殖下一代。故有时也称这一操作为再生(Reproduction)。由于在选择用于繁殖下一代的个体时,是根据个体对环境的适应度而决定其繁殖量的,故而有时也称为非均匀再生(differential reproduction)。 & V7 n* D! ~6 l% s$ K) W8 J/ V 5 x w {9 v) T" O) y2.交叉(Crossover) 7 p* {3 b; ^' b# ?% z. O2 a+ d 9 |$ {6 _( }+ x- H/ L这是在选中用于繁殖下一代的个体中,对两个不同的个体的相同位置的基因进行交换,从而产生新的个体。) S" W8 t% ^ e, c0 B6 \6 W
6 Z& c& F# U/ i5 u, p* I' Y$ ?6 n" b3.变异(Mutation) / ]5 l7 r2 k8 L6 M$ K 6 i: y3 v1 r+ X ], z# S6 e, U+ P这是在选中的个体中,对个体中的某些基因执行异向转化。在串bi中,如果某位基因为1,产生变异时就是把它变成0;反亦反之。 ! m; v# B) }' H% Y, m% h8 Q2 p7 ~9 s% D x/ V/ Z
遗传算法的原理可以简要给出如下: 5 M# @2 f" P- M ) p6 B0 @& D; y1 Echoose an intial population " I. \ ^: ]2 O; _% I
% L! l, ~1 M7 r( g9 u# Ldetermine the fitness of each individual & t+ r1 ~; a1 F4 t8 @6 b- r7 Q' _
perform selection 7 q' q9 F* E! F% _, N; `, E5 @7 X* q2 x/ z) Z. u
repeat * z! R5 U/ ~* R! ] H4 A
, u0 v7 u; a4 _, r3 V, V perform crossover * G n: u8 |% |
9 B, B( T1 k/ `1 G2 P+ Q+ l perform mutation ( E" Q1 e _. j6 O $ |7 P8 p/ K U. D determine the fitness of each individual 8 t' J( G8 y3 E- U( b6 ]. B% r: T* n( h, G
perform selection $ M R6 u7 R8 m8 N& G
3 X0 E' j! j6 _/ K. k, h5 a选择一个群体,即选择一个串或个体的集合bi,i=1,2,...n。这个初始的群体也就是问题假设解的集合。一般取n=30-160。 ' o( s+ q- C. p' j. H0 M' d8 I$ u& d7 n! a: M; L, q0 G
通常以随机方法产生串或个体的集合bi,i=1,2,...n。问题的最优解将通过这些初始假设解进化而求出。, L+ S! w7 f' w, f
1 Q9 d; z8 p# Z% c
2.选择 3 b' Z5 s9 w, B1 m) ~% u( D# E9 b6 n3 x$ c( j0 Z
根据适者生存原则选择下一代的个体。在选择时,以适应度为选择原则。适应度准则体现了适者生存,不适应者淘汰的自然法则。! C' c6 ?0 P7 ]1 a. ~
8 F4 B1 L( e6 y给出目标函数f,则f(bi)称为个体bi的适应度。以 % T) q* ^( l0 n7 Z9 W: J7 B( D2 k( B' L8 D% g( r
/ A( G# d# [! t * p* k" S. O) o: Y$ G2 J为选中bi为下一代个体的次数。: t3 H" a6 F$ C" E+ J" g
$ x# l% w, L' b6 q5 B4 i* _, |; o% D
显然.从式(3—86)可知: . ]& {2 p# Y7 f' V' z8 z% h1 a1 P2 M: u
(1)适应度较高的个体,繁殖下一代的数目较多。 2 h( s* c5 G# F+ {) O8 K . {, p e. |2 @7 A(2)适应度较小的个体,繁殖下一代的数目较少;甚至被淘汰。0 Q3 _# Y; U9 l, o1 J- z
( |& k4 d7 m( V2 A" w
这样,就产生了对环境适应能力较强的后代。对于问题求解角度来讲,就是选择出和最优解较接近的中间解。4 ~4 w0 l/ s# E( w4 F2 A
4 S" Q* c5 M8 D, U3 E; F
3.交叉' c5 N4 s O# R3 {3 Z& {* x
对于选中用于繁殖下一代的个体,随机地选择两个个体的相同位置,按交叉概率P。在选中的位置实行交换。这个过程反映了随机信息交换;目的在于产生新的基因组合,也即产生新的个体。交叉时,可实行单点交叉或多点交叉。 $ O+ C, w! B/ K) t- d4 B7 W 8 b# a) A- d: {. V+ X* b% {例如有个体 5 o; |+ a, j8 c: S0 Y; |3 G$ O0 X9 ^& K4 f7 U* {
S1=100101 " s) ]) G: K2 V+ X, T( Z S% o2 z7 ] ' m3 I, C# o! Q% b$ L! }S2=010111 , B- \( ^& H6 `( g; K& U+ D7 b8 B" K, s6 ]+ S, q3 X
选择它们的左边3位进行交叉操作,则有, H" I6 L4 L, _# {- X
+ |/ p& o* V+ IS1=010101 % f1 T0 |! r8 M2 |4 f( z7 C: v4 H
S2=100111 ( b4 ]3 I8 w* n" e3 f |" ]- x( U, w% J/ D% [
一般而言,交 婊显譖。取值为0.25—0.75。+ Y3 Z) Q B9 Q% d- m
6 }& z; x5 Z S4.变异 1 h5 x6 p' }# S7 S + o3 @7 m( E$ P4 P7 J根据生物遗传中基因变异的原理,以变异概率Pm对某些个体的某些位执行变异。在变异时,对执行变异的串的对应位求反,即把1变为0,把0变为1。变异概率Pm与生物变异极小的情况一致,所以,Pm的取值较小,一般取0.01-0.2。! T& p- [0 m9 K* Q+ [