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

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

[分享] 转(遗传算法)

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

    连续签到: 1 天

    [LV.2]偶尔看看I

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

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

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

    ×
    生物的进化是一个奇妙的优化过程,它通过选择淘汰,突然变异,基因遗传等规律产生适应环境变化的优良物种。遗传算法是根据生物进化思想而启发得出的一种全局优化算法。7 \, o( {/ q4 H" P1 r
    & t; A# k! m, k) M
    遗传算法的概念最早是由Bagley J.D1967年提出的;而开始遗传算法的理论和方法的系统性研究的是1975年,这一开创性工作是由Michigan大学的J.H.Holland所实行。当时,其主要目的是说明自然和人工系统的自适应过程。1 o; v2 B/ |5 P8 ~  i+ ?2 K& K
    0 K5 W! z* P" f7 _
    遗传算法简称GA(Genetic Algorithm),在本质上是一种不依赖具体问题的直接搜索方法。遗传算法在模式识别、神经网络、图像处理、机器学习、工业优化控制、自适应控制、生物科学、社会科学等方面都得到应用。在人工智能研究中,现在人们认为“遗传算法、自适应系统、细胞自动机、混沌理论与人工智能一样,都是对今后十年的计算技术有重大影响的关键技术”。: Q7 O- D( x9 a
    % Z* e2 ?6 k" G  n# V+ y' P
    321 遗传算法的基本概念5 Y0 x( {, @5 ^- S! s

    * T4 W& U* t' Z! C% m遗传算法的基本思想是基于Darwin进化论和Mendel的遗传学说的。
    2 T) n- A  _+ o' ?
    , p/ f( e# C/ w9 V7 G& \
    Darwin进化论最重要的是适者生存原理。它认为每一物种在发展中越来越适应环境。物种每个个体的基本特征由后代所继承,但后代又会产生一些异于父代的新变化。在环境变化时,只有那些熊适应环境的个体特征方能保留下来。
    7 B( A, O+ B% @7 F! g
    . U2 {) q  H4 t; k
    Mendel遗传学说最重要的是基因遗传原理。它认为遗传以密码方式存在细胞中,并以基因形式包含在染色体内。每个基因有特殊的位置并控制某种特殊性质;所以,每个基因产生的个体对环境具有某种适应性。基因突变和基因杂交可产生更适应于环境的后代。经过存优去劣的自然淘汰,适应性高的基因结构得以保存下来。
    0 R5 z$ r7 U) G. A; i/ M

    # x- X- P8 c( B) M! u由于遗传算法是由进化论和遗传学机理而产生的直接搜索优化方法;故而在这个算法中要用到各种进化和遗传学的概念。这些概念如下:
    & E3 G( A9 W+ L; p

    1 {0 ?7 H/ ]( ]8 m* l+ D0 O一、串(String)
    + D4 p+ }, ^# x$ }
    1 z" V( I! k% b  g
    它是个体(Individual)的形式,在算法中为二进制串,并且对应于遗传学中的染色体(Chromosome)! F' v1 m& H4 v- P6 C

    / F# C1 z7 o, b9 C* Y* Z3 G! U. R二、群体(Population)
    3 d5 B+ L& j+ h8 b

    " I% I2 p' u) u( u3 _个体的集合称为群体,串是群体的元素
      z/ Z7 I0 C" W+ X  O

    + R( x+ V: z6 {三、群体大小(Population Size)
    4 L1 z3 r' ?# ~/ z7 H

    / d5 [/ i0 _. @- k" O% N- v在群体中个体的数量称为群体的大小。
    ' N1 I1 R- u, {% @( s5 _7 e% m: u

    ( c3 h+ W2 B4 @) j四、基因(Gene) $ X- M3 |' ?( Q) A% H% ?, ]. d

    9 \0 v9 ^: A) P基因是串中的元素,基因用于表示个体的特征。例如有一个串S1011,则其中的10114个元素分别称为基因。它们的值称为等位基因(Alletes)) n' [  F8 f, i# T! e
    * K8 \/ F! [/ }4 A# b  g& E8 _
    、基因位置(Gene Position)
    $ M8 t( z9 ^, a. G9 t

    2 c/ X5 p* _7 S* E一个基因在串中的位置称为基因位置,有时也简称基因位。基因位置由串的左向右计算,例如在串S1101中,0的基因位置是3。基因位置对应于遗传学中的地点(Locus)6 |! K% m% r3 N

    & @( }5 K. H- c  ]5 Q3 M  S- M六、基因特征值(Gene Feature)
    ! ^( P; q! v! z: I, P

    7 c% r  a6 G! l* Y% b* F在用串表示整数时,基因的特征值与二进制数的权一致;例如在串S=1011中,基因位置3中的1,它的基因特征值为2;基因位置1中的1,它的基因特征值为8
    ( `0 C) B# d# C4 I: p. \- C

    ' p! ?5 I6 V; b七、串结构空间SS
    ! O( C9 w) Z- N& @( R
    ( B- f4 g8 x& Z+ k" x4 P9 {, |- u
    在串中,基因任意组合所构成的串的集合。基因操作是在结构空间中进行的。串结构空间对应于遗传学中的基因型(Genotype)的集合。/ [  m/ Z4 Q1 ?( K$ B
    # @" Y/ k0 Y6 s4 M. O6 m* r0 g$ J
    八、参数空间SP
    2 L: T) W8 u  X9 a1 @1 O
    # H  O* v& I  u
    这是串空间在物理系统中的映射,它对应于遗传学中的表现型(Phenotype)的集合。
    9 o+ }+ P" ^' N+ s4 X6 M  @
    2 U* a% q( l: E
    九、非线性' L+ R! p8 N3 }; c  D
    1 _9 e0 h% S; C+ J
    它对应遗传学中的异位显性(Epistasis)
    / }  v7 Y+ ~$ e1 O4 g% [( m

    9 J% c% F; T' [& u* z十、适应度(Fitness)
    4 y& q8 ]/ e  y0 W
    1 z9 y, A: h7 _5 `9 R& L* M
    表示某一个体对于环境的适应程度。- S' j3 }$ Y) ]0 G* L8 E  T
    # \+ c7 }9 k/ X; G, S5 i
    遗传算法还有一些其它的概念,这些概念在介绍遗传算法的原理和执行过程时,再进行说明。( Z8 R6 S; f, r2 U( K

    : w; V* i% d' s7 [5 L322遗传算法的原理
    ) N4 H- \0 k- G6 B' o3 I

    9 I; I) K) n4 {! i& ]% m遗传算法GA把问题的解表示成“染色体”,在算法中也即是以二进制编码的串。并且,在执行遗传算法之前,给出一群“染色体”,也即是假设解。然后,把这些假设解置于问题的“环境”中,并按适者生存的原则,从中选择出较适应环境的“染色体”进行复制,再通过交叉,变异过程产生更适应环境的新一代“染色体”群。这样,一代一代地进化,最后就会收敛到最适应环境的一个“染色体”上,它就是问题的最优解。4 E' u" V$ }5 X$ z' [1 W8 j; b

    , r. z6 w, g, k( T) k一、遗传算法的目的
    1 z; d' Y9 B3 `/ O" S' ]( V
    / e3 m2 j& L3 n( s9 i" u  g+ p
    典型的遗传算法CGA(Canonical Genetic Algorithm)通常用于解决下面这一类的静态最优化问题:
    3 r/ f* q5 |6 ~2 I1 u
    . `0 f# `5 W8 w* e9 I
    考虑对于一群长度为L的二进制编码bii12,…,n;有" y( q% M# l8 t- r7 {
    , U+ M$ M1 ]9 V" K8 i# V% h" R7 n
    bi{0,1}L        (3-84)
    $ c- v) f2 p3 x. L
    2 ]4 ~) D& [+ _) n$ M  P
    给定目标函数f,有f(bi),并且! r0 e3 ~4 }% q' W5 I
    ; n' ?# o, C: E1 E8 A
    0<F(BI)<< P>
    - e+ T2 V2 T" K& [" ?6 z

    . F) `  c- D- V; {# H" Y同时
    & h3 V' p) S3 ?* Y! {" q6 y

    4 e5 M4 P4 y6 F  uf(bi)f(bi+1) 4 j" g5 m: c( i6 q4 ?

    % C  P, Y3 p, w5 C. U8 U求满足下式
    7 B: p. h  \) j  {- P; b7 [  ?
    / a! p* `. S3 i5 D% x4 y
    max{f(bi)|bi{0,1}L}
    , G. Y- c. i7 l

    + Y) C4 a7 y8 k: D2 S5 t) j! Nbi# k  n5 T! _& n

    * Q1 h! T% J5 P5 e- w" m很明显,遗传算法是一种最优化方法,它通过进化和遗传机理,从给出的原始解群中,不断进化产生新的解,最后收敛到一个特定的串bi处,即求出最优解。
    % ^/ b! }  s7 k" \: _5 N$ F3 a

    0 S9 K& h( l! r! A/ w1 x9 P1 |0 H4 l二、遗传算法的基本原理
    % S- z" M0 F/ w, _& [. A
    ; I3 }* ^5 S! V- a+ F, |" U7 t
    长度为Ln个二进制串bi(i12,…,n)组成了遗传算法的初解群,也称为初始群体。在每个串中,每个二进制位就是个体染色体的基因。根据进化术语,对群体执行的操作有三种:) W% _" R$ |# ?& Z, ?8 s. n
    $ q4 d& r5 c4 U2 y3 ?( h8 R' J
    1.选择(Selection) % p2 [  Q0 Y4 h. e$ Q  K

    4 i# }( a$ J6 y3 m; a- k1 H这是从群体中选择出较适应环境的个体。这些选中的个体用于繁殖下一代。故有时也称这一操作为再生(Reproduction)。由于在选择用于繁殖下一代的个体时,是根据个体对环境的适应度而决定其繁殖量的,故而有时也称为非均匀再生(differential reproduction)
    ! W+ y8 D+ r9 T3 }  K
    4 h* |' E, m; M4 i5 Q( }
    2.交叉(Crossover)
    & ~9 Q  H6 v8 D
    7 p$ [, L+ Z5 M' l8 _
    这是在选中用于繁殖下一代的个体中,对两个不同的个体的相同位置的基因进行交换,从而产生新的个体。# |( O! `1 ?$ U

    4 \6 i6 U, `/ q  x5 i) g$ D3.变异(Mutation)
    & j2 j8 g7 ~' S+ N5 f/ N! @3 _! ]

    & H7 E/ ?4 z# T6 p) J这是在选中的个体中,对个体中的某些基因执行异向转化。在串bi中,如果某位基因为1,产生变异时就是把它变成0;反亦反之。
    / |) I, w; m: Q: p; ?- c1 [" }

    $ J' B0 u, h& m  y* l" j遗传算法的原理可以简要给出如下:- q& f5 v4 X9 ?/ w; Y

    & d/ Z; V3 U+ z; ?& schoose an intial population . g: j+ h, g& d% C

    : [. p1 a9 _8 x# X5 O& c% adetermine the fitness of each individual % D3 L7 R6 y7 _( T+ S, ~- E/ G
    0 J. x9 I; y9 Q, P& e
    perform selection ! r3 z+ Y$ E* v4 {  ]
    & L: J4 S9 n* L9 P0 V; Y$ @) W9 }
    repeat
    9 ^& y$ `3 \2 L2 @

    8 K( B& m! q1 ^$ G0 r2 D, \% N1 O    perform crossover ) p2 t! d; i3 ?3 }& q2 ]
    $ W9 {7 K: S, A6 _" s
        perform mutation
    % F" o. B# ?3 _; d4 @& I. r
    " O: S3 ]" U# D+ a) ?, }! E
        determine the fitness of each individual
    $ ^* J5 W2 _) {/ `

    , g; c/ u0 T. Z8 Z: K4 s8 Z0 _9 ~    perform selection
    6 F1 t( p0 u: v- f  A- u
    5 H7 r4 M# F' J# Z) E, a/ M9 x. k7 o
    until some stopping criterion applies
    9 @) y! ?/ h  U* P+ q

    % @9 M, n* r3 u6 }. U+ l这里所指的某种结束准则一般是指个体的适应度达到给定的阀值;或者个体的适应度的变化率为零。
    & U2 a; ~' S5 {) u
    三、遗传算法的步骤和意义
    ( `6 o( P0 k( B
    " R- g0 Z# t- {1 V
    1.初始化
    ( Q7 t: y3 {) P2 y9 v( ]. i1 a

    0 u1 i; B! H7 d, h; K, S1 |, A2 R选择一个群体,即选择一个串或个体的集合bii=12...n。这个初始的群体也就是问题假设解的集合。一般取n30-160
    / _+ a9 g" V' d* l* \" H
    $ j9 l: C3 t) W# k' b
    通常以随机方法产生串或个体的集合bi,i12...n。问题的最优解将通过这些初始假设解进化而求出。* ]  V$ S3 ^% ?: k; q3 i# H
    % |- [$ d3 V; [2 ^$ O/ V% x
    2.选择* X- u% S: n8 M

    : h! p+ Q5 r' }4 G$ v: B根据适者生存原则选择下一代的个体。在选择时,以适应度为选择原则。适应度准则体现了适者生存,不适应者淘汰的自然法则。
    , g/ F+ C" w7 O$ b7 v: p

    ( F$ W( `* ?' |% N给出目标函数f,则f(bi)称为个体bi的适应度。以, r( o1 G) B% P3 Y% Q

    & S' W. j8 R" ^, {  E& h* `$ [& F
    ! F; P; s" l8 z# }' S  t 6.2.ht40.gif & A: q" }" W" e/ N& H" L0 `/ z
    为选中bi为下一代个体的次数。
    9 C1 ?' j* H* J9 M
    1 O, |! B" X0 W. _  T6 z
    显然.从式(386)可知:
    . d* Z1 \$ x0 z6 I4 L
    7 D% K9 q5 G1 x; X( t
    (1)适应度较高的个体,繁殖下一代的数目较多。8 c; H* W/ Z2 {/ C
    1 u/ C# Z6 q3 O: [& l" \( ^
    (2)适应度较小的个体,繁殖下一代的数目较少;甚至被淘汰。/ W( |1 ^+ b2 C  \  F5 \. ~

    % \& G; v+ s( J# Y4 z1 W这样,就产生了对环境适应能力较强的后代。对于问题求解角度来讲,就是选择出和最优解较接近的中间解。
    9 O/ m7 k: v7 v$ V
    4 _5 ^4 D6 b# F3 j
    3.交叉
    , {# x. ]( y% _6 g1 W- i. M" e对于选中用于繁殖下一代的个体,随机地选择两个个体的相同位置,按交叉概率P。在选中的位置实行交换。这个过程反映了随机信息交换;目的在于产生新的基因组合,也即产生新的个体。交叉时,可实行单点交叉或多点交叉。/ M  B# E4 H: i4 \* j* ], C

    , |4 i% h/ L% b例如有个体
      w* L- z  }/ e* p0 m6 y: z2 B

      W2 E& s9 a7 P' E6 R+ `( Z% AS1=100101 / @8 i" Q* R% M+ q$ {7 @7 E0 b7 I5 a6 i
    1 ]3 u: ?1 D2 O% j7 A9 B) X
    S2=010111 # a7 ^  m% ?- d4 _+ w

    - I% j" _- A2 R% ~2 F( ]. X6 l选择它们的左边3位进行交叉操作,则有
    $ y2 M; k+ t& n' T

    , c  f6 M8 ^  q) l, N: E* e" \# m' QS1=010101
    + k0 S# U$ V/ s/ L8 v; g
      H) B7 O1 s% |* L- c" y
    S2=100111 - y3 h% J/ u. u) x' U$ ]1 r" n+ z. G

    " g* w, w4 d) d0 N8 Z一般而言,交 婊显譖。取值为0.250.754 t: V* O- M  r5 I! P! n$ G; i
    7 _2 B# Z+ m: h# z" G
    4.变异2 d; v0 u( ]% J: y6 K& o  ^6 c5 n' I
    & V2 M: @$ N/ F! R. R9 ]0 t0 z
    根据生物遗传中基因变异的原理,以变异概率Pm对某些个体的某些位执行变异。在变异时,对执行变异的串的对应位求反,即把1变为0,把0变为1。变异概率Pm与生物变异极小的情况一致,所以,Pm的取值较小,一般取0.01-0.27 t4 s1 o% ?, s, u5 O" Z
    0 v  A0 W8 |/ p! p8 `& h# ?
    例如有个体S101011
    * I4 ?0 t" U5 ?9 E+ m
    ) `3 f8 B+ i. Z0 W
    对其的第14位置的基因进行变异,则有
    8 W' j: H) c- a8 g5 H8 e8 u

    " o9 g5 b) f/ E2 U0 |+ }S'=001111
    ; }* ~3 b1 O1 o$ I2 k
    ' V3 N9 d; _& Q6 }2 G6 E: J
    单靠变异不能在求解中得到好处。但是,它能保证算法过程不会产生无法进化的单一群体。因为在所有的个体一样时,交叉是无法产生新的个体的,这时只能靠变异产生新的个体。也就是说,变异增加了全局优化的特质。% N, ]; Y7 i  \: R. h0 E+ o. C$ f5 l
    ) d; z3 \0 j* p+ A
    5.全局最优收敛(Convergence to the global optimum) 8 t+ y2 ?8 J! m, r! R
    ' q: J- I" w, a1 }
    当最优个体的适应度达到给定的阀值,或者最优个体的适应度和群体适应度不再上升时,则算法的迭代过程收敛、算法结束。否则,用经过选择、交叉、变异所得到的新一代群体取代上一代群体,并返回到第2步即选择操作处继续循环执行。
    $ Q# b" B8 }$ s. d

      |$ Y) O2 r( \* ~$ u37中表示了遗传算法的执行过程。
    % c% k8 H& |9 P$ y2 f3 P
    ) _  P& D% \. M! n* h+ t( q
    3 o7 O. e8 o* F7 k4 m Genetic_Algorithm.gif 8 _+ ^+ Y& d; q3 O, I. B
    : h! J% j; Z3 k4 C; M
    3-7 遗传算法原理! |5 T2 r; |' g  z! T, `0 F5 S( L
    / }9 B# E3 S! \" l! _
    323遗传算法的应用
    . V& Q4 U; {% e5 u6 ]: R0 u( O$ z6 C
    3 U. O! p3 q$ e/ M4 k$ k
    遗传算法在很多领域都得到应用;从神经网络研究的角度上考虑,最关心的是遗传算法在神经网络的应用。在遗传算法应用中,应先明确其特点和关键问题,才能对这种算法深入了解,灵活应用,以及进一步研究开发。$ S% U2 ^0 t5 z2 f% s" F
    $ x; K# E# C' i; R" Z6 b1 Z5 E
    一、遗传算法的特点
    7 g! B6 J# z9 ]+ i- `6 }
    8 E9 r% j2 f! Q$ `& S. P4 T5 F
    1.遗传算法从问题解的中集开始嫂索,而不是从单个解开始。
    : @! @. a- p4 `5 o6 N. E
    7 I: @) Q0 t& E8 q* M
    这是遗传算法与传统优化算法的极大区别。传统优化算法是从单个初始值迭代求最优解的;容易误入局部最优解。遗传算法从串集开始搜索,复盖面大,利于全局择优。
    5 Y5 ^$ ~8 e% @; U2 K, C3 Y

    ) l# e% H* t  F+ a  N, R2.遗传算法求解时使用特定问题的信息极少,容易形成通用算法程序。$ O: k! r) z+ k4 D

      B; u% A# u; `" J由于遗传算法使用适应值这一信息进行搜索,并不需要问题导数等与问题直接相关的信息。遗传算法只需适应值和串编码等通用信息,故几乎可处理任何问题。
    9 R. B. H/ [" M
    ' l: Y1 t- h3 Y; \
    3.遗传算法有极强的容错能力# `- H) u6 N0 E2 P
    ' o" T  B$ i( Z2 T* U$ t; Y
    遗传算法的初始串集本身就带有大量与最优解甚远的信息;通过选择、交叉、变异操作能迅速排除与最优解相差极大的串;这是一个强烈的滤波过程;并且是一个并行滤波机制。故而,遗传算法有很高的容错能力。5 q! I& z2 V. W6 |
    7 y) q- x; |, }) k+ R4 i
    4.遗传算法中的选择、交叉和变异都是随机操作,而不是确定的精确规则。
    8 D) R9 R4 G, H+ t

    6 x1 p6 s! d) I. E  Q( v/ S这说明遗传算法是采用随机方法进行最优解搜索,选择体现了向最优解迫近,交叉体现了最优解的产生,变异体现了全局最优解的复盖。$ y* d4 e2 C( b" R# r
    6 I& L% x4 d, c; q' u
    5.遗传算法具有隐含的并行性% @- g6 B- h8 E* y

    % y' W* E; h# e7 H0 V; @" u2 ~遗传算法的基础理论是图式定理。它的有关内容如下:4 Y) Q- f/ T, S+ ]

    2 O4 ?, i* Q+ n& D(1)图式(Schema)概念
    . {" O3 f: d& X# N8 D" A

    ) Q4 V- ~. n4 X8 j5 H( D一个基因串用符号集{01*}表示,则称为一个因式;其中*可以是01。例如:H=1xx 0 x x是一个图式。: i0 M- O1 S! O- w

    2 ?' B3 M) Q: a: h! Y(2)图式的阶和长度6 M' h- f0 p, M- L: L

    + E" l4 p  ^8 x- d- I8 [图式中01的个数称为图式的阶,并用0(H)表示。图式中第1位数字和最后位数字间的距离称为图式的长度,并用δ(H)表示。对于图式H1x x0x x,有0(H)2,δ(H)4
    , ~; s0 v& I8 J% p( Z
    , D) |! Z" ~% u8 ^" J, e
    (3)Holland图式定理" a2 v) ^" H$ y: W+ f7 e5 U/ V4 q

    & Q# z' i  b! @% T5 y! m低阶,短长度的图式在群体遗传过程中将会按指数规律增加。当群体的大小为n时,每代处理的图式数目为0(n3)* Y4 d% E' Z5 a6 B
    # }$ _  ^/ s0 ~) Z7 g
    遗传算法这种处理能力称为隐含并行性(Implicit Parallelism)。它说明遗传算法其内在具有并行处理的特质。
    ' o6 b  }& J7 d# I7 d4 D$ D

    * Y  W% N- r( s1 w  ]; a9 E3 S二、遗传算法的应用关键
    " ^3 \/ E1 m3 A. d2 a
    7 J: M; i3 @* K0 r* F
    遗传算法在应用中最关键的问题有如下3
    5 J3 j9 a) F$ M" r/ ~$ a5 j
    " m- A; ^+ d' p; ^( `+ q
    1.串的编码方式
    5 C( R+ c5 o  g, [3 {

    , ]0 _3 F( Q! J- z这本质是问题编码。一般把问题的各种参数用二进制编码,构成子串;然后把子串拼接构成“染色体”串。串长度及编码形式对算法收敛影响极大。
    & }7 [- `+ H6 m: Y, P9 b
    % {# [6 A. @: p9 u% {4 y( {7 ^
    2.适应函数的确定
    + h' F# b. j- d8 D+ W
    8 h! S2 u. z- c7 P% L# X) I
    适应函数(fitness function)也称对象函数(object function),这是问题求解品质的测量函数;往往也称为问题的“环境”。一般可以把问题的模型函数作为对象函数;但有时需要另行构造。
    / X* [0 b: R# J
    / J) d1 ~- v7 c0 q' \/ @
    3.遗传算法自身参数设定5 _% S3 Z1 D- @/ Z3 e
    4 K: y7 X  v5 A( d  N# F8 o
    遗传算法自身参数有3个,即群体大小n、交叉概率Pc和变异概率Pm
    : H2 ~+ R$ l/ f0 s) t
    / K& D3 W  [7 k& M, ~
    群体大小n太小时难以求出最优解,太大则增长收敛时间。一般n30-160。交叉概率Pc太小时难以向前搜索,太大则容易破坏高适应值的结构。一般取Pc=0.25-0.75。变异概率Pm太小时难以产生新的基因结构,太大使遗传算法成了单纯的随机搜索。一般取Pm00102
    7 k5 w2 P9 D0 X6 {, `0 d" C/ R3 y' B# n
    1 g2 c6 ^- e8 P6 `+ M
    三、遗传算法在神经网络中的应用$ \+ P$ R' m, K4 C" T+ k( D

    - C8 F! {8 ?, e; g2 g/ c遗传算法在神经网络中的应用主要反映在3个方面:网络的学习,网络的结构设计,网络的分析。+ P$ s0 {* L1 L  @$ u
    ( X5 @% V( I) ^5 @2 H
    1.遗传算法在网络学习中的应用( X# Z( s1 Y; l& X6 d) p

    2 A- `0 a: T8 Q0 D在神经网络中,遗传算法可用于网络的学习。这时,它在两个方面起作用0 \5 n* j9 F% G
    2 L; q+ |8 Y6 V
    (1)学习规则的优化( p' H3 m& r2 Z8 a7 X6 j/ l

    # a  d, I9 L) ?# Q( b用遗传算法对神经网络学习规则实现自动优化,从而提高学习速率。
    - d% I1 j, x; M- j2 Y
    ( C3 ~  y) e( A' ]. x) g# I
    (2)网络权系数的优化/ R6 O' Z7 A$ y2 v0 _7 G
    6 C& n9 R' U: X) `1 b( e- n
    用遗传算法的全局优化及隐含并行性的特点提高权系数优化速度。
      K# ~/ g0 D9 H# T- L
    - I8 O& X) S9 A" _% b! F+ B3 [7 S2 J
    2.遗传算法在网络设计中的应用) n2 v6 n" `- O9 y1 c! p6 c
    3 D6 ]# _& k2 J2 u
    用遗传算法设计一个优秀的神经网络结构,首先是要解决网络结构的编码问题;然后才能以选择、交叉、变异操作得出最优结构。编码方法主要有下列3种:
      k1 `  T7 ~, f0 J
    7 E+ e& D  ~# q, W6 y; Y6 R
    (1)直接编码法
    3 F! R& A% j3 V- c& e$ C% Z

    . l7 Z' J& g, x0 p& N; h! r8 B这是把神经网络结构直接用二进制串表示,在遗传算法中,“染色体”实质上和神经网络是一种映射关系。通过对“染色体”的优化就实现了对网络的优化。
    1 p! l3 L/ X- ?7 H: g

    - P, Q/ v6 W+ X% o+ X1 q(2)参数化编码法
    : r$ b3 @- U6 l; l
    - q1 o2 K; l7 |* m7 i" d0 o( J
    参数化编码采用的编码较为抽象,编码包括网络层数、每层神经元数、各层互连方式等信息。一般对进化后的优化“染色体”进行分析,然后产生网络的结构。1 d0 d  I$ f1 ~5 T1 P
    - D+ V; G, [+ x7 ~: I1 Y5 D3 [
    (3)繁衍生长法) E& X& w; {: |& V9 G8 b/ y
    ; t# b; M2 g/ f
    这种方法不是在“染色体”中直接编码神经网络的结构,而是把一些简单的生长语法规则编码入“染色体”中;然后,由遗传算法对这些生长语法规则不断进行改变,最后生成适合所解的问题的神经网络。这种方法与自然界生物地生长进化相一致。
    ' r) t( s0 R7 y9 t- d% |* s6 ]

    1 d; b2 J5 d# K2 ~3.遗传算法在网络分析中的应用6 c, E* i$ s' p, k/ _9 }- o
    ; {# i/ [- ]/ j
    遗传算法可用于分析神经网络。神经网络由于有分布存储等特点,一般难以从其拓扑结构直接理解其功能。遗传算法可对神经网络进行功能分析,性质分析,状态分析。
    . t, A- H6 x. o, s! {; @6 Q

    4 U2 t% N% }% y! c( B/ Z3 w) ?遗传算法虽然可以在多种领域都有实际应用,并且也展示了它潜力和宽广前景;但是,遗传算法还有大量的问题需要研究,目前也还有各种不足。首先,在变量多,取值范围大或无给定范围时,收敛速度下降;其次,可找到最优解附近,但无法精确确定最扰解位置;最后,遗传算法的参数选择尚未有定量方法。对遗传算法,还需要进一步研究其数学基础理论;还需要在理论上证明它与其它优化技术的优劣及原因;还需研究硬件化的遗传算法;以及遗传算法的通用编程和形式等。% K( B2 \: r6 {2 g/ X

    , g5 V* f7 N! S  d

    ! Q  P4 L! @5 ?
    三、遗传算法的步骤和意义
    $ @' M% B/ S4 D! L

    2 d' U, t9 w& F. H9 ~% p1.初始化
    4 v) P% [* s9 E: }' Y; ^

    . h' p! I8 W6 Z; s- |选择一个群体,即选择一个串或个体的集合bii=12...n。这个初始的群体也就是问题假设解的集合。一般取n30-160; {2 [4 S8 s! a" F
    ( V2 G3 o- Y/ y  J  b6 D4 O* t0 g/ j
    通常以随机方法产生串或个体的集合bi,i12...n。问题的最优解将通过这些初始假设解进化而求出。9 V  l# m2 h) [2 @( b

    ' p! Q3 j. f% P* m# ?2.选择
    $ S* S% O6 Y! n6 t

    3 E" |; I# F8 W9 K: s' v根据适者生存原则选择下一代的个体。在选择时,以适应度为选择原则。适应度准则体现了适者生存,不适应者淘汰的自然法则。
    - I) {" b5 L" ~: D

    5 ?6 x5 A& t! Z1 P: l给出目标函数f,则f(bi)称为个体bi的适应度。以" w. [& n2 q- F9 _3 J9 k
      B0 m4 z- [' D9 X$ S$ I
    , q' ^7 i. p6 L% v

    4 I% P4 i% D% W* q7 Z为选中bi为下一代个体的次数。
    - Y9 X3 t! U2 K

    3 }% y! O. x* L9 [- d显然.从式(386)可知:
    4 E" ^( |: j0 c3 j3 A

    * d  }( ?2 K% s! u" O+ Z9 L! M. s(1)适应度较高的个体,繁殖下一代的数目较多。- ~) `1 h' j" I! \
    7 G- `" y& o# d1 [
    (2)适应度较小的个体,繁殖下一代的数目较少;甚至被淘汰。
    . t7 O: U/ S% x# `( G# r- A/ z4 V* @
    2 X6 A6 Z( P4 d/ H0 X, W
    这样,就产生了对环境适应能力较强的后代。对于问题求解角度来讲,就是选择出和最优解较接近的中间解。
    * m, M& }+ C' b# \8 N4 g

    , J" A. w$ o2 }3.交叉
    & e1 Z+ V: h% n& M# u6 b对于选中用于繁殖下一代的个体,随机地选择两个个体的相同位置,按交叉概率P。在选中的位置实行交换。这个过程反映了随机信息交换;目的在于产生新的基因组合,也即产生新的个体。交叉时,可实行单点交叉或多点交叉。
    ! G: R2 l: \8 F% h: Z. h
    # y- }; M: j( P2 L! n& ^- {
    例如有个体8 `: v6 P" G) {1 ~: f
    $ B) `( x+ t7 B! R  r0 s
    S1=100101 3 J' n) i- e, o
    ) t) y- Q4 r) ~4 b! _( ^4 U2 v& f
    S2=010111
    ! c+ p) H5 F* Q2 w7 [

    - a& d2 g. H1 l/ @9 @选择它们的左边3位进行交叉操作,则有- ?/ p" l& d& ]! R6 T1 |

    " T0 r# R9 i- ?/ ~& f, mS1=010101
    8 O( k/ f7 l, f* x& i3 r
    % L9 e% @7 D6 z$ V1 D8 v
    S2=100111 : w* `6 O/ c5 c1 V' x
    6 a/ C# ]- z+ F* g
    一般而言,交 婊显譖。取值为0.250.75" F7 V! U( l# g; I
    4 z+ M) u8 z  P3 F! S- X
    4.变异2 d# x0 }3 ~. x$ P' K/ C

      K2 c$ c& e4 J  R0 K根据生物遗传中基因变异的原理,以变异概率Pm对某些个体的某些位执行变异。在变异时,对执行变异的串的对应位求反,即把1变为0,把0变为1。变异概率Pm与生物变异极小的情况一致,所以,Pm的取值较小,一般取0.01-0.2
    4 F- w) x$ O- F) O. v* Z& s, u4 g

    ! h- g6 n% B- @- u% S例如有个体S101011
    $ V: [4 l+ L0 g/ S
    4 l6 \) }% F  T; Q+ t
    对其的第14位置的基因进行变异,则有
    7 i  Y% K: x$ ^! X

    1 f: M" |4 Q( OS'=001111
    ) L) H+ Z  W+ e8 ^  F: @
    9 |6 n+ R8 K+ H4 w% S* t% O
    单靠变异不能在求解中得到好处。但是,它能保证算法过程不会产生无法进化的单一群体。因为在所有的个体一样时,交叉是无法产生新的个体的,这时只能靠变异产生新的个体。也就是说,变异增加了全局优化的特质。3 p: t$ X9 V7 {( ~# s. g* O5 N& }3 b

    ( H5 W  N7 ^' a7 I9 m5.全局最优收敛(Convergence to the global optimum)
    ; K7 l0 \7 ~+ j1 p

    ) R2 [/ e: l: |- Z4 U- F7 H当最优个体的适应度达到给定的阀值,或者最优个体的适应度和群体适应度不再上升时,则算法的迭代过程收敛、算法结束。否则,用经过选择、交叉、变异所得到的新一代群体取代上一代群体,并返回到第2步即选择操作处继续循环执行。
    ) @. z; P7 g9 z/ j- r

    , G  a7 O2 X2 D7 [37中表示了遗传算法的执行过程。
    & i% W; i- \5 g0 T+ y' q6 j/ C
    , ~1 O# a" b! E6 B( _
    ' k. F- C0 Z  b0 n' g

    9 d+ T" h2 v9 R8 h  W3-7 遗传算法原理, S/ F: l$ v4 I& I# j" A

    ! Q1 b/ f  X6 j0 h4 i7 w' t323遗传算法的应用
    & l7 a2 p" |. k* [6 L" Z

    * r" J9 Q; e6 M; a遗传算法在很多领域都得到应用;从神经网络研究的角度上考虑,最关心的是遗传算法在神经网络的应用。在遗传算法应用中,应先明确其特点和关键问题,才能对这种算法深入了解,灵活应用,以及进一步研究开发。9 v" n! ^9 J  b' E1 m) U- u7 h/ o9 g  B
    ) b0 q9 a& \) y9 S, d; O
    一、遗传算法的特点
    2 [2 f+ p' y; r
    # V  M5 x$ t' B: e6 [1 h
    1.遗传算法从问题解的中集开始嫂索,而不是从单个解开始。4 v% O3 L) h, S

    1 O, p! T5 I9 @7 \3 e3 F: P! @3 j这是遗传算法与传统优化算法的极大区别。传统优化算法是从单个初始值迭代求最优解的;容易误入局部最优解。遗传算法从串集开始搜索,复盖面大,利于全局择优。
    9 A9 a% v. \4 p% m2 M% t3 ]

    0 I3 |* N/ ?! `8 d; x2.遗传算法求解时使用特定问题的信息极少,容易形成通用算法程序。6 ?/ M6 w; L+ g. v3 p
    9 k9 o" {- O) M; |- I6 P8 V
    由于遗传算法使用适应值这一信息进行搜索,并不需要问题导数等与问题直接相关的信息。遗传算法只需适应值和串编码等通用信息,故几乎可处理任何问题。
    0 ~# S1 j' v9 L, A- l$ }8 W. g
    ' R0 d2 B; H  |, E
    3.遗传算法有极强的容错能力
    5 ?' K  d5 U. k; `# V' {
    # k3 b6 h0 v: V6 L: \  l
    遗传算法的初始串集本身就带有大量与最优解甚远的信息;通过选择、交叉、变异操作能迅速排除与最优解相差极大的串;这是一个强烈的滤波过程;并且是一个并行滤波机制。故而,遗传算法有很高的容错能力。* Z3 G% Q4 p( T/ v! T2 p/ C

    8 w& M$ K$ {/ D& C3 \( N: ~: b- n4.遗传算法中的选择、交叉和变异都是随机操作,而不是确定的精确规则。
    - X# D% j  ]3 \# m

    4 P' V0 P/ |8 l3 w" C. N/ x& b+ @这说明遗传算法是采用随机方法进行最优解搜索,选择体现了向最优解迫近,交叉体现了最优解的产生,变异体现了全局最优解的复盖。7 B" t2 `9 h7 ^4 c. f/ P9 P

    * A3 B9 t. w9 x6 R5.遗传算法具有隐含的并行性
    ' M  l* U) H' g4 m
    ( t. a& F5 [/ E) s7 @
    遗传算法的基础理论是图式定理。它的有关内容如下:
    9 Z9 s) E' R' f9 @7 m5 Y+ @9 `
    5 D, y  S& Q' g! e2 W
    (1)图式(Schema)概念
    * F6 ?% v* S4 h3 H6 q
    . k! ~/ {' b- r# Q) p2 |! Y7 X
    一个基因串用符号集{01*}表示,则称为一个因式;其中*可以是01。例如:H=1xx 0 x x是一个图式。; y. _4 ^0 f) [% S

    : y% l2 z* r5 i! u9 N+ s(2)图式的阶和长度% D, ^, P% _# s) g

    , q( `! ?0 n; @( o图式中01的个数称为图式的阶,并用0(H)表示。图式中第1位数字和最后位数字间的距离称为图式的长度,并用δ(H)表示。对于图式H1x x0x x,有0(H)2,δ(H)4
    8 i6 Q- H3 L+ @+ r& y3 A( J+ _

    7 e  x9 M) U6 h! D6 `+ D, l" s7 P(3)Holland图式定理: J! W2 V/ \1 e: x* i4 Z+ R

      U* t2 {( C3 H% D8 x# w* C低阶,短长度的图式在群体遗传过程中将会按指数规律增加。当群体的大小为n时,每代处理的图式数目为0(n3)! U: D, l, x9 m) t: r1 K4 P% X7 |
    2 v8 T8 w# S/ W" x4 o' |$ l  b9 X
    遗传算法这种处理能力称为隐含并行性(Implicit Parallelism)。它说明遗传算法其内在具有并行处理的特质。+ D% U# K4 Y1 s8 u, R3 d

    ( d8 i- l) r; C2 B/ d% H二、遗传算法的应用关键0 c& \3 F" i: j( y( w( `. y/ o
    $ I. R( T% S, x1 S) |0 {* C
    遗传算法在应用中最关键的问题有如下38 ~1 \% k& E3 q% W! T3 b8 I
    , d) B, V  o( A. J1 T
    1.串的编码方式$ E% ^& G; v6 a5 H2 q3 O

    # @0 b. ?1 V5 x) G这本质是问题编码。一般把问题的各种参数用二进制编码,构成子串;然后把子串拼接构成“染色体”串。串长度及编码形式对算法收敛影响极大。
    7 {- Q6 A3 I6 }
    6 @2 O$ g: @, _/ l8 z1 J& k  |2 ?
    2.适应函数的确定2 P- I$ ^. O! _2 B

    ) C# ^2 w8 b# f适应函数(fitness function)也称对象函数(object function),这是问题求解品质的测量函数;往往也称为问题的“环境”。一般可以把问题的模型函数作为对象函数;但有时需要另行构造。! e) Z/ n4 F) {( B: g: l
    , n& M, D" `6 F5 c( D3 Q" m
    3.遗传算法自身参数设定
    , Y1 j, j- x" l2 R$ [

    & b3 T! ^3 h4 V  k! H' @, H7 z遗传算法自身参数有3个,即群体大小n、交叉概率Pc和变异概率Pm
    - B, o  h/ x( n8 r/ X% P" g9 n) N5 ?

    ( E: a( \' r" L0 u! a# I5 @群体大小n太小时难以求出最优解,太大则增长收敛时间。一般n30-160。交叉概率Pc太小时难以向前搜索,太大则容易破坏高适应值的结构。一般取Pc=0.25-0.75。变异概率Pm太小时难以产生新的基因结构,太大使遗传算法成了单纯的随机搜索。一般取Pm00102& Q* Q' i  E, l5 R$ @
    # b; `# O. {7 ?1 }5 N
    三、遗传算法在神经网络中的应用
    $ H+ I3 M; G& g0 [9 [% @
    . l) b/ i3 _4 ^& o: X
    遗传算法在神经网络中的应用主要反映在3个方面:网络的学习,网络的结构设计,网络的分析。
    - N) q) G6 N+ Q6 R6 V6 _% g/ N" V

    - A8 C7 y; J4 b0 h: P0 _1.遗传算法在网络学习中的应用  ?/ `& l5 s, ~% u& _0 [, N
    6 i  V' [6 U6 O) _# B* p
    在神经网络中,遗传算法可用于网络的学习。这时,它在两个方面起作用
    6 D* m8 _, N! }% R3 H
    6 w7 S! |: @6 Y6 ?5 R  t$ D6 s
    (1)学习规则的优化
    ' q0 `$ T  ~6 k, Y" X
    - P8 E# C8 b0 u
    用遗传算法对神经网络学习规则实现自动优化,从而提高学习速率。3 a3 R. q4 s' F& Z
    + T8 q: u8 e3 R0 K, z0 \0 O+ C
    (2)网络权系数的优化
    * K' n% z2 }5 W8 \: E. B

    2 L1 @3 B3 \7 M/ l* z用遗传算法的全局优化及隐含并行性的特点提高权系数优化速度。
    ' A) _( @" w6 X/ \8 {1 d
    3 b! I0 E7 N; V  f3 M* I$ [
    2.遗传算法在网络设计中的应用
    % z4 i7 A* A' x+ j) ~

    2 J8 i0 z9 _5 v: H8 G用遗传算法设计一个优秀的神经网络结构,首先是要解决网络结构的编码问题;然后才能以选择、交叉、变异操作得出最优结构。编码方法主要有下列3种:
    ) M- F( ?8 j7 T" Z* A# C$ ~9 S

    1 x; y- x* u- n* q0 D' C  \1 L(1)直接编码法* H8 W1 Z* U+ b8 h8 h2 ]7 U

    9 d% F' P( m$ Q: a# N这是把神经网络结构直接用二进制串表示,在遗传算法中,“染色体”实质上和神经网络是一种映射关系。通过对“染色体”的优化就实现了对网络的优化。! Y/ R9 m7 r5 x+ W/ h2 f% N. v
    : G* [2 f, L$ Y! h5 x
    (2)参数化编码法
    & n( b0 ~& I: B" s

    ! i5 `+ i: Y8 G1 Q5 I- P( u- {参数化编码采用的编码较为抽象,编码包括网络层数、每层神经元数、各层互连方式等信息。一般对进化后的优化“染色体”进行分析,然后产生网络的结构。
    $ T6 d8 U2 x$ j: @( v9 V
    ' [& d6 c) m, {
    (3)繁衍生长法
    . C8 h5 U" y, L: ]7 a
    / I' m0 W9 k9 a6 p1 \+ y/ d
    这种方法不是在“染色体”中直接编码神经网络的结构,而是把一些简单的生长语法规则编码入“染色体”中;然后,由遗传算法对这些生长语法规则不断进行改变,最后生成适合所解的问题的神经网络。这种方法与自然界生物地生长进化相一致。3 ?, C4 A) j1 a

    , }% Y/ I& I1 P9 T2 F+ }4 Y$ p- O3.遗传算法在网络分析中的应用
    ! J, s/ w# e2 u8 K7 G6 U. ~
    + R0 x% d- r; P: O/ h+ k# M) h
    遗传算法可用于分析神经网络。神经网络由于有分布存储等特点,一般难以从其拓扑结构直接理解其功能。遗传算法可对神经网络进行功能分析,性质分析,状态分析。
    + c, c) U7 F! j
    ' \2 x/ {+ v! M: {! P4 o
    遗传算法虽然可以在多种领域都有实际应用,并且也展示了它潜力和宽广前景;但是,遗传算法还有大量的问题需要研究,目前也还有各种不足。首先,在变量多,取值范围大或无给定范围时,收敛速度下降;其次,可找到最优解附近,但无法精确确定最扰解位置;最后,遗传算法的参数选择尚未有定量方法。对遗传算法,还需要进一步研究其数学基础理论;还需要在理论上证明它与其它优化技术的优劣及原因;还需研究硬件化的遗传算法;以及遗传算法的通用编程和形式等。! m5 n9 D6 i- V$ t/ o- C
    更多图片 小图 大图
    组图打开中,请稍候......
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    楼主热帖
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • 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

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

    该用户从未签到

    尚未签到

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

    本版积分规则

    招聘斑竹

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

    GMT+8, 2025-7-24 05:41

    Powered by Discuz! X3.5 Licensed

    © 2001-2025 Discuz! Team.

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