生物的进化是一个奇妙的优化过程,它通过选择淘汰,突然变异,基因遗传等规律产生适应环境变化的优良物种。遗传算法是根据生物进化思想而启发得出的一种全局优化算法。 0 d$ a& t) b& z# M6 R9 y" q# S- d5 f3 X
遗传算法的概念最早是由Bagley J.D在1967年提出的;而开始遗传算法的理论和方法的系统性研究的是1975年,这一开创性工作是由Michigan大学的J.H.Holland所实行。当时,其主要目的是说明自然和人工系统的自适应过程。 : D' W7 R* }5 ^& G# Z9 x5 m# v" _0 w5 C9 c) V
遗传算法简称GA(Genetic Algorithm),在本质上是一种不依赖具体问题的直接搜索方法。遗传算法在模式识别、神经网络、图像处理、机器学习、工业优化控制、自适应控制、生物科学、社会科学等方面都得到应用。在人工智能研究中,现在人们认为“遗传算法、自适应系统、细胞自动机、混沌理论与人工智能一样,都是对今后十年的计算技术有重大影响的关键技术”。9 u# G- f% p' C0 y) S1 E9 p
4 [; `, u! f+ h [1 Z3.2.1 遗传算法的基本概念 ' Z3 G. f9 a/ G8 u0 N% v5 A # D+ d; y' Z/ K1 a遗传算法的基本思想是基于Darwin进化论和Mendel的遗传学说的。9 b) U2 A' p+ `+ N0 P
+ H/ y6 f( q; M- G, ~4 L+ cDarwin进化论最重要的是适者生存原理。它认为每一物种在发展中越来越适应环境。物种每个个体的基本特征由后代所继承,但后代又会产生一些异于父代的新变化。在环境变化时,只有那些熊适应环境的个体特征方能保留下来。 L, d' ?8 n* V6 ?1 l t' r S9 A' H
Mendel遗传学说最重要的是基因遗传原理。它认为遗传以密码方式存在细胞中,并以基因形式包含在染色体内。每个基因有特殊的位置并控制某种特殊性质;所以,每个基因产生的个体对环境具有某种适应性。基因突变和基因杂交可产生更适应于环境的后代。经过存优去劣的自然淘汰,适应性高的基因结构得以保存下来。 % ^' n, O8 `1 T. s" q 0 f& }9 t' S( c; Y' E! v8 Y6 Y% ~1 K由于遗传算法是由进化论和遗传学机理而产生的直接搜索优化方法;故而在这个算法中要用到各种进化和遗传学的概念。这些概念如下:2 V5 L3 W2 ]+ t% ]3 R$ }
# |6 e- b# w/ Z$ v! |
一、串(String) ' G6 v& v! Q4 ^. \
9 m; N9 D: B. f( P6 p
它是个体(Individual)的形式,在算法中为二进制串,并且对应于遗传学中的染色体(Chromosome)。 ' H6 @3 @2 h3 w1 q! B. q" h e2 Q. ] U/ g6 z; W: F) A
二、群体(Population) 6 {4 z0 X# m% ?5 s' [' O
, ?& K$ z6 k. z& h5 O5 E
个体的集合称为群体,串是群体的元素 ! ~' a7 @# H7 f. E! c% h, O& H9 Y" W+ d3 R9 a1 v
三、群体大小(Population Size) 1 \8 f) B# q/ }/ u! i, R" `' _ ! S2 z1 O9 \9 {0 m( w5 _4 l$ X在群体中个体的数量称为群体的大小。 Y: B$ T7 z$ ]2 O! N/ I" t; H8 u$ t8 C, s' w
四、基因(Gene) 9 r( H9 b+ G9 n4 G 6 x$ V# }; P( D, d7 d基因是串中的元素,基因用于表示个体的特征。例如有一个串S=1011,则其中的1,0,1,1这4个元素分别称为基因。它们的值称为等位基因(Alletes)。 0 y1 |, q7 T: e+ _0 ~1 x5 I $ ?9 R& s% _; D五 、基因位置(Gene Position) " Z1 M4 i9 [# P- `& ]- a
+ P$ j$ N2 s2 ~" S- I一个基因在串中的位置称为基因位置,有时也简称基因位。基因位置由串的左向右计算,例如在串S=1101中,0的基因位置是3。基因位置对应于遗传学中的地点(Locus)。 - F6 B. p8 q' m; a! c' G 4 @) X, c; L. a! b六、基因特征值(Gene Feature) 8 F' ~' [9 \# K8 T7 b8 b
2 P* r: @. b+ s% M& w在用串表示整数时,基因的特征值与二进制数的权一致;例如在串S=1011中,基因位置3中的1,它的基因特征值为2;基因位置1中的1,它的基因特征值为8。/ S' C; V3 a: J) t9 x8 R
) P! c& `1 N# _. ?& ^
七、串结构空间SS ) l4 G2 I- x0 N2 D3 T+ S2 J4 w5 q0 i. D# s+ J
在串中,基因任意组合所构成的串的集合。基因操作是在结构空间中进行的。串结构空间对应于遗传学中的基因型(Genotype)的集合。" _8 ^) B# U- P$ h& C$ v, h- C
) N# v2 `8 B- P' [
八、参数空间SP ( @" p. g3 p. S0 f8 a; m1 d
2 b4 e9 w8 S$ |& O7 e/ p2 ^
这是串空间在物理系统中的映射,它对应于遗传学中的表现型(Phenotype)的集合。 8 z& f7 E. R5 M* y+ d9 ~6 S 7 z" _6 {* \& l* [九、非线性 4 o4 R# q9 W H" \8 E, n' O# ^* y8 s
它对应遗传学中的异位显性(Epistasis) 8 e6 Q9 t a0 }- j, p; d/ B2 H
% a1 T# Z, a' u- x遗传算法还有一些其它的概念,这些概念在介绍遗传算法的原理和执行过程时,再进行说明。8 l: ?, Y* I, p& s* l# ?8 O
, G P0 t( _9 |3 [, ~3.2.2遗传算法的原理 ; V7 P" P2 L' R+ l; H+ F z" D2 O$ z; W+ ~7 z4 L
遗传算法GA把问题的解表示成“染色体”,在算法中也即是以二进制编码的串。并且,在执行遗传算法之前,给出一群“染色体”,也即是假设解。然后,把这些假设解置于问题的“环境”中,并按适者生存的原则,从中选择出较适应环境的“染色体”进行复制,再通过交叉,变异过程产生更适应环境的新一代“染色体”群。这样,一代一代地进化,最后就会收敛到最适应环境的一个“染色体”上,它就是问题的最优解。 & r `! T6 W1 Q0 s; x2 ? $ v5 c8 M) U- [; U/ q一、遗传算法的目的& J& D- v/ q# z7 M- g
% C- x8 _8 Z; X- w- a% i, c典型的遗传算法CGA(Canonical Genetic Algorithm)通常用于解决下面这一类的静态最优化问题:$ B: w$ E+ j8 B0 z
7 P y) i+ T1 Z4 `, a) l2 s考虑对于一群长度为L的二进制编码bi,i=1,2,…,n;有$ E7 ^9 r" E% y% f5 D7 ~# ]
' W0 k2 G, P% r# P( A
bi∈{0,1}L (3-84) P, N7 k0 W7 P: u
0 s) n: L2 \: E& Q给定目标函数f,有f(bi),并且6 ? D8 q* c, z
3 ~/ B9 P: D! q0 ?# S, A0<F(BI)<∞< P> ! @- L3 \: h3 ^4 ^3 @4 y8 D2 s1 I f7 g' f$ ^# Z
同时( j; ^- d6 V6 R/ k7 W: p# P
* t$ K# {4 r l1 I
f(bi)≠f(bi+1) ; b0 f! e* l8 C' I + D" e( b) n# }1 y$ Y" h求满足下式6 p" \) e. V) W5 h H* d
, B- ?0 U- A9 t& ~max{f(bi)|bi∈{0,1}L} + g0 r. E; R8 B! K7 J. S& h, l6 }1 N
的bi。# d6 d0 _# f6 G. Z$ s
, m8 a* Z7 J$ Q! R4 E- u
很明显,遗传算法是一种最优化方法,它通过进化和遗传机理,从给出的原始解群中,不断进化产生新的解,最后收敛到一个特定的串bi处,即求出最优解。: l* D$ N$ l, l% J6 T
) l! a* \ @7 N' ^( n0 x! A
二、遗传算法的基本原理0 w( K4 o$ D$ O% p) D/ X
, N8 W) M7 _. c. H1 S- |+ a
长度为L的n个二进制串bi(i=1,2,…,n)组成了遗传算法的初解群,也称为初始群体。在每个串中,每个二进制位就是个体染色体的基因。根据进化术语,对群体执行的操作有三种: c8 x+ v: T" V3 B ' y6 U& n, u+ {+ n' j. ^1.选择(Selection) ( J0 m5 h3 I, R* J) L7 V9 _ 7 z, Q( E$ w4 o1 I这是从群体中选择出较适应环境的个体。这些选中的个体用于繁殖下一代。故有时也称这一操作为再生(Reproduction)。由于在选择用于繁殖下一代的个体时,是根据个体对环境的适应度而决定其繁殖量的,故而有时也称为非均匀再生(differential reproduction)。 7 ^3 j2 U' p: }) U( E * z. L) t4 [% d) z6 R2.交叉(Crossover) 9 R9 v, J6 ^' d( z3 o1 W
+ V1 \; `3 m: a- ]* r x" t+ R m
这是在选中用于繁殖下一代的个体中,对两个不同的个体的相同位置的基因进行交换,从而产生新的个体。 9 j/ z) W* X5 b4 w5 t/ E T) x |& x" I) y; {3.变异(Mutation) 6 z- c: D& \3 \3 a . L: A3 @) Z( ?9 Z; \5 _这是在选中的个体中,对个体中的某些基因执行异向转化。在串bi中,如果某位基因为1,产生变异时就是把它变成0;反亦反之。 2 M& d* d5 ] O3 y* _$ b, L8 ~; X E# Q- G
遗传算法的原理可以简要给出如下:' s1 T# w3 n+ D. Q7 u8 t3 y
- O1 U3 l' i4 U! Zchoose an intial population * P3 w2 i! M P. @1 r, H7 E 4 |6 K- s- A5 O: C, gdetermine the fitness of each individual 6 f) J( p, S8 ^4 o
$ d9 k! x6 K$ ~: ]2 Nperform selection $ b! G$ t+ X( C0 t+ P) j Z% N5 h. u2 p& e! f0 T* T
repeat [' R2 ~" A* [2 g
1 F1 V6 ?" O& N/ ]
perform crossover $ s& |& {! j/ u. P) b2 e% M$ ~4 t
perform mutation , L4 S; J3 V0 e5 J9 q& N6 R+ ]
& J& C8 o$ G3 R3 Y4 a8 n determine the fitness of each individual ( X0 c& F2 i( u ?) H
" z I& Q6 C1 Y! b' b perform selection $ i3 M# P1 T1 g/ P- U6 E& g, F0 h' ^+ Z! \/ F& H
until some stopping criterion applies . J* N) _* R2 K* }; e# c/ a
4 A* \1 Z9 C+ }+ w3 W这里所指的某种结束准则一般是指个体的适应度达到给定的阀值;或者个体的适应度的变化率为零。 & L- j" ?! C, \+ F% `1 f三、遗传算法的步骤和意义 . ^; ~. ^" [4 R8 ~" H0 p* z* O9 P
1.初始化 # t: {4 N! Z- Y$ ~& }; b- o7 d! M; o: V
选择一个群体,即选择一个串或个体的集合bi,i=1,2,...n。这个初始的群体也就是问题假设解的集合。一般取n=30-160。 1 R1 X5 t& \# Y$ a( {# h" [2 E, H( q* F- l" f
通常以随机方法产生串或个体的集合bi,i=1,2,...n。问题的最优解将通过这些初始假设解进化而求出。8 }- e e% W* t. |/ [( S
9 E p% W4 F; F: k q; o6 ^2.选择 # n5 {& w7 v& Y' j3 R! | k* c8 a; t7 S1 V" B* `根据适者生存原则选择下一代的个体。在选择时,以适应度为选择原则。适应度准则体现了适者生存,不适应者淘汰的自然法则。, q T1 S- M) j! }( f
& ]& I. I3 A5 X/ R) c/ y/ {& E1 o( m
给出目标函数f,则f(bi)称为个体bi的适应度。以 . `. O4 q1 U% m. J% B4 v6 A( D# j% J7 r9 Q
! S7 K( l7 e, ?" H7 d' U. C. _ 4 ^* |9 j! _, c为选中bi为下一代个体的次数。 " ?' _& N! A% K 7 s, W, J. W# ~% n: C4 D显然.从式(3—86)可知: ( u# W5 q) h: q, q+ n$ P6 @) g/ s! l7 F# ^) _
(1)适应度较高的个体,繁殖下一代的数目较多。 3 v: `# ]$ x. M) E5 G& W5 |! z$ U# K+ J
(2)适应度较小的个体,繁殖下一代的数目较少;甚至被淘汰。1 G/ i# d5 \! n& }% C! G
3 T; Z9 D6 D$ s- M
这样,就产生了对环境适应能力较强的后代。对于问题求解角度来讲,就是选择出和最优解较接近的中间解。* s1 P& s% D' _* j9 ]: q