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

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

转(遗传算法)

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

    连续签到: 1 天

    [LV.2]偶尔看看I

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

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

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

    ×
    生物的进化是一个奇妙的优化过程,它通过选择淘汰,突然变异,基因遗传等规律产生适应环境变化的优良物种。遗传算法是根据生物进化思想而启发得出的一种全局优化算法。
    1 H1 a8 Q' b3 s/ |

    6 J* s* e( r$ }' W/ [2 D  i! S遗传算法的概念最早是由Bagley J.D1967年提出的;而开始遗传算法的理论和方法的系统性研究的是1975年,这一开创性工作是由Michigan大学的J.H.Holland所实行。当时,其主要目的是说明自然和人工系统的自适应过程。
    9 ^& M! ]# D* d1 g  u2 P9 `" O

    ; S- B3 B8 F* t& c6 w遗传算法简称GA(Genetic Algorithm),在本质上是一种不依赖具体问题的直接搜索方法。遗传算法在模式识别、神经网络、图像处理、机器学习、工业优化控制、自适应控制、生物科学、社会科学等方面都得到应用。在人工智能研究中,现在人们认为“遗传算法、自适应系统、细胞自动机、混沌理论与人工智能一样,都是对今后十年的计算技术有重大影响的关键技术”。
    / S' F# w7 R. C7 j4 G) m5 x
    , h0 w" [; o8 u! p9 n
    321 遗传算法的基本概念
    & f$ g/ U! A$ J7 U$ D  W

    5 l( G2 ^: ?/ m: B+ ]遗传算法的基本思想是基于Darwin进化论和Mendel的遗传学说的。. y- ~7 f6 P' d

    : R* F$ j+ c+ zDarwin进化论最重要的是适者生存原理。它认为每一物种在发展中越来越适应环境。物种每个个体的基本特征由后代所继承,但后代又会产生一些异于父代的新变化。在环境变化时,只有那些熊适应环境的个体特征方能保留下来。2 U; ]8 p0 w' O; o! M

    & J4 E) P; a( w$ `Mendel遗传学说最重要的是基因遗传原理。它认为遗传以密码方式存在细胞中,并以基因形式包含在染色体内。每个基因有特殊的位置并控制某种特殊性质;所以,每个基因产生的个体对环境具有某种适应性。基因突变和基因杂交可产生更适应于环境的后代。经过存优去劣的自然淘汰,适应性高的基因结构得以保存下来。
    : W' h% ]% G0 Y* N: A
    ! {1 }) F- \/ A1 U( `& J& U" N1 `
    由于遗传算法是由进化论和遗传学机理而产生的直接搜索优化方法;故而在这个算法中要用到各种进化和遗传学的概念。这些概念如下:/ T, G4 A( \6 S  D

    , O# K) _' Q! O9 U) y- A$ _3 {; S一、串(String)   k$ ]( O& u" L' ]

    & k# A% G  R" g1 M5 n& ^它是个体(Individual)的形式,在算法中为二进制串,并且对应于遗传学中的染色体(Chromosome)
    7 c0 D( w# ]6 r
    ( v! @7 K3 K7 w$ Z9 v5 m$ {6 d* F
    二、群体(Population)
    : s7 _& D; p& M: y

    4 \1 _$ j9 j; c6 b# C个体的集合称为群体,串是群体的元素2 Q0 ]- U0 X0 B, w/ J  H3 X: s2 W
    % J6 q8 k1 L- a) n1 ?9 z
    三、群体大小(Population Size) # x" s. X5 d) b" E# k6 U
    ! O# P. {1 ]" y' A2 |2 Q
    在群体中个体的数量称为群体的大小。
    8 D* ?& c. H7 R+ F/ G3 X+ }1 u
    9 w5 U$ L- Z% s7 }
    四、基因(Gene)
    & y, c4 B9 j) G; [4 |
    ) r& `, C. W8 F- K) b
    基因是串中的元素,基因用于表示个体的特征。例如有一个串S1011,则其中的10114个元素分别称为基因。它们的值称为等位基因(Alletes)/ r. ?5 @. N9 N( t& Y
    6 q+ I1 x& e6 }* ^; @
    、基因位置(Gene Position)
    , b  c! ~+ M% s
    1 D$ l' k4 u/ A. [) m* t: h
    一个基因在串中的位置称为基因位置,有时也简称基因位。基因位置由串的左向右计算,例如在串S1101中,0的基因位置是3。基因位置对应于遗传学中的地点(Locus)
    * N5 _6 h7 F! K

    5 f) R" m) |; h0 e, D+ b6 S- l六、基因特征值(Gene Feature)
    ! n- B. z  s! W' G
    ) I5 Q1 u. ~* c* m) Q
    在用串表示整数时,基因的特征值与二进制数的权一致;例如在串S=1011中,基因位置3中的1,它的基因特征值为2;基因位置1中的1,它的基因特征值为8
    6 X9 u  K8 _: D# `- I0 p8 f
    4 H0 }0 M3 P, h" h4 J  X5 M
    七、串结构空间SS 3 X( H: a4 k. }

    & [& E% g+ q( m0 V* W8 v1 k在串中,基因任意组合所构成的串的集合。基因操作是在结构空间中进行的。串结构空间对应于遗传学中的基因型(Genotype)的集合。
    : J! T2 k: K% `1 Y  q* F& z, F4 X
    " q- ?* w* b% q
    八、参数空间SP & ^9 Q; O% o. i  w
    4 _+ I7 D( e4 L" ^9 H! o
    这是串空间在物理系统中的映射,它对应于遗传学中的表现型(Phenotype)的集合。: x* y5 O) c8 c! _5 W& m$ m6 m
    1 m' K/ \% ~4 s
    九、非线性3 J; ?' y  A) ]. I- y- t; h

      n- S7 o8 T+ r它对应遗传学中的异位显性(Epistasis) 5 y( K( Q1 u# q- S8 n
    . H* ?! ?+ D7 x
    十、适应度(Fitness)
    2 s* W/ j( I8 k, P( A. [! W& W9 ~
    4 `) w2 D% W' o9 u$ {5 ?
    表示某一个体对于环境的适应程度。
    & r, z" f$ q' q
    # W) U$ Z( q% A+ t, p- G
    遗传算法还有一些其它的概念,这些概念在介绍遗传算法的原理和执行过程时,再进行说明。
    . o: @1 O4 _/ |0 V

    3 Y; {$ v$ O. S  G( B  J1 B322遗传算法的原理8 x, F# v% E. J* S
    $ {5 m9 \6 _9 ]4 c8 g, y
    遗传算法GA把问题的解表示成“染色体”,在算法中也即是以二进制编码的串。并且,在执行遗传算法之前,给出一群“染色体”,也即是假设解。然后,把这些假设解置于问题的“环境”中,并按适者生存的原则,从中选择出较适应环境的“染色体”进行复制,再通过交叉,变异过程产生更适应环境的新一代“染色体”群。这样,一代一代地进化,最后就会收敛到最适应环境的一个“染色体”上,它就是问题的最优解。
    % W/ D1 }% ~, N

    1 ?' N* c& {" s  L" k, R6 \一、遗传算法的目的
    . C/ y% q% u# k
    ( R  L/ ?0 X  d
    典型的遗传算法CGA(Canonical Genetic Algorithm)通常用于解决下面这一类的静态最优化问题:. q& r# e+ @- E, a4 K& m

    & V5 o# q: p+ O+ _: H4 a( h; d考虑对于一群长度为L的二进制编码bii12,…,n;有5 P: C' G/ J% f( e8 w' C, `( J

    1 Z. s1 Z* d. c+ V/ wbi{0,1}L        (3-84)
    + q: w3 L5 G5 Q9 Z. j- T' _

    : H- u/ F' Q& J; f, C/ D给定目标函数f,有f(bi),并且
    . ]  T0 \* L5 P6 g

    3 {- ^# G& ]* F4 ^2 i0<F(BI)<< P> / X6 Z( s5 L- j& m0 z) S
    ) @; R- D, x  m! o7 _* h
    同时
    ) W  N: S4 {5 U; [) ^. L
    , t6 }, ~/ t! _9 Q
    f(bi)f(bi+1) 3 `# E' C7 S3 r/ `
    - T" C" u- Z, I) k
    求满足下式
    - L6 L$ J0 E& q* Y, f( }0 R- m
    , W& M; ?9 j4 }. v, i5 Z
    max{f(bi)|bi{0,1}L}
    " n( Q& I7 A3 N: D& a7 j! a4 f; U
    - H: O( n  d/ F5 b! e! c
    bi
    3 d; \7 V( c+ Y2 j6 b# w
    " x! J3 j  M' j* m$ `3 z. C- _8 |7 I
    很明显,遗传算法是一种最优化方法,它通过进化和遗传机理,从给出的原始解群中,不断进化产生新的解,最后收敛到一个特定的串bi处,即求出最优解。% G# J1 z) b% i0 s
    9 z) f' ~" }9 R4 a" u
    二、遗传算法的基本原理- f- Y2 A; z) w# J! v: I

    , l2 P5 N4 A' d+ |; {% v! ~& h长度为Ln个二进制串bi(i12,…,n)组成了遗传算法的初解群,也称为初始群体。在每个串中,每个二进制位就是个体染色体的基因。根据进化术语,对群体执行的操作有三种:
    1 `8 O* ^3 z& H9 a$ D' J% T2 q
    0 F+ X& k0 o( w9 D- D) x
    1.选择(Selection) ) l* b% u' G2 {4 D; h+ M
    9 p0 J& J( r, L: Z( L6 {$ d1 r
    这是从群体中选择出较适应环境的个体。这些选中的个体用于繁殖下一代。故有时也称这一操作为再生(Reproduction)。由于在选择用于繁殖下一代的个体时,是根据个体对环境的适应度而决定其繁殖量的,故而有时也称为非均匀再生(differential reproduction)# M+ q: _$ {  s% V
    1 Z2 X9 c$ @5 M4 u  `" B) j. I) X6 `
    2.交叉(Crossover)
    3 Y! F) M$ T  g- J3 D
    : A8 j% r0 H  c; j
    这是在选中用于繁殖下一代的个体中,对两个不同的个体的相同位置的基因进行交换,从而产生新的个体。6 |' h0 m5 [' [2 \1 Y" a; c# ~
    4 X& c' x( d' T2 X; ?
    3.变异(Mutation) + n( G$ d6 b) K$ f/ P

    9 @# B& G& J, f; N- V. a这是在选中的个体中,对个体中的某些基因执行异向转化。在串bi中,如果某位基因为1,产生变异时就是把它变成0;反亦反之。* W- g' d5 l. A+ {& {
    ( _6 _3 j' x+ g( U0 b
    遗传算法的原理可以简要给出如下:
    ; ^" m- S2 k' n  c0 M0 K
    & t0 P- o3 [* R* N
    choose an intial population   i9 u) N3 [% [! \0 Q, l

    ! q, F/ K1 T* u5 [determine the fitness of each individual
      G* W1 A% G" }. h8 F  a5 n
    ( ]2 t4 @) H$ U) R9 e
    perform selection + k' e/ M! f% F  R8 B: I* i9 D0 |; H
    2 F) d- i9 ]5 Z6 U3 j
    repeat # H# t, ^/ k6 i0 G$ u1 H8 `- B* B

    4 k# j7 F. ~& m- G( O: `4 S& J    perform crossover + ]3 v+ a# G6 s% o* r
    ( W& U: F8 f. {! k% d& `& m
        perform mutation
    * A" S" {' a8 ]0 e; u% P

    6 ~8 l; j9 R  ~    determine the fitness of each individual
    0 ?$ \* b* {- w1 ^5 ]) P

    - \7 G& D' O" _) e1 d- b8 F    perform selection 2 M- ^1 ^* ^0 O6 h
    * P, e6 l9 h3 D7 [. W
    until some stopping criterion applies 9 U3 k" V# c4 T# y: H. y) `2 \, v
    1 c* i. e2 ^  ]* g0 w1 F& ~' ]) r
    这里所指的某种结束准则一般是指个体的适应度达到给定的阀值;或者个体的适应度的变化率为零。
    + V' ?' t/ @/ e) ~# H( A
    三、遗传算法的步骤和意义- d, b; r" B) Z1 n4 R# p

    / ~+ w6 o+ y2 {* C1.初始化. z  X- o5 u" D+ z7 d

    % M2 ^3 s* ^% Y0 }2 z" Y+ g选择一个群体,即选择一个串或个体的集合bii=12...n。这个初始的群体也就是问题假设解的集合。一般取n30-160
    ! e; X2 l" I# I% D# y( {; ^
    " S1 p# \9 d! s
    通常以随机方法产生串或个体的集合bi,i12...n。问题的最优解将通过这些初始假设解进化而求出。
    7 G9 ~9 ]/ o/ u( t8 C- I1 @

    7 d  _! T. E( ], I. u8 ]2.选择
    : p$ S3 B3 ^9 T# p% P) U

    + }# u7 Y7 f) m. N9 G根据适者生存原则选择下一代的个体。在选择时,以适应度为选择原则。适应度准则体现了适者生存,不适应者淘汰的自然法则。
    ) d% t4 @  |" B- H
    6 W' I+ o* F* C, S* f* q
    给出目标函数f,则f(bi)称为个体bi的适应度。以
    $ t3 |* M5 v4 H( r
    1 d4 J  _# W6 y5 \+ g; n
    $ w, R8 P1 f; t; I" \  i, k3 V
    6.2.ht40.gif 5 K8 R4 K" @3 e1 q- Z5 Z1 c& ^
    为选中bi为下一代个体的次数。
    . K( l6 W$ j- A* I3 o
    9 X! Y) l$ Z+ B3 p/ K
    显然.从式(386)可知:
    9 i9 ~; V6 c- d5 ~4 {/ _

    - m; V8 K! y1 L) o8 Y7 k7 z(1)适应度较高的个体,繁殖下一代的数目较多。
    * E' M5 b3 c2 o1 m% E
    % N/ V; K+ {7 o3 @, q
    (2)适应度较小的个体,繁殖下一代的数目较少;甚至被淘汰。
      S: e3 F3 W6 l( O

    ' |2 G4 f/ x$ p' h; ~这样,就产生了对环境适应能力较强的后代。对于问题求解角度来讲,就是选择出和最优解较接近的中间解。
    ! t& X( a4 @! }

    1 }8 }0 n, k# @3 E% _" m7 ^, W3.交叉8 U$ l, \7 U/ u0 C
    对于选中用于繁殖下一代的个体,随机地选择两个个体的相同位置,按交叉概率P。在选中的位置实行交换。这个过程反映了随机信息交换;目的在于产生新的基因组合,也即产生新的个体。交叉时,可实行单点交叉或多点交叉。# Z' E6 G( z, l2 R) B& M

    7 j" H* ^* P; {1 y' m$ w. `例如有个体
    * k& l( F1 m/ l, o$ x& C+ ?" E

    3 {1 d' F' ]: ]( w! \* f$ IS1=100101
    , O! T% Q3 `% Q- a

    9 T9 P! f% n# f0 e1 b: C) C/ {S2=010111
    - h- f1 C4 j* n' y, D

    3 N- c$ m& V+ V6 v选择它们的左边3位进行交叉操作,则有
    2 P' a/ f! j: F3 }2 D
    0 t; J: O  o  O2 @
    S1=010101
    8 M4 ]0 q5 S  ~/ ?2 T

    1 l' ~5 B3 s- e% j: z! QS2=100111 0 {& Q/ n" D0 E0 U& n4 T/ I$ r2 g/ {- C

    - i7 q# g8 J& @% I" H1 M' o一般而言,交 婊显譖。取值为0.250.75
    : m- ?6 [7 j6 w. x
    " Y, H" K3 w* [2 g
    4.变异  }+ ~7 L# ?. F

    / C* d1 y2 p" Z# u) s" ~: `3 X根据生物遗传中基因变异的原理,以变异概率Pm对某些个体的某些位执行变异。在变异时,对执行变异的串的对应位求反,即把1变为0,把0变为1。变异概率Pm与生物变异极小的情况一致,所以,Pm的取值较小,一般取0.01-0.2- T5 s5 q2 E: |1 T" H/ C- u
    2 `. C4 X2 V( p
    例如有个体S1010115 B  z  ?+ [) W/ k

    1 l0 b; w; m; p# q  Y' b对其的第14位置的基因进行变异,则有, }5 [. H3 w* H6 ]: [" t0 w2 Z# T
    , }$ I3 p6 S& D$ t1 {
    S'=001111 8 D! @3 A% {1 @7 S/ Q# ]6 u

    " X. E3 z" }) P8 d" ?  P! Q5 x单靠变异不能在求解中得到好处。但是,它能保证算法过程不会产生无法进化的单一群体。因为在所有的个体一样时,交叉是无法产生新的个体的,这时只能靠变异产生新的个体。也就是说,变异增加了全局优化的特质。
    " O$ G5 f- F( f9 j3 t2 \6 ^' A
    0 g( }$ y3 J4 d/ ~# f* A" R# p3 v
    5.全局最优收敛(Convergence to the global optimum) # r$ P* F* B& p# u$ v
    4 F$ r4 g* u' ?3 Z3 S& ?$ g
    当最优个体的适应度达到给定的阀值,或者最优个体的适应度和群体适应度不再上升时,则算法的迭代过程收敛、算法结束。否则,用经过选择、交叉、变异所得到的新一代群体取代上一代群体,并返回到第2步即选择操作处继续循环执行。
    4 M4 c% X+ l5 R6 }2 I
      I7 @' \6 D" p* Y5 j- ~
    37中表示了遗传算法的执行过程。( F# Y! Y/ K1 \8 j

    ; @0 c2 f# R. m! p3 i, Y0 v& _9 w8 J7 |, s# L9 ?4 d) a
    Genetic_Algorithm.gif 6 |7 I0 C" X* R! D( }. Y

    ! K: w$ O$ r; J' n0 X% T# L3-7 遗传算法原理- W& B6 Q) {5 x$ G7 `! p6 U

    / [# Q) I# Z4 R5 ?, @5 s& o  `& P323遗传算法的应用! O$ D/ N+ t  G8 u4 Z

      r# @, V) d5 V* _" s/ G9 s8 i6 a遗传算法在很多领域都得到应用;从神经网络研究的角度上考虑,最关心的是遗传算法在神经网络的应用。在遗传算法应用中,应先明确其特点和关键问题,才能对这种算法深入了解,灵活应用,以及进一步研究开发。
    1 ~+ ]; H$ }7 J9 i8 F0 g, J
    9 J' D" v; _, ~& r: l
    一、遗传算法的特点  n  l- Q$ V8 Z

    ' m* ~0 ^' }. N0 U8 e! i; d" f1.遗传算法从问题解的中集开始嫂索,而不是从单个解开始。) v. N8 O! K5 _5 L4 t5 }  h9 ^. J

    0 n) N5 }6 {1 @5 [) m这是遗传算法与传统优化算法的极大区别。传统优化算法是从单个初始值迭代求最优解的;容易误入局部最优解。遗传算法从串集开始搜索,复盖面大,利于全局择优。! I( N3 S! K% c
    7 h9 Q' p7 Z) Z: g
    2.遗传算法求解时使用特定问题的信息极少,容易形成通用算法程序。0 T, j4 W( T+ q, C+ y3 u

    " ~( z( P' b" a: d( r+ `由于遗传算法使用适应值这一信息进行搜索,并不需要问题导数等与问题直接相关的信息。遗传算法只需适应值和串编码等通用信息,故几乎可处理任何问题。6 I2 P/ O+ A7 z, g  h4 x( h

    , r" S  e' S, j, n3.遗传算法有极强的容错能力
    ; W* \) |1 r6 Y& b5 E# z

    : @8 Y5 l! A7 V  L* C遗传算法的初始串集本身就带有大量与最优解甚远的信息;通过选择、交叉、变异操作能迅速排除与最优解相差极大的串;这是一个强烈的滤波过程;并且是一个并行滤波机制。故而,遗传算法有很高的容错能力。
    0 i+ @% P, h+ w& T4 Q, c. F6 J; z  y

    0 ~3 U+ r5 r. \) _# M- h4.遗传算法中的选择、交叉和变异都是随机操作,而不是确定的精确规则。2 {* J3 D, \' n3 N7 u
    2 [& E$ O6 Y2 O, w. `: j& c# ^
    这说明遗传算法是采用随机方法进行最优解搜索,选择体现了向最优解迫近,交叉体现了最优解的产生,变异体现了全局最优解的复盖。
    3 F. R5 G9 o1 e
    + X& L# ~( f- v. ~6 x' |+ @
    5.遗传算法具有隐含的并行性
    4 g/ }; |2 R0 i7 R

    - Y$ b% o' Y- ~% r& G$ ]遗传算法的基础理论是图式定理。它的有关内容如下:$ L. m6 ]$ q+ k8 S& I' @4 ]
    ! c% y( g. ?. ^( M* x  @1 B& d
    (1)图式(Schema)概念
    ' k5 F4 O, {0 }  X0 @

    1 X# q3 d3 ]2 v- e8 G一个基因串用符号集{01*}表示,则称为一个因式;其中*可以是01。例如:H=1xx 0 x x是一个图式。6 }0 Q) o8 N3 Q4 H7 B4 s( Y& J
    * I. }- ^3 h, F" S- `: L# y
    (2)图式的阶和长度
    : h0 q  _# d5 R$ ?3 d& H" s

    # z6 O) o2 Y: \图式中01的个数称为图式的阶,并用0(H)表示。图式中第1位数字和最后位数字间的距离称为图式的长度,并用δ(H)表示。对于图式H1x x0x x,有0(H)2,δ(H)4' K/ K, K2 j8 O, h5 {% t8 S  r4 k

    4 ^4 I4 C1 D- t' a: j* Y(3)Holland图式定理; g( ^# n. G8 C

    # P& S/ l# X2 Q# n$ @4 b  ]低阶,短长度的图式在群体遗传过程中将会按指数规律增加。当群体的大小为n时,每代处理的图式数目为0(n3)
    . }8 Y2 O. n$ J- j0 Y# O
    / x5 ?* Z* X! W( I
    遗传算法这种处理能力称为隐含并行性(Implicit Parallelism)。它说明遗传算法其内在具有并行处理的特质。
    - _; S- {  l; g
    5 G0 c/ v9 q* e+ w% v  q% B! y6 B; o
    二、遗传算法的应用关键' P$ H" v7 D! Y

    7 B+ k9 R: O, `; Q: Y+ [' p% |# T遗传算法在应用中最关键的问题有如下3
    # ?+ z. {# Y! u5 B

    # T& |5 w3 V# Z/ a: |. x/ l1.串的编码方式, p# J2 L, u( O0 h: i! |
    9 T- l$ a( G0 @% A: I9 H3 g) r
    这本质是问题编码。一般把问题的各种参数用二进制编码,构成子串;然后把子串拼接构成“染色体”串。串长度及编码形式对算法收敛影响极大。
    3 U5 V# I6 q# @
    & @( T$ r. f; f) k+ E! l
    2.适应函数的确定4 `2 p8 n9 |: \" T2 A

    7 D, r7 w5 D5 g: Z适应函数(fitness function)也称对象函数(object function),这是问题求解品质的测量函数;往往也称为问题的“环境”。一般可以把问题的模型函数作为对象函数;但有时需要另行构造。' g. n7 i6 N( U* d$ \. D' h

    / y$ S) j5 P6 {- h2 F+ N3.遗传算法自身参数设定
    & M. m0 }) d8 c  m* i+ A

    ! N' A5 R5 c  ]% Q! |- Q7 y遗传算法自身参数有3个,即群体大小n、交叉概率Pc和变异概率Pm
    6 m& v. ~8 t1 y4 ~1 l; u; p& ~

    8 Q, M, J2 Q  X1 Z群体大小n太小时难以求出最优解,太大则增长收敛时间。一般n30-160。交叉概率Pc太小时难以向前搜索,太大则容易破坏高适应值的结构。一般取Pc=0.25-0.75。变异概率Pm太小时难以产生新的基因结构,太大使遗传算法成了单纯的随机搜索。一般取Pm00102
    2 {  ~* z" m' B# |. P& I# }* t) x

    ! w% f7 @: S+ R  X三、遗传算法在神经网络中的应用" [% L9 c2 V3 i1 ~7 o7 }; x# }

    ! `: d: h1 s5 d. i遗传算法在神经网络中的应用主要反映在3个方面:网络的学习,网络的结构设计,网络的分析。" ?. @+ c$ F; [1 d. \( E) A
    ( U) @2 S1 @$ }6 V/ i8 _0 m5 j
    1.遗传算法在网络学习中的应用5 u$ o9 ^+ C5 h# @; [6 Y) M5 X, F
    , ]% x% {3 I1 e) A: w4 w5 v6 H% ^3 o, F
    在神经网络中,遗传算法可用于网络的学习。这时,它在两个方面起作用% v. ]; _  L( l) Q+ X( E

    / I& Y* x7 T" r# u  Z(1)学习规则的优化6 N( l1 ?  X! E; L  U9 Z

    9 f. c- b, i5 q6 [1 p% T0 G用遗传算法对神经网络学习规则实现自动优化,从而提高学习速率。2 [8 M* Q; ?# v1 @; G) ^
    3 C* Y2 X: ?# i* y3 E
    (2)网络权系数的优化/ Q- [& n' t" }) j9 f9 B: _+ H4 h
    . X2 v5 V8 Z; v
    用遗传算法的全局优化及隐含并行性的特点提高权系数优化速度。1 g! {3 w- d1 P

    8 c4 Y5 k0 J8 l, o2.遗传算法在网络设计中的应用3 l: C. Q4 R5 V5 \7 o# Y% g! O
    ) W" R# s; _: ~7 j8 v6 W' g
    用遗传算法设计一个优秀的神经网络结构,首先是要解决网络结构的编码问题;然后才能以选择、交叉、变异操作得出最优结构。编码方法主要有下列3种:. e( u- E. U1 A3 t4 }# t1 Q
    9 @# k5 }+ l1 X
    (1)直接编码法4 `6 o7 _& G5 k" V; N3 }; K9 B
    & R7 f# {2 r2 ~# \$ ?  x* Q
    这是把神经网络结构直接用二进制串表示,在遗传算法中,“染色体”实质上和神经网络是一种映射关系。通过对“染色体”的优化就实现了对网络的优化。2 f( |# e" k! @% G

    2 ?. u" z; j5 t7 ~6 Z, p(2)参数化编码法
      h' N* D3 x5 ~" i. G
    : f( h$ L) Q, t% g: f$ W
    参数化编码采用的编码较为抽象,编码包括网络层数、每层神经元数、各层互连方式等信息。一般对进化后的优化“染色体”进行分析,然后产生网络的结构。
    1 ^7 k) X' H9 }! u. b, ~+ E% Y0 s4 P
    + `) J7 d7 _8 D; a; u& M9 h
    (3)繁衍生长法+ b+ S( s) E( e$ F; u
    & u$ x& Y+ t" s- g, G7 l
    这种方法不是在“染色体”中直接编码神经网络的结构,而是把一些简单的生长语法规则编码入“染色体”中;然后,由遗传算法对这些生长语法规则不断进行改变,最后生成适合所解的问题的神经网络。这种方法与自然界生物地生长进化相一致。
    * n1 J4 g# b  M& [' @; `; w8 n4 `6 [

    % E  G: `. C5 Y% s8 _+ F3.遗传算法在网络分析中的应用
    & g1 q4 M$ c( b: ^0 p6 }8 `
    " Y. n- ?1 M1 J5 }
    遗传算法可用于分析神经网络。神经网络由于有分布存储等特点,一般难以从其拓扑结构直接理解其功能。遗传算法可对神经网络进行功能分析,性质分析,状态分析。
    ; P9 \1 }  ~  ?; i, r9 n5 I3 Y
    + r& Y5 Z& R! [  A8 k- A. Q
    遗传算法虽然可以在多种领域都有实际应用,并且也展示了它潜力和宽广前景;但是,遗传算法还有大量的问题需要研究,目前也还有各种不足。首先,在变量多,取值范围大或无给定范围时,收敛速度下降;其次,可找到最优解附近,但无法精确确定最扰解位置;最后,遗传算法的参数选择尚未有定量方法。对遗传算法,还需要进一步研究其数学基础理论;还需要在理论上证明它与其它优化技术的优劣及原因;还需研究硬件化的遗传算法;以及遗传算法的通用编程和形式等。# R9 d* i0 X& i5 H0 T( O' ]8 b
    5 e7 _6 C/ y$ C2 n. ~; H; a. l

    5 B! z- Y6 L; Q" K
    三、遗传算法的步骤和意义
    1 I; p2 g# J* C7 i- o5 r
      F' @0 c" D# P  k) ~1 e3 d+ n0 I
    1.初始化
    # l" j; A9 [( D2 n4 h; ^

    % e8 K; i4 k, Z选择一个群体,即选择一个串或个体的集合bii=12...n。这个初始的群体也就是问题假设解的集合。一般取n30-1609 a/ o4 D$ j3 c% z3 n; y; u

    : Y; b" X; v! V" Y1 V: \通常以随机方法产生串或个体的集合bi,i12...n。问题的最优解将通过这些初始假设解进化而求出。
    % l, I$ G) t. \! [7 h
    / ~' p! a% F7 e0 u* ]0 M6 _
    2.选择( `. R/ }2 k/ b- `; H+ m) ^
    # m7 ^5 W+ j" D4 f4 W  @
    根据适者生存原则选择下一代的个体。在选择时,以适应度为选择原则。适应度准则体现了适者生存,不适应者淘汰的自然法则。+ r1 w4 F* b8 V) r( ^
    : a: |0 i+ d% n9 K- B. ~. w
    给出目标函数f,则f(bi)称为个体bi的适应度。以! c$ b; d3 T2 h* }

    , g0 @$ p$ P' g' v" F. F9 w7 _- Y0 q& n5 T
    * O" E9 b- e) V- o6 ?' L& B* |
    为选中bi为下一代个体的次数。6 I+ `- n1 @% ?" T3 E4 Q; ~

    : W0 ^- u/ I) v5 U" }显然.从式(386)可知:0 H/ H. |+ [8 ]5 W

    8 R, J. C& e+ p(1)适应度较高的个体,繁殖下一代的数目较多。
    , `/ [; o7 [& o( `/ Q1 {; t  s

    ! D0 d) t4 ]1 i* m(2)适应度较小的个体,繁殖下一代的数目较少;甚至被淘汰。% }% Y$ ~. ^, w& o. W; y0 `

    8 _. g  P) e4 ^0 n$ E# L! @, J6 M这样,就产生了对环境适应能力较强的后代。对于问题求解角度来讲,就是选择出和最优解较接近的中间解。
    ; c5 l5 R- I. B
    - s! k- k9 [. q. K" i7 O
    3.交叉) I4 t: Y$ ]9 L% V$ E
    对于选中用于繁殖下一代的个体,随机地选择两个个体的相同位置,按交叉概率P。在选中的位置实行交换。这个过程反映了随机信息交换;目的在于产生新的基因组合,也即产生新的个体。交叉时,可实行单点交叉或多点交叉。% w! n4 |$ q6 [4 T$ |! h* S
    % f5 a/ `- Z7 n, Y5 O# V& J  B/ ~
    例如有个体
    ) C& A: v3 X1 i" E

      \# H+ D( p' cS1=100101 - C3 j* g6 V* g- Z" k; n0 _

    8 f6 ]4 }/ \5 K- P- f1 V7 ~1 K/ wS2=010111
    . w5 O2 x+ a" x1 R+ k& {

    ( t. i! B+ @6 m2 S: s3 T选择它们的左边3位进行交叉操作,则有' c2 O* X  I! f
    9 C0 ?9 c0 `* R# k7 [
    S1=010101 7 P& z2 K+ v9 ]  P9 f

    . ^- P3 ^0 J2 x! P& N# M& PS2=100111 / y2 T5 ?* Q9 e7 J  g: U0 o

    * i6 L4 t" j4 E3 y一般而言,交 婊显譖。取值为0.250.756 i8 x( p3 J: L1 {) I7 R; z

    / Y4 S& |& n' \' x4 n- i: e4.变异  L0 O9 ]# L" v3 |& M' G
    + h4 {" v, K7 H1 I
    根据生物遗传中基因变异的原理,以变异概率Pm对某些个体的某些位执行变异。在变异时,对执行变异的串的对应位求反,即把1变为0,把0变为1。变异概率Pm与生物变异极小的情况一致,所以,Pm的取值较小,一般取0.01-0.2
    ; \8 m& P) K# P9 X
    2 n$ D( _8 G) j" ?) a( W$ I, w
    例如有个体S1010119 ~6 t' W! E0 L! z6 d& G
    2 O3 j9 |' _( F, ]3 \
    对其的第14位置的基因进行变异,则有: J; L% g, L7 u$ C" u

    5 u' w7 b) h- h3 Z' g# \S'=001111
    + J% t& u2 ^+ Q1 A  A3 {8 `3 ]
    1 R4 M4 F1 P+ r! v0 ]
    单靠变异不能在求解中得到好处。但是,它能保证算法过程不会产生无法进化的单一群体。因为在所有的个体一样时,交叉是无法产生新的个体的,这时只能靠变异产生新的个体。也就是说,变异增加了全局优化的特质。
    - B" t. t6 O9 k/ D7 Q
    : |' d0 {' R) ]9 F# S. G
    5.全局最优收敛(Convergence to the global optimum)
    , n, J7 s* a$ c! W, P* m. ]- ?( c
    : T" E/ _3 @# w5 r
    当最优个体的适应度达到给定的阀值,或者最优个体的适应度和群体适应度不再上升时,则算法的迭代过程收敛、算法结束。否则,用经过选择、交叉、变异所得到的新一代群体取代上一代群体,并返回到第2步即选择操作处继续循环执行。
    $ X( M( \! P& \7 b! y

    0 [  N- K9 v3 {+ W0 e' @" b( Z$ b37中表示了遗传算法的执行过程。' d8 M& a6 N0 W& `

    . _) A% T9 [  X
    - b0 Z6 w8 c, q; V- G4 g% A' t# H! q

    ) f! }, `: `0 W' x* Z3-7 遗传算法原理
    , m( |4 h  ?+ t. @& D9 Y5 X( T
      Q( m& z2 O) f! y+ S2 L6 l' {
    323遗传算法的应用
      X" b3 F/ N0 I- t7 m
    " B0 M2 B0 J* n. y
    遗传算法在很多领域都得到应用;从神经网络研究的角度上考虑,最关心的是遗传算法在神经网络的应用。在遗传算法应用中,应先明确其特点和关键问题,才能对这种算法深入了解,灵活应用,以及进一步研究开发。
    4 L& L  w: N1 Y* _' H% m) A( v
    , D1 C- \2 h- @$ O! b; ?- u
    一、遗传算法的特点
    6 W. c, ~  x1 T% X2 H% p4 \) {

    ' j; {2 o# r1 N; D& o; J1.遗传算法从问题解的中集开始嫂索,而不是从单个解开始。
    4 @8 n, I; ~4 ~5 C. ~6 A4 C- j- m
    ) O* u+ t4 x( U
    这是遗传算法与传统优化算法的极大区别。传统优化算法是从单个初始值迭代求最优解的;容易误入局部最优解。遗传算法从串集开始搜索,复盖面大,利于全局择优。
    ; u& N- j8 L' w- h2 f: y9 J" P* b
    5 u5 @3 R! a, m3 @1 I* j3 R
    2.遗传算法求解时使用特定问题的信息极少,容易形成通用算法程序。: I" s& j: _( }! H2 F" W

    3 c0 {/ D" v8 [% Z由于遗传算法使用适应值这一信息进行搜索,并不需要问题导数等与问题直接相关的信息。遗传算法只需适应值和串编码等通用信息,故几乎可处理任何问题。
    ) c- W- u6 p! s+ h! _

    1 s8 l; K- d' l: \3 G3.遗传算法有极强的容错能力
    1 O7 t( o) c5 g0 ~& j8 o

    . O! D& j5 s; d7 B6 f& A8 X$ q9 j遗传算法的初始串集本身就带有大量与最优解甚远的信息;通过选择、交叉、变异操作能迅速排除与最优解相差极大的串;这是一个强烈的滤波过程;并且是一个并行滤波机制。故而,遗传算法有很高的容错能力。$ [" K2 A" u. N9 _) O% c

    + O3 Q7 p8 M; u6 Q( r0 o4.遗传算法中的选择、交叉和变异都是随机操作,而不是确定的精确规则。# e0 z6 i$ d$ ]" A4 `2 W
    % d( @( L( [, N
    这说明遗传算法是采用随机方法进行最优解搜索,选择体现了向最优解迫近,交叉体现了最优解的产生,变异体现了全局最优解的复盖。7 [* b! I' J4 f

    1 I2 Q8 O  A' X: I: R5.遗传算法具有隐含的并行性
    ' T9 F; U% s2 I; d! H

    * w- {  x6 t( o1 s+ f! r* Q遗传算法的基础理论是图式定理。它的有关内容如下:" [7 e+ F. H' B: n. S

    . R6 Q' C9 \' w/ D1 [0 ]. W' M(1)图式(Schema)概念
    . `+ o( C! \- S: y
    9 j$ A; M/ x! _
    一个基因串用符号集{01*}表示,则称为一个因式;其中*可以是01。例如:H=1xx 0 x x是一个图式。9 G0 P5 T+ {' ~* G# H
    1 ]! a3 k% {& m% x
    (2)图式的阶和长度
    % p8 u2 x; N4 p+ Q3 m' n

    - U$ D: ~* X5 |$ V. n4 z% V图式中01的个数称为图式的阶,并用0(H)表示。图式中第1位数字和最后位数字间的距离称为图式的长度,并用δ(H)表示。对于图式H1x x0x x,有0(H)2,δ(H)4
    & i! _& V5 ], a, F5 \; R" o
    ) A4 U( u2 P8 G# m; X
    (3)Holland图式定理6 ], d8 \' n7 c

    ; l2 h/ e2 o- w4 U低阶,短长度的图式在群体遗传过程中将会按指数规律增加。当群体的大小为n时,每代处理的图式数目为0(n3)' c5 M1 D+ j' P2 ?) n
    & X+ r& k+ L1 N  K8 b' ]7 ~
    遗传算法这种处理能力称为隐含并行性(Implicit Parallelism)。它说明遗传算法其内在具有并行处理的特质。8 N/ r% f3 a/ s+ p3 D3 X  ^
    9 l/ m2 h8 o/ ~
    二、遗传算法的应用关键% o, ?8 r, ~  @, M9 P1 M
    & D) x8 w: }0 ^" {; N3 j$ v
    遗传算法在应用中最关键的问题有如下3
    2 n8 s+ ]) L5 A, `& o1 k: ]+ W

    ) l. N( v& [0 b$ E( o1 X- y1.串的编码方式7 M# o" `6 k" b* e# O( i

    + c8 }! C( d6 `5 P9 d这本质是问题编码。一般把问题的各种参数用二进制编码,构成子串;然后把子串拼接构成“染色体”串。串长度及编码形式对算法收敛影响极大。
    . L, {4 x4 G! g, g" r5 \5 z  Y

    ; w% Q4 U+ _8 e/ B2.适应函数的确定& ]: F/ y# e$ ~- d2 `+ T7 s

    0 @6 R) C% \6 |. T# K适应函数(fitness function)也称对象函数(object function),这是问题求解品质的测量函数;往往也称为问题的“环境”。一般可以把问题的模型函数作为对象函数;但有时需要另行构造。
    - j' ~  {+ p& c- h0 d; {7 s

    / ]% |1 Q4 j0 M. u* _3.遗传算法自身参数设定
    9 Z8 P. d* m1 T

    : j0 v0 c; {6 ^遗传算法自身参数有3个,即群体大小n、交叉概率Pc和变异概率Pm& y1 N( j+ D+ E6 @- ?  l
    * s8 [' {+ W  o) X# N* i
    群体大小n太小时难以求出最优解,太大则增长收敛时间。一般n30-160。交叉概率Pc太小时难以向前搜索,太大则容易破坏高适应值的结构。一般取Pc=0.25-0.75。变异概率Pm太小时难以产生新的基因结构,太大使遗传算法成了单纯的随机搜索。一般取Pm00102
    ' I' h  K7 K$ [6 z) g4 S
    ; S( I& E9 }, ^) s
    三、遗传算法在神经网络中的应用
    6 |5 q& f' Y8 z. N* p$ B
    1 {7 u# W, l9 F% w/ m
    遗传算法在神经网络中的应用主要反映在3个方面:网络的学习,网络的结构设计,网络的分析。
    9 s6 g9 h( E9 q8 W& H8 q. Q$ k* p, H

    & q$ U: r, J' |5 ?1.遗传算法在网络学习中的应用
    ( k  a1 R: }: Z& `2 L; Q3 D% |6 K
    ! S+ H6 Z9 {6 Q* h: f
    在神经网络中,遗传算法可用于网络的学习。这时,它在两个方面起作用: Q! x5 H( B9 S/ Y" O' m% I
    & V0 p8 z" @4 b( v1 t
    (1)学习规则的优化
    6 a& J" R0 l% H2 P
    ' r; z+ a) `8 S% U7 E
    用遗传算法对神经网络学习规则实现自动优化,从而提高学习速率。2 E% F# w7 J! S

    % X. t* m% H3 U; p9 t(2)网络权系数的优化
    3 P. y  S/ B; ]8 U

    1 T  i. f# g3 G用遗传算法的全局优化及隐含并行性的特点提高权系数优化速度。
    2 b% ^, g4 Q" f1 V: S/ L
    6 |7 O7 j, R2 B9 T
    2.遗传算法在网络设计中的应用% R8 {; E0 P* J/ [" e& t+ S

    ; L' J5 B* h2 y/ }/ P6 X用遗传算法设计一个优秀的神经网络结构,首先是要解决网络结构的编码问题;然后才能以选择、交叉、变异操作得出最优结构。编码方法主要有下列3种:9 y0 u9 j" ^7 }4 T
    ) t9 n1 u" _7 W+ V/ \& R% T
    (1)直接编码法$ @8 x. m' A6 h8 V, o; q' L5 \

    # M1 P9 s' C8 @0 E0 o2 M这是把神经网络结构直接用二进制串表示,在遗传算法中,“染色体”实质上和神经网络是一种映射关系。通过对“染色体”的优化就实现了对网络的优化。6 m5 o- B8 k  f4 c. D

    8 ]- H9 n- E# S+ ~(2)参数化编码法' Y% g5 S' V. h9 X  v) r
    4 l- j7 P# s, C0 p8 x7 Q
    参数化编码采用的编码较为抽象,编码包括网络层数、每层神经元数、各层互连方式等信息。一般对进化后的优化“染色体”进行分析,然后产生网络的结构。8 y! o% N3 w6 r( X# d
    ) ~0 z: P" f( @7 N: z7 U" Y
    (3)繁衍生长法
    ) j1 [/ p: m6 [: J

    . O$ O6 D/ i/ |8 y- D0 G4 K这种方法不是在“染色体”中直接编码神经网络的结构,而是把一些简单的生长语法规则编码入“染色体”中;然后,由遗传算法对这些生长语法规则不断进行改变,最后生成适合所解的问题的神经网络。这种方法与自然界生物地生长进化相一致。
    4 F1 h$ |( A% u' k2 q
    + X7 J0 X% R* S6 n! c' ?& Z
    3.遗传算法在网络分析中的应用
    . I% d5 _( a1 b9 {9 J
    2 H+ i+ N: f8 H* H7 w, c
    遗传算法可用于分析神经网络。神经网络由于有分布存储等特点,一般难以从其拓扑结构直接理解其功能。遗传算法可对神经网络进行功能分析,性质分析,状态分析。
    " |* j$ c# h& o
    7 J# e3 `: s/ ~5 n9 A
    遗传算法虽然可以在多种领域都有实际应用,并且也展示了它潜力和宽广前景;但是,遗传算法还有大量的问题需要研究,目前也还有各种不足。首先,在变量多,取值范围大或无给定范围时,收敛速度下降;其次,可找到最优解附近,但无法精确确定最扰解位置;最后,遗传算法的参数选择尚未有定量方法。对遗传算法,还需要进一步研究其数学基础理论;还需要在理论上证明它与其它优化技术的优劣及原因;还需研究硬件化的遗传算法;以及遗传算法的通用编程和形式等。
      D9 H1 n) E) f# D$ L) K/ X
    更多图片 小图 大图
    组图打开中,请稍候......
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    楼主热帖
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • 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-9-7 21:07

    Powered by Discuz! X3.5 Licensed

    © 2001-2026 Discuz! Team.

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