设为首页收藏本站|繁體中文 快速切换版块

 找回密码
 立即加入
搜索
查看: 1566|回复: 4

转(遗传算法)

 荐 [复制链接]
  • TA的每日心情
    慵懒
    2017-6-1 21:49
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    累计签到:6 天
    连续签到:1 天
    发表于 2012-6-7 10:01:22 | 显示全部楼层 |阅读模式

    马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!

    您需要 登录 才可以下载或查看,没有账号?立即加入

    ×
    生物的进化是一个奇妙的优化过程,它通过选择淘汰,突然变异,基因遗传等规律产生适应环境变化的优良物种。遗传算法是根据生物进化思想而启发得出的一种全局优化算法。1 t/ ]+ ~' R" t: K/ t1 ?
    - [9 B/ e- c  k, ~
    遗传算法的概念最早是由Bagley J.D在1967年提出的;而开始遗传算法的理论和方法的系统性研究的是1975年,这一开创性工作是由Michigan大学的J.H.Holland所实行。当时,其主要目的是说明自然和人工系统的自适应过程。: v4 N" A6 _4 ?- E, }
    2 l; @) t' B. O! u
    遗传算法简称GA(Genetic Algorithm),在本质上是一种不依赖具体问题的直接搜索方法。遗传算法在模式识别、神经网络、图像处理、机器学习、工业优化控制、自适应控制、生物科学、社会科学等方面都得到应用。在人工智能研究中,现在人们认为“遗传算法、自适应系统、细胞自动机、混沌理论与人工智能一样,都是对今后十年的计算技术有重大影响的关键技术”。
    2 _. x$ t  M& A! ^( X9 r+ i+ }

    ! }' N( C' B3 Z6 Z7 l9 ]! T3.2.1 遗传算法的基本概念$ u5 n: b, }( U4 ^% t2 V8 z
    ! [% w) [, T5 P! i1 [8 E- b2 c
    遗传算法的基本思想是基于Darwin进化论和Mendel的遗传学说的。9 i6 S6 m  q6 A4 @7 ^& D

    ; O  V4 t' O  K8 l+ Z2 ?  w6 XDarwin进化论最重要的是适者生存原理。它认为每一物种在发展中越来越适应环境。物种每个个体的基本特征由后代所继承,但后代又会产生一些异于父代的新变化。在环境变化时,只有那些熊适应环境的个体特征方能保留下来。6 H$ M) b7 O4 F- z. D  a% w
    + `2 h1 e: c, H" e9 Y
    Mendel遗传学说最重要的是基因遗传原理。它认为遗传以密码方式存在细胞中,并以基因形式包含在染色体内。每个基因有特殊的位置并控制某种特殊性质;所以,每个基因产生的个体对环境具有某种适应性。基因突变和基因杂交可产生更适应于环境的后代。经过存优去劣的自然淘汰,适应性高的基因结构得以保存下来。* {0 \& |8 s( O9 }1 }/ I6 J' W

    - h3 X2 ?- j5 X7 Z3 K由于遗传算法是由进化论和遗传学机理而产生的直接搜索优化方法;故而在这个算法中要用到各种进化和遗传学的概念。这些概念如下:  T# x& n$ t+ I+ F; x* ?

    " S( s' W; Q& `; U6 X. ?$ w( S一、串(String) 3 \- D( w! ^" t& l! A6 A
    ; v' b6 w( X8 \( H0 M. N2 E. L2 i. W
    它是个体(Individual)的形式,在算法中为二进制串,并且对应于遗传学中的染色体(Chromosome)。7 J4 c6 V# z7 Z: W+ m

    * ~3 v0 v% b3 |: z* L# M二、群体(Population) % p% q4 G3 j7 y; I6 o7 S
    " c+ {: O" p3 f: d, @6 u6 A3 u
    个体的集合称为群体,串是群体的元素
    , _7 ^+ L9 {. K  k6 j
    ! o  \% _- H6 R6 Y' k0 [' u7 f2 e% z# j- s
    三、群体大小(Population Size) 1 o6 `+ [: G2 Y1 N# a' A
    4 B; p: C- z5 o. n9 t; H# ^
    在群体中个体的数量称为群体的大小。
    / _1 B- T0 A6 F: X9 g

    0 G8 ?% w5 l1 {5 r四、基因(Gene) 7 w  G" o+ e1 x: D6 f

    9 z1 w8 E* e' w" W. b基因是串中的元素,基因用于表示个体的特征。例如有一个串S=1011,则其中的1,0,1,1这4个元素分别称为基因。它们的值称为等位基因(Alletes)。
    0 C6 R6 \; @2 z6 T; h: ?

    5 I: G0 p6 G, |* F( G+ l6 {' z五 、基因位置(Gene Position) 2 X# i  Y1 e- P( o  W* s$ a/ z
    5 [# v3 b8 p6 Y) H+ G8 Y
    一个基因在串中的位置称为基因位置,有时也简称基因位。基因位置由串的左向右计算,例如在串S=1101中,0的基因位置是3。基因位置对应于遗传学中的地点(Locus)。- B! H$ x7 M/ c1 b

      V- f9 M( f$ j六、基因特征值(Gene Feature)
    2 Q# J% F4 k3 @! W4 t4 X, }
    $ b. J4 X) @8 v; \- Z% e
    在用串表示整数时,基因的特征值与二进制数的权一致;例如在串S=1011中,基因位置3中的1,它的基因特征值为2;基因位置1中的1,它的基因特征值为8。
    " \' w( ~: J$ R) v
    / D9 [' K0 N' A' k2 N4 V
    七、串结构空间SS
    , P/ t; S: Z' L: v

    - x1 _. }$ u" B. E. F: D在串中,基因任意组合所构成的串的集合。基因操作是在结构空间中进行的。串结构空间对应于遗传学中的基因型(Genotype)的集合。
    * p# l) Q3 q0 h3 J# g9 d( a
    6 r! u2 ~2 ?1 u1 k
    八、参数空间SP
    $ A6 }7 l, Y. Q2 M
    - e. T) e1 h; V& F/ i6 i
    这是串空间在物理系统中的映射,它对应于遗传学中的表现型(Phenotype)的集合。
    7 _# j5 ]  y! Y6 {5 b& r
    % W: H$ b3 q! S# \" h
    九、非线性
    " k. |2 ?/ @( w# {
    # y6 _8 P2 {0 k6 A# L# x6 G
    它对应遗传学中的异位显性(Epistasis)
    2 [, F1 v0 B* L4 k! l+ W6 U8 f
    # s* }5 h% Z! K
    十、适应度(Fitness) 7 y% d7 [* W( i# z. ^% X6 l$ w
    0 Y( Q4 i& `# n* Q! G  B
    表示某一个体对于环境的适应程度。
    3 {2 ~: K! p6 s
    5 G& Z4 p5 L) q- R, |
    遗传算法还有一些其它的概念,这些概念在介绍遗传算法的原理和执行过程时,再进行说明。
    + Y% x& R9 p0 H* _. s8 U
    0 B& g: K4 X* h& t* ]& [5 a7 _* h8 r
    3.2.2遗传算法的原理
    ) H5 {! t- O. c% N+ [
    # r, W( l5 ~( M) j' }
    遗传算法GA把问题的解表示成“染色体”,在算法中也即是以二进制编码的串。并且,在执行遗传算法之前,给出一群“染色体”,也即是假设解。然后,把这些假设解置于问题的“环境”中,并按适者生存的原则,从中选择出较适应环境的“染色体”进行复制,再通过交叉,变异过程产生更适应环境的新一代“染色体”群。这样,一代一代地进化,最后就会收敛到最适应环境的一个“染色体”上,它就是问题的最优解。6 D# i+ g, ?3 h/ A  A" ^
    ) B! Z7 i- ?$ A) n: h; m/ _
    一、遗传算法的目的+ `3 }% b) j: s% q* o, {

    * e) L; g8 p8 R4 N% J  |典型的遗传算法CGA(Canonical Genetic Algorithm)通常用于解决下面这一类的静态最优化问题:
    & Q- t; @+ n$ [/ P& _( y, c9 ]

    . b/ T- h; A& f  I6 _考虑对于一群长度为L的二进制编码bi,i=1,2,…,n;有
    - T# U6 t4 Q+ J, U

    $ B' t3 B5 I. {8 ~# W3 m2 R4 q( `bi∈{0,1}L        (3-84) 7 t3 M: S5 |# q. v" k3 P7 {( m

    , T5 i; Z! F3 {/ X' @/ x给定目标函数f,有f(bi),并且
    # N- ~9 _) Y. d. x& X, X: J

    1 D% }1 k7 C. \/ ]2 c( a; |7 o0<F(BI)<∞< P> 7 G8 P( o$ E; M/ W9 s( {

    ( o5 K' y/ D7 j6 E同时3 C/ Q( O6 P6 h  o6 Z; E+ B% i
      G) r" c9 @. [, m: I- ~3 A' r6 d
    f(bi)≠f(bi+1) + I, g) ~) k" F: ^8 |
    % F6 q7 ]0 j! m# q6 @8 h
    求满足下式
    " `& H% J: E. I/ J
    , Z% B7 s/ C: e
    max{f(bi)|bi∈{0,1}L} 2 R( m0 M9 N) O' w! j. t! H

    7 z! M/ Z- Y% ~5 E2 _的bi。( p' Q" Z( h. d3 ]7 ~

    6 M2 t# f, C# T很明显,遗传算法是一种最优化方法,它通过进化和遗传机理,从给出的原始解群中,不断进化产生新的解,最后收敛到一个特定的串bi处,即求出最优解。
    4 V8 [5 ]8 L) W: ^4 t
    7 a, d; h3 Y6 f% e6 t& x: p
    二、遗传算法的基本原理- |" h( _5 B3 o5 k

    / a; I" n. F/ x8 q  m  |长度为L的n个二进制串bi(i=1,2,…,n)组成了遗传算法的初解群,也称为初始群体。在每个串中,每个二进制位就是个体染色体的基因。根据进化术语,对群体执行的操作有三种:
    ' j) k; u' R" `6 q% a4 o. U8 F/ L: [

    4 K5 N  L$ @2 j* ~. R9 t) Y0 v1.选择(Selection)
    8 ?- n7 N. C1 |5 D3 ]# P9 _# n

    0 {- K) m! u( L+ o9 w2 w) Z这是从群体中选择出较适应环境的个体。这些选中的个体用于繁殖下一代。故有时也称这一操作为再生(Reproduction)。由于在选择用于繁殖下一代的个体时,是根据个体对环境的适应度而决定其繁殖量的,故而有时也称为非均匀再生(differential reproduction)。
    / C# |% |- ^' K7 q
    6 b  D3 t; D% @, |0 S. m6 V
    2.交叉(Crossover) 1 A/ P7 O* y; j5 ?( V
    : H% e  d& `; l  V( ?+ I
    这是在选中用于繁殖下一代的个体中,对两个不同的个体的相同位置的基因进行交换,从而产生新的个体。+ x3 z6 d3 X; X8 s! {- o% }) v0 a

    + s; H" V- R, R* F: G5 h( a3.变异(Mutation) 9 z! _" K/ h% m
    / o) n! I0 g/ P# U+ g: g
    这是在选中的个体中,对个体中的某些基因执行异向转化。在串bi中,如果某位基因为1,产生变异时就是把它变成0;反亦反之。
    5 V3 \2 C- Y! d! i- R
    ' _$ C# a9 a! h2 Q, }; r! s
    遗传算法的原理可以简要给出如下:
    $ P3 V: h% R, E/ w. b

    4 \: K1 P5 x& m" t" H3 W" ?choose an intial population
    7 L! Y5 o! S1 s; F9 |9 R6 p! a( x
    " p2 ]+ h- h  c! o7 |9 E
    determine the fitness of each individual
    2 Z9 S1 L3 _# g+ }

    8 M( u( u0 ?" J- r: J  G5 m$ wperform selection 3 u1 N8 M. Q2 }* h; Y+ h* @

    % P+ E% t$ O/ N; I  @1 l- `$ Hrepeat 4 T3 \/ ?0 K* A. V# B

    & V, t  r! x' B3 T+ I( _$ t5 l    perform crossover
    # u# \/ Q6 r+ s! v8 m! ~4 D' B
    5 O. G8 f0 m" ?. |" k
        perform mutation , j0 b$ \' x6 c1 y, V8 N! o2 F
    5 C& p# V. G, g! ~! ~- K
        determine the fitness of each individual 5 r" x& P/ I; x' V5 b" ]) A

    + `5 P4 k; y: @0 ]- R    perform selection 6 j' N  h! Q. x$ Z, Q  ]! U
    1 x+ \# J, I) `; o" U
    until some stopping criterion applies $ e$ l* q! ^) i; _" e: u

    2 ?1 K) F* s3 X4 z6 L. P$ \这里所指的某种结束准则一般是指个体的适应度达到给定的阀值;或者个体的适应度的变化率为零。
    3 e8 l$ Y9 k5 u/ e& `
    三、遗传算法的步骤和意义: S$ C0 n) R: ]6 b2 R- ]6 D
    " I$ P$ o# J0 \
    1.初始化/ L- W$ G/ }) N9 U8 ~. a( ^
    % c" F6 E3 G& R* N- ^0 z
    选择一个群体,即选择一个串或个体的集合bi,i=1,2,...n。这个初始的群体也就是问题假设解的集合。一般取n=30-160。
    / ]( u+ F0 E1 R* ~, x) Y
    9 r' Y5 _$ z6 B1 o+ {! g
    通常以随机方法产生串或个体的集合bi,i=1,2,...n。问题的最优解将通过这些初始假设解进化而求出。& R! e4 h. n9 R1 ]2 `6 l  G- V
    2 B$ l( H# O& \1 z
    2.选择6 S' V& `" m& S, ]! o3 o3 z, E
    - j9 u$ {2 W# q' _+ L
    根据适者生存原则选择下一代的个体。在选择时,以适应度为选择原则。适应度准则体现了适者生存,不适应者淘汰的自然法则。+ ]( X: I) R* i" Y9 h3 Q! b

    * Z# h" K+ m) x6 E1 S* j8 m给出目标函数f,则f(bi)称为个体bi的适应度。以
      I$ p" o6 ]6 L- E" [

    6 \  f* }8 J6 D- h# P/ L( r) |; Y( H; S% U. E
    6.2.ht40.gif
    4 O% c+ C% |6 p& e) @9 p% @为选中bi为下一代个体的次数。1 o% a7 H: R# n. l

    ) K& x8 \7 o& i+ I& m0 J0 j4 J显然.从式(3—86)可知:
    ) |, ]2 r$ M% n, I% V# L. |5 A: G
    3 Q& A8 M4 e( K9 ?) e
    (1)适应度较高的个体,繁殖下一代的数目较多。
    7 _" b3 i" c% ?. m$ E; h: _3 t

    ! E% ^& w) J3 K' I* Z(2)适应度较小的个体,繁殖下一代的数目较少;甚至被淘汰。
    # Y- L. n4 }) D# h7 V8 v4 d  T

    3 R" E. o# w# X4 t5 M" U这样,就产生了对环境适应能力较强的后代。对于问题求解角度来讲,就是选择出和最优解较接近的中间解。
    , [- L& w5 O% u0 u3 U

    # C" z( w' g, M: L& N1 i. @' x3.交叉/ {: Y" E' Y% L$ N1 f" }
    对于选中用于繁殖下一代的个体,随机地选择两个个体的相同位置,按交叉概率P。在选中的位置实行交换。这个过程反映了随机信息交换;目的在于产生新的基因组合,也即产生新的个体。交叉时,可实行单点交叉或多点交叉。; ^0 ^. }9 y; [; [" K6 ~: B' ?
    6 ^, ~( }7 T- O& O# K4 h
    例如有个体& x0 A  }) `2 K/ X; l
    9 j; {$ Z& W7 h. l. ?
    S1=100101
    7 F( X! n+ Y  ~" W# c" L

    7 s: w" x+ _3 G8 _7 v  {S2=010111
    2 a( K$ [4 s1 _, L2 i
    0 a1 O6 R6 Z; g) Q3 ~8 a9 w+ f
    选择它们的左边3位进行交叉操作,则有; q3 b/ Y7 f, u! c# E: F  T
    ; _7 k3 \- C7 h: L
    S1=010101 % V1 b, n" m" b7 L- j
    4 R; h& E. s% u2 x9 o
    S2=100111
    . V+ E; _2 q1 r2 Y  o
    ' c3 R, T2 c4 _$ O, O
    一般而言,交 婊显譖。取值为0.25—0.75。
    6 X1 f  Q) Y0 l& l- y2 }: q4 f2 b5 S

    + i; S3 W( L; O: h4.变异' c! z8 [# L/ @3 q& [  I
    ) p5 S, |$ A. g* J2 E
    根据生物遗传中基因变异的原理,以变异概率Pm对某些个体的某些位执行变异。在变异时,对执行变异的串的对应位求反,即把1变为0,把0变为1。变异概率Pm与生物变异极小的情况一致,所以,Pm的取值较小,一般取0.01-0.2。5 U8 t+ U! }: d% D$ h
    . T9 J/ y, y6 E$ Y( X, v
    例如有个体S=101011。
    ) E# G& ?; p( h( h& A

    6 J. w1 v, |- i- X( B  }对其的第1,4位置的基因进行变异,则有* ?; c* J1 h8 {) ?% w2 s

    # z- U5 B" q) i/ ?& `8 JS'=001111 + i+ e" f+ J3 A0 E* ^* G
    8 M: ?4 x$ H0 g! B5 M8 `/ K
    单靠变异不能在求解中得到好处。但是,它能保证算法过程不会产生无法进化的单一群体。因为在所有的个体一样时,交叉是无法产生新的个体的,这时只能靠变异产生新的个体。也就是说,变异增加了全局优化的特质。% S* `, U1 F  S
    ( k4 u3 j6 `' U" @1 H2 a& X* H
    5.全局最优收敛(Convergence to the global optimum)
    ( |8 P& R; O: l1 h5 _: c  |& X

    2 Z9 z) C5 y! M0 j- W当最优个体的适应度达到给定的阀值,或者最优个体的适应度和群体适应度不再上升时,则算法的迭代过程收敛、算法结束。否则,用经过选择、交叉、变异所得到的新一代群体取代上一代群体,并返回到第2步即选择操作处继续循环执行。
    2 o& s& F0 t+ c

    / \+ E# B8 U' i$ D' F图3—7中表示了遗传算法的执行过程。
    8 q, c6 Y% k. M% H
    / Z8 Y! u( s3 k6 m: j& }$ ~" L0 ]; y
    Genetic_Algorithm.gif ( K1 i  x8 S" Y) c& e2 G
    & T$ L7 e+ q8 q! N: ]' \$ p3 E8 k: f$ c
    图3-7 遗传算法原理
    & [' _/ @; Y5 X! g: V3 S
    - z- p' T0 p. C
    3.2.3遗传算法的应用
    + ]3 y4 v: H+ a3 v* o: d7 |

      J% }& R. ?4 X  x3 ?; e遗传算法在很多领域都得到应用;从神经网络研究的角度上考虑,最关心的是遗传算法在神经网络的应用。在遗传算法应用中,应先明确其特点和关键问题,才能对这种算法深入了解,灵活应用,以及进一步研究开发。$ z7 _2 H& f/ r  r/ f4 F- D! \

    : U  Z* r( Y4 U  P$ j7 {8 g/ k) O一、遗传算法的特点* m: J. f: u+ b1 [2 l: n

    ( T! _9 |2 R) K- J+ l, a, o1.遗传算法从问题解的中集开始嫂索,而不是从单个解开始。# ~+ M1 O5 u+ R: K
    , _% @  I2 e3 D% @/ ?( ~2 s! ~
    这是遗传算法与传统优化算法的极大区别。传统优化算法是从单个初始值迭代求最优解的;容易误入局部最优解。遗传算法从串集开始搜索,复盖面大,利于全局择优。
    ' w1 r& C! v. \& _/ ~

    ( L/ A) E' [) t$ p$ U* x5 R+ k2.遗传算法求解时使用特定问题的信息极少,容易形成通用算法程序。
    , X7 D* s% j& G0 p! \
    * g" ]3 _- n" d1 G  l, I& z
    由于遗传算法使用适应值这一信息进行搜索,并不需要问题导数等与问题直接相关的信息。遗传算法只需适应值和串编码等通用信息,故几乎可处理任何问题。
    2 C. B' j* J& Y3 n

    , j* n3 x8 o, B& ]3.遗传算法有极强的容错能力
    ' s. E9 H' k# a* v- v

    3 F/ [! {' l( p: O6 C+ ^% w* ^遗传算法的初始串集本身就带有大量与最优解甚远的信息;通过选择、交叉、变异操作能迅速排除与最优解相差极大的串;这是一个强烈的滤波过程;并且是一个并行滤波机制。故而,遗传算法有很高的容错能力。+ b! H& S/ x* N0 R2 N& p5 X4 V
    % E, K- ~% Z4 M: g  Y
    4.遗传算法中的选择、交叉和变异都是随机操作,而不是确定的精确规则。! N& y5 v- ^0 H: `4 S

    1 @( I& |$ b! m0 E9 e5 q) K这说明遗传算法是采用随机方法进行最优解搜索,选择体现了向最优解迫近,交叉体现了最优解的产生,变异体现了全局最优解的复盖。. p  c2 W* q) t, ^! K; \& e6 g
    2 A, o3 A1 L5 d
    5.遗传算法具有隐含的并行性
    9 d+ O! D$ y$ M" H. W

    / E3 P( O* j  ?& w+ ?+ ]遗传算法的基础理论是图式定理。它的有关内容如下:3 ], f. X( M/ s7 r, P" i
    8 }$ k) Y: g5 K! s0 O" j
    (1)图式(Schema)概念3 I0 M7 K3 ?8 G3 U

    - f' _2 ]$ o( S$ x( _$ I一个基因串用符号集{0,1,*}表示,则称为一个因式;其中*可以是0或1。例如:H=1xx 0 x x是一个图式。+ _9 W8 d- H! o6 ]4 p8 `
    3 [8 Q- n! Z: ^( m
    (2)图式的阶和长度0 a* z" `. v; r- ]: P8 B

    4 G6 z2 D/ t6 I4 ]# r图式中0和1的个数称为图式的阶,并用0(H)表示。图式中第1位数字和最后位数字间的距离称为图式的长度,并用δ(H)表示。对于图式H=1x x0x x,有0(H)=2,δ(H)=4。! Y$ i5 _& e" A; a+ T. \* D# V

    # y" j; Z$ P' N6 o/ |(3)Holland图式定理
    1 T( q1 Z# Z5 D5 V. ~& R
    ; B$ b. f. X! V
    低阶,短长度的图式在群体遗传过程中将会按指数规律增加。当群体的大小为n时,每代处理的图式数目为0(n3)。
    3 [# \# ?2 x2 o9 @( u! P

    7 ?7 N7 |2 B! o" x) I0 D% o9 X) T遗传算法这种处理能力称为隐含并行性(Implicit Parallelism)。它说明遗传算法其内在具有并行处理的特质。$ A" J# O9 x; N; D) s3 o* K6 x: ~

    ' _7 A- [( f; N1 @: ?# f$ |0 x& H二、遗传算法的应用关键6 \" S  H) P* J' `

    . f. n3 Y- Y9 _2 l9 R/ B$ u遗传算法在应用中最关键的问题有如下3个8 S) a( e) r, v# V3 h

    + ~  b- S  Y) m' H; [1.串的编码方式
    ( E5 j5 C( b6 \5 A( X* _$ @% E

    ) ]7 m2 b" D3 L" i" o3 ?' X这本质是问题编码。一般把问题的各种参数用二进制编码,构成子串;然后把子串拼接构成“染色体”串。串长度及编码形式对算法收敛影响极大。' r7 U$ \  g7 |/ |" L- r: A1 J
    ; L0 \" b, s0 d; X. N
    2.适应函数的确定, T6 C: m% X4 e9 E2 F  y3 r5 M, k6 s
    % P) a: t* y& z; N+ i
    适应函数(fitness function)也称对象函数(object function),这是问题求解品质的测量函数;往往也称为问题的“环境”。一般可以把问题的模型函数作为对象函数;但有时需要另行构造。
    / S4 L  ]. Z) W% s# S

    0 j- D4 n' C0 `& o3.遗传算法自身参数设定
    $ B8 D/ \0 u3 }  @/ K% h- V

    . P; Y) j3 o% N- H) Y遗传算法自身参数有3个,即群体大小n、交叉概率Pc和变异概率Pm。
    ) ^; V) N  i2 A7 I" }
    7 Y& S. _/ f6 ~2 w8 o3 C% D
    群体大小n太小时难以求出最优解,太大则增长收敛时间。一般n=30-160。交叉概率Pc太小时难以向前搜索,太大则容易破坏高适应值的结构。一般取Pc=0.25-0.75。变异概率Pm太小时难以产生新的基因结构,太大使遗传算法成了单纯的随机搜索。一般取Pm=0.01—0.2。8 i. u- k' ~6 n6 `: {' u6 [+ x

    0 [7 j3 \( Z% I6 g6 k# N$ L三、遗传算法在神经网络中的应用! p, M, u7 g9 m& K( a
    # d6 b! ]; W4 T
    遗传算法在神经网络中的应用主要反映在3个方面:网络的学习,网络的结构设计,网络的分析。
    9 G8 f3 ^' \3 u5 E2 U/ _

    5 @8 I: k7 C, H3 l+ n/ g1.遗传算法在网络学习中的应用' Y* j) n7 h" H% o
    / D3 a$ k1 ^1 h( y2 ^6 S
    在神经网络中,遗传算法可用于网络的学习。这时,它在两个方面起作用
    8 l8 h; H  G, D9 g; T9 x# |5 w

    + T( @/ f& C) p/ K(1)学习规则的优化3 i& w7 ]' V5 @: s9 y, @
    , B/ T/ {8 e+ r" V
    用遗传算法对神经网络学习规则实现自动优化,从而提高学习速率。9 d4 a$ D2 s4 S+ L1 @0 X' r& p3 }7 n

    $ q& w" B( ~  K. _(2)网络权系数的优化0 I  `1 M) }: l: N/ t

    5 W' N6 a! w7 \( O用遗传算法的全局优化及隐含并行性的特点提高权系数优化速度。
    0 I0 t0 j( l! ~, L
    : P$ {3 D9 a. j% k2 Z
    2.遗传算法在网络设计中的应用3 k0 X' s% ]3 ^$ n+ n7 y

    ' m9 [. F1 ]0 s; e% K) Z用遗传算法设计一个优秀的神经网络结构,首先是要解决网络结构的编码问题;然后才能以选择、交叉、变异操作得出最优结构。编码方法主要有下列3种:
    ( U8 T: `" C; J2 i0 ?* M6 d
    . j3 F; @0 N7 k
    (1)直接编码法
    ( ]/ M" f/ Y0 L

    ! z8 I, f+ |5 Q  m7 H这是把神经网络结构直接用二进制串表示,在遗传算法中,“染色体”实质上和神经网络是一种映射关系。通过对“染色体”的优化就实现了对网络的优化。
    , ^# Z6 c4 C; Y
    1 f6 |  ~6 {4 C* M; [5 r$ ^8 V/ T
    (2)参数化编码法. i3 M% E7 l& [/ e8 {( w  I& e; Z

    " i6 t9 L( I4 `7 A7 |6 [参数化编码采用的编码较为抽象,编码包括网络层数、每层神经元数、各层互连方式等信息。一般对进化后的优化“染色体”进行分析,然后产生网络的结构。
    2 }! d3 Y2 B" a4 F8 i
    , |! h. m& K" ^( T
    (3)繁衍生长法
    / ]! E' z& W3 d0 p+ r

    & q- W; O/ c7 o7 x! C这种方法不是在“染色体”中直接编码神经网络的结构,而是把一些简单的生长语法规则编码入“染色体”中;然后,由遗传算法对这些生长语法规则不断进行改变,最后生成适合所解的问题的神经网络。这种方法与自然界生物地生长进化相一致。- Y: g( p% @) B/ S  k3 X

    . \8 Y+ Q) o4 D/ v  s% W, [3.遗传算法在网络分析中的应用
    2 a% x& R) k% M( g

    ' o# H& o! k0 @! r: d遗传算法可用于分析神经网络。神经网络由于有分布存储等特点,一般难以从其拓扑结构直接理解其功能。遗传算法可对神经网络进行功能分析,性质分析,状态分析。8 ~' @0 n% p$ _3 W1 {# J
    0 @) i, T6 S! V1 c/ r  V% t
    遗传算法虽然可以在多种领域都有实际应用,并且也展示了它潜力和宽广前景;但是,遗传算法还有大量的问题需要研究,目前也还有各种不足。首先,在变量多,取值范围大或无给定范围时,收敛速度下降;其次,可找到最优解附近,但无法精确确定最扰解位置;最后,遗传算法的参数选择尚未有定量方法。对遗传算法,还需要进一步研究其数学基础理论;还需要在理论上证明它与其它优化技术的优劣及原因;还需研究硬件化的遗传算法;以及遗传算法的通用编程和形式等。
    6 T+ Z* O' X8 ^! L
    ' w; U1 `: C( T; w9 A


    & {  y, u& @2 r三、遗传算法的步骤和意义
    3 {2 t; h2 K3 f! Y# {* S
    4 V: k: [2 W4 [
    1.初始化
    - I: X# q: ?6 i$ r6 H' g, z! p, B

    0 `3 ], o/ h0 U0 z: y选择一个群体,即选择一个串或个体的集合bi,i=1,2,...n。这个初始的群体也就是问题假设解的集合。一般取n=30-160。
    / _: k/ X+ i9 @$ D) b
    ; u6 a" T1 S$ u- G- Q
    通常以随机方法产生串或个体的集合bi,i=1,2,...n。问题的最优解将通过这些初始假设解进化而求出。- ?. u. @4 n. o- k, V5 s+ C

    5 q6 k! x: W( B3 V% j' B2.选择
    " g( N, m5 W$ n; f) W, l
    5 y& C2 U3 ~2 y
    根据适者生存原则选择下一代的个体。在选择时,以适应度为选择原则。适应度准则体现了适者生存,不适应者淘汰的自然法则。$ {7 N9 J. j- [: Q/ V1 E5 z6 K

    ! m/ _: h6 ^* C$ I2 R; p2 [给出目标函数f,则f(bi)称为个体bi的适应度。以
    6 b+ k0 D$ t) r$ {- ^; H

    5 @+ Q2 X/ h* [: A+ }
    7 Y8 V3 o) M6 X) v! x1 h2 f0 u! N+ j# o. b' O, |
    为选中bi为下一代个体的次数。  ]. v% \7 c- a9 O; f

    $ c# r% {% [) e' X/ c! S显然.从式(3—86)可知:7 f5 t3 V; M* k  v

    . \# ]% G$ Y# Z(1)适应度较高的个体,繁殖下一代的数目较多。
    / @* C. ]& J7 ~" g
    5 h5 X. w( }! L9 |% [
    (2)适应度较小的个体,繁殖下一代的数目较少;甚至被淘汰。
    2 m1 h1 M4 c6 Z; N" H1 {6 R
    4 m6 u9 M7 [( B& ^& C3 O" o5 _
    这样,就产生了对环境适应能力较强的后代。对于问题求解角度来讲,就是选择出和最优解较接近的中间解。2 ?) i: J( p8 s6 K7 {3 T, a
    ( x$ t6 i; R$ J5 D" G0 P2 }& T
    3.交叉* S- E( U; `6 @, I4 w& ]/ I
    对于选中用于繁殖下一代的个体,随机地选择两个个体的相同位置,按交叉概率P。在选中的位置实行交换。这个过程反映了随机信息交换;目的在于产生新的基因组合,也即产生新的个体。交叉时,可实行单点交叉或多点交叉。
    / S- T4 P5 A( t9 V5 ]& y4 t
    8 Q) K- H3 W" E8 X) v" F; Y
    例如有个体0 n- c1 X* s" y% A  u1 P

    0 `' A+ {1 i4 V) v/ Q4 PS1=100101 # O- \2 l- c6 @
    " {5 ~& I* ]9 @/ }* b. k3 {; L( r# j
    S2=010111 2 c0 ^. d5 a9 E! S, j7 ~2 [
    9 s5 ]- ?) Z* x8 j/ K) s
    选择它们的左边3位进行交叉操作,则有3 l5 c4 l) I, s0 k9 B3 Y  f  @. k3 B

    ) H# x3 a6 ]8 T8 k0 C5 v& qS1=010101 4 F0 \8 Z6 d2 x) m/ |$ b( c. F: a$ ]1 F

    0 P5 g1 g% Y1 \; i, E: IS2=100111 : d0 g+ W6 G  \) R9 c5 K9 `% T9 `
    9 r# f0 {: A+ G1 @
    一般而言,交 婊显譖。取值为0.25—0.75。( P4 E9 q5 X/ E

    8 @. |+ Y; }+ t+ i& ?7 B6 [4.变异
    . v5 y* Z- L1 d4 j1 h  |

    4 r9 @6 |8 c6 u- T7 O# p8 N根据生物遗传中基因变异的原理,以变异概率Pm对某些个体的某些位执行变异。在变异时,对执行变异的串的对应位求反,即把1变为0,把0变为1。变异概率Pm与生物变异极小的情况一致,所以,Pm的取值较小,一般取0.01-0.2。
    1 {& W4 P" t5 b
    6 T* t4 g  ~: f/ H
    例如有个体S=101011。
    $ N0 S/ p  t3 m$ P3 k1 G9 X
    - i4 {) q% n: n& y0 A7 Q
    对其的第1,4位置的基因进行变异,则有
    / F  ?0 w1 b- y4 ?, |' `% {

    9 g5 e# W/ p' i& ]& iS'=001111
    + Z0 t2 r; Q% w/ ^

    7 \; o8 \; `+ l; |4 C  n6 f5 r单靠变异不能在求解中得到好处。但是,它能保证算法过程不会产生无法进化的单一群体。因为在所有的个体一样时,交叉是无法产生新的个体的,这时只能靠变异产生新的个体。也就是说,变异增加了全局优化的特质。
    , F( D* J( k5 l7 z8 e

    ( t' x1 i6 D4 X) _# f5.全局最优收敛(Convergence to the global optimum) 9 H+ }. y+ E7 F* V+ A$ u) ~

    3 g5 n; H7 l( P# h" G3 m( w当最优个体的适应度达到给定的阀值,或者最优个体的适应度和群体适应度不再上升时,则算法的迭代过程收敛、算法结束。否则,用经过选择、交叉、变异所得到的新一代群体取代上一代群体,并返回到第2步即选择操作处继续循环执行。4 a2 t5 n5 r7 B% p
    8 N. V9 y1 w1 S7 A. }
    图3—7中表示了遗传算法的执行过程。
    & A; Q, m4 q* y4 C8 K+ O1 c* D( t
    & U4 U# m: D  a+ w4 P
    5 W5 F/ T% S! ]" I% j  m5 g6 R$ _" G8 Y# R# S1 P4 a- I/ G7 d
    $ x% C' ?; f% J$ q1 k+ N! i
    图3-7 遗传算法原理. w, f1 }% B: i  K2 G
    8 H. o' {4 B0 g" l/ q, J; j
    3.2.3遗传算法的应用
    & e5 c) V6 v8 V% m1 |
    - [2 Y; w) k4 X/ J
    遗传算法在很多领域都得到应用;从神经网络研究的角度上考虑,最关心的是遗传算法在神经网络的应用。在遗传算法应用中,应先明确其特点和关键问题,才能对这种算法深入了解,灵活应用,以及进一步研究开发。
    , a# ^6 E9 Z. q9 g

      `' ?5 A; W3 f一、遗传算法的特点1 x' ?/ o# K4 {- V7 C1 e- _% |

    4 l+ N% P1 ^+ a: e0 ^9 \2 M1.遗传算法从问题解的中集开始嫂索,而不是从单个解开始。
    + Q; z" M0 e8 C# y

    9 [5 L  q9 o$ o这是遗传算法与传统优化算法的极大区别。传统优化算法是从单个初始值迭代求最优解的;容易误入局部最优解。遗传算法从串集开始搜索,复盖面大,利于全局择优。: k/ Q+ J1 V; e6 ]2 o
    + Q1 \9 q) l) @( a% I
    2.遗传算法求解时使用特定问题的信息极少,容易形成通用算法程序。
    . q4 m1 Y  K; w( }3 K# {3 z# q

    7 Z4 B4 u  b1 h5 U由于遗传算法使用适应值这一信息进行搜索,并不需要问题导数等与问题直接相关的信息。遗传算法只需适应值和串编码等通用信息,故几乎可处理任何问题。* Q* w: `/ F, s  k0 v

    7 G5 P8 N+ y4 L4 D! r2 M# U, T  ?3.遗传算法有极强的容错能力
    9 T! Y  [2 U( |

    3 [# ^. }# Y8 H' Z" b遗传算法的初始串集本身就带有大量与最优解甚远的信息;通过选择、交叉、变异操作能迅速排除与最优解相差极大的串;这是一个强烈的滤波过程;并且是一个并行滤波机制。故而,遗传算法有很高的容错能力。
    & m' f& u. N3 D
    : w" E9 z$ I( g) ]' B3 o
    4.遗传算法中的选择、交叉和变异都是随机操作,而不是确定的精确规则。
    - H- j( ?( R2 g+ ]- }

    4 y$ m  b4 K' O/ R+ U/ ~! s这说明遗传算法是采用随机方法进行最优解搜索,选择体现了向最优解迫近,交叉体现了最优解的产生,变异体现了全局最优解的复盖。! P6 A  z. d5 q+ O" s% ~! Q" w+ b6 x
    + S$ x# C" l- O, f* |) W
    5.遗传算法具有隐含的并行性
    % S. `/ j+ E" t: d

    $ C5 I; e; b* g' R( e( o遗传算法的基础理论是图式定理。它的有关内容如下:
    % [/ n/ L$ z& S( N& k/ T
    & x* L( o6 \% y5 p. B
    (1)图式(Schema)概念8 K0 t! @, b. V2 P* ^0 E

    5 L9 F3 |4 ^/ }+ {* A/ C2 C* P一个基因串用符号集{0,1,*}表示,则称为一个因式;其中*可以是0或1。例如:H=1xx 0 x x是一个图式。
    : i# r1 t7 ^3 d4 B+ R. p# a( l

    . Y& I. q  i0 f0 Q  [; }/ c# ~; o/ j(2)图式的阶和长度
    9 N  \; ^  w: y6 I* R
    1 u2 t/ ^4 k8 c$ I4 E0 k- v
    图式中0和1的个数称为图式的阶,并用0(H)表示。图式中第1位数字和最后位数字间的距离称为图式的长度,并用δ(H)表示。对于图式H=1x x0x x,有0(H)=2,δ(H)=4。5 U' m& j, S" V" v7 F/ f6 f
    ) z/ g% S% z+ q- d! A6 `, J
    (3)Holland图式定理2 ~6 m9 g, ^  @) P- k

    : g, b, Q7 D9 k9 L0 e9 T6 \4 p低阶,短长度的图式在群体遗传过程中将会按指数规律增加。当群体的大小为n时,每代处理的图式数目为0(n3)。) Q; u) H" f  Y% x& j

    9 L( e& _" }6 D) M1 ~( ~  a遗传算法这种处理能力称为隐含并行性(Implicit Parallelism)。它说明遗传算法其内在具有并行处理的特质。/ V: r+ C) e% _& H4 d

    8 P& u; X  M4 N: G8 d* h  L二、遗传算法的应用关键
    - X8 ~$ ]; z" Z
    - d9 n6 X) ~; ?1 s" ]1 a# @
    遗传算法在应用中最关键的问题有如下3个
    * ~, _7 }+ `) k- G- X% i4 G4 R

    * \$ \& B! z; f9 S# w1.串的编码方式
    ) Y. k, R5 H5 p& I
    * k4 |' M, y3 W/ @
    这本质是问题编码。一般把问题的各种参数用二进制编码,构成子串;然后把子串拼接构成“染色体”串。串长度及编码形式对算法收敛影响极大。
    # Y$ c0 g- d$ V- |, ]3 V
    ) o) B4 r9 d  b' x$ x7 v
    2.适应函数的确定' Q9 r8 M7 |, c$ Z

    ! y: A/ z) D8 x% E4 U适应函数(fitness function)也称对象函数(object function),这是问题求解品质的测量函数;往往也称为问题的“环境”。一般可以把问题的模型函数作为对象函数;但有时需要另行构造。% C/ |" N8 z% ?* Q' N5 h% u
    2 I# o3 V: v7 r3 L2 W
    3.遗传算法自身参数设定
    % ?5 T0 ~$ P& u) O! i: a3 _

      V, e6 r; v+ l2 x) }- w" K遗传算法自身参数有3个,即群体大小n、交叉概率Pc和变异概率Pm。2 n3 T/ z4 ?. y0 ?

    ' G% P  E& u  n( a! Y群体大小n太小时难以求出最优解,太大则增长收敛时间。一般n=30-160。交叉概率Pc太小时难以向前搜索,太大则容易破坏高适应值的结构。一般取Pc=0.25-0.75。变异概率Pm太小时难以产生新的基因结构,太大使遗传算法成了单纯的随机搜索。一般取Pm=0.01—0.2。
    . x9 T4 _  m7 o2 k" j+ W- Q

    2 ~3 b! P7 @; G( Z) y, `三、遗传算法在神经网络中的应用, z) F% {" F: e: n* q2 f
    " K# w5 l: x# f- a# |
    遗传算法在神经网络中的应用主要反映在3个方面:网络的学习,网络的结构设计,网络的分析。! z$ x& p$ B4 @9 Q

      ^2 O% a( {  ]+ [2 t1.遗传算法在网络学习中的应用
    & i5 P7 A6 L" y3 l6 \
    7 n$ X3 y3 c# c# |9 {9 C; H4 d
    在神经网络中,遗传算法可用于网络的学习。这时,它在两个方面起作用
    5 ?9 ]* ~! S3 `$ s! s! y
    , ~! ^; Q# ~# ?0 K2 y
    (1)学习规则的优化
    ) _7 ^. T9 ]! F1 P4 M

    + Z& D1 Z9 b5 [1 ]9 X$ I! K用遗传算法对神经网络学习规则实现自动优化,从而提高学习速率。( e$ l2 W8 G: o+ w

    4 u  s) e. p" [# H7 F1 H(2)网络权系数的优化
    " j# \9 R; K4 [! ?% [5 Y9 @% f" e
    : o( F/ g% u4 @$ d, K- S
    用遗传算法的全局优化及隐含并行性的特点提高权系数优化速度。9 e% ^+ }) K6 d/ e4 k5 N& w
    ( `6 b1 P3 ]& H: k% f. m* q9 K
    2.遗传算法在网络设计中的应用! m+ b% B2 b/ Y: q: `* N
    3 [4 R4 C. C2 }6 g
    用遗传算法设计一个优秀的神经网络结构,首先是要解决网络结构的编码问题;然后才能以选择、交叉、变异操作得出最优结构。编码方法主要有下列3种:0 X( U9 L* Z1 }5 i* V8 e. U0 i5 e! V

      B* `- }2 M0 }4 s" |/ D(1)直接编码法: R1 C% h2 `7 H0 w9 s

    8 w7 k" `. z* y! W8 }# m这是把神经网络结构直接用二进制串表示,在遗传算法中,“染色体”实质上和神经网络是一种映射关系。通过对“染色体”的优化就实现了对网络的优化。2 b1 m' o3 p; J0 c8 W

    % E- Q" o) b4 R6 g$ G(2)参数化编码法! N( h8 c# R) U  q/ W& z/ L; x

    7 t. L! b) t- c1 v参数化编码采用的编码较为抽象,编码包括网络层数、每层神经元数、各层互连方式等信息。一般对进化后的优化“染色体”进行分析,然后产生网络的结构。
      l  J* P5 l2 A( g0 e0 n# I
    ; Z% B2 X) u1 o. {; U/ {8 W* g
    (3)繁衍生长法
    ; n# Z1 I" |- q4 d+ Q# h

    0 }" _- Q2 ~1 m; d这种方法不是在“染色体”中直接编码神经网络的结构,而是把一些简单的生长语法规则编码入“染色体”中;然后,由遗传算法对这些生长语法规则不断进行改变,最后生成适合所解的问题的神经网络。这种方法与自然界生物地生长进化相一致。
    1 ]# g7 z. ^% H* G- ]' m
    - ?6 I: `4 n1 M# B: u* X- f; {& {/ v
    3.遗传算法在网络分析中的应用! C/ |% E* _5 ], w
    5 D3 [# v( A3 W2 T3 w
    遗传算法可用于分析神经网络。神经网络由于有分布存储等特点,一般难以从其拓扑结构直接理解其功能。遗传算法可对神经网络进行功能分析,性质分析,状态分析。$ M6 N% z! ]$ b" ~

    . m8 p+ B) b+ `! j8 m$ v) @遗传算法虽然可以在多种领域都有实际应用,并且也展示了它潜力和宽广前景;但是,遗传算法还有大量的问题需要研究,目前也还有各种不足。首先,在变量多,取值范围大或无给定范围时,收敛速度下降;其次,可找到最优解附近,但无法精确确定最扰解位置;最后,遗传算法的参数选择尚未有定量方法。对遗传算法,还需要进一步研究其数学基础理论;还需要在理论上证明它与其它优化技术的优劣及原因;还需研究硬件化的遗传算法;以及遗传算法的通用编程和形式等。
    % `' _5 g/ K# Q, y
    更多图片 小图 大图
    组图打开中,请稍候......
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    楼主热帖
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    慵懒
    2017-6-1 21:49
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    累计签到:6 天
    连续签到:1 天
     楼主| 发表于 2012-6-7 10:03:10 | 显示全部楼层
    几乎可以处理任何问题。。。但是缺乏理论根据。“遗传算法虽然可以在多种领域都有实际应用,并且也展示了它潜力和宽广前景;但是,遗传算法还有大量的问题需要研究,目前也还有各种不足。首先,在变量多,取值范围大或无给定范围时,收敛速度下降;其次,可找到最优解附近,但无法精确确定最扰解位置;最后,遗传算法的参数选择尚未有定量方法。对遗传算法,还需要进一步研究其数学基础理论;还需要在理论上证明它与其它优化技术的优劣及原因;还需研究硬件化的遗传算法;以及遗传算法的通用编程和形式等。
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    开心
    2019-4-1 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    累计签到:1 天
    连续签到:1 天
    发表于 2012-6-7 10:48:31 | 显示全部楼层
    学习 学习了
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    愤怒
    2020-12-8 11:59
  • 签到天数: 105 天

    连续签到: 1 天

    [LV.6]常住居民II

    累计签到:223 天
    连续签到:1 天
    发表于 2012-6-7 14:58:45 | 显示全部楼层
    适合了解用。
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】

    该用户从未签到

    尚未签到

    发表于 2012-7-31 23:24:23 | 显示全部楼层
    希望提供代码。。
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    您需要登录后才可以回帖 登录 | 立即加入

    本版积分规则

    招聘斑竹

    小黑屋|手机版|APP下载(beta)|Archiver|电力研学网 ( 赣ICP备12000811号-1|赣公网安备36040302000210号 )|网站地图

    GMT+8, 2026-10-30 20:59

    Powered by Discuz! X3.5 Licensed

    © 2001-2026 Discuz! Team.

    快速回复 返回顶部 返回列表