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

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

转(遗传算法)

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

    连续签到: 1 天

    [LV.2]偶尔看看I

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

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

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

    ×
    生物的进化是一个奇妙的优化过程,它通过选择淘汰,突然变异,基因遗传等规律产生适应环境变化的优良物种。遗传算法是根据生物进化思想而启发得出的一种全局优化算法。
    / Z# |* e% [: _) ?% a# a: U/ T

    7 Z% r' o6 |, z' ?) M遗传算法的概念最早是由Bagley J.D1967年提出的;而开始遗传算法的理论和方法的系统性研究的是1975年,这一开创性工作是由Michigan大学的J.H.Holland所实行。当时,其主要目的是说明自然和人工系统的自适应过程。
    % o, A" u8 C4 L( i2 h* N* g
    . W5 w1 E4 A3 l$ A) d4 w
    遗传算法简称GA(Genetic Algorithm),在本质上是一种不依赖具体问题的直接搜索方法。遗传算法在模式识别、神经网络、图像处理、机器学习、工业优化控制、自适应控制、生物科学、社会科学等方面都得到应用。在人工智能研究中,现在人们认为“遗传算法、自适应系统、细胞自动机、混沌理论与人工智能一样,都是对今后十年的计算技术有重大影响的关键技术”。( b+ X: J& b- j8 x

    9 V. ?" [2 m7 D5 t. a* f% q* l321 遗传算法的基本概念2 a* E1 Y  q% ]% O$ |+ R( }4 R

    4 R1 \4 h$ _: z6 o9 e6 a! |! z  r遗传算法的基本思想是基于Darwin进化论和Mendel的遗传学说的。
    . Z, A0 ~8 N, `% r* {1 f# y: M
    8 L6 E6 ^) Z! N3 i# `1 P1 E6 f
    Darwin进化论最重要的是适者生存原理。它认为每一物种在发展中越来越适应环境。物种每个个体的基本特征由后代所继承,但后代又会产生一些异于父代的新变化。在环境变化时,只有那些熊适应环境的个体特征方能保留下来。
    $ O; C; J6 f9 v; ?

    + R4 A% S: q- M+ q+ g" P% zMendel遗传学说最重要的是基因遗传原理。它认为遗传以密码方式存在细胞中,并以基因形式包含在染色体内。每个基因有特殊的位置并控制某种特殊性质;所以,每个基因产生的个体对环境具有某种适应性。基因突变和基因杂交可产生更适应于环境的后代。经过存优去劣的自然淘汰,适应性高的基因结构得以保存下来。
    # [" q3 [! l: I! D* g( d. U9 j0 j
    1 H; U& X3 f$ ^( y/ W5 a) m1 z
    由于遗传算法是由进化论和遗传学机理而产生的直接搜索优化方法;故而在这个算法中要用到各种进化和遗传学的概念。这些概念如下:
    . Q, A% l1 d8 _
    4 f- \0 T: J' ?' O% V
    一、串(String) 4 P8 @( d/ q4 ?; _: R
    : u7 Q- I0 |1 L/ h6 }6 ]
    它是个体(Individual)的形式,在算法中为二进制串,并且对应于遗传学中的染色体(Chromosome)+ I. ]  k9 P6 l" ]% q5 p( v

    : p9 u0 F' ?2 e7 ?5 U& {# Z. x二、群体(Population)
    ; m% }0 k6 j5 `: a, P& M& y

    + @* Q$ t+ w, w( T个体的集合称为群体,串是群体的元素; n4 O5 j9 t4 b7 c" E$ `
      L7 L7 S6 E% f
    三、群体大小(Population Size) ( u- q, `6 m5 q: O5 ]9 c! Z
    2 n3 Z) ?; t$ ~, L; Q
    在群体中个体的数量称为群体的大小。- t8 p+ K2 s# s9 {: u+ c) @* b

    1 t% w6 B, Y( X1 ]8 W+ _四、基因(Gene) ' q0 Z" `  O: }) J- N
    ) T% b6 o3 l. _- h( p: d
    基因是串中的元素,基因用于表示个体的特征。例如有一个串S1011,则其中的10114个元素分别称为基因。它们的值称为等位基因(Alletes)  Y& ^. a: l& \9 u4 v( s" {9 s
    ( Z) k% L& l( c  K% v
    、基因位置(Gene Position)
    7 s& n) B+ t# Z% N' B: X
    ! |) z; |2 B2 j* _7 o( R
    一个基因在串中的位置称为基因位置,有时也简称基因位。基因位置由串的左向右计算,例如在串S1101中,0的基因位置是3。基因位置对应于遗传学中的地点(Locus)
    / O$ U. @1 v" f( [

    + ~8 T$ h* }: P: x) G' F4 q, Y六、基因特征值(Gene Feature)
    ( G. s& z3 `+ @6 g

      ~. W0 C2 y, Z. n在用串表示整数时,基因的特征值与二进制数的权一致;例如在串S=1011中,基因位置3中的1,它的基因特征值为2;基因位置1中的1,它的基因特征值为8
    $ L+ z0 W. g: y
    1 Z# O8 D: i3 D9 D" A" z' H
    七、串结构空间SS
    3 \3 y- e" _5 z- C. p8 M) A3 Y

    ) B* ?( u& R1 C' T在串中,基因任意组合所构成的串的集合。基因操作是在结构空间中进行的。串结构空间对应于遗传学中的基因型(Genotype)的集合。
    # q# n7 a$ i7 g: W
    2 ]8 b4 g8 h2 A% `+ ~% \# T
    八、参数空间SP / b2 p, K" j' z% \

    : v# u5 V% o+ ~4 f' c! }这是串空间在物理系统中的映射,它对应于遗传学中的表现型(Phenotype)的集合。: G! h7 }* T6 S5 ~. p; p1 C" q$ V# J
    , X8 A0 R$ R/ G& R
    九、非线性# m' v) w; Q1 Z0 j" K

    / q/ `# I; j' b6 N4 e1 r- K+ g它对应遗传学中的异位显性(Epistasis)
      i2 `+ @7 ]: i  ~
    4 P$ ~2 B. D; a" ]
    十、适应度(Fitness)
    ) E# e& q  E# t5 M
    : D) H6 t4 R" J* [2 S
    表示某一个体对于环境的适应程度。
    4 m9 o3 P- x8 y, ?' D1 T7 U
    ) D5 @; a- Q5 B
    遗传算法还有一些其它的概念,这些概念在介绍遗传算法的原理和执行过程时,再进行说明。
    & W, E- p: q! O) {  f0 f) r

    . X8 l% C; C. d$ m! A1 {322遗传算法的原理
      R, v" e1 K3 @: U) k

    7 n" t# ?3 C* G  t* _遗传算法GA把问题的解表示成“染色体”,在算法中也即是以二进制编码的串。并且,在执行遗传算法之前,给出一群“染色体”,也即是假设解。然后,把这些假设解置于问题的“环境”中,并按适者生存的原则,从中选择出较适应环境的“染色体”进行复制,再通过交叉,变异过程产生更适应环境的新一代“染色体”群。这样,一代一代地进化,最后就会收敛到最适应环境的一个“染色体”上,它就是问题的最优解。" U9 A) ]0 R' h$ E0 O+ _
    ( _( H- y$ {" z: W# D1 D
    一、遗传算法的目的
    ) }; c, d9 p& E3 w- r

    4 _9 p  j8 n# f典型的遗传算法CGA(Canonical Genetic Algorithm)通常用于解决下面这一类的静态最优化问题:+ O& o3 ~" }% W8 a
    & u8 @% i9 d+ d9 Q' `
    考虑对于一群长度为L的二进制编码bii12,…,n;有
    - U, r+ \+ d6 O/ s
    - y5 j; z  @! M& l8 v$ m+ A
    bi{0,1}L        (3-84)
    % ^4 M: q& a( M# h. q; T6 M  F* t3 }

      Z# A" {7 r5 e  c$ i$ E% @& ]给定目标函数f,有f(bi),并且
    + y( ~) W  M. p) `+ Q  J' R

    5 e% \. I1 @! p4 B0<F(BI)<< P>
    8 C* A+ A6 B# V( j# V- T2 T

    . G! H" e' _' w同时; S& Z* [; F# E5 y
    " A2 q" O( H! ^: s/ z' K; {1 ^, b
    f(bi)f(bi+1)
    8 ^- P2 U8 a+ ]; N
    ' G' ^9 V9 I0 ]! z6 k
    求满足下式
    & l+ x% K. k* W

    $ n, n+ x$ ?1 z, A2 K7 ~: ]9 g2 H( smax{f(bi)|bi{0,1}L}
    6 L/ n4 \: T9 Y4 _2 x7 S

    8 F  `+ r  v9 n1 ]bi
    + F$ U1 n/ s# v% X- f0 G, I5 Y9 l

    ' J5 G+ z; }, K2 O$ M6 c' h6 z很明显,遗传算法是一种最优化方法,它通过进化和遗传机理,从给出的原始解群中,不断进化产生新的解,最后收敛到一个特定的串bi处,即求出最优解。
      s4 J' n9 t2 X: l& _

    8 I& Y6 V$ i2 ^7 r/ {4 L7 F0 r二、遗传算法的基本原理7 S3 t9 v% C( w3 P- ~0 p1 N

    ) p' O6 S: t4 a! A长度为Ln个二进制串bi(i12,…,n)组成了遗传算法的初解群,也称为初始群体。在每个串中,每个二进制位就是个体染色体的基因。根据进化术语,对群体执行的操作有三种:
    6 I  X# B+ S& x4 s/ X1 y
    0 W- V' a8 Z  c6 f9 C
    1.选择(Selection)
    # T6 u' t3 t0 ]! D% B
    0 D5 G9 S" H- l
    这是从群体中选择出较适应环境的个体。这些选中的个体用于繁殖下一代。故有时也称这一操作为再生(Reproduction)。由于在选择用于繁殖下一代的个体时,是根据个体对环境的适应度而决定其繁殖量的,故而有时也称为非均匀再生(differential reproduction)0 U* ]' [. m3 f; }* K- |- h4 v
    9 u# \: G( A) w5 _% C
    2.交叉(Crossover) * E" _- i7 O$ L

    ' J" a1 M1 t2 f0 G# \& b这是在选中用于繁殖下一代的个体中,对两个不同的个体的相同位置的基因进行交换,从而产生新的个体。6 x: f$ _4 p2 c5 M  Q! ~  O+ g9 Z9 u2 r

    9 ?2 B% W& v; ^4 E) Y# M5 d' x+ O7 Q) f3.变异(Mutation)
    6 h5 D' z" }* ]) B' i
    , H/ `1 U% ]. W; ?9 y6 c) V
    这是在选中的个体中,对个体中的某些基因执行异向转化。在串bi中,如果某位基因为1,产生变异时就是把它变成0;反亦反之。- s' @7 j# M0 c  \/ ^
    % S, t% M& Y2 Z* M
    遗传算法的原理可以简要给出如下:
    , L2 |5 w1 h  _7 U' z* ~

    2 q) \7 k# v. k$ I" _5 V& Zchoose an intial population
    - s: x# x5 G* i
    $ L+ ^7 }0 V7 V( |- P5 H- Z+ x7 X+ K
    determine the fitness of each individual
    # s# y, v# C4 v
    - y, n: X. X3 y
    perform selection
    ; n& @! C) }3 j# f1 x
    5 R2 m- h% T) \
    repeat
    1 Y) ]  I6 l8 V) C1 `& Y& q

    * e) ]: i: q, `* r    perform crossover - t+ ^) ^5 i. N
    6 S8 P# N2 o% D. Z. A
        perform mutation
    8 y" t" k+ _% k" Q  u1 P

    1 |' ?' @5 z1 c/ }% W    determine the fitness of each individual 8 r& M( e* I! Z5 D

    ' N, a5 s* Y' k) r, R' P4 c% V/ t0 W$ n' t    perform selection   g- M& l. m( G) W) O: h

    6 z# g) l  F! P/ {until some stopping criterion applies & n5 i+ |* S  B5 Q3 u
    $ N0 o6 k! t9 y5 S
    这里所指的某种结束准则一般是指个体的适应度达到给定的阀值;或者个体的适应度的变化率为零。: J% e! A" K. n: q
    三、遗传算法的步骤和意义6 F. S8 d8 V" N+ K
    : k  o; U: P) n; L* n6 _
    1.初始化$ ~* a. u; V# ~5 Q( N2 S
    ; o8 J! i9 G  y7 e- Q& Q$ r7 F) ~7 V6 l
    选择一个群体,即选择一个串或个体的集合bii=12...n。这个初始的群体也就是问题假设解的集合。一般取n30-160; ?! m: g# x/ s+ Q- |% V4 A

    6 b# \; R7 T2 f$ w) ]. U5 p& _通常以随机方法产生串或个体的集合bi,i12...n。问题的最优解将通过这些初始假设解进化而求出。' W) ?. u$ l0 ?6 x1 V
    ( U% J+ T& b% J. ^  a: J
    2.选择
    , h8 Q. u* \  z" c( E  l8 S  l

    : o' i; _' C* `+ o% K根据适者生存原则选择下一代的个体。在选择时,以适应度为选择原则。适应度准则体现了适者生存,不适应者淘汰的自然法则。# s/ O' |. f# a* P1 J, B) k4 m5 H& e
    6 [1 S# ]0 ~" n2 G0 S6 A
    给出目标函数f,则f(bi)称为个体bi的适应度。以
    6 i7 a$ S( K! B8 G* b

    6 R: E5 ?; Y, a% u, Q
    1 i! R& {7 \2 c2 u% P7 e 6.2.ht40.gif & D! i! T  |8 o, u
    为选中bi为下一代个体的次数。
    & u+ m& }$ W+ V9 ~7 X4 Q4 q' j
    ; e- b  W9 V& r) S
    显然.从式(386)可知:
      {5 i: y: [2 H5 E: H' r
    . q9 q; g1 c, F  l# E- ^
    (1)适应度较高的个体,繁殖下一代的数目较多。
    1 ^# s* ?1 {+ k2 x
    ; B+ K) o0 m# u
    (2)适应度较小的个体,繁殖下一代的数目较少;甚至被淘汰。- R. f4 V  F7 h* b4 m+ L
      \& V0 @& ~) q! p* D8 d3 h
    这样,就产生了对环境适应能力较强的后代。对于问题求解角度来讲,就是选择出和最优解较接近的中间解。9 `' e: f4 X# V
    / M  K, u# O0 x9 f
    3.交叉$ P+ F& P  d" l3 U
    对于选中用于繁殖下一代的个体,随机地选择两个个体的相同位置,按交叉概率P。在选中的位置实行交换。这个过程反映了随机信息交换;目的在于产生新的基因组合,也即产生新的个体。交叉时,可实行单点交叉或多点交叉。. C% ?8 [1 k1 _9 f" U1 [! i# e
    0 a% M- I# H+ |( p+ T
    例如有个体
    * i$ L) U0 Z' t$ ], m- w5 _0 T

    : V& Y+ _* w9 MS1=100101 ) r( s1 N( h7 n. Z
    $ M' q+ e  X+ u( W% ?
    S2=010111 - D7 Z" Q5 Y, ^8 m* X. }" D7 D
    3 r$ J4 _$ y# n9 T- s% l
    选择它们的左边3位进行交叉操作,则有
    6 K  g0 c; t% _7 }' V/ @- J
    % n. m/ e! h$ Y, D
    S1=010101 5 a+ e+ B3 c" V7 A% A  j

    / o: d6 ^  t9 nS2=100111 1 q% v0 o) C+ h  c, |; L
    , M8 X# I7 t6 n% l
    一般而言,交 婊显譖。取值为0.250.753 F( K! n) u% J2 f/ H
    # f$ y/ }& Z  F2 V4 \/ k
    4.变异
    ( v' C0 Z; i0 ^- @

    2 K/ {- s; h+ M5 S根据生物遗传中基因变异的原理,以变异概率Pm对某些个体的某些位执行变异。在变异时,对执行变异的串的对应位求反,即把1变为0,把0变为1。变异概率Pm与生物变异极小的情况一致,所以,Pm的取值较小,一般取0.01-0.2
    ' _: {8 N' N7 ?$ _5 D# y2 \- H

    / S' S4 |  ?6 x1 Z$ X" O$ j+ a例如有个体S1010114 l! S7 P% t( e) L1 h5 D
    ( H+ W  S7 p0 E) ~0 \, Y% |
    对其的第14位置的基因进行变异,则有
      Q, G) U- \$ y, ~7 o* h
    " F; i* P7 C" G- I( M8 O1 Q
    S'=001111 & ]1 `0 ^: }4 e7 r, h' S2 j- k1 K( P
    5 S+ W6 X: i8 W) q( Q) H2 m4 s
    单靠变异不能在求解中得到好处。但是,它能保证算法过程不会产生无法进化的单一群体。因为在所有的个体一样时,交叉是无法产生新的个体的,这时只能靠变异产生新的个体。也就是说,变异增加了全局优化的特质。3 N6 @! f8 v6 O* b2 w& j: e

    8 \$ I) N5 F2 v: H# g8 {5.全局最优收敛(Convergence to the global optimum) + t0 x' l4 I# {$ M0 a9 G7 F
    0 F. j, \* G8 S* x1 o  y
    当最优个体的适应度达到给定的阀值,或者最优个体的适应度和群体适应度不再上升时,则算法的迭代过程收敛、算法结束。否则,用经过选择、交叉、变异所得到的新一代群体取代上一代群体,并返回到第2步即选择操作处继续循环执行。
    ; i) x: U- }$ p9 [! i0 }! w8 X
    4 E, O- X4 W, t: r3 n% `3 r' z
    37中表示了遗传算法的执行过程。' v7 z: L5 k. K6 a/ I$ d

    2 T! h0 \# b; m; z8 {3 h. n* w4 a7 N4 I1 ]
    Genetic_Algorithm.gif 1 F, D, E# g: m2 J! K

    ! @' ~/ c+ l  v2 g" G" Z3-7 遗传算法原理
    $ [4 L" F, z5 V1 w& ]$ d1 n# \
    5 b) v% g' V2 q2 ?9 m1 X, m
    323遗传算法的应用  s) a& W$ m7 U% A' M; o( U2 V

    % ~; D8 [2 B0 f1 H* ?遗传算法在很多领域都得到应用;从神经网络研究的角度上考虑,最关心的是遗传算法在神经网络的应用。在遗传算法应用中,应先明确其特点和关键问题,才能对这种算法深入了解,灵活应用,以及进一步研究开发。2 |" E1 I. e/ e6 }1 T
    9 T' f3 m( p! r/ H$ \
    一、遗传算法的特点
    ' J  O" S  v' T- W, l, Z5 \4 B

    2 G8 b6 H- ?% b1 q1.遗传算法从问题解的中集开始嫂索,而不是从单个解开始。
    % N; T+ y4 T! }. x4 h

    # Z. N4 M8 M" V# b! a* t# I- k- T" N这是遗传算法与传统优化算法的极大区别。传统优化算法是从单个初始值迭代求最优解的;容易误入局部最优解。遗传算法从串集开始搜索,复盖面大,利于全局择优。# u* w5 e3 Q/ d) ~7 E* [
    0 |: m. F/ t$ t5 {. D5 ~
    2.遗传算法求解时使用特定问题的信息极少,容易形成通用算法程序。
    ) s" n* Q  A3 \/ p- b8 n

    ! {- F% ?* ~, I) w4 S9 V由于遗传算法使用适应值这一信息进行搜索,并不需要问题导数等与问题直接相关的信息。遗传算法只需适应值和串编码等通用信息,故几乎可处理任何问题。+ R9 `6 C9 X) Q0 r

    , ^+ c) @5 s# o4 R0 f% M3.遗传算法有极强的容错能力
    1 u8 S; Y: w1 w

    0 g% A8 S3 U5 d7 ?% i+ o+ g0 w! \  V遗传算法的初始串集本身就带有大量与最优解甚远的信息;通过选择、交叉、变异操作能迅速排除与最优解相差极大的串;这是一个强烈的滤波过程;并且是一个并行滤波机制。故而,遗传算法有很高的容错能力。
    ; a. b3 U" L* Z- b( z

    . \& i8 b9 v* V$ x' ^4.遗传算法中的选择、交叉和变异都是随机操作,而不是确定的精确规则。
    $ N# w7 D/ T6 |- J. ?( L  I+ W3 t6 V

    . Q* |4 P" m+ E7 u, L! I2 c: c这说明遗传算法是采用随机方法进行最优解搜索,选择体现了向最优解迫近,交叉体现了最优解的产生,变异体现了全局最优解的复盖。
    0 {  u" w7 ~' G

    4 y0 D" D' x6 x+ I7 v5.遗传算法具有隐含的并行性
    % @4 N5 B5 w/ i; d% R1 O

    & q6 C8 T7 b9 @遗传算法的基础理论是图式定理。它的有关内容如下:
    ( Q. {4 E" R7 G
    - x' V& T9 ^# B1 |2 _
    (1)图式(Schema)概念1 F- E8 g9 ?; j( M" V+ Y* N

    : ?) B; x$ |5 ^; V一个基因串用符号集{01*}表示,则称为一个因式;其中*可以是01。例如:H=1xx 0 x x是一个图式。- }7 B2 M9 G6 c

    4 I; y4 T3 a( u2 S& w(2)图式的阶和长度! d) y5 X  D: p3 \% \
    ) A; J( X2 m6 c4 b
    图式中01的个数称为图式的阶,并用0(H)表示。图式中第1位数字和最后位数字间的距离称为图式的长度,并用δ(H)表示。对于图式H1x x0x x,有0(H)2,δ(H)41 f/ c; n( y. l/ W, m7 E) U0 |" W

    4 {/ u# C6 d5 s0 U: t2 x% n5 R(3)Holland图式定理* {8 R' p' T: p' \5 |) a
    ' s9 Z5 s+ v7 C
    低阶,短长度的图式在群体遗传过程中将会按指数规律增加。当群体的大小为n时,每代处理的图式数目为0(n3)& M0 g# ^! Q6 l0 [+ d

    1 `* l" B0 V* d( N; \) l遗传算法这种处理能力称为隐含并行性(Implicit Parallelism)。它说明遗传算法其内在具有并行处理的特质。
    % i" T  a: w8 ^0 I2 |1 J( Q# n

    ' _4 E* L) ^! s9 Y- L1 z5 h  _二、遗传算法的应用关键! B2 J% n! S0 q- a9 m7 O# y# n

    + ?& v  @0 t& v7 ]; _遗传算法在应用中最关键的问题有如下3$ p# w) G! O7 d

    - Q" ]% ?! y* d# b/ a7 f7 S  `1.串的编码方式8 w% F9 T: B* {6 A3 K

    7 H( \# i# U$ z这本质是问题编码。一般把问题的各种参数用二进制编码,构成子串;然后把子串拼接构成“染色体”串。串长度及编码形式对算法收敛影响极大。
    4 p2 X; x* ^0 {8 Q% x0 I; H  v

    ! l  l: _( E+ U* l7 F2.适应函数的确定. ], c8 F6 F) [# A) y

    ) k1 ]3 Y7 ~" T2 @适应函数(fitness function)也称对象函数(object function),这是问题求解品质的测量函数;往往也称为问题的“环境”。一般可以把问题的模型函数作为对象函数;但有时需要另行构造。
    , ?- f5 z# _3 g% J$ J6 B6 I
    ! `6 E" }0 _7 D% U2 x$ Y) v
    3.遗传算法自身参数设定+ B  L; q2 J% O  E  P

    5 x1 A) o  z2 m遗传算法自身参数有3个,即群体大小n、交叉概率Pc和变异概率Pm2 j7 U$ A' o" L) C  R3 j

      c1 K" t# W5 O' _9 z8 _6 }群体大小n太小时难以求出最优解,太大则增长收敛时间。一般n30-160。交叉概率Pc太小时难以向前搜索,太大则容易破坏高适应值的结构。一般取Pc=0.25-0.75。变异概率Pm太小时难以产生新的基因结构,太大使遗传算法成了单纯的随机搜索。一般取Pm00102% V7 q# L, V* O7 N8 U
    - k' H  t2 _& @% g$ r1 X, J, |
    三、遗传算法在神经网络中的应用
    5 F* _3 |5 v3 ?' c! a5 ^5 w! a
    , L6 P* e" \: R9 u
    遗传算法在神经网络中的应用主要反映在3个方面:网络的学习,网络的结构设计,网络的分析。% D! }' K- k# l- |' h! H+ G

    ) Y& f4 ^+ Y6 d& l/ l1.遗传算法在网络学习中的应用
    ! R8 p' t2 V# U( t1 n4 ?1 k

    + p0 d3 f3 g8 G% j! T在神经网络中,遗传算法可用于网络的学习。这时,它在两个方面起作用  p' M6 I* t/ n( }- n% C. U- l
    ; M' e5 ?* B. w: G9 \' t
    (1)学习规则的优化
    9 C- z+ E# f4 A, @
    ! J$ m! [+ @1 _: ]
    用遗传算法对神经网络学习规则实现自动优化,从而提高学习速率。
    0 Q9 ~1 i$ S7 r

    * ]2 ?$ x  _' [: `(2)网络权系数的优化- l, t8 A$ V0 X- {( |3 p: P

    / x! R) V* \2 k7 \1 v+ X用遗传算法的全局优化及隐含并行性的特点提高权系数优化速度。2 }6 g/ F  ]/ _; d( B

    2 ]* X; t  ?0 B. k. [2.遗传算法在网络设计中的应用, i/ G1 l  @8 H# v$ ^" n
    0 e% a; U+ Y( X5 M* O
    用遗传算法设计一个优秀的神经网络结构,首先是要解决网络结构的编码问题;然后才能以选择、交叉、变异操作得出最优结构。编码方法主要有下列3种:
    ; z  ]1 b0 {5 R( R* k

    4 A$ b" ~( i( G* E7 u* h(1)直接编码法5 _# x7 o% e# J# D! a1 ]( \1 r

    ' H+ Z: c% @$ N. `这是把神经网络结构直接用二进制串表示,在遗传算法中,“染色体”实质上和神经网络是一种映射关系。通过对“染色体”的优化就实现了对网络的优化。
    * r$ E, h$ n( B3 I; f0 [$ a& N7 q

    " H- j/ L' f. z0 @2 R(2)参数化编码法
    ; s8 a% U# r& L! ^& E6 B" f

    2 v0 Z( Y. n+ w参数化编码采用的编码较为抽象,编码包括网络层数、每层神经元数、各层互连方式等信息。一般对进化后的优化“染色体”进行分析,然后产生网络的结构。
    8 \; ]  |0 ^$ N6 `6 q6 s/ _! u

    - m: j3 G& j8 x# k) p( q(3)繁衍生长法# W7 _* P8 X9 R, o

    " E% z2 [, F2 B1 Z9 ?这种方法不是在“染色体”中直接编码神经网络的结构,而是把一些简单的生长语法规则编码入“染色体”中;然后,由遗传算法对这些生长语法规则不断进行改变,最后生成适合所解的问题的神经网络。这种方法与自然界生物地生长进化相一致。
    - r" Y5 D9 p' l2 _* z1 C1 \
    6 C3 H: x8 ~+ Z( z/ ?% b0 L# p
    3.遗传算法在网络分析中的应用
    " T) _4 v2 h8 Q' S

    # p6 ^* B8 z5 D- S/ {遗传算法可用于分析神经网络。神经网络由于有分布存储等特点,一般难以从其拓扑结构直接理解其功能。遗传算法可对神经网络进行功能分析,性质分析,状态分析。* A: z! C$ {$ y& W3 m; U
    1 Q8 p( {& V3 J- P5 [
    遗传算法虽然可以在多种领域都有实际应用,并且也展示了它潜力和宽广前景;但是,遗传算法还有大量的问题需要研究,目前也还有各种不足。首先,在变量多,取值范围大或无给定范围时,收敛速度下降;其次,可找到最优解附近,但无法精确确定最扰解位置;最后,遗传算法的参数选择尚未有定量方法。对遗传算法,还需要进一步研究其数学基础理论;还需要在理论上证明它与其它优化技术的优劣及原因;还需研究硬件化的遗传算法;以及遗传算法的通用编程和形式等。
    5 x7 [% K$ i% X/ p, M; n5 Z
    # E2 R+ B- Y7 O" m4 z0 H$ B' }


    $ T4 L+ S( U* ]  u; }三、遗传算法的步骤和意义
    ; y/ k8 V: u% P) K
    3 t; `: ?2 z6 t/ V
    1.初始化
    % s1 H4 P; |  x" r3 s4 m
    4 r3 A! ^7 M) ^/ ~. x' C/ U0 p' Z
    选择一个群体,即选择一个串或个体的集合bii=12...n。这个初始的群体也就是问题假设解的集合。一般取n30-160
    ; ^+ W: y) |' E* n$ x

    6 W" w: [, g# p# [: e6 m; x* r通常以随机方法产生串或个体的集合bi,i12...n。问题的最优解将通过这些初始假设解进化而求出。
    ( ]5 p$ v1 l3 p( {* u3 r2 F
    . n8 F  {; J7 Q) [. h$ }
    2.选择# y: x. ]/ T" H+ [

    7 N3 \- }3 @  u7 K* A, G根据适者生存原则选择下一代的个体。在选择时,以适应度为选择原则。适应度准则体现了适者生存,不适应者淘汰的自然法则。: s5 N2 _# W4 H" a0 y( x" I
    : }* V% S4 a7 F1 x; D/ F
    给出目标函数f,则f(bi)称为个体bi的适应度。以: [  v: `& d1 R# ]
    3 d3 T; W# D' F3 j  S7 Y5 v- R* |& G

    4 U6 w. s6 D, v
    , ^: Z9 v) s9 R7 f/ b- W为选中bi为下一代个体的次数。6 p% n7 @5 X! W; Z% K
    6 i! a+ v6 g' t; _/ U
    显然.从式(386)可知:
    ) W5 A; c0 s) Q8 n1 \, q$ p
    3 `9 C- b1 `- ]$ E1 ^8 W0 u
    (1)适应度较高的个体,繁殖下一代的数目较多。
    : h9 _1 _4 y4 d( ?0 L. O/ A
    ! ~; T9 L" K( S7 x4 h* ]$ r  A
    (2)适应度较小的个体,繁殖下一代的数目较少;甚至被淘汰。& V) V/ ^2 m7 h# ?6 @
    ; ?$ {& `3 C7 b4 e+ S
    这样,就产生了对环境适应能力较强的后代。对于问题求解角度来讲,就是选择出和最优解较接近的中间解。
    % |5 T8 {3 J1 z1 W6 k" \# P

    + Q7 B, E* W- J" K, l3.交叉) _, d: r! \( C. s8 ]4 S' G/ }0 ]
    对于选中用于繁殖下一代的个体,随机地选择两个个体的相同位置,按交叉概率P。在选中的位置实行交换。这个过程反映了随机信息交换;目的在于产生新的基因组合,也即产生新的个体。交叉时,可实行单点交叉或多点交叉。5 t3 F* ?. X  Y! F7 @+ {
    9 y, I' `% [2 r9 A$ F+ u9 \
    例如有个体  E5 c2 D5 |9 m
    : d/ \) y2 I9 |9 O% }
    S1=100101 , X5 u& v6 F; k
    0 z: A4 f1 b) B' f
    S2=010111
    / A7 X8 s$ E1 }: ~8 e, K# t

    , B# b# z* h, N选择它们的左边3位进行交叉操作,则有
    $ G! f+ @' i4 g* a: ~

    4 C# o2 t4 U. v  N7 D3 }S1=010101 7 P: H9 v# D7 |5 i6 l

    - J5 O/ }$ C. j/ q; I: [) nS2=100111 7 m6 a7 u' h3 C5 c: X! L

    : V, Q7 d4 K& Z" s7 J4 K8 c3 W一般而言,交 婊显譖。取值为0.250.757 z# `7 g( k. y9 k( Q# q9 ^& B6 f

    " O+ o2 g- D# X2 @0 ?7 S4.变异
    $ L: f- u+ ]) z8 _
    5 K5 Q! A/ e& T. h
    根据生物遗传中基因变异的原理,以变异概率Pm对某些个体的某些位执行变异。在变异时,对执行变异的串的对应位求反,即把1变为0,把0变为1。变异概率Pm与生物变异极小的情况一致,所以,Pm的取值较小,一般取0.01-0.2
    , |2 h) x. ~' L6 I: K& Y
    / k6 u4 g- \! ]0 k7 E; u/ T; [! c
    例如有个体S101011
    % k4 N5 C8 W, G; _6 j3 T
    0 J" w3 o0 T6 }$ P/ g3 G
    对其的第14位置的基因进行变异,则有$ d0 _2 R+ H8 \6 z
    3 k% ^1 f  d( ?& j3 W6 c, m
    S'=001111
    : X  v! I. y+ d

    * {& p9 L, L' u2 F单靠变异不能在求解中得到好处。但是,它能保证算法过程不会产生无法进化的单一群体。因为在所有的个体一样时,交叉是无法产生新的个体的,这时只能靠变异产生新的个体。也就是说,变异增加了全局优化的特质。: T# D( F7 Y% M2 W6 K; O* p  ^3 L
    5 }; K1 C- @5 }! o3 h* A
    5.全局最优收敛(Convergence to the global optimum)
    ; |. e* p) N' ?" v* U

    & q0 d. s) L% ?2 G/ j2 e# e当最优个体的适应度达到给定的阀值,或者最优个体的适应度和群体适应度不再上升时,则算法的迭代过程收敛、算法结束。否则,用经过选择、交叉、变异所得到的新一代群体取代上一代群体,并返回到第2步即选择操作处继续循环执行。
    ' o5 u( R/ i$ T9 D. ?: ]. v% F

    # o4 E, S8 M1 _37中表示了遗传算法的执行过程。
    $ p: F/ y1 I4 e5 Z: Z, L
    1 b: V# x+ I* P# o3 r/ Y# I3 p) b5 o. ?2 K- `7 p( S  k
    5 n7 y5 i; o: `
    1 A6 r. a9 p" l( Q/ t
    3-7 遗传算法原理# L9 {5 f" c7 L) `1 m3 f* P  A
    5 H4 k7 ^) |6 ^( g. |
    323遗传算法的应用  b* M2 b9 P  M9 O8 Z: M
    ! b: A' ^4 B1 ?& ^
    遗传算法在很多领域都得到应用;从神经网络研究的角度上考虑,最关心的是遗传算法在神经网络的应用。在遗传算法应用中,应先明确其特点和关键问题,才能对这种算法深入了解,灵活应用,以及进一步研究开发。
    # @% O" l' G9 y; c% u" @: w

    9 \  K8 `. i; Z+ z一、遗传算法的特点
    # j; [. [, }' y; [
    % m1 `6 m, N& ~$ X* u6 N' }
    1.遗传算法从问题解的中集开始嫂索,而不是从单个解开始。2 _3 H+ O; {) F8 J# D* w9 e) B$ F

    ; {( X# h  w+ f: w+ Y这是遗传算法与传统优化算法的极大区别。传统优化算法是从单个初始值迭代求最优解的;容易误入局部最优解。遗传算法从串集开始搜索,复盖面大,利于全局择优。2 j' f7 k% ^- @6 J8 b. w! s
    ! g$ w2 J! V( x$ i$ q
    2.遗传算法求解时使用特定问题的信息极少,容易形成通用算法程序。
    0 A. x7 y- r# L0 P9 ~

    4 s, D' v9 q1 n' F5 N+ O/ y由于遗传算法使用适应值这一信息进行搜索,并不需要问题导数等与问题直接相关的信息。遗传算法只需适应值和串编码等通用信息,故几乎可处理任何问题。! |, [5 f1 A5 f. n

    8 N2 E" `1 G+ p9 _  p1 a. R. k, R3.遗传算法有极强的容错能力; N1 Z8 F+ o, V

    ( @4 O) ?2 r8 P9 M7 @; Q遗传算法的初始串集本身就带有大量与最优解甚远的信息;通过选择、交叉、变异操作能迅速排除与最优解相差极大的串;这是一个强烈的滤波过程;并且是一个并行滤波机制。故而,遗传算法有很高的容错能力。4 |' E8 N4 l* f; w' l: i
    & B! T  ^9 ^* A  C6 ]& }( }# T
    4.遗传算法中的选择、交叉和变异都是随机操作,而不是确定的精确规则。1 a, Y* ~7 Z0 }, Y" R$ {
    + ~$ I; l" t- J7 D4 B+ K$ {
    这说明遗传算法是采用随机方法进行最优解搜索,选择体现了向最优解迫近,交叉体现了最优解的产生,变异体现了全局最优解的复盖。" S$ H4 r1 ?" E# P& |. @& H; S
    & f9 l! M4 M3 K$ s$ v/ K
    5.遗传算法具有隐含的并行性
    % J. H  d0 M6 i1 y+ f! k  d+ t
    " Z* J6 J  J& ~8 O% Y; n
    遗传算法的基础理论是图式定理。它的有关内容如下:
    + ^/ q( G, j0 p  {

    $ C% g  H: p: f5 L9 m  \(1)图式(Schema)概念
    * H0 P4 V( E: V+ |6 G6 J1 D, ]

    8 X0 _4 M  ^* W0 J5 i4 A一个基因串用符号集{01*}表示,则称为一个因式;其中*可以是01。例如:H=1xx 0 x x是一个图式。8 R& z0 t+ u0 h- D7 y

    7 ?' Y; U2 s6 W% b! g4 ^9 J2 w8 v(2)图式的阶和长度
    9 J5 k9 Z2 c& K; J& M

      l9 W. {: |0 v* d- q; J  m4 j/ z图式中01的个数称为图式的阶,并用0(H)表示。图式中第1位数字和最后位数字间的距离称为图式的长度,并用δ(H)表示。对于图式H1x x0x x,有0(H)2,δ(H)4* Y# Q  Z7 t# `7 X, n

    - Y; S  g0 V! w" j( ^8 Z, K6 q4 U(3)Holland图式定理
    + |+ h, B/ g; s3 c" \- H

    , ~0 S+ w4 Q1 O; ]% {2 s, O低阶,短长度的图式在群体遗传过程中将会按指数规律增加。当群体的大小为n时,每代处理的图式数目为0(n3)' ?* U8 f$ @( }8 D
    8 z3 a- T. D1 u9 {/ @4 ^& A
    遗传算法这种处理能力称为隐含并行性(Implicit Parallelism)。它说明遗传算法其内在具有并行处理的特质。
    # x; I: d' O, P2 h
    ) s# ~7 ~9 `- ^
    二、遗传算法的应用关键' t9 a3 i/ {' o
    8 Q0 K' W! Z+ f1 d& k
    遗传算法在应用中最关键的问题有如下3
    ' m# `! d4 K/ q: Y/ e
    1 {, I7 {& ?( R* Z' w0 T4 E
    1.串的编码方式2 U# c! |$ a& R+ w" U0 h' k3 W

    + }9 \/ }1 `$ R: O# p- Y这本质是问题编码。一般把问题的各种参数用二进制编码,构成子串;然后把子串拼接构成“染色体”串。串长度及编码形式对算法收敛影响极大。
    , o" M' k& E! b& F: ^" X

    6 Q# C9 K. e' F5 S2.适应函数的确定
    7 Y8 ]  h+ D9 x+ D

    9 l9 J1 }& g& c5 B( b: b9 T适应函数(fitness function)也称对象函数(object function),这是问题求解品质的测量函数;往往也称为问题的“环境”。一般可以把问题的模型函数作为对象函数;但有时需要另行构造。
    9 T+ ]: |: b8 g" }3 P
    5 x( J: Y* u1 ?3 h0 `; a) R9 W
    3.遗传算法自身参数设定
      x' Q7 g; X( K$ D# a8 E

    " r0 A8 h$ W- A) \" c, q遗传算法自身参数有3个,即群体大小n、交叉概率Pc和变异概率Pm% g& a: @/ V+ T( u: f
    0 F' O' t: D9 Q1 y* n; `0 S0 S
    群体大小n太小时难以求出最优解,太大则增长收敛时间。一般n30-160。交叉概率Pc太小时难以向前搜索,太大则容易破坏高适应值的结构。一般取Pc=0.25-0.75。变异概率Pm太小时难以产生新的基因结构,太大使遗传算法成了单纯的随机搜索。一般取Pm001024 h7 M" j3 Z! d# Z

    8 C2 n6 h* S3 W! ^* r三、遗传算法在神经网络中的应用
    + C9 j2 ~& J: f! X; V# F- y
    , |# I7 d" y, m
    遗传算法在神经网络中的应用主要反映在3个方面:网络的学习,网络的结构设计,网络的分析。
    ' p- v( e  n; n
    . G& K* R: ]" ]* B9 P# B
    1.遗传算法在网络学习中的应用3 r- E- e& o: L# ~; O7 x1 z
    ; ^+ W+ N$ H' t1 W: i7 }* [
    在神经网络中,遗传算法可用于网络的学习。这时,它在两个方面起作用
    - a, w# P' j- b4 D

    ; h2 @  e7 ?+ s% G6 `(1)学习规则的优化
    9 k" }. K3 A" T( i) L" m" m
    : ~7 _) v& y6 E, f2 \1 l) L
    用遗传算法对神经网络学习规则实现自动优化,从而提高学习速率。: I" {, B4 e& B1 W5 T% d. n0 t, q$ X/ ]

    " p) g9 Z( d% Q3 a(2)网络权系数的优化/ c# L+ w6 c& ]

      H  W, S6 }" E' G  H用遗传算法的全局优化及隐含并行性的特点提高权系数优化速度。7 ~. O4 U: s& L: f
    9 L+ N& M8 s* `2 d+ b2 `; e* R' V4 K" `) c
    2.遗传算法在网络设计中的应用
    % K7 `$ o+ ~% L! l  `

    ' _5 T& w1 e1 k7 H9 h# e1 b用遗传算法设计一个优秀的神经网络结构,首先是要解决网络结构的编码问题;然后才能以选择、交叉、变异操作得出最优结构。编码方法主要有下列3种:6 o  C+ W2 M  y& N
    ) E$ Q4 v6 C" L' |8 o0 u+ |3 E
    (1)直接编码法' v- U1 N2 p% j' x* i# U% L
    $ G9 `- q" I4 Y" |5 ^1 K
    这是把神经网络结构直接用二进制串表示,在遗传算法中,“染色体”实质上和神经网络是一种映射关系。通过对“染色体”的优化就实现了对网络的优化。5 k( e, ?( ]# e  j' E* v

    . X4 m, n% F0 f8 s: K( u! n0 U( }(2)参数化编码法
    3 E4 l' H% M# t( D0 j
    4 k- b' N* _" R/ |
    参数化编码采用的编码较为抽象,编码包括网络层数、每层神经元数、各层互连方式等信息。一般对进化后的优化“染色体”进行分析,然后产生网络的结构。) H$ k6 H9 ]8 a# j* l  {
    $ V- Q' |: z5 j0 F, n2 \
    (3)繁衍生长法
    4 `" V, W* u, j2 \) b
    / h4 P6 I& o: z, H
    这种方法不是在“染色体”中直接编码神经网络的结构,而是把一些简单的生长语法规则编码入“染色体”中;然后,由遗传算法对这些生长语法规则不断进行改变,最后生成适合所解的问题的神经网络。这种方法与自然界生物地生长进化相一致。
    & x6 L4 M6 B  ^0 F0 a3 C8 t

    + B$ A9 z- k0 S  L+ N3.遗传算法在网络分析中的应用
    " _$ O  v* k' l' N& q! m

    ( \; A+ A3 O+ e遗传算法可用于分析神经网络。神经网络由于有分布存储等特点,一般难以从其拓扑结构直接理解其功能。遗传算法可对神经网络进行功能分析,性质分析,状态分析。: w6 K% Z/ f, U! I: v9 C, h% r" ~

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

    Powered by Discuz! X3.5 Licensed

    © 2001-2026 Discuz! Team.

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