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

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

[分享] 转(遗传算法)

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

    连续签到: 1 天

    [LV.2]偶尔看看I

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

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

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

    ×
    生物的进化是一个奇妙的优化过程,它通过选择淘汰,突然变异,基因遗传等规律产生适应环境变化的优良物种。遗传算法是根据生物进化思想而启发得出的一种全局优化算法。$ E) Z0 e5 P- y% h" T% \& |

    % K! }8 x& r! L遗传算法的概念最早是由Bagley J.D1967年提出的;而开始遗传算法的理论和方法的系统性研究的是1975年,这一开创性工作是由Michigan大学的J.H.Holland所实行。当时,其主要目的是说明自然和人工系统的自适应过程。3 q3 G; ~9 Z: c1 u# j, Z- `

    9 o  f- H9 E: U# {1 A- s; S, Q遗传算法简称GA(Genetic Algorithm),在本质上是一种不依赖具体问题的直接搜索方法。遗传算法在模式识别、神经网络、图像处理、机器学习、工业优化控制、自适应控制、生物科学、社会科学等方面都得到应用。在人工智能研究中,现在人们认为“遗传算法、自适应系统、细胞自动机、混沌理论与人工智能一样,都是对今后十年的计算技术有重大影响的关键技术”。
    - o5 M- _. q, g# V, N! J8 [

    5 [4 ^5 Q- U% `' J# L7 J321 遗传算法的基本概念
    ; D7 O- ]/ |8 J+ k

    6 }% D- j! |# J遗传算法的基本思想是基于Darwin进化论和Mendel的遗传学说的。* I/ x8 j- L0 R& J; g
    ; ]. M" z# R; j' e6 Y, Q4 w9 L( M
    Darwin进化论最重要的是适者生存原理。它认为每一物种在发展中越来越适应环境。物种每个个体的基本特征由后代所继承,但后代又会产生一些异于父代的新变化。在环境变化时,只有那些熊适应环境的个体特征方能保留下来。1 [- Y2 _. O$ Q/ j

    / ?9 n  o" ^  r/ ZMendel遗传学说最重要的是基因遗传原理。它认为遗传以密码方式存在细胞中,并以基因形式包含在染色体内。每个基因有特殊的位置并控制某种特殊性质;所以,每个基因产生的个体对环境具有某种适应性。基因突变和基因杂交可产生更适应于环境的后代。经过存优去劣的自然淘汰,适应性高的基因结构得以保存下来。1 I+ _+ I% P, [& p, t  M6 M: |
    - [# q" g. a& c1 h  T' H
    由于遗传算法是由进化论和遗传学机理而产生的直接搜索优化方法;故而在这个算法中要用到各种进化和遗传学的概念。这些概念如下:( F9 l) _+ K) ]; A  |8 T
    " m4 k( J/ t+ s: d5 W+ \
    一、串(String) : h+ {/ i2 V5 G1 J

    # M6 z* j- `. d' _) y) M& k它是个体(Individual)的形式,在算法中为二进制串,并且对应于遗传学中的染色体(Chromosome)( S# h. H/ ^) y; N+ j6 m

    8 ]  `2 Z* I5 r9 E二、群体(Population) 7 f4 }) y# i( D1 c' {: T

    ) D( W% O$ W* D# I个体的集合称为群体,串是群体的元素
    ) P' Y' R2 {0 l

    0 \) p6 T. l) j$ F. F三、群体大小(Population Size)
    : }) C; r- ^9 t  @$ {6 Z9 C4 N4 m

    " l& e8 C% l+ Q在群体中个体的数量称为群体的大小。+ |( r7 p4 M9 g9 e# }
    " V3 K* p- d2 q2 ~7 b. B
    四、基因(Gene) 3 D' ^5 X* y" r  F" E" q( j
    ( ?" |7 M% b% R1 ?. e
    基因是串中的元素,基因用于表示个体的特征。例如有一个串S1011,则其中的10114个元素分别称为基因。它们的值称为等位基因(Alletes); p' [: g- K8 p, w/ v7 B9 Q/ _
    6 v1 A3 O) c/ h8 Z; \7 O
    、基因位置(Gene Position)
    1 l& R! i7 K/ m8 ?1 x

    0 Q! g. c/ r: t( L一个基因在串中的位置称为基因位置,有时也简称基因位。基因位置由串的左向右计算,例如在串S1101中,0的基因位置是3。基因位置对应于遗传学中的地点(Locus)* n9 b9 m3 g( A6 ]5 _$ F
    * {8 v( j+ v7 T, N
    六、基因特征值(Gene Feature) # K( O9 L# c3 T) D6 J  _6 d1 k
    " c) M; X0 }' d
    在用串表示整数时,基因的特征值与二进制数的权一致;例如在串S=1011中,基因位置3中的1,它的基因特征值为2;基因位置1中的1,它的基因特征值为8
    * ]: i" p* C  ?

    ; c1 l6 J) f+ }2 J% I8 g1 R* F, w! \七、串结构空间SS
    6 [3 @6 q3 ~4 c; E5 N* Z3 k4 b

    & J0 ^2 B' Q, I  T  s在串中,基因任意组合所构成的串的集合。基因操作是在结构空间中进行的。串结构空间对应于遗传学中的基因型(Genotype)的集合。  e; g4 s) F5 p- U; d. Q
    ; N. e  N* v0 p/ L- P" f& w
    八、参数空间SP # O9 x$ Y: g  J4 L4 p- i; z0 F
    2 x0 n8 n( R/ N. {
    这是串空间在物理系统中的映射,它对应于遗传学中的表现型(Phenotype)的集合。
    ! F* b3 R6 n) A; f  I+ w

      A- F3 `# d2 J7 J( }8 Q九、非线性! n$ B. }2 D4 H- L

    - U2 l3 w3 o2 N& M5 ]5 a& e它对应遗传学中的异位显性(Epistasis)
    * ~9 f/ E. i/ [1 S9 k; ^, I

    ! z( {5 S# y7 h! l2 n十、适应度(Fitness)
    , u$ d6 s5 `9 F. f2 S' p
    5 _( j4 G% e, v# R
    表示某一个体对于环境的适应程度。
    6 P( c. H. f3 k/ m) [
    + h  Z6 y  [% F
    遗传算法还有一些其它的概念,这些概念在介绍遗传算法的原理和执行过程时,再进行说明。
    3 E# `, c) a, I7 e& B
    1 q0 {; |0 Z0 _* Y2 O  o" G
    322遗传算法的原理
    6 ?/ N& F& o  r4 c' y* ~+ v
    : u7 O: J! X- @5 G# }; {& p% Y0 b
    遗传算法GA把问题的解表示成“染色体”,在算法中也即是以二进制编码的串。并且,在执行遗传算法之前,给出一群“染色体”,也即是假设解。然后,把这些假设解置于问题的“环境”中,并按适者生存的原则,从中选择出较适应环境的“染色体”进行复制,再通过交叉,变异过程产生更适应环境的新一代“染色体”群。这样,一代一代地进化,最后就会收敛到最适应环境的一个“染色体”上,它就是问题的最优解。
    , k9 J5 `- l+ |) R/ H* Z' R+ ]# `

    - @, J: d9 L# f一、遗传算法的目的3 D8 v  V" l  g) a% n- @: o

    8 V6 W/ i8 e3 [# ?' w7 j9 G典型的遗传算法CGA(Canonical Genetic Algorithm)通常用于解决下面这一类的静态最优化问题:& i& n% D: D( d( R

    9 G# ~# l) R4 H! v4 P考虑对于一群长度为L的二进制编码bii12,…,n;有
    9 P: t) q) f6 v- `! [2 m
    5 w+ Z! k* m) [: J6 _
    bi{0,1}L        (3-84)
    : g+ F. |; A# Y; [" r4 S  m
    9 s: g- q; G( d+ A+ V
    给定目标函数f,有f(bi),并且
    2 q7 A0 m( ~! [
    0 T( r/ W3 g9 L! ~" I' k& Y- A
    0<F(BI)<< P> # B6 U: E$ T  A0 E) v) R

    8 [# l! p, B# F7 ^, ~8 Q同时; w8 `* t6 U; x. y( e
    2 P7 _5 o5 f; Z. m- |0 O1 E( g
    f(bi)f(bi+1)
    - H. A6 P" f3 p% B% q% _: C

    $ ^( l8 P  l: }求满足下式
      @" T4 n* R' f( G! }/ Z
    8 Y4 E0 l/ L/ A
    max{f(bi)|bi{0,1}L}
    % Y; y$ M1 q/ E6 g

    - f' i$ G# f, H; ~$ Hbi5 f2 Z) ^0 j/ `# ~; S2 H) ~
    ; j* X+ A* c& b! G
    很明显,遗传算法是一种最优化方法,它通过进化和遗传机理,从给出的原始解群中,不断进化产生新的解,最后收敛到一个特定的串bi处,即求出最优解。* m+ f$ t6 H. M. S! w. g

    , _0 M% \: X) q& f' q' a+ w8 Q. I8 E二、遗传算法的基本原理3 y; a" K  u5 m$ b
    & q. A6 W# R6 M0 I/ ]  a/ `( L
    长度为Ln个二进制串bi(i12,…,n)组成了遗传算法的初解群,也称为初始群体。在每个串中,每个二进制位就是个体染色体的基因。根据进化术语,对群体执行的操作有三种:
    ! Y. A% u1 J# j% Y5 d( o

    4 h" r; M; g! {1 h4 A3 m1.选择(Selection)
    # A: j8 q8 z: q6 M" ?0 \6 C( L

      q( l/ ^/ n" `6 B1 k* T3 K这是从群体中选择出较适应环境的个体。这些选中的个体用于繁殖下一代。故有时也称这一操作为再生(Reproduction)。由于在选择用于繁殖下一代的个体时,是根据个体对环境的适应度而决定其繁殖量的,故而有时也称为非均匀再生(differential reproduction)
    % @# M4 O7 h& P; i  s" x7 {

    $ s0 T2 u7 c) Z/ n# o% G8 ^- X2 ~( s+ F2.交叉(Crossover)
    : |0 m7 {9 x7 r) r# M
    % ^& F7 A# D, J' w9 K0 Q9 L
    这是在选中用于繁殖下一代的个体中,对两个不同的个体的相同位置的基因进行交换,从而产生新的个体。
    + Z* D; o" ^. t# f2 h

    0 P, j  }) w: x  u4 M- C( }3.变异(Mutation)
    : [, \" _% q8 G8 z3 o6 j
    + w1 k5 @1 x6 U7 A: d
    这是在选中的个体中,对个体中的某些基因执行异向转化。在串bi中,如果某位基因为1,产生变异时就是把它变成0;反亦反之。. W% X/ Z6 o7 k% o1 |
      l! L2 d/ }1 X+ U
    遗传算法的原理可以简要给出如下:0 G- W8 b9 y! Y7 M  d
    - X/ `5 O" H9 y
    choose an intial population 8 w8 U8 S6 d) H1 e7 P; K

    9 D/ p3 Z0 m' {0 T3 odetermine the fitness of each individual
    1 L6 Y# w- u5 c8 w1 Y4 z
    4 Y1 S$ [3 t5 w- z- C3 S
    perform selection % p) M( H; P% n3 O( _& N9 B$ c& |' H

    ! K, F  q: Y! k/ P, f- g& Z4 brepeat * C4 t5 P- u, M# L. Y
    , i+ f; x3 r3 t$ ]/ m: [( V: i$ a, Z
        perform crossover 8 w* u9 F5 v. ]2 e0 E
    3 Y! z# J9 |8 \
        perform mutation
    / i1 ]1 ^5 }' V* G
    ; z2 T8 F) ~( _5 I, M
        determine the fitness of each individual # C* O' v+ y7 Z' @" u4 d& C8 K

    * ~& w4 x# j  ~/ [' m: ^: s    perform selection 9 y  \8 {4 p: ^2 q5 p

    % c7 h" D) l0 \' Y3 {9 d7 F& Xuntil some stopping criterion applies 0 O. P: D& G/ [: }
    4 z. V+ d: o( L$ v% K. L+ e& @
    这里所指的某种结束准则一般是指个体的适应度达到给定的阀值;或者个体的适应度的变化率为零。* y2 @( c. H% V
    三、遗传算法的步骤和意义+ S8 |0 D: @8 @3 m5 s

      i' i/ C& ^$ l& m1.初始化
    ! q0 c" h' ~! `! G' Q0 g
    , q  y6 U( S/ P( N3 {9 t, |8 S
    选择一个群体,即选择一个串或个体的集合bii=12...n。这个初始的群体也就是问题假设解的集合。一般取n30-160
    9 m1 \7 r4 p+ `& {0 R" |  E' ?8 x$ \

    ! o( O7 _, a2 B& p! U1 N通常以随机方法产生串或个体的集合bi,i12...n。问题的最优解将通过这些初始假设解进化而求出。
    & @; l; D! X' o: v7 \/ n+ r( Q

    5 T5 p1 g+ H: f# X2.选择$ Q3 I# e' @& b* s# S

    ) 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 ? 6.2.ht40.gif ' D( I0 n: O) N/ a
    为选中bi为下一代个体的次数。' F' j" m1 S$ D1 w: N! Z* {: m7 m
    # h% |' W: U4 u+ K" H4 q
    显然.从式(386)可知:
      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.250.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.28 Z9 ?) M4 C% \/ a1 x; ^9 y3 K

    ! I+ E0 A' M3 ~$ g例如有个体S101011
    $ z, H3 ?* x5 T6 L, V5 P
    ! M) f6 E3 c8 R
    对其的第14位置的基因进行变异,则有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
    37中表示了遗传算法的执行过程。; f: L  {( G) F3 n
    7 ~0 s$ [4 B& v8 b' j$ p

    ! B# x8 p8 p- p6 ` Genetic_Algorithm.gif + 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
    323遗传算法的应用
    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
    一个基因串用符号集{01*}表示,则称为一个因式;其中*可以是01。例如: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图式中01的个数称为图式的阶,并用0(H)表示。图式中第1位数字和最后位数字间的距离称为图式的长度,并用δ(H)表示。对于图式H1x 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

    , ?3 j! W7 q1 A2 w, X$ }二、遗传算法的应用关键
    5 L# |6 K3 }% T' h/ i) X6 H/ D

    ( S$ T! c5 ]: @+ f3 q! }8 p遗传算法在应用中最关键的问题有如下38 I, h* g& y4 S9 @8 t; R6 Y
    ! v/ x! U: }& M0 t
    1.串的编码方式
    0 ^5 R. R4 A. F$ |. R( d& F8 H! j' R

    1 f5 D8 J8 |. A# C1 d这本质是问题编码。一般把问题的各种参数用二进制编码,构成子串;然后把子串拼接构成“染色体”串。串长度及编码形式对算法收敛影响极大。
      ^0 m$ t* ^' A( s* r
    5 O( D# U3 E( R% Y/ j8 _+ r
    2.适应函数的确定+ D9 B& z1 s4 b# t/ B

    7 I% Z# c& z3 a5 ]& `适应函数(fitness function)也称对象函数(object function),这是问题求解品质的测量函数;往往也称为问题的“环境”。一般可以把问题的模型函数作为对象函数;但有时需要另行构造。
    ( O7 G- k# L; t5 t' j$ h. B

    ' \5 d& o$ [$ F% O! r! F" p3.遗传算法自身参数设定9 Q, Q, P* a; \* m
    3 A) j$ N; K: n0 ]/ U' q
    遗传算法自身参数有3个,即群体大小n、交叉概率Pc和变异概率Pm
    5 _/ y' ?# g9 F4 A2 [( }7 g

    4 K2 S( a# u2 k+ }4 ^# Y群体大小n太小时难以求出最优解,太大则增长收敛时间。一般n30-160。交叉概率Pc太小时难以向前搜索,太大则容易破坏高适应值的结构。一般取Pc=0.25-0.75。变异概率Pm太小时难以产生新的基因结构,太大使遗传算法成了单纯的随机搜索。一般取Pm00102
    + q8 E5 s$ Z+ C3 y+ K
      w( N* d" {  m8 f/ W- v. B1 @( F
    三、遗传算法在神经网络中的应用( V; n+ u/ m' L: V
    9 w" S2 Y1 d1 ]& ~& `0 u; `
    遗传算法在神经网络中的应用主要反映在3个方面:网络的学习,网络的结构设计,网络的分析。
    9 b3 u! X8 R# l

    ; p+ ?( _, t) z7 S1 b1.遗传算法在网络学习中的应用
    4 _( @' J+ @( v9 A: E
    6 V7 n; j5 R! v, ~& J* ~, J
    在神经网络中,遗传算法可用于网络的学习。这时,它在两个方面起作用
    ( z7 t# y8 `8 ~7 t: S* I  K
    . `- Z5 Q& F2 l0 W% u
    (1)学习规则的优化
    : }2 O& _- G. l: P7 h

    - O, H- {. y5 z# q2 a! \* Y用遗传算法对神经网络学习规则实现自动优化,从而提高学习速率。
    4 R7 a' Q7 D" U+ d, Z( Z
      d0 ^& O. |# M% |; c- n
    (2)网络权系数的优化$ |/ g' |4 C2 C

    ; \( o2 V# p7 f: F2 F用遗传算法的全局优化及隐含并行性的特点提高权系数优化速度。
    % ~& n  n& D6 ^2 c

    5 P6 z* O4 H: u2.遗传算法在网络设计中的应用
    ! Z! b; j: A8 r8 T
    8 O% c* W' x0 y# I
    用遗传算法设计一个优秀的神经网络结构,首先是要解决网络结构的编码问题;然后才能以选择、交叉、变异操作得出最优结构。编码方法主要有下列3种:
    1 a$ g+ [8 f; J; V7 u& Z
    8 k  y! R4 X0 ?6 d& a( A0 T
    (1)直接编码法" J% v* o% Q6 U) g
    6 p% z! I/ @0 V3 w
    这是把神经网络结构直接用二进制串表示,在遗传算法中,“染色体”实质上和神经网络是一种映射关系。通过对“染色体”的优化就实现了对网络的优化。
    ; Y0 E  ~4 b" b+ w* Q' }# i) Y
    6 H, e  _( k% m0 j: @
    (2)参数化编码法7 P0 o3 e" I7 M3 g# L

    , x% Y; ], R; `参数化编码采用的编码较为抽象,编码包括网络层数、每层神经元数、各层互连方式等信息。一般对进化后的优化“染色体”进行分析,然后产生网络的结构。
    3 J. Y  k( t; q: O+ m- [5 t' `" d6 T

    + ~3 Y- S. k* i5 I/ v+ a(3)繁衍生长法
    , M, c' t. F# C7 ~6 n  V
    3 \, x( d' ?$ z6 X" p: ~- ]
    这种方法不是在“染色体”中直接编码神经网络的结构,而是把一些简单的生长语法规则编码入“染色体”中;然后,由遗传算法对这些生长语法规则不断进行改变,最后生成适合所解的问题的神经网络。这种方法与自然界生物地生长进化相一致。
    2 a6 V+ o* e7 ~0 S- a
    0 y4 g4 `7 J0 R7 T
    3.遗传算法在网络分析中的应用
    1 s# L+ W/ u0 C) `

    . s' \7 ~" S8 S, b2 Q% h遗传算法可用于分析神经网络。神经网络由于有分布存储等特点,一般难以从其拓扑结构直接理解其功能。遗传算法可对神经网络进行功能分析,性质分析,状态分析。
    7 [% x3 ]" D* l1 ~5 S6 Z; t
    4 K1 i  C7 D* u
    遗传算法虽然可以在多种领域都有实际应用,并且也展示了它潜力和宽广前景;但是,遗传算法还有大量的问题需要研究,目前也还有各种不足。首先,在变量多,取值范围大或无给定范围时,收敛速度下降;其次,可找到最优解附近,但无法精确确定最扰解位置;最后,遗传算法的参数选择尚未有定量方法。对遗传算法,还需要进一步研究其数学基础理论;还需要在理论上证明它与其它优化技术的优劣及原因;还需研究硬件化的遗传算法;以及遗传算法的通用编程和形式等。
    " ]0 g0 O) W- ^8 G! I
    : ~* e  O6 b& _5 G. C, ]# f8 s) l


    " f6 |( o: d0 @# Y: F6 |三、遗传算法的步骤和意义  B1 J/ ~9 f9 W( }$ y7 ^

      e% f3 [) O# X$ b1 a( [1 h1.初始化* z& a! Y  L; S. V- R# t1 B: |
    7 B8 l' v1 F" L$ Y
    选择一个群体,即选择一个串或个体的集合bii=12...n。这个初始的群体也就是问题假设解的集合。一般取n30-160- v1 I7 v9 \2 f; F# J

    % A& s" u3 D  g) S通常以随机方法产生串或个体的集合bi,i12...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

    7 X% ~1 W# j  H) Z5 r) w1 X# M9 ?$ \; E' v+ |# r
    为选中bi为下一代个体的次数。6 y4 t1 ]( H& g1 y# D7 ~

    7 y/ j" S6 A/ y5 j7 Z: x& i7 t# y显然.从式(386)可知:
    3 W0 n# k3 K: ^% _% |, ^7 U
    ' b/ _, H& ^5 K0 F& J
    (1)适应度较高的个体,繁殖下一代的数目较多。% j% h+ ^5 o; t) G, p4 R, p- \

    , 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.250.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.25 f/ b  D) v# Z  ]4 z

    6 X6 l5 u& _  p* s. E例如有个体S101011
    3 M& |- r8 T! }  H3 ]
    . h5 [" M5 A* i: [! l5 k
    对其的第14位置的基因进行变异,则有
    $ ], 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 ?
    37中表示了遗传算法的执行过程。- 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+ L3-7 遗传算法原理- R( [, e# t6 W; F1 Q
    5 K+ }/ r1 v$ j# g' t& i# x
    323遗传算法的应用* 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 [

    " u; W. k3 }  \3.遗传算法有极强的容错能力" G+ ?; ?! d! {$ g" A$ ~

    ' D0 Z$ k# _8 U0 N8 D6 D7 n4 Q8 \" ~遗传算法的初始串集本身就带有大量与最优解甚远的信息;通过选择、交叉、变异操作能迅速排除与最优解相差极大的串;这是一个强烈的滤波过程;并且是一个并行滤波机制。故而,遗传算法有很高的容错能力。
    : n* d& m2 f& r' |5 W' U( B
    , H, B% x, X4 M5 R, \
    4.遗传算法中的选择、交叉和变异都是随机操作,而不是确定的精确规则。  t$ z( E' W$ b" a
    , C7 \0 A+ G4 D. G7 j
    这说明遗传算法是采用随机方法进行最优解搜索,选择体现了向最优解迫近,交叉体现了最优解的产生,变异体现了全局最优解的复盖。
    5 e! i% A- p3 u

    % Q1 u  z& t: x# T5.遗传算法具有隐含的并行性& M% ]/ t7 F0 Z7 r3 M. N

    ' \( @  H" O( A/ t遗传算法的基础理论是图式定理。它的有关内容如下:
    " K; k& _* Y* V- @3 y1 A: a5 N

      a! V) c5 ?1 O- s; b  O1 q! Q+ ](1)图式(Schema)概念
    1 S0 Y! L2 P# V

    0 b0 q0 q+ \- y+ F- c. g1 [% z4 i一个基因串用符号集{01*}表示,则称为一个因式;其中*可以是01。例如:H=1xx 0 x x是一个图式。7 r, I* v: X1 A& Z; \7 P6 [- x
    2 L2 J9 p$ M% G
    (2)图式的阶和长度
    ) Q/ D$ b1 i; A3 v% \/ n' m

    7 {" ?! j8 f% q3 N3 c% h图式中01的个数称为图式的阶,并用0(H)表示。图式中第1位数字和最后位数字间的距离称为图式的长度,并用δ(H)表示。对于图式H1x x0x x,有0(H)2,δ(H)4
    1 D, Y2 T: B; U
    0 Z9 G2 y8 ~# O) z& D
    (3)Holland图式定理
    3 f% K( j! b, ^8 ~# m: s

    6 a/ R. ~+ Z# x, f1 f0 z6 y低阶,短长度的图式在群体遗传过程中将会按指数规律增加。当群体的大小为n时,每代处理的图式数目为0(n3)
    8 D" l. k& {9 m) |2 m3 C8 x

    # w) U# ^2 B9 K3 \8 _遗传算法这种处理能力称为隐含并行性(Implicit Parallelism)。它说明遗传算法其内在具有并行处理的特质。. C6 e2 _8 R2 v! U, M- @
    ! j2 ]  h  L9 L; [5 X
    二、遗传算法的应用关键; x" E# P5 N0 p3 O+ Y8 s+ G
    & q7 Q) G* U! s' @; z/ l' o
    遗传算法在应用中最关键的问题有如下37 K- c. t8 q2 n: m5 J
    ( B) s9 X0 R, X( P# S* j
    1.串的编码方式: i9 }/ d# C- z9 |# r0 P

      G  k3 [. r" y2 d2 S. n这本质是问题编码。一般把问题的各种参数用二进制编码,构成子串;然后把子串拼接构成“染色体”串。串长度及编码形式对算法收敛影响极大。
    ) Q1 C1 L! T. e6 O1 r3 L
    3 P7 A. Z  {; g& s! m
    2.适应函数的确定
    ( E; I' h7 u# S0 j, [
      j' ?  \, z( M
    适应函数(fitness function)也称对象函数(object function),这是问题求解品质的测量函数;往往也称为问题的“环境”。一般可以把问题的模型函数作为对象函数;但有时需要另行构造。  s# C/ [- F  ^

    5 Z) H$ X  a- B! ]$ x4 l3.遗传算法自身参数设定/ L" e: t& x! i/ P7 |

    & Z. [9 B- O" t, O2 H. y4 }# Z% a% a遗传算法自身参数有3个,即群体大小n、交叉概率Pc和变异概率Pm
    ; ~* I7 y. t8 m; \! Y$ j" Q% O$ Y
    . S5 F6 c5 Y! c$ S/ Q
    群体大小n太小时难以求出最优解,太大则增长收敛时间。一般n30-160。交叉概率Pc太小时难以向前搜索,太大则容易破坏高适应值的结构。一般取Pc=0.25-0.75。变异概率Pm太小时难以产生新的基因结构,太大使遗传算法成了单纯的随机搜索。一般取Pm001020 i( s7 q5 a9 z8 \% t

    / [; `1 f. N0 ~, H8 z三、遗传算法在神经网络中的应用) n' n) l$ p& s2 i( \# n

    5 g, d- X1 y- \6 M5 C: i遗传算法在神经网络中的应用主要反映在3个方面:网络的学习,网络的结构设计,网络的分析。  H1 C: I% Z; o3 D

    $ X& z, v: Y# c. _! Y3 M1.遗传算法在网络学习中的应用% ^. U& l% O; b

    9 m; U' @( I8 _: A6 b% \在神经网络中,遗传算法可用于网络的学习。这时,它在两个方面起作用
    0 E( Y! ~: o6 k4 x# U

    7 P! x* F% R3 p8 H" |0 E. x(1)学习规则的优化& g- |# z2 x+ P( X
    0 p. e  X; e4 K  ?/ M1 K
    用遗传算法对神经网络学习规则实现自动优化,从而提高学习速率。
    2 b8 e( i, C5 V6 P. ?! e% e8 A

      O6 E: g0 S8 q  L7 i(2)网络权系数的优化# p3 r* i: t2 K1 |  @2 Q3 O

    5 S8 U+ Z( W* ?! G用遗传算法的全局优化及隐含并行性的特点提高权系数优化速度。
    1 L" `, G# V+ i/ |7 |1 m! Z7 I4 t
    + N/ h3 R& N$ V1 N% ]9 D2 q* `% x
    2.遗传算法在网络设计中的应用' D1 ?' `  f" p& k3 C

    3 K5 `+ g1 S, m3 l! s4 j- m用遗传算法设计一个优秀的神经网络结构,首先是要解决网络结构的编码问题;然后才能以选择、交叉、变异操作得出最优结构。编码方法主要有下列3种:. @' Q7 k! S6 D3 R( q' n" z) n
    " W( v2 C2 Q! G; _
    (1)直接编码法
    5 O1 h7 J% o3 e: F. P! V

    ) B8 b( h, f) F" G9 e& S" a+ Y这是把神经网络结构直接用二进制串表示,在遗传算法中,“染色体”实质上和神经网络是一种映射关系。通过对“染色体”的优化就实现了对网络的优化。! z8 ~/ k& X+ U5 J! h$ t4 S2 [! V
    + ]5 Y5 b6 N2 f/ `
    (2)参数化编码法6 I9 R5 N2 f& Z4 {# A* Q

    ( O; Q3 s* _9 z/ A$ p; j2 D参数化编码采用的编码较为抽象,编码包括网络层数、每层神经元数、各层互连方式等信息。一般对进化后的优化“染色体”进行分析,然后产生网络的结构。
    6 s! t1 R! V- h1 p8 v. t( U5 W+ T9 V

    % w7 a  C2 b. V(3)繁衍生长法2 r, Q, P+ p! M8 O5 x* v0 J! G4 S

    0 f- k- `% l7 L! o/ _这种方法不是在“染色体”中直接编码神经网络的结构,而是把一些简单的生长语法规则编码入“染色体”中;然后,由遗传算法对这些生长语法规则不断进行改变,最后生成适合所解的问题的神经网络。这种方法与自然界生物地生长进化相一致。
    3 u/ w2 K- t+ |9 _) R/ `

    & x8 b) o. z  b" p4 l' D3.遗传算法在网络分析中的应用
    : ^$ ]1 s& H7 H/ J  |

    % Q) ^/ z+ U! t$ r0 z/ z% X3 t遗传算法可用于分析神经网络。神经网络由于有分布存储等特点,一般难以从其拓扑结构直接理解其功能。遗传算法可对神经网络进行功能分析,性质分析,状态分析。
    ' h' P3 ?2 C( I# _

    ; V% s1 ]5 Z2 o. f遗传算法虽然可以在多种领域都有实际应用,并且也展示了它潜力和宽广前景;但是,遗传算法还有大量的问题需要研究,目前也还有各种不足。首先,在变量多,取值范围大或无给定范围时,收敛速度下降;其次,可找到最优解附近,但无法精确确定最扰解位置;最后,遗传算法的参数选择尚未有定量方法。对遗传算法,还需要进一步研究其数学基础理论;还需要在理论上证明它与其它优化技术的优劣及原因;还需研究硬件化的遗传算法;以及遗传算法的通用编程和形式等。9 h5 [" w( G* n# z& _0 R% k9 S; f
    更多图片 小图 大图
    组图打开中,请稍候......
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    楼主热帖
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • 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

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

    该用户从未签到

    尚未签到

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

    本版积分规则

    招聘斑竹

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

    GMT+8, 2024-4-28 11:47

    Powered by Discuz! X3.5 Licensed

    © 2001-2024 Discuz! Team.

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