) j1 Q) B5 F+ L; h% f根据适者生存原则选择下一代的个体。在选择时,以适应度为选择原则。适应度准则体现了适者生存,不适应者淘汰的自然法则。0 n- R" V! @! Z0 |# P; \5 l, S
( v3 M* d3 K6 M3 H0 S, y$ A+ P
给出目标函数f,则f(bi)称为个体bi的适应度。以 * j8 {- d; ^* @0 X! d( C z$ ^ 3 g) d1 d) K, l( ?' B . e( V5 g) ?( B; A' Y+ t3 q3 ?0 ?
' D( I0 n: O) N/ a
为选中bi为下一代个体的次数。' F' j" m1 S$ D1 w: N! Z* {: m7 m
# h% |' W: U4 u+ K" H4 q
显然.从式(3—86)可知: Z+ U) g- D$ W$ \/ V2 k k" A/ f. L' @* ~6 x) [( D: Z(1)适应度较高的个体,繁殖下一代的数目较多。 , T- L+ f: V2 P; C 9 L2 Q2 p9 \) k) l(2)适应度较小的个体,繁殖下一代的数目较少;甚至被淘汰。 W" a) H' s3 c R5 c2 X9 m4 H# C/ D5 P+ A; o T
这样,就产生了对环境适应能力较强的后代。对于问题求解角度来讲,就是选择出和最优解较接近的中间解。9 S _; s$ w$ |. ~ J3 ~0 o! h! c
) i3 b! I, b$ g
3.交叉 * @4 y' D9 `! F9 R" ^( T对于选中用于繁殖下一代的个体,随机地选择两个个体的相同位置,按交叉概率P。在选中的位置实行交换。这个过程反映了随机信息交换;目的在于产生新的基因组合,也即产生新的个体。交叉时,可实行单点交叉或多点交叉。3 j6 s, Y/ I8 f2 F( o: ]/ M+ n
" S0 |, l- C+ p& R. g, j2 ~例如有个体3 m) ~6 P. r- y6 s! P L
* m0 N: ?1 Q1 Z% Y4 G$ o
S1=100101 ) m/ Q% J) N( [3 B7 X
3 P& b: ^5 p5 j! hS2=010111 - Q5 B) o( f- Q9 s. J; x* \" f( ^! R& Q7 m8 |" m( }% p
选择它们的左边3位进行交叉操作,则有- e" Q: y1 q1 D# J8 g
8 r4 h8 l/ e* A. {* G: c
S1=010101 0 h) ~: Z, @+ `" a7 T+ Y
% j0 h5 [/ G. [' i, G4 R+ P, LS2=100111 & ~: Y* n& q1 {: d: {6 @
9 v: X7 i. e6 T9 W- a
一般而言,交 婊显譖。取值为0.25—0.75。' I( M: v6 R- J( ^3 \. v0 Z
9 f; }2 B+ w) `- n7 T
4.变异 : E$ l" V; y6 F, n' y( T. P2 |6 Y; ^! d- L6 _9 A- ~- M9 V
根据生物遗传中基因变异的原理,以变异概率Pm对某些个体的某些位执行变异。在变异时,对执行变异的串的对应位求反,即把1变为0,把0变为1。变异概率Pm与生物变异极小的情况一致,所以,Pm的取值较小,一般取0.01-0.2。8 Z9 ?) M4 C% \/ a1 x; ^9 y3 K
! I+ E0 A' M3 ~$ g例如有个体S=101011。 $ z, H3 ?* x5 T6 L, V5 P! M) f6 E3 c8 R
对其的第1,4位置的基因进行变异,则有2 w0 L6 b6 ^! a+ @
8 j0 @0 A+ c' L e/ { j. @S'=001111 # S( w7 g. U9 l' G2 B; T
0 P) b& F- A+ i1 F
单靠变异不能在求解中得到好处。但是,它能保证算法过程不会产生无法进化的单一群体。因为在所有的个体一样时,交叉是无法产生新的个体的,这时只能靠变异产生新的个体。也就是说,变异增加了全局优化的特质。0 y% {3 W( C6 B1 [% C
P! K1 V8 f+ C4 B* j( V2 w
5.全局最优收敛(Convergence to the global optimum) . l! v+ a4 \% ]% q! x $ d. ^ k3 t! F, f' t当最优个体的适应度达到给定的阀值,或者最优个体的适应度和群体适应度不再上升时,则算法的迭代过程收敛、算法结束。否则,用经过选择、交叉、变异所得到的新一代群体取代上一代群体,并返回到第2步即选择操作处继续循环执行。 ! I7 Q$ f" n' @! n! b* q- R# s/ J( r5 c* T9 }: R" q3 e
图3—7中表示了遗传算法的执行过程。; f: L {( G) F3 n
7 ~0 s$ [4 B& v8 b' j$ p
! B# x8 p8 p- p6 `
+ b. g/ s) Y" T
5 x0 @. k; w' B) t
图3-7 遗传算法原理 . J) q2 b! }- b3 f3 s. C" m7 R. Y& ?0 T5 @% u
3.2.3遗传算法的应用 7 @5 \! Z4 X- E1 M& L1 v5 S$ F+ Q) G7 N0 x' H5 }/ P0 C* F
遗传算法在很多领域都得到应用;从神经网络研究的角度上考虑,最关心的是遗传算法在神经网络的应用。在遗传算法应用中,应先明确其特点和关键问题,才能对这种算法深入了解,灵活应用,以及进一步研究开发。 # q1 P: o' f% E, C! z1 h, @( W. P: {4 c' ]+ y
一、遗传算法的特点" ?$ b% K9 E: O1 }8 l6 F2 Q Y- t* @
0 p s! K! J3 }! g! q1.遗传算法从问题解的中集开始嫂索,而不是从单个解开始。 " z+ Y: f- \% v( @% d9 D" z) f& Q3 A% W. u: B. o; s( n
这是遗传算法与传统优化算法的极大区别。传统优化算法是从单个初始值迭代求最优解的;容易误入局部最优解。遗传算法从串集开始搜索,复盖面大,利于全局择优。4 U2 E8 n. X+ [& k
+ z. @3 q2 s( @1 v( B* ~2.遗传算法求解时使用特定问题的信息极少,容易形成通用算法程序。 4 t- r7 O! r/ c$ J : c4 N u% J2 j: O8 J& h由于遗传算法使用适应值这一信息进行搜索,并不需要问题导数等与问题直接相关的信息。遗传算法只需适应值和串编码等通用信息,故几乎可处理任何问题。9 l- m, R8 m# Q _
3 {- A8 \" ~! U# F
3.遗传算法有极强的容错能力 8 X- Y1 E( U* t+ Y. p' N: I I1 e! G% d) U遗传算法的初始串集本身就带有大量与最优解甚远的信息;通过选择、交叉、变异操作能迅速排除与最优解相差极大的串;这是一个强烈的滤波过程;并且是一个并行滤波机制。故而,遗传算法有很高的容错能力。7 l1 [( P1 o4 _6 @; G
0 g4 @) I3 Q6 H- @; e! o8 H4.遗传算法中的选择、交叉和变异都是随机操作,而不是确定的精确规则。3 W( q* \0 K$ ^5 W! i7 Y/ {$ I
$ H! P, Q- p: a4 Q
这说明遗传算法是采用随机方法进行最优解搜索,选择体现了向最优解迫近,交叉体现了最优解的产生,变异体现了全局最优解的复盖。 ; E8 V5 w$ ^' k2 E( U$ u' u+ i! E: I, j k. V. c l$ Y0 g
5.遗传算法具有隐含的并行性( _- o) t a: v6 S, x
2 g+ V9 U, G3 I9 S( s
遗传算法的基础理论是图式定理。它的有关内容如下: 7 j6 V3 h8 x5 }: w 3 ~8 X5 N7 m4 v- j/ B(1)图式(Schema)概念! ?0 D* u" G. \+ l7 F* z) m
5 R2 _. o$ F- i7 ]$ I% l2 P
一个基因串用符号集{0,1,*}表示,则称为一个因式;其中*可以是0或1。例如:H=1xx 0 x x是一个图式。 / n- I6 Z- A1 a/ e3 R2 C, n, R( y ( X* v5 c7 d$ X# \0 @5 a, W(2)图式的阶和长度( U9 v7 W- W7 g& j9 ~5 j
: \1 o: H$ m8 S, n7 X% x图式中0和1的个数称为图式的阶,并用0(H)表示。图式中第1位数字和最后位数字间的距离称为图式的长度,并用δ(H)表示。对于图式H=1x x0x x,有0(H)=2,δ(H)=4。 0 N/ B8 Y" w/ }( T2 n; B. a m- Z8 G, O' E
(3)Holland图式定理 3 r" T7 T* F A3 A# r1 y! {6 C. m1 f; A+ E$ Y, f
低阶,短长度的图式在群体遗传过程中将会按指数规律增加。当群体的大小为n时,每代处理的图式数目为0(n3)。- ~& ~7 H9 i8 [5 h! O7 f! F
4 c" _5 X2 y! r
遗传算法这种处理能力称为隐含并行性(Implicit Parallelism)。它说明遗传算法其内在具有并行处理的特质。 i+ p: c: \3 X. h
e% f3 [) O# X$ b1 a( [1 h1.初始化* z& a! Y L; S. V- R# t1 B: |
7 B8 l' v1 F" L$ Y
选择一个群体,即选择一个串或个体的集合bi,i=1,2,...n。这个初始的群体也就是问题假设解的集合。一般取n=30-160。- v1 I7 v9 \2 f; F# J
% A& s" u3 D g) S通常以随机方法产生串或个体的集合bi,i=1,2,...n。问题的最优解将通过这些初始假设解进化而求出。3 a' [1 M9 `+ ]/ t% D' i1 f$ w
; \2 C; s& @) w
2.选择 8 Y- _& j; F$ f ' A* M, B W) U8 t* l根据适者生存原则选择下一代的个体。在选择时,以适应度为选择原则。适应度准则体现了适者生存,不适应者淘汰的自然法则。1 E ~6 `' P! h" g8 a' r
% `8 `4 _; B7 M, b n给出目标函数f,则f(bi)称为个体bi的适应度。以8 _+ c0 }& v9 k5 v& ^% q; z# B
! V* c- N4 u' V0 H4 g
, a4 m6 A2 r; }1 p(2)适应度较小的个体,繁殖下一代的数目较少;甚至被淘汰。 , H& T8 B- M1 J& F3 N; @5 J- H J# m$ _7 j' F$ ^
这样,就产生了对环境适应能力较强的后代。对于问题求解角度来讲,就是选择出和最优解较接近的中间解。. p+ n, Z6 U' E; H1 V) ]
7 T h' d- t% J( @; E9 B6 ]* w* n
3.交叉) j3 {: F: ^/ K( C
对于选中用于繁殖下一代的个体,随机地选择两个个体的相同位置,按交叉概率P。在选中的位置实行交换。这个过程反映了随机信息交换;目的在于产生新的基因组合,也即产生新的个体。交叉时,可实行单点交叉或多点交叉。 ! j8 ~ U( u, p x2 Q 6 {5 e3 i' s* u" t例如有个体 * O/ n& x0 [ Y: P+ N- V% O / V, A9 J1 |* q% s2 sS1=100101 5 b. H, E2 |" |$ F- N- L( E U0 f& Q5 G9 c E6 GS2=010111 ! q- B% a1 l* m# ? Y
6 y2 ], T1 `* _* o& _5 D选择它们的左边3位进行交叉操作,则有+ \$ W) }4 U. K x
0 y y" C0 C- e! {4 V$ x2 cS1=010101 : W B: q' d# @" p
% ]3 S/ P# I; @0 ~; d; Q
S2=100111 ( w' f( x5 t# E& |' Z' j% R$ @4 x* o- [5 I
一般而言,交 婊显譖。取值为0.25—0.75。 7 ]0 V8 d3 K3 u D b / p, |6 p ~ J6 w0 `4.变异8 p; q7 [% Z! F- a6 B
1 w0 f9 b+ l- }1 a* m& e! e, c7 I( X根据生物遗传中基因变异的原理,以变异概率Pm对某些个体的某些位执行变异。在变异时,对执行变异的串的对应位求反,即把1变为0,把0变为1。变异概率Pm与生物变异极小的情况一致,所以,Pm的取值较小,一般取0.01-0.2。5 f/ b D) v# Z ]4 z
6 X6 l5 u& _ p* s. E例如有个体S=101011。 3 M& |- r8 T! } H3 ]. h5 [" M5 A* i: [! l5 k
对其的第1,4位置的基因进行变异,则有 $ ], n2 T$ O$ m# X9 q3 o" Z& R . \& e: I- i/ `; x- [2 nS'=001111 : f% ^! |' ?0 \$ G5 S 6 s$ Y, w0 h' b单靠变异不能在求解中得到好处。但是,它能保证算法过程不会产生无法进化的单一群体。因为在所有的个体一样时,交叉是无法产生新的个体的,这时只能靠变异产生新的个体。也就是说,变异增加了全局优化的特质。 N7 L9 @, X2 j. G
: k9 L3 ~0 S4 ?1 G( @5.全局最优收敛(Convergence to the global optimum) % r0 C5 ^: x" ~9 f2 D7 f7 U
7 _# S% ]+ ?* T& B( V& u
当最优个体的适应度达到给定的阀值,或者最优个体的适应度和群体适应度不再上升时,则算法的迭代过程收敛、算法结束。否则,用经过选择、交叉、变异所得到的新一代群体取代上一代群体,并返回到第2步即选择操作处继续循环执行。( V$ N- x5 {4 [+ j0 U% [+ T/ ~
; _6 _8 ?& V4 p' k3 Y0 ?
图3—7中表示了遗传算法的执行过程。- c: }2 E( h$ @/ \, G5 A
w) ~/ d- x7 T- N! b/ v
4 {9 B; J0 k- j9 J5 a! k D : `# m! e- x# ?# M* }- c 2 w1 J) r; C$ R$ W+ L图3-7 遗传算法原理- R( [, e# t6 W; F1 Q
5 K+ }/ r1 v$ j# g' t& i# x
3.2.3遗传算法的应用* r# H, u/ J% k
7 l7 ?% O; s) T
遗传算法在很多领域都得到应用;从神经网络研究的角度上考虑,最关心的是遗传算法在神经网络的应用。在遗传算法应用中,应先明确其特点和关键问题,才能对这种算法深入了解,灵活应用,以及进一步研究开发。 ! l* o8 ~2 |" I/ s : }% w) A! W0 D1 i* j; O! t) c一、遗传算法的特点* J- \+ P0 ~* O/ t
; d9 ^" G- e3 R( u) E/ h" \1 Z/ E
1.遗传算法从问题解的中集开始嫂索,而不是从单个解开始。 # T9 B, g7 V ?+ G ?9 y1 {. F3 J& d! t' m
这是遗传算法与传统优化算法的极大区别。传统优化算法是从单个初始值迭代求最优解的;容易误入局部最优解。遗传算法从串集开始搜索,复盖面大,利于全局择优。 0 L) t! a- ]& l. ~5 @7 D: P . q. f0 B) L5 [- x$ P2.遗传算法求解时使用特定问题的信息极少,容易形成通用算法程序。 & F2 T4 d" c5 k& l; B% } : a0 j* O/ O( E2 p4 i由于遗传算法使用适应值这一信息进行搜索,并不需要问题导数等与问题直接相关的信息。遗传算法只需适应值和串编码等通用信息,故几乎可处理任何问题。9 ~' \( G& d" c0 [