TA的每日心情 | 慵懒 2017-6-1 21:49 |
---|
签到天数: 6 天 连续签到: 1 天 [LV.2]偶尔看看I 累计签到:6 天 连续签到:1 天
|
马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
生物的进化是一个奇妙的优化过程,它通过选择淘汰,突然变异,基因遗传等规律产生适应环境变化的优良物种。遗传算法是根据生物进化思想而启发得出的一种全局优化算法。+ @1 f& @ Q0 d( K5 J
' j) O) A9 V3 a5 e- G
遗传算法的概念最早是由Bagley J.D在1967年提出的;而开始遗传算法的理论和方法的系统性研究的是1975年,这一开创性工作是由Michigan大学的J.H.Holland所实行。当时,其主要目的是说明自然和人工系统的自适应过程。7 ^2 G3 h: N4 q, w3 |
: o0 c8 I5 k8 M3 J5 B# B: J6 g9 P
遗传算法简称GA(Genetic Algorithm),在本质上是一种不依赖具体问题的直接搜索方法。遗传算法在模式识别、神经网络、图像处理、机器学习、工业优化控制、自适应控制、生物科学、社会科学等方面都得到应用。在人工智能研究中,现在人们认为“遗传算法、自适应系统、细胞自动机、混沌理论与人工智能一样,都是对今后十年的计算技术有重大影响的关键技术”。
) e- P9 r. H1 _4 U. P, j
0 J" m) a+ T. A0 A" J+ \3.2.1 遗传算法的基本概念
, c: Q* o8 s0 Y9 ?* \0 Z$ ~3 }6 N% @ s* b8 g8 _# s
遗传算法的基本思想是基于Darwin进化论和Mendel的遗传学说的。
+ A0 i9 ~+ o2 O8 z4 J& m R+ `8 a9 W% g' e, D! {, X
Darwin进化论最重要的是适者生存原理。它认为每一物种在发展中越来越适应环境。物种每个个体的基本特征由后代所继承,但后代又会产生一些异于父代的新变化。在环境变化时,只有那些熊适应环境的个体特征方能保留下来。
* ?5 Q/ R5 J6 {$ i5 o1 W
+ H* O [- k1 Q5 o" Z% e% uMendel遗传学说最重要的是基因遗传原理。它认为遗传以密码方式存在细胞中,并以基因形式包含在染色体内。每个基因有特殊的位置并控制某种特殊性质;所以,每个基因产生的个体对环境具有某种适应性。基因突变和基因杂交可产生更适应于环境的后代。经过存优去劣的自然淘汰,适应性高的基因结构得以保存下来。! p5 f I0 X8 n5 b
% A5 v+ b: C7 T$ @
由于遗传算法是由进化论和遗传学机理而产生的直接搜索优化方法;故而在这个算法中要用到各种进化和遗传学的概念。这些概念如下:
9 C! q* g4 C4 n& t2 Z. {
$ ?8 {- v1 ~5 L! I一、串(String)
- c( Q% y$ |. t7 {, b" k
& l( v, u K/ P0 S' [它是个体(Individual)的形式,在算法中为二进制串,并且对应于遗传学中的染色体(Chromosome)。7 s3 r' l# m9 ]6 ~2 n# Z" X
* v; B3 y0 {$ a; _( W二、群体(Population)
; Y6 E. r5 F# u" T' ~8 C: C
& P! f' k+ X$ u! D8 f( v个体的集合称为群体,串是群体的元素" y- t C1 N9 S: I: A
2 c' @' T# S- m' x5 m9 U% |
三、群体大小(Population Size) 5 h1 e( P' Y$ f* n# J, E. e' { S
% p: _1 U, K. w' n$ z" q* A3 s, M% a2 O
在群体中个体的数量称为群体的大小。
5 a4 Y; U1 U9 w9 w4 ?: D% z, `! m0 y! y2 F0 o9 f! f6 r
四、基因(Gene)
0 ^) S! }$ c6 m$ p! u: Z, N- o' j1 H, j( E
基因是串中的元素,基因用于表示个体的特征。例如有一个串S=1011,则其中的1,0,1,1这4个元素分别称为基因。它们的值称为等位基因(Alletes)。: ~- P& A0 m/ y" z, O; C3 q
$ k* E8 n' z1 Y$ b$ k五 、基因位置(Gene Position)
3 P+ @$ v2 z L8 P4 T7 c$ [3 ^' E( U' S6 b* C9 Z7 D. l
一个基因在串中的位置称为基因位置,有时也简称基因位。基因位置由串的左向右计算,例如在串S=1101中,0的基因位置是3。基因位置对应于遗传学中的地点(Locus)。
b2 U$ Z z9 o$ m6 e
( J1 Y9 e* V: o1 T' y/ ?: U5 j2 s; N六、基因特征值(Gene Feature)
6 {( }3 F$ Q7 ]9 @$ A$ i- i; |- \8 ]) x9 O$ ?% C( }
在用串表示整数时,基因的特征值与二进制数的权一致;例如在串S=1011中,基因位置3中的1,它的基因特征值为2;基因位置1中的1,它的基因特征值为8。; ^0 l# G. A5 Z% X' l7 F
) C6 J; j6 ?! |# A0 z七、串结构空间SS
/ h1 `& s0 \* g- q. J) C2 Y7 v1 s1 a" v
在串中,基因任意组合所构成的串的集合。基因操作是在结构空间中进行的。串结构空间对应于遗传学中的基因型(Genotype)的集合。
* r1 D' Y. w; J- \. v& `1 \& m1 a# h/ i8 I: |
八、参数空间SP & [( Q# C+ B0 \5 z0 I
. G4 Q$ Z' F6 ?( Q: g这是串空间在物理系统中的映射,它对应于遗传学中的表现型(Phenotype)的集合。9 C2 A* ?. m* ]& Y, z1 ^% v5 ]
$ ]& t! f! J5 q* F1 H
九、非线性
4 A8 }, h8 D4 U; I3 I! g# p$ H. j* z9 M+ p2 a
它对应遗传学中的异位显性(Epistasis)
$ r/ w; \' {6 Y8 X# i1 L6 i& h! x- p; K# ?7 B5 ^* r. m& `$ z& t
十、适应度(Fitness) 2 x6 m- H. a u# c. G* k: p/ f
- y; H. L/ s+ k表示某一个体对于环境的适应程度。
F, [% U1 r9 F9 B+ B
& X. q& L3 V+ e1 \( V- T' H遗传算法还有一些其它的概念,这些概念在介绍遗传算法的原理和执行过程时,再进行说明。
0 h' ^2 ?/ N o, w/ T( O
) m# [6 [9 p3 \& f, R/ Y3.2.2遗传算法的原理
8 R8 @1 H* X; }1 d: L, Q! L# b+ Y1 B
遗传算法GA把问题的解表示成“染色体”,在算法中也即是以二进制编码的串。并且,在执行遗传算法之前,给出一群“染色体”,也即是假设解。然后,把这些假设解置于问题的“环境”中,并按适者生存的原则,从中选择出较适应环境的“染色体”进行复制,再通过交叉,变异过程产生更适应环境的新一代“染色体”群。这样,一代一代地进化,最后就会收敛到最适应环境的一个“染色体”上,它就是问题的最优解。$ E7 [% f* a6 h }) b" s$ p8 p
7 e1 ?' f' D! k) J$ L' p
一、遗传算法的目的. `# K. ^2 S# Y& F6 C6 I1 ]
( o! e4 t. k6 y6 A6 Q. c典型的遗传算法CGA(Canonical Genetic Algorithm)通常用于解决下面这一类的静态最优化问题:8 H1 [1 m- O( _% a. E# Z7 w
- o( S) h. o8 c1 D: g, o' U, p考虑对于一群长度为L的二进制编码bi,i=1,2,…,n;有$ G- _0 L: M) i* U% c9 m
+ T6 Q8 Q& I8 S' tbi∈{0,1}L (3-84)
+ d- D Z- U3 ~5 l* f3 q* m: K( \& v/ u) W* K: o5 i6 v5 h0 I' P4 {( }
给定目标函数f,有f(bi),并且1 o& f3 n: V& Y5 H1 ]# U9 Y, k3 a
" h7 I8 z% n3 }6 Z0<F(BI)<∞< P>
! s4 P! U& \9 b4 ~: O
9 f8 [0 V* b* W( ?! A. I: V同时
, ?8 }/ |3 G$ L$ ]9 ^: s3 t+ C
f(bi)≠f(bi+1) 1 ^' r. O4 A/ l ]
7 {- r+ D" ^% [1 c# d( P
求满足下式
: h% s" T9 E l. V7 D0 `: C7 F8 D0 E7 s. t/ Z# ]" h3 c
max{f(bi)|bi∈{0,1}L}
* Z6 t4 @; S/ N5 \3 t9 I; C2 w2 t7 _8 U' [3 J+ `$ _( X
的bi。3 j& Z* p) F! T6 m$ n
$ S. U' p0 g/ V" N- y
很明显,遗传算法是一种最优化方法,它通过进化和遗传机理,从给出的原始解群中,不断进化产生新的解,最后收敛到一个特定的串bi处,即求出最优解。
7 X0 h X! F$ m1 Q7 I
# `) J2 O2 p& g9 A/ D, J二、遗传算法的基本原理: |/ V8 N$ x) j f
1 H: c; ^4 o3 w
长度为L的n个二进制串bi(i=1,2,…,n)组成了遗传算法的初解群,也称为初始群体。在每个串中,每个二进制位就是个体染色体的基因。根据进化术语,对群体执行的操作有三种:
3 L( u8 p3 ^, E' h
. X% }( u* @+ F6 [1.选择(Selection)
) c" n) s4 V% C( h/ i& N& t6 v3 E2 v& f
这是从群体中选择出较适应环境的个体。这些选中的个体用于繁殖下一代。故有时也称这一操作为再生(Reproduction)。由于在选择用于繁殖下一代的个体时,是根据个体对环境的适应度而决定其繁殖量的,故而有时也称为非均匀再生(differential reproduction)。
U( U( F( {- J
' y6 k7 N/ Y0 t, Y2.交叉(Crossover)
( n' x: G; L5 d
- a( _7 d0 w ]1 u# \; r Y2 U* W这是在选中用于繁殖下一代的个体中,对两个不同的个体的相同位置的基因进行交换,从而产生新的个体。, P" H- _' F9 \
" O/ i8 x: e0 ~3 K$ c8 d' A
3.变异(Mutation) & }/ B2 T9 k# c) c: {
& e. c$ |/ H% j3 k
这是在选中的个体中,对个体中的某些基因执行异向转化。在串bi中,如果某位基因为1,产生变异时就是把它变成0;反亦反之。 x+ E4 \, Q' y7 W5 F
$ [% u! w* P4 _8 Q* \
遗传算法的原理可以简要给出如下:6 _# K( r# Z5 p# H0 v
% G8 V0 i! e6 @* z8 }choose an intial population
( `, z; Q x. _+ T( u; H
; d7 U# O# x. m4 b8 _5 {. ]determine the fitness of each individual
' X- p( D- P- @1 O- W( o0 w+ l# ~2 f. B: W
perform selection ) B& p5 C; s- L9 f
- b L- p) c4 m$ k' a9 C6 G. @repeat
: Q+ g4 c% q2 F9 S& M- t& B/ C* |- D) r! @- c
perform crossover 9 X3 I9 p9 W. Y* G
9 U+ w/ N1 z* b0 X
perform mutation ) G( h, A5 S6 r0 G% ^
" a7 x' |# n$ k3 e8 m- J/ _" {) L
determine the fitness of each individual
) M2 s6 d4 ]8 L1 s" Y7 f8 X: J* C5 W- \. N" I
perform selection , O. u7 d. V7 g' n1 G' W
" n9 [ _/ p/ }until some stopping criterion applies
: o$ r& G# {! j- j8 L9 S' F/ b+ X, J' A9 L0 y
这里所指的某种结束准则一般是指个体的适应度达到给定的阀值;或者个体的适应度的变化率为零。
5 j: \, ^- L) Z( u" x( S三、遗传算法的步骤和意义
/ M! _$ q& s& p- `$ ]) }2 Q5 f- u7 E1 S0 E. Q& d
1.初始化% y7 b! }7 H7 V5 k7 ?0 }6 q" I
! ^# n; a0 s# b4 S$ p8 r, P$ E选择一个群体,即选择一个串或个体的集合bi,i=1,2,...n。这个初始的群体也就是问题假设解的集合。一般取n=30-160。
/ N& v8 ] C4 f* }$ [, ]+ H
0 Z* L. D1 @& J$ `- T( K通常以随机方法产生串或个体的集合bi,i=1,2,...n。问题的最优解将通过这些初始假设解进化而求出。4 C8 F {4 I4 `+ N
3 s8 j7 R, ^" _4 J( U
2.选择' a5 m) r) k. f
( C+ C3 e) N6 q' y' p
根据适者生存原则选择下一代的个体。在选择时,以适应度为选择原则。适应度准则体现了适者生存,不适应者淘汰的自然法则。. \0 a# k8 B3 i$ N; h
+ X, f D; R1 ]
给出目标函数f,则f(bi)称为个体bi的适应度。以- l$ l: W9 y' Q' |. {
7 E1 l ~, i$ w% S, R# k" e
3 n/ r& D9 S/ x+ y/ ]3 }" f& U
f% T. F& y4 J2 Z: @8 b# J
为选中bi为下一代个体的次数。9 l7 A6 E. D7 i5 V& a& h
) C4 R m& }' @/ X) D显然.从式(3—86)可知:
. B1 y1 s r/ I$ j. S7 d* z* R3 h# b) n' b6 O, I1 z
(1)适应度较高的个体,繁殖下一代的数目较多。3 V" |+ E2 t+ P7 ~/ l
9 b/ B5 r' z% b# ^& s1 U(2)适应度较小的个体,繁殖下一代的数目较少;甚至被淘汰。
% W% z+ l1 [- N5 g# U
* r( [. C# x a这样,就产生了对环境适应能力较强的后代。对于问题求解角度来讲,就是选择出和最优解较接近的中间解。
7 H5 Z* j9 H; e# L% c
2 _7 X0 W+ q2 z3.交叉
3 _& \: ?' j) p7 u对于选中用于繁殖下一代的个体,随机地选择两个个体的相同位置,按交叉概率P。在选中的位置实行交换。这个过程反映了随机信息交换;目的在于产生新的基因组合,也即产生新的个体。交叉时,可实行单点交叉或多点交叉。7 t7 E9 w0 `6 A9 q0 h1 y
$ G3 ?3 u7 I) X: ^6 y例如有个体
6 ~! @5 q# M# ?0 z
/ b* t: x5 d) C" \5 A- W P9 |S1=100101
4 G9 y$ ^; k/ b$ B) Y' n/ {. K8 @
5 ?) `! t5 _; cS2=010111
6 r& @" Y' h# c; S5 g, z9 ?8 B. L; {* i8 L* E
选择它们的左边3位进行交叉操作,则有7 G' m- H3 G/ w
) ]& K3 N9 K* K2 WS1=010101 $ D3 e6 s8 M& _1 q
9 Z1 B# B _/ ]+ U9 I3 w! [3 m( |
S2=100111 3 X% b) g( g% O
# R. O* [; T6 G6 T) S) O) q% m
一般而言,交 婊显譖。取值为0.25—0.75。
) ^: E' G5 y; \# _! d) Q- ^; m
$ \$ J1 r1 G5 C( k4.变异" p& g, b+ d7 H& f
$ M3 d% G/ f' e5 n: \$ m根据生物遗传中基因变异的原理,以变异概率Pm对某些个体的某些位执行变异。在变异时,对执行变异的串的对应位求反,即把1变为0,把0变为1。变异概率Pm与生物变异极小的情况一致,所以,Pm的取值较小,一般取0.01-0.2。3 X* k( } c& d! `
) }$ e) o# T( s. H例如有个体S=101011。8 t6 R+ x! m- K3 l4 }6 k- |
1 D2 W L% Q2 U+ B3 M4 {
对其的第1,4位置的基因进行变异,则有
& v: N) `* \' U* n! Y/ _8 r @4 `0 n
S'=001111 * ]. X9 z9 G6 j d- A
0 e4 G9 o; N, b5 w2 ~单靠变异不能在求解中得到好处。但是,它能保证算法过程不会产生无法进化的单一群体。因为在所有的个体一样时,交叉是无法产生新的个体的,这时只能靠变异产生新的个体。也就是说,变异增加了全局优化的特质。8 \/ H! q! v' L) a6 v, A
. h7 x- m- Q' {0 `6 e1 X5.全局最优收敛(Convergence to the global optimum) / y9 o7 T2 U, a% F% k( h
- u9 D0 m) M* r7 w0 v) ]; j
当最优个体的适应度达到给定的阀值,或者最优个体的适应度和群体适应度不再上升时,则算法的迭代过程收敛、算法结束。否则,用经过选择、交叉、变异所得到的新一代群体取代上一代群体,并返回到第2步即选择操作处继续循环执行。
- n2 J' K% W) H$ n
* d& V1 ~2 Y3 a/ C, Q/ Z4 @6 s3 x图3—7中表示了遗传算法的执行过程。7 U7 g) h; _8 `7 q
% c: R ?: c( X! |8 _/ d& Y9 H4 Q
9 }6 k8 t7 P7 q2 p$ K' q
. p$ p) ]2 }6 A5 F9 N" M) H
- U# e# w, `2 G9 E图3-7 遗传算法原理) u" B& Q5 \" y
2 R/ t# k1 K7 n# P: r
3.2.3遗传算法的应用- S2 Y% L! y1 c' f9 ?
' @* K1 a% H U6 d遗传算法在很多领域都得到应用;从神经网络研究的角度上考虑,最关心的是遗传算法在神经网络的应用。在遗传算法应用中,应先明确其特点和关键问题,才能对这种算法深入了解,灵活应用,以及进一步研究开发。
* f+ u) s* ^/ m1 B2 A# \: i4 A& I4 v( B) h9 o
一、遗传算法的特点; \0 e3 }3 a" z( R9 t5 I
$ O+ n, F- ^2 I# o# S4 h1.遗传算法从问题解的中集开始嫂索,而不是从单个解开始。% K% ]1 j: T& i8 I+ i
2 p/ R0 T, C: @$ [; ?3 |( @0 ^
这是遗传算法与传统优化算法的极大区别。传统优化算法是从单个初始值迭代求最优解的;容易误入局部最优解。遗传算法从串集开始搜索,复盖面大,利于全局择优。9 T1 f8 J: N3 C9 m' i
" ~ t" n# }* |7 T
2.遗传算法求解时使用特定问题的信息极少,容易形成通用算法程序。
- F5 U+ n+ h K) x: G$ e* g( S( y; q) I7 y, A! C6 ]* q& A% L: @; v7 a
由于遗传算法使用适应值这一信息进行搜索,并不需要问题导数等与问题直接相关的信息。遗传算法只需适应值和串编码等通用信息,故几乎可处理任何问题。% D1 C; @. l9 \6 e8 C$ w% ^
( {0 k6 a* e$ O# K% E6 ^. R
3.遗传算法有极强的容错能力
1 }0 u1 D* [6 x" W% B7 I
( p) _8 [) g# g& B8 N2 k遗传算法的初始串集本身就带有大量与最优解甚远的信息;通过选择、交叉、变异操作能迅速排除与最优解相差极大的串;这是一个强烈的滤波过程;并且是一个并行滤波机制。故而,遗传算法有很高的容错能力。
" n8 M' Z7 N$ D: \' J* t! r% @# `! k5 A$ P
4.遗传算法中的选择、交叉和变异都是随机操作,而不是确定的精确规则。
' S: R8 r/ ]9 ]4 J9 T# z! j$ h6 R9 i
. k; \. C" e6 m. t. `5 [ b4 U这说明遗传算法是采用随机方法进行最优解搜索,选择体现了向最优解迫近,交叉体现了最优解的产生,变异体现了全局最优解的复盖。
3 V7 C k; P3 c: X; @4 w5 ^3 z! q' R0 R$ E2 }: L3 q u+ L7 m' ?% q
5.遗传算法具有隐含的并行性$ N6 Y0 x0 O6 m7 Q/ q; D; [0 L6 ~# N
, ^0 l9 w+ }& ~2 L2 B# a遗传算法的基础理论是图式定理。它的有关内容如下:
* e/ A' A& m& z5 q/ k6 H' g
# n+ C6 h& X* Q3 y& l5 U, T(1)图式(Schema)概念
~9 f5 V, F: B" ?( U3 X, q
) c9 N$ O: i( c* B( G+ A+ v一个基因串用符号集{0,1,*}表示,则称为一个因式;其中*可以是0或1。例如:H=1xx 0 x x是一个图式。8 P! v+ T) V. i* A$ h+ V7 ^& H
7 A6 W4 C n* A! G7 @2 Z* t/ Y* p
(2)图式的阶和长度
3 L" g8 s# |/ N: r+ B V: O
( b: t& K& H7 f/ k( r+ v) j图式中0和1的个数称为图式的阶,并用0(H)表示。图式中第1位数字和最后位数字间的距离称为图式的长度,并用δ(H)表示。对于图式H=1x x0x x,有0(H)=2,δ(H)=4。( s9 [3 _4 N! @- S* C s g
, l: O+ V6 O1 J% |& p
(3)Holland图式定理
. Q) I* A- K" `- Z' s$ m! J( S2 @$ Y% u2 ]8 _& F- j
低阶,短长度的图式在群体遗传过程中将会按指数规律增加。当群体的大小为n时,每代处理的图式数目为0(n3)。. |# B7 `1 X5 g$ E
* B) r h# d' r& n$ m2 T/ a遗传算法这种处理能力称为隐含并行性(Implicit Parallelism)。它说明遗传算法其内在具有并行处理的特质。
- t2 k( F) P# `" r/ P1 o1 k9 e8 e# Z9 W* q- F+ v: T. N
二、遗传算法的应用关键
5 @9 b* C7 D* T8 j: m/ A2 B- P5 @$ L' c/ ]0 u+ z) F4 O% B( u
遗传算法在应用中最关键的问题有如下3个; Z" w% o# T! s) e( y, q- O% _ I/ a
' D+ G2 i9 G# j K0 e! g- e V1.串的编码方式
" a! C# `. E8 N* x6 ]
/ b% U8 z. Z0 R5 h这本质是问题编码。一般把问题的各种参数用二进制编码,构成子串;然后把子串拼接构成“染色体”串。串长度及编码形式对算法收敛影响极大。
* m7 `2 y0 D9 q9 J* I8 ~5 j3 Q
& E& W+ j5 u( K9 H2.适应函数的确定
, e, W& y0 x! h" F1 [- N, @1 A& b; [7 a ?% g
适应函数(fitness function)也称对象函数(object function),这是问题求解品质的测量函数;往往也称为问题的“环境”。一般可以把问题的模型函数作为对象函数;但有时需要另行构造。
, \/ {1 L1 A0 i9 H
. v! n/ x7 [) a6 M9 g! s8 M2 e3.遗传算法自身参数设定
" p: u5 V& ~0 e- U) [6 ?; g: }7 i% \4 x$ q' h
遗传算法自身参数有3个,即群体大小n、交叉概率Pc和变异概率Pm。/ y- z% F! @, ^3 Z5 f* d; b
/ P# q$ r8 l+ s; e( X; T( \
群体大小n太小时难以求出最优解,太大则增长收敛时间。一般n=30-160。交叉概率Pc太小时难以向前搜索,太大则容易破坏高适应值的结构。一般取Pc=0.25-0.75。变异概率Pm太小时难以产生新的基因结构,太大使遗传算法成了单纯的随机搜索。一般取Pm=0.01—0.2。+ l, E" b G2 _ k. e% [, k# l0 E
" ]2 z6 g- G A* S" A/ C7 f- W三、遗传算法在神经网络中的应用
+ b/ a3 {3 G0 V- l. C$ s# S1 C6 N( `) ~0 {5 r$ k
遗传算法在神经网络中的应用主要反映在3个方面:网络的学习,网络的结构设计,网络的分析。4 o$ n! |5 c0 ]" r
* s) L1 }' l$ V$ T. E- w5 ?8 T1.遗传算法在网络学习中的应用
. V. e+ J# i" C2 u1 ]( L+ M! Q( E; k
4 [! W! \* l' }$ ~3 b0 A' r在神经网络中,遗传算法可用于网络的学习。这时,它在两个方面起作用
8 z% Q: M1 e( G/ J0 O. E
. ?( V' `+ e) }% h(1)学习规则的优化
- f! {& g3 m1 x3 w6 x( N, c# p& O/ U! W0 i, S
用遗传算法对神经网络学习规则实现自动优化,从而提高学习速率。
: q- B# _) X6 r$ m& n5 g1 {' \6 D0 C" M: _& k1 H }
(2)网络权系数的优化
- w- u4 F$ Y" i& L- s0 V* x" n' ?8 v5 w2 L( b/ S
用遗传算法的全局优化及隐含并行性的特点提高权系数优化速度。) M$ n# h( D6 b$ e( p+ e
x; B% a% Q" s+ _% ^. t5 [2.遗传算法在网络设计中的应用# L$ w! I0 U5 @- z
' P- J& ]' l! H3 z) s, G( t用遗传算法设计一个优秀的神经网络结构,首先是要解决网络结构的编码问题;然后才能以选择、交叉、变异操作得出最优结构。编码方法主要有下列3种:- n5 y+ G8 t8 A1 h/ G: w
$ b, a, b! M7 J! Q! V
(1)直接编码法
7 Y6 ], K: Z' I# K7 a3 W* J0 C a( p5 Z$ A9 `! u3 y% ~8 k3 C
这是把神经网络结构直接用二进制串表示,在遗传算法中,“染色体”实质上和神经网络是一种映射关系。通过对“染色体”的优化就实现了对网络的优化。5 s% c0 e2 @1 }+ \
2 V! O* f( h. _, o( G$ m
(2)参数化编码法
2 q# U5 a. F/ X* U1 {8 c
& B( d& @+ H" p( q$ k6 \; ]参数化编码采用的编码较为抽象,编码包括网络层数、每层神经元数、各层互连方式等信息。一般对进化后的优化“染色体”进行分析,然后产生网络的结构。3 G8 G Z3 ^$ L0 K
. p& h* ~5 w! c+ j(3)繁衍生长法
7 F2 K( m/ s' J- \, ], |0 T, x0 C- @- |8 m/ z- P
这种方法不是在“染色体”中直接编码神经网络的结构,而是把一些简单的生长语法规则编码入“染色体”中;然后,由遗传算法对这些生长语法规则不断进行改变,最后生成适合所解的问题的神经网络。这种方法与自然界生物地生长进化相一致。- ?( }6 |" u, \
6 k7 y( a" x% C& C: ^1 b; Y
3.遗传算法在网络分析中的应用
" Z+ f% j2 g) H0 b! e
% W' ~# P, U/ r! H3 \$ \/ R遗传算法可用于分析神经网络。神经网络由于有分布存储等特点,一般难以从其拓扑结构直接理解其功能。遗传算法可对神经网络进行功能分析,性质分析,状态分析。
. Y% H5 |% ^! ^0 S( v7 c- o0 n# B9 M' T M! Z: K
遗传算法虽然可以在多种领域都有实际应用,并且也展示了它潜力和宽广前景;但是,遗传算法还有大量的问题需要研究,目前也还有各种不足。首先,在变量多,取值范围大或无给定范围时,收敛速度下降;其次,可找到最优解附近,但无法精确确定最扰解位置;最后,遗传算法的参数选择尚未有定量方法。对遗传算法,还需要进一步研究其数学基础理论;还需要在理论上证明它与其它优化技术的优劣及原因;还需研究硬件化的遗传算法;以及遗传算法的通用编程和形式等。
7 F V+ C* L# ? t& X; r. t
8 \8 ]; Z5 T* I; p/ y* G: ] 9 k. I% _$ t5 x0 g& Z/ o
三、遗传算法的步骤和意义
( Q: A7 |. A+ C- O$ v% Y! ]* e& k! A/ Z. V, i
1.初始化$ W. X1 Z) J3 S* n$ I7 _8 _
" }* [2 w# B5 K. v) m; N选择一个群体,即选择一个串或个体的集合bi,i=1,2,...n。这个初始的群体也就是问题假设解的集合。一般取n=30-160。
+ m& S& v+ F- v3 r$ o' U3 n0 N" S4 j# P$ q" m, c1 {
通常以随机方法产生串或个体的集合bi,i=1,2,...n。问题的最优解将通过这些初始假设解进化而求出。
, h8 `% Y: n [0 q9 P
5 @, q6 _4 i- m8 D2.选择/ d$ @8 S; j# ?9 O& G/ b% X" R
@* f6 a# n2 F3 J; v( w; J- @
根据适者生存原则选择下一代的个体。在选择时,以适应度为选择原则。适应度准则体现了适者生存,不适应者淘汰的自然法则。( S* x+ O* }6 W* \3 @
g$ m1 v, ~3 l5 K
给出目标函数f,则f(bi)称为个体bi的适应度。以6 E+ R t# M4 R
; |* P- h* e, t* b. j% `1 ~/ W
' u- m [0 v* Y' W
n |/ G1 B! T, w' d' }# b为选中bi为下一代个体的次数。1 a" S3 j9 K/ M* c
# U# @# z+ q/ `+ f
显然.从式(3—86)可知:
' f4 L3 C0 _$ C( b' @$ J' X
# _6 ?$ J( [0 Q(1)适应度较高的个体,繁殖下一代的数目较多。
6 b0 w1 U, O. z: X% [; B
! w' b: e3 X6 J9 ](2)适应度较小的个体,繁殖下一代的数目较少;甚至被淘汰。) R- j4 Q/ m# h, V& a# [, {
- ?, m) c; b9 b6 y这样,就产生了对环境适应能力较强的后代。对于问题求解角度来讲,就是选择出和最优解较接近的中间解。! w# D' d3 B4 @" |1 ]7 x
" c8 J2 n0 j. s5 \* L$ m% s
3.交叉1 I, B5 G& b. G: u, A
对于选中用于繁殖下一代的个体,随机地选择两个个体的相同位置,按交叉概率P。在选中的位置实行交换。这个过程反映了随机信息交换;目的在于产生新的基因组合,也即产生新的个体。交叉时,可实行单点交叉或多点交叉。$ y- I% ^# a# F1 l) s- D
2 N- D1 p W1 }9 H) `
例如有个体
$ _- A, @- C4 u$ c/ ~9 T; g) b; W) l3 H& y: I7 t% ~
S1=100101 # L/ C* S( H- x% H
, t' f' b' r& d; _
S2=010111
1 h: K' s- S1 Y& _' e! ?0 J( m. `% z
选择它们的左边3位进行交叉操作,则有8 i3 k) \" L! G) L) H% t* z
! Q6 G0 s w" p" K, A
S1=010101 ; B! G" {6 F# O2 [" e
' P3 P1 A v) p9 V1 j8 BS2=100111
/ S$ l Y0 ~3 U5 C' Y9 }
9 H( ?0 U4 P2 X4 c. z& D7 k一般而言,交 婊显譖。取值为0.25—0.75。
4 |9 r: C, @+ S
u2 L' G% }- ?9 Z/ t, a4.变异- ]) a' B I0 {+ X% Q6 P6 X9 M
3 u4 ~ z6 Z/ L" ]7 V# {+ u7 Q
根据生物遗传中基因变异的原理,以变异概率Pm对某些个体的某些位执行变异。在变异时,对执行变异的串的对应位求反,即把1变为0,把0变为1。变异概率Pm与生物变异极小的情况一致,所以,Pm的取值较小,一般取0.01-0.2。
8 J4 G: q5 h- d" D {4 U3 Q6 e: Q
例如有个体S=101011。
" H- X1 Y B2 Q. `1 X, w0 i$ q
2 m8 G4 G. b+ y" @# ~7 b8 [/ d对其的第1,4位置的基因进行变异,则有+ b- }" }1 |) _$ Z n+ t9 U7 K
+ x! l9 M& F8 n
S'=001111
6 G" R1 [! g; Q( g! u P$ s- T+ `3 y5 N$ |. G
单靠变异不能在求解中得到好处。但是,它能保证算法过程不会产生无法进化的单一群体。因为在所有的个体一样时,交叉是无法产生新的个体的,这时只能靠变异产生新的个体。也就是说,变异增加了全局优化的特质。
: Q# V7 t# {- S% c% d' J6 @8 z$ n
3 _ y) v5 D6 C( u5.全局最优收敛(Convergence to the global optimum) 8 G9 J. n1 w8 f/ z# S. f) k2 }
) |6 ?- _" O+ h& ^* R- B当最优个体的适应度达到给定的阀值,或者最优个体的适应度和群体适应度不再上升时,则算法的迭代过程收敛、算法结束。否则,用经过选择、交叉、变异所得到的新一代群体取代上一代群体,并返回到第2步即选择操作处继续循环执行。0 t; |1 p4 R. V5 C7 n
7 j4 j' V$ r1 D) i- o; y1 G
图3—7中表示了遗传算法的执行过程。
+ J! u6 e4 u' a3 E X1 o) ^$ G; T1 V% E4 h. n
1 z) P* Z8 c9 x
7 d3 h* C0 [* b/ A B& j
6 L2 {* P4 b+ Q4 d% C* X图3-7 遗传算法原理
- J. g1 O+ n, |5 f. h& }# u+ C
% R1 u Q# y" h* [$ W9 k3.2.3遗传算法的应用) R7 x q( t ^ @% W
9 L8 ?8 c4 M% o
遗传算法在很多领域都得到应用;从神经网络研究的角度上考虑,最关心的是遗传算法在神经网络的应用。在遗传算法应用中,应先明确其特点和关键问题,才能对这种算法深入了解,灵活应用,以及进一步研究开发。6 n2 N8 X0 X) U9 f3 k
% J- h( m- E: s6 r/ S) M
一、遗传算法的特点 x$ R5 G+ X8 e8 A' d. S* {& N* ~
# k. S$ `& `8 V' i
1.遗传算法从问题解的中集开始嫂索,而不是从单个解开始。; W$ d% c* H- q; o& ]
0 S4 H7 e/ W D% T; Q% i* t这是遗传算法与传统优化算法的极大区别。传统优化算法是从单个初始值迭代求最优解的;容易误入局部最优解。遗传算法从串集开始搜索,复盖面大,利于全局择优。; z2 A: s. {9 G! R" n: R$ z9 B* v
, U- ^- E) ^" u; e- B* U2.遗传算法求解时使用特定问题的信息极少,容易形成通用算法程序。+ x+ @/ g4 U! l; k _& {
6 L& s g, y2 K; \4 h' [' H
由于遗传算法使用适应值这一信息进行搜索,并不需要问题导数等与问题直接相关的信息。遗传算法只需适应值和串编码等通用信息,故几乎可处理任何问题。
# Q6 C) l& r% w( z" f$ Z
; ^! a$ @* V9 r( g; i3.遗传算法有极强的容错能力
$ y+ R2 d& p" {$ `" [" @/ Y ]6 P4 Y
遗传算法的初始串集本身就带有大量与最优解甚远的信息;通过选择、交叉、变异操作能迅速排除与最优解相差极大的串;这是一个强烈的滤波过程;并且是一个并行滤波机制。故而,遗传算法有很高的容错能力。4 Z8 p$ W2 P6 S! H' U
* M) a" ]7 a. R- P3 R0 f- _& s+ h) o4.遗传算法中的选择、交叉和变异都是随机操作,而不是确定的精确规则。( g9 Q$ u; i& J% e
5 Y& s5 \& }2 S6 L, ]
这说明遗传算法是采用随机方法进行最优解搜索,选择体现了向最优解迫近,交叉体现了最优解的产生,变异体现了全局最优解的复盖。5 x8 T) Z% W. Z+ \
- I- I( |6 C. G8 W9 w- z
5.遗传算法具有隐含的并行性
6 N5 V# G/ S% N6 R. O, ], o2 m2 g5 f0 X: l, `
遗传算法的基础理论是图式定理。它的有关内容如下:+ m. D" l& A' t, l- b, k' E
# l. A S& m {* a2 J' T: t(1)图式(Schema)概念
: p: Y4 U3 r9 _+ `% ^# @* u1 m
: m1 S7 j$ F4 @+ G ^7 z一个基因串用符号集{0,1,*}表示,则称为一个因式;其中*可以是0或1。例如:H=1xx 0 x x是一个图式。* D8 L5 Z+ P: k# O# t9 D2 C
3 ^3 m0 |$ B2 i; @8 Q" X
(2)图式的阶和长度) E- M8 h( Y( e8 B4 J6 z
- m& l3 n; c2 u# W1 J
图式中0和1的个数称为图式的阶,并用0(H)表示。图式中第1位数字和最后位数字间的距离称为图式的长度,并用δ(H)表示。对于图式H=1x x0x x,有0(H)=2,δ(H)=4。
5 t0 j# Y+ e) \4 }
+ @3 o1 p* r; l2 o0 N* j4 j(3)Holland图式定理# B0 T; X+ ^* ]1 U, X$ _* j: T$ F
% X/ v/ S+ w% f# N& o/ { X' P低阶,短长度的图式在群体遗传过程中将会按指数规律增加。当群体的大小为n时,每代处理的图式数目为0(n3)。/ m9 @7 [& {8 p& Q3 Z5 x9 N/ o: Q
# }1 x5 M+ E7 y' x
遗传算法这种处理能力称为隐含并行性(Implicit Parallelism)。它说明遗传算法其内在具有并行处理的特质。
% g9 e1 ~2 {; U& r! X' T# M- k: B8 \
二、遗传算法的应用关键2 K0 c4 M$ Z' i# o
& o3 u) y* ^" e) T, K- {遗传算法在应用中最关键的问题有如下3个" l2 o2 E# T2 i X
" u; t( B1 Z7 t( e1 R8 b1.串的编码方式
0 J( ^: |2 u# n) \8 l+ W
2 `" F2 j" n# C o E p$ d这本质是问题编码。一般把问题的各种参数用二进制编码,构成子串;然后把子串拼接构成“染色体”串。串长度及编码形式对算法收敛影响极大。
& X' I9 p8 {/ C( g, u& [. k- K, Y- B( Z L- E, t
2.适应函数的确定
# P: S! g2 A9 P+ i; K6 s8 R+ e! F [, H9 l5 [
适应函数(fitness function)也称对象函数(object function),这是问题求解品质的测量函数;往往也称为问题的“环境”。一般可以把问题的模型函数作为对象函数;但有时需要另行构造。5 P/ F- Y. D/ ~/ P" g% q
, A0 z: D0 g2 i* {7 k) [& u: ]" k3 c3.遗传算法自身参数设定
% E |$ R' m; w* U2 ^$ K# l
9 S2 W3 K5 q2 d& g遗传算法自身参数有3个,即群体大小n、交叉概率Pc和变异概率Pm。
+ q$ ~* k0 @, O* F* m' [$ q J( Z. k' t: o
群体大小n太小时难以求出最优解,太大则增长收敛时间。一般n=30-160。交叉概率Pc太小时难以向前搜索,太大则容易破坏高适应值的结构。一般取Pc=0.25-0.75。变异概率Pm太小时难以产生新的基因结构,太大使遗传算法成了单纯的随机搜索。一般取Pm=0.01—0.2。' D' t2 C) r# J
8 r1 A% b% t8 E1 t' I( m
三、遗传算法在神经网络中的应用
9 [' T3 A/ @' B! X; b% h1 i9 i
遗传算法在神经网络中的应用主要反映在3个方面:网络的学习,网络的结构设计,网络的分析。' |- x* f$ B% o! J: _
1 n6 F c% r) U2 E" ^! V4 o1.遗传算法在网络学习中的应用
3 A1 [& u/ k0 e% i+ Y/ e! y& e+ p c% c+ N8 b3 U# c( k# k$ H
在神经网络中,遗传算法可用于网络的学习。这时,它在两个方面起作用 h% {" }0 M- [! g3 H3 F+ Z% O" \9 @' e
7 x* X/ l; ?4 r0 f1 }" c; |(1)学习规则的优化5 U$ z1 c" T; A+ q
& ]: ^- y+ T5 H ] i& j, c# E用遗传算法对神经网络学习规则实现自动优化,从而提高学习速率。
- I) X$ ]7 Z, i0 Q
! \1 W5 s! I5 I1 O. h(2)网络权系数的优化
/ w i$ }) \9 P% _: G8 M; N
. T$ K: C& l! F) n5 y5 ~7 `& d用遗传算法的全局优化及隐含并行性的特点提高权系数优化速度。
! A2 o! F: D4 ~2 g* c2 X% ^( F/ `" s/ p5 k
2.遗传算法在网络设计中的应用
) }% @3 y0 S- b9 l+ j8 t& ?# S8 F( b2 P, K+ @; h% ^6 g: @" J/ w
用遗传算法设计一个优秀的神经网络结构,首先是要解决网络结构的编码问题;然后才能以选择、交叉、变异操作得出最优结构。编码方法主要有下列3种:
d9 Y+ ]+ I: Y' S3 ?- Q3 I: o; O/ ^
3 u5 \" }& n, A" _8 B(1)直接编码法
3 X2 }0 K* E! f3 l ?, y7 N( j# q z7 `6 _6 ~( U
这是把神经网络结构直接用二进制串表示,在遗传算法中,“染色体”实质上和神经网络是一种映射关系。通过对“染色体”的优化就实现了对网络的优化。; I8 S5 k1 @) D3 N
9 v+ @: Q$ d) j5 t( x8 {# D! l(2)参数化编码法
5 i8 E* ]3 t& C) g
, A' _7 H E9 u4 | y+ Q参数化编码采用的编码较为抽象,编码包括网络层数、每层神经元数、各层互连方式等信息。一般对进化后的优化“染色体”进行分析,然后产生网络的结构。
' j/ [; w! I2 R# }$ D! {4 r" X( T; X ?
(3)繁衍生长法3 ~3 S V( U) {$ i1 k
$ L0 a! C# X9 b0 I9 D* G K5 g这种方法不是在“染色体”中直接编码神经网络的结构,而是把一些简单的生长语法规则编码入“染色体”中;然后,由遗传算法对这些生长语法规则不断进行改变,最后生成适合所解的问题的神经网络。这种方法与自然界生物地生长进化相一致。$ O# ^, z, d, z
& S6 J- [2 X3 F/ f9 |4 ?$ o$ Q" z7 f
3.遗传算法在网络分析中的应用
7 D& H% f3 ? J" l2 x# L* M% q1 x7 a: S c
遗传算法可用于分析神经网络。神经网络由于有分布存储等特点,一般难以从其拓扑结构直接理解其功能。遗传算法可对神经网络进行功能分析,性质分析,状态分析。
5 Y- W- B, W* c+ @7 q. R7 t
8 r4 A1 k/ l J5 D6 o遗传算法虽然可以在多种领域都有实际应用,并且也展示了它潜力和宽广前景;但是,遗传算法还有大量的问题需要研究,目前也还有各种不足。首先,在变量多,取值范围大或无给定范围时,收敛速度下降;其次,可找到最优解附近,但无法精确确定最扰解位置;最后,遗传算法的参数选择尚未有定量方法。对遗传算法,还需要进一步研究其数学基础理论;还需要在理论上证明它与其它优化技术的优劣及原因;还需研究硬件化的遗传算法;以及遗传算法的通用编程和形式等。
' r) N+ `! }" ^# \; ?! y |
|