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

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

[分享] 转(遗传算法)

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

    连续签到: 1 天

    [LV.2]偶尔看看I

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

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

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

    ×
    生物的进化是一个奇妙的优化过程,它通过选择淘汰,突然变异,基因遗传等规律产生适应环境变化的优良物种。遗传算法是根据生物进化思想而启发得出的一种全局优化算法。+ @1 f& @  Q0 d( K5 J
    ' j) O) A9 V3 a5 e- G
    遗传算法的概念最早是由Bagley J.D1967年提出的;而开始遗传算法的理论和方法的系统性研究的是1975年,这一开创性工作是由Michigan大学的J.H.Holland所实行。当时,其主要目的是说明自然和人工系统的自适应过程。7 ^2 G3 h: N4 q, w3 |
    : o0 c8 I5 k8 M3 J5 B# B: J6 g9 P
    遗传算法简称GA(Genetic Algorithm),在本质上是一种不依赖具体问题的直接搜索方法。遗传算法在模式识别、神经网络、图像处理、机器学习、工业优化控制、自适应控制、生物科学、社会科学等方面都得到应用。在人工智能研究中,现在人们认为“遗传算法、自适应系统、细胞自动机、混沌理论与人工智能一样,都是对今后十年的计算技术有重大影响的关键技术”。
    ) e- P9 r. H1 _4 U. P, j

    0 J" m) a+ T. A0 A" J+ \321 遗传算法的基本概念
    , c: Q* o8 s0 Y9 ?* \
    0 Z$ ~3 }6 N% @  s* b8 g8 _# s
    遗传算法的基本思想是基于Darwin进化论和Mendel的遗传学说的。
    + A0 i9 ~+ o2 O8 z4 J& m  R+ `
    8 a9 W% g' e, D! {, X
    Darwin进化论最重要的是适者生存原理。它认为每一物种在发展中越来越适应环境。物种每个个体的基本特征由后代所继承,但后代又会产生一些异于父代的新变化。在环境变化时,只有那些熊适应环境的个体特征方能保留下来。
    * ?5 Q/ R5 J6 {$ i5 o1 W

    + H* O  [- k1 Q5 o" Z% e% uMendel遗传学说最重要的是基因遗传原理。它认为遗传以密码方式存在细胞中,并以基因形式包含在染色体内。每个基因有特殊的位置并控制某种特殊性质;所以,每个基因产生的个体对环境具有某种适应性。基因突变和基因杂交可产生更适应于环境的后代。经过存优去劣的自然淘汰,适应性高的基因结构得以保存下来。! p5 f  I0 X8 n5 b
    % A5 v+ b: C7 T$ @
    由于遗传算法是由进化论和遗传学机理而产生的直接搜索优化方法;故而在这个算法中要用到各种进化和遗传学的概念。这些概念如下:
    9 C! q* g4 C4 n& t2 Z. {

    $ ?8 {- v1 ~5 L! I一、串(String)
    - c( Q% y$ |. t7 {, b" k

    & l( v, u  K/ P0 S' [它是个体(Individual)的形式,在算法中为二进制串,并且对应于遗传学中的染色体(Chromosome)7 s3 r' l# m9 ]6 ~2 n# Z" X

    * v; B3 y0 {$ a; _( W二、群体(Population)
    ; Y6 E. r5 F# u" T' ~8 C: C

    & P! f' k+ X$ u! D8 f( v个体的集合称为群体,串是群体的元素" y- t  C1 N9 S: I: A
    2 c' @' T# S- m' x5 m9 U% |
    三、群体大小(Population Size) 5 h1 e( P' Y$ f* n# J, E. e' {  S
    % p: _1 U, K. w' n$ z" q* A3 s, M% a2 O
    在群体中个体的数量称为群体的大小。
    5 a4 Y; U1 U9 w9 w4 ?: D% z
    , `! m0 y! y2 F0 o9 f! f6 r
    四、基因(Gene)
    0 ^) S! }$ c6 m$ p
    ! u: Z, N- o' j1 H, j( E
    基因是串中的元素,基因用于表示个体的特征。例如有一个串S1011,则其中的10114个元素分别称为基因。它们的值称为等位基因(Alletes): ~- P& A0 m/ y" z, O; C3 q

    $ k* E8 n' z1 Y$ b$ k 、基因位置(Gene Position)
    3 P+ @$ v2 z  L8 P4 T7 c
    $ [3 ^' E( U' S6 b* C9 Z7 D. l
    一个基因在串中的位置称为基因位置,有时也简称基因位。基因位置由串的左向右计算,例如在串S1101中,0的基因位置是3。基因位置对应于遗传学中的地点(Locus)
      b2 U$ Z  z9 o$ m6 e

    ( J1 Y9 e* V: o1 T' y/ ?: U5 j2 s; N六、基因特征值(Gene Feature)
    6 {( }3 F$ Q7 ]9 @$ A$ i
    - i; |- \8 ]) x9 O$ ?% C( }
    在用串表示整数时,基因的特征值与二进制数的权一致;例如在串S=1011中,基因位置3中的1,它的基因特征值为2;基因位置1中的1,它的基因特征值为8; ^0 l# G. A5 Z% X' l7 F

    ) C6 J; j6 ?! |# A0 z七、串结构空间SS
    / h1 `& s0 \* g- q. J
    ) C2 Y7 v1 s1 a" v
    在串中,基因任意组合所构成的串的集合。基因操作是在结构空间中进行的。串结构空间对应于遗传学中的基因型(Genotype)的集合。
    * r1 D' Y. w; J- \. v& `
    1 \& m1 a# h/ i8 I: |
    八、参数空间SP & [( Q# C+ B0 \5 z0 I

    . G4 Q$ Z' F6 ?( Q: g这是串空间在物理系统中的映射,它对应于遗传学中的表现型(Phenotype)的集合。9 C2 A* ?. m* ]& Y, z1 ^% v5 ]
    $ ]& t! f! J5 q* F1 H
    九、非线性
    4 A8 }, h8 D4 U; I3 I! g# p$ H
    . j* z9 M+ p2 a
    它对应遗传学中的异位显性(Epistasis)
    $ r/ w; \' {6 Y8 X# i1 L6 i& h
    ! x- p; K# ?7 B5 ^* r. m& `$ z& t
    十、适应度(Fitness) 2 x6 m- H. a  u# c. G* k: p/ f

    - y; H. L/ s+ k表示某一个体对于环境的适应程度。
      F, [% U1 r9 F9 B+ B

    & X. q& L3 V+ e1 \( V- T' H遗传算法还有一些其它的概念,这些概念在介绍遗传算法的原理和执行过程时,再进行说明。
    0 h' ^2 ?/ N  o, w/ T( O

    ) m# [6 [9 p3 \& f, R/ Y322遗传算法的原理
    8 R8 @1 H* X; }1 d
    : L, Q! L# b+ Y1 B
    遗传算法GA把问题的解表示成“染色体”,在算法中也即是以二进制编码的串。并且,在执行遗传算法之前,给出一群“染色体”,也即是假设解。然后,把这些假设解置于问题的“环境”中,并按适者生存的原则,从中选择出较适应环境的“染色体”进行复制,再通过交叉,变异过程产生更适应环境的新一代“染色体”群。这样,一代一代地进化,最后就会收敛到最适应环境的一个“染色体”上,它就是问题的最优解。$ E7 [% f* a6 h  }) b" s$ p8 p
    7 e1 ?' f' D! k) J$ L' p
    一、遗传算法的目的. `# K. ^2 S# Y& F6 C6 I1 ]

    ( o! e4 t. k6 y6 A6 Q. c典型的遗传算法CGA(Canonical Genetic Algorithm)通常用于解决下面这一类的静态最优化问题:8 H1 [1 m- O( _% a. E# Z7 w

    - o( S) h. o8 c1 D: g, o' U, p考虑对于一群长度为L的二进制编码bii12,…,n;有$ G- _0 L: M) i* U% c9 m

    + T6 Q8 Q& I8 S' tbi{0,1}L        (3-84)
    + d- D  Z- U3 ~5 l* f3 q* m: K( \& v
    / u) W* K: o5 i6 v5 h0 I' P4 {( }
    给定目标函数f,有f(bi),并且1 o& f3 n: V& Y5 H1 ]# U9 Y, k3 a

    " h7 I8 z% n3 }6 Z0<F(BI)<< P>
    ! s4 P! U& \9 b4 ~: O

    9 f8 [0 V* b* W( ?! A. I: V同时
    , ?8 }/ |3 G$ L
    $ ]9 ^: s3 t+ C
    f(bi)f(bi+1) 1 ^' r. O4 A/ l  ]
    7 {- r+ D" ^% [1 c# d( P
    求满足下式
    : h% s" T9 E  l. V7 D0 `: C
    7 F8 D0 E7 s. t/ Z# ]" h3 c
    max{f(bi)|bi{0,1}L}
    * Z6 t4 @; S/ N5 \3 t9 I; C
    2 w2 t7 _8 U' [3 J+ `$ _( X
    bi3 j& Z* p) F! T6 m$ n
    $ S. U' p0 g/ V" N- y
    很明显,遗传算法是一种最优化方法,它通过进化和遗传机理,从给出的原始解群中,不断进化产生新的解,最后收敛到一个特定的串bi处,即求出最优解。
    7 X0 h  X! F$ m1 Q7 I

    # `) J2 O2 p& g9 A/ D, J二、遗传算法的基本原理: |/ V8 N$ x) j  f
    1 H: c; ^4 o3 w
    长度为Ln个二进制串bi(i12,…,n)组成了遗传算法的初解群,也称为初始群体。在每个串中,每个二进制位就是个体染色体的基因。根据进化术语,对群体执行的操作有三种:
    3 L( u8 p3 ^, E' h

    . X% }( u* @+ F6 [1.选择(Selection)
    ) c" n) s4 V% C( h/ i
    & N& t6 v3 E2 v& f
    这是从群体中选择出较适应环境的个体。这些选中的个体用于繁殖下一代。故有时也称这一操作为再生(Reproduction)。由于在选择用于繁殖下一代的个体时,是根据个体对环境的适应度而决定其繁殖量的,故而有时也称为非均匀再生(differential reproduction)
      U( U( F( {- J

    ' y6 k7 N/ Y0 t, Y2.交叉(Crossover)
    ( n' x: G; L5 d

    - a( _7 d0 w  ]1 u# \; r  Y2 U* W这是在选中用于繁殖下一代的个体中,对两个不同的个体的相同位置的基因进行交换,从而产生新的个体。, P" H- _' F9 \
    " O/ i8 x: e0 ~3 K$ c8 d' A
    3.变异(Mutation) & }/ B2 T9 k# c) c: {
    & e. c$ |/ H% j3 k
    这是在选中的个体中,对个体中的某些基因执行异向转化。在串bi中,如果某位基因为1,产生变异时就是把它变成0;反亦反之。  x+ E4 \, Q' y7 W5 F
    $ [% u! w* P4 _8 Q* \
    遗传算法的原理可以简要给出如下:6 _# K( r# Z5 p# H0 v

    % G8 V0 i! e6 @* z8 }choose an intial population
    ( `, z; Q  x. _+ T( u; H

    ; d7 U# O# x. m4 b8 _5 {. ]determine the fitness of each individual
    ' X- p( D- P- @1 O- W( o
    0 w+ l# ~2 f. B: W
    perform selection ) B& p5 C; s- L9 f

    - b  L- p) c4 m$ k' a9 C6 G. @repeat
    : Q+ g4 c% q2 F9 S& M
    - t& B/ C* |- D) r! @- c
        perform crossover 9 X3 I9 p9 W. Y* G
    9 U+ w/ N1 z* b0 X
        perform mutation ) G( h, A5 S6 r0 G% ^
    " a7 x' |# n$ k3 e8 m- J/ _" {) L
        determine the fitness of each individual
    ) M2 s6 d4 ]8 L1 s" Y7 f8 X
    : J* C5 W- \. N" I
        perform selection , O. u7 d. V7 g' n1 G' W

    " n9 [  _/ p/ }until some stopping criterion applies
    : o$ r& G# {! j- j8 L9 S
    ' F/ b+ X, J' A9 L0 y
    这里所指的某种结束准则一般是指个体的适应度达到给定的阀值;或者个体的适应度的变化率为零。
    5 j: \, ^- L) Z( u" x( S
    三、遗传算法的步骤和意义
    / M! _$ q& s& p- `$ ]) }2 Q5 f- u
    7 E1 S0 E. Q& d
    1.初始化% y7 b! }7 H7 V5 k7 ?0 }6 q" I

    ! ^# n; a0 s# b4 S$ p8 r, P$ E选择一个群体,即选择一个串或个体的集合bii=12...n。这个初始的群体也就是问题假设解的集合。一般取n30-160
    / N& v8 ]  C4 f* }$ [, ]+ H

    0 Z* L. D1 @& J$ `- T( K通常以随机方法产生串或个体的集合bi,i12...n。问题的最优解将通过这些初始假设解进化而求出。4 C8 F  {4 I4 `+ N
    3 s8 j7 R, ^" _4 J( U
    2.选择' a5 m) r) k. f
    ( C+ C3 e) N6 q' y' p
    根据适者生存原则选择下一代的个体。在选择时,以适应度为选择原则。适应度准则体现了适者生存,不适应者淘汰的自然法则。. \0 a# k8 B3 i$ N; h
    + X, f  D; R1 ]
    给出目标函数f,则f(bi)称为个体bi的适应度。以- l$ l: W9 y' Q' |. {
    7 E1 l  ~, i$ w% S, R# k" e
    3 n/ r& D9 S/ x+ y/ ]3 }" f& U
    6.2.ht40.gif   f% T. F& y4 J2 Z: @8 b# J
    为选中bi为下一代个体的次数。9 l7 A6 E. D7 i5 V& a& h

    ) C4 R  m& }' @/ X) D显然.从式(386)可知:
    . B1 y1 s  r/ I$ j. S7 d* z* R3 h
    # b) n' b6 O, I1 z
    (1)适应度较高的个体,繁殖下一代的数目较多。3 V" |+ E2 t+ P7 ~/ l

    9 b/ B5 r' z% b# ^& s1 U(2)适应度较小的个体,繁殖下一代的数目较少;甚至被淘汰。
    % W% z+ l1 [- N5 g# U

    * r( [. C# x  a这样,就产生了对环境适应能力较强的后代。对于问题求解角度来讲,就是选择出和最优解较接近的中间解。
    7 H5 Z* j9 H; e# L% c

    2 _7 X0 W+ q2 z3.交叉
    3 _& \: ?' j) p7 u对于选中用于繁殖下一代的个体,随机地选择两个个体的相同位置,按交叉概率P。在选中的位置实行交换。这个过程反映了随机信息交换;目的在于产生新的基因组合,也即产生新的个体。交叉时,可实行单点交叉或多点交叉。7 t7 E9 w0 `6 A9 q0 h1 y

    $ G3 ?3 u7 I) X: ^6 y例如有个体
    6 ~! @5 q# M# ?0 z

    / b* t: x5 d) C" \5 A- W  P9 |S1=100101
    4 G9 y$ ^; k/ b$ B) Y' n/ {. K8 @

    5 ?) `! t5 _; cS2=010111
    6 r& @" Y' h# c; S5 g, z9 ?
    8 B. L; {* i8 L* E
    选择它们的左边3位进行交叉操作,则有7 G' m- H3 G/ w

    ) ]& K3 N9 K* K2 WS1=010101 $ D3 e6 s8 M& _1 q
    9 Z1 B# B  _/ ]+ U9 I3 w! [3 m( |
    S2=100111 3 X% b) g( g% O
    # R. O* [; T6 G6 T) S) O) q% m
    一般而言,交 婊显譖。取值为0.250.75
    ) ^: E' G5 y; \# _! d) Q- ^; m

    $ \$ J1 r1 G5 C( k4.变异" p& g, b+ d7 H& f

    $ M3 d% G/ f' e5 n: \$ m根据生物遗传中基因变异的原理,以变异概率Pm对某些个体的某些位执行变异。在变异时,对执行变异的串的对应位求反,即把1变为0,把0变为1。变异概率Pm与生物变异极小的情况一致,所以,Pm的取值较小,一般取0.01-0.23 X* k( }  c& d! `

    ) }$ e) o# T( s. H例如有个体S1010118 t6 R+ x! m- K3 l4 }6 k- |
    1 D2 W  L% Q2 U+ B3 M4 {
    对其的第14位置的基因进行变异,则有
    & v: N) `* \' U* n! Y
    / _8 r  @4 `0 n
    S'=001111 * ]. X9 z9 G6 j  d- A

    0 e4 G9 o; N, b5 w2 ~单靠变异不能在求解中得到好处。但是,它能保证算法过程不会产生无法进化的单一群体。因为在所有的个体一样时,交叉是无法产生新的个体的,这时只能靠变异产生新的个体。也就是说,变异增加了全局优化的特质。8 \/ H! q! v' L) a6 v, A

    . h7 x- m- Q' {0 `6 e1 X5.全局最优收敛(Convergence to the global optimum) / y9 o7 T2 U, a% F% k( h
    - u9 D0 m) M* r7 w0 v) ]; j
    当最优个体的适应度达到给定的阀值,或者最优个体的适应度和群体适应度不再上升时,则算法的迭代过程收敛、算法结束。否则,用经过选择、交叉、变异所得到的新一代群体取代上一代群体,并返回到第2步即选择操作处继续循环执行。
    - n2 J' K% W) H$ n

    * d& V1 ~2 Y3 a/ C, Q/ Z4 @6 s3 x37中表示了遗传算法的执行过程。7 U7 g) h; _8 `7 q

    % c: R  ?: c( X! |8 _/ d& Y9 H4 Q
    9 }6 k8 t7 P7 q2 p$ K' q Genetic_Algorithm.gif . p$ p) ]2 }6 A5 F9 N" M) H

    - U# e# w, `2 G9 E3-7 遗传算法原理) u" B& Q5 \" y
    2 R/ t# k1 K7 n# P: r
    323遗传算法的应用- S2 Y% L! y1 c' f9 ?

    ' @* K1 a% H  U6 d遗传算法在很多领域都得到应用;从神经网络研究的角度上考虑,最关心的是遗传算法在神经网络的应用。在遗传算法应用中,应先明确其特点和关键问题,才能对这种算法深入了解,灵活应用,以及进一步研究开发。
    * f+ u) s* ^/ m1 B
    2 A# \: i4 A& I4 v( B) h9 o
    一、遗传算法的特点; \0 e3 }3 a" z( R9 t5 I

    $ O+ n, F- ^2 I# o# S4 h1.遗传算法从问题解的中集开始嫂索,而不是从单个解开始。% K% ]1 j: T& i8 I+ i
    2 p/ R0 T, C: @$ [; ?3 |( @0 ^
    这是遗传算法与传统优化算法的极大区别。传统优化算法是从单个初始值迭代求最优解的;容易误入局部最优解。遗传算法从串集开始搜索,复盖面大,利于全局择优。9 T1 f8 J: N3 C9 m' i
    " ~  t" n# }* |7 T
    2.遗传算法求解时使用特定问题的信息极少,容易形成通用算法程序。
    - F5 U+ n+ h  K) x: G$ e* g
    ( S( y; q) I7 y, A! C6 ]* q& A% L: @; v7 a
    由于遗传算法使用适应值这一信息进行搜索,并不需要问题导数等与问题直接相关的信息。遗传算法只需适应值和串编码等通用信息,故几乎可处理任何问题。% D1 C; @. l9 \6 e8 C$ w% ^
    ( {0 k6 a* e$ O# K% E6 ^. R
    3.遗传算法有极强的容错能力
    1 }0 u1 D* [6 x" W% B7 I

    ( p) _8 [) g# g& B8 N2 k遗传算法的初始串集本身就带有大量与最优解甚远的信息;通过选择、交叉、变异操作能迅速排除与最优解相差极大的串;这是一个强烈的滤波过程;并且是一个并行滤波机制。故而,遗传算法有很高的容错能力。
    " n8 M' Z7 N$ D
    : \' J* t! r% @# `! k5 A$ P
    4.遗传算法中的选择、交叉和变异都是随机操作,而不是确定的精确规则。
    ' S: R8 r/ ]9 ]4 J9 T# z! j$ h6 R9 i

    . k; \. C" e6 m. t. `5 [  b4 U这说明遗传算法是采用随机方法进行最优解搜索,选择体现了向最优解迫近,交叉体现了最优解的产生,变异体现了全局最优解的复盖。
    3 V7 C  k; P3 c: X; @4 w5 ^3 z! q' R
    0 R$ E2 }: L3 q  u+ L7 m' ?% q
    5.遗传算法具有隐含的并行性$ N6 Y0 x0 O6 m7 Q/ q; D; [0 L6 ~# N

    , ^0 l9 w+ }& ~2 L2 B# a遗传算法的基础理论是图式定理。它的有关内容如下:
    * e/ A' A& m& z5 q/ k6 H' g

    # n+ C6 h& X* Q3 y& l5 U, T(1)图式(Schema)概念
      ~9 f5 V, F: B" ?( U3 X, q

    ) c9 N$ O: i( c* B( G+ A+ v一个基因串用符号集{01*}表示,则称为一个因式;其中*可以是01。例如:H=1xx 0 x x是一个图式。8 P! v+ T) V. i* A$ h+ V7 ^& H
    7 A6 W4 C  n* A! G7 @2 Z* t/ Y* p
    (2)图式的阶和长度
    3 L" g8 s# |/ N: r+ B  V: O

    ( b: t& K& H7 f/ k( r+ v) j图式中01的个数称为图式的阶,并用0(H)表示。图式中第1位数字和最后位数字间的距离称为图式的长度,并用δ(H)表示。对于图式H1x x0x x,有0(H)2,δ(H)4( s9 [3 _4 N! @- S* C  s  g
    , l: O+ V6 O1 J% |& p
    (3)Holland图式定理
    . Q) I* A- K" `- Z' s$ m
    ! J( S2 @$ Y% u2 ]8 _& F- j
    低阶,短长度的图式在群体遗传过程中将会按指数规律增加。当群体的大小为n时,每代处理的图式数目为0(n3). |# B7 `1 X5 g$ E

    * B) r  h# d' r& n$ m2 T/ a遗传算法这种处理能力称为隐含并行性(Implicit Parallelism)。它说明遗传算法其内在具有并行处理的特质。
    - t2 k( F) P# `
    " r/ P1 o1 k9 e8 e# Z9 W* q- F+ v: T. N
    二、遗传算法的应用关键
    5 @9 b* C7 D* T8 j: m/ A2 B- P
    5 @$ L' c/ ]0 u+ z) F4 O% B( u
    遗传算法在应用中最关键的问题有如下3; Z" w% o# T! s) e( y, q- O% _  I/ a

    ' D+ G2 i9 G# j  K0 e! g- e  V1.串的编码方式
    " a! C# `. E8 N* x6 ]

    / b% U8 z. Z0 R5 h这本质是问题编码。一般把问题的各种参数用二进制编码,构成子串;然后把子串拼接构成“染色体”串。串长度及编码形式对算法收敛影响极大。
    * m7 `2 y0 D9 q9 J* I8 ~5 j3 Q

    & E& W+ j5 u( K9 H2.适应函数的确定
    , e, W& y0 x! h" F
    1 [- N, @1 A& b; [7 a  ?% g
    适应函数(fitness function)也称对象函数(object function),这是问题求解品质的测量函数;往往也称为问题的“环境”。一般可以把问题的模型函数作为对象函数;但有时需要另行构造。
    , \/ {1 L1 A0 i9 H

    . v! n/ x7 [) a6 M9 g! s8 M2 e3.遗传算法自身参数设定
    " p: u5 V& ~0 e- U) [6 ?
    ; g: }7 i% \4 x$ q' h
    遗传算法自身参数有3个,即群体大小n、交叉概率Pc和变异概率Pm/ y- z% F! @, ^3 Z5 f* d; b
    / P# q$ r8 l+ s; e( X; T( \
    群体大小n太小时难以求出最优解,太大则增长收敛时间。一般n30-160。交叉概率Pc太小时难以向前搜索,太大则容易破坏高适应值的结构。一般取Pc=0.25-0.75。变异概率Pm太小时难以产生新的基因结构,太大使遗传算法成了单纯的随机搜索。一般取Pm00102+ l, E" b  G2 _  k. e% [, k# l0 E

    " ]2 z6 g- G  A* S" A/ C7 f- W三、遗传算法在神经网络中的应用
    + b/ a3 {3 G0 V- l. C$ s
    # S1 C6 N( `) ~0 {5 r$ k
    遗传算法在神经网络中的应用主要反映在3个方面:网络的学习,网络的结构设计,网络的分析。4 o$ n! |5 c0 ]" r

    * s) L1 }' l$ V$ T. E- w5 ?8 T1.遗传算法在网络学习中的应用
    . V. e+ J# i" C2 u1 ]( L+ M! Q( E; k

    4 [! W! \* l' }$ ~3 b0 A' r在神经网络中,遗传算法可用于网络的学习。这时,它在两个方面起作用
    8 z% Q: M1 e( G/ J0 O. E

    . ?( V' `+ e) }% h(1)学习规则的优化
    - f! {& g3 m1 x3 w6 x( N
    , c# p& O/ U! W0 i, S
    用遗传算法对神经网络学习规则实现自动优化,从而提高学习速率。
    : q- B# _) X6 r$ m& n5 g
    1 {' \6 D0 C" M: _& k1 H  }
    (2)网络权系数的优化
    - w- u4 F$ Y" i& L
    - s0 V* x" n' ?8 v5 w2 L( b/ S
    用遗传算法的全局优化及隐含并行性的特点提高权系数优化速度。) M$ n# h( D6 b$ e( p+ e

      x; B% a% Q" s+ _% ^. t5 [2.遗传算法在网络设计中的应用# L$ w! I0 U5 @- z

    ' P- J& ]' l! H3 z) s, G( t用遗传算法设计一个优秀的神经网络结构,首先是要解决网络结构的编码问题;然后才能以选择、交叉、变异操作得出最优结构。编码方法主要有下列3种:- n5 y+ G8 t8 A1 h/ G: w
    $ b, a, b! M7 J! Q! V
    (1)直接编码法
    7 Y6 ], K: Z' I# K7 a
    3 W* J0 C  a( p5 Z$ A9 `! u3 y% ~8 k3 C
    这是把神经网络结构直接用二进制串表示,在遗传算法中,“染色体”实质上和神经网络是一种映射关系。通过对“染色体”的优化就实现了对网络的优化。5 s% c0 e2 @1 }+ \
    2 V! O* f( h. _, o( G$ m
    (2)参数化编码法
    2 q# U5 a. F/ X* U1 {8 c

    & B( d& @+ H" p( q$ k6 \; ]参数化编码采用的编码较为抽象,编码包括网络层数、每层神经元数、各层互连方式等信息。一般对进化后的优化“染色体”进行分析,然后产生网络的结构。3 G8 G  Z3 ^$ L0 K

    . p& h* ~5 w! c+ j(3)繁衍生长法
    7 F2 K( m/ s' J- \, ], |
    0 T, x0 C- @- |8 m/ z- P
    这种方法不是在“染色体”中直接编码神经网络的结构,而是把一些简单的生长语法规则编码入“染色体”中;然后,由遗传算法对这些生长语法规则不断进行改变,最后生成适合所解的问题的神经网络。这种方法与自然界生物地生长进化相一致。- ?( }6 |" u, \
    6 k7 y( a" x% C& C: ^1 b; Y
    3.遗传算法在网络分析中的应用
    " Z+ f% j2 g) H0 b! e

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

    8 \8 ]; Z5 T* I; p/ y* G: ]

    9 k. I% _$ t5 x0 g& Z/ o
    三、遗传算法的步骤和意义
    ( Q: A7 |. A+ C- O$ v
    % Y! ]* e& k! A/ Z. V, i
    1.初始化$ W. X1 Z) J3 S* n$ I7 _8 _

    " }* [2 w# B5 K. v) m; N选择一个群体,即选择一个串或个体的集合bii=12...n。这个初始的群体也就是问题假设解的集合。一般取n30-160
    + m& S& v+ F- v3 r
    $ o' U3 n0 N" S4 j# P$ q" m, c1 {
    通常以随机方法产生串或个体的集合bi,i12...n。问题的最优解将通过这些初始假设解进化而求出。
    , h8 `% Y: n  [0 q9 P

    5 @, q6 _4 i- m8 D2.选择/ d$ @8 S; j# ?9 O& G/ b% X" R
      @* f6 a# n2 F3 J; v( w; J- @
    根据适者生存原则选择下一代的个体。在选择时,以适应度为选择原则。适应度准则体现了适者生存,不适应者淘汰的自然法则。( S* x+ O* }6 W* \3 @
      g$ m1 v, ~3 l5 K
    给出目标函数f,则f(bi)称为个体bi的适应度。以6 E+ R  t# M4 R
    ; |* P- h* e, t* b. j% `1 ~/ W
    ' u- m  [0 v* Y' W

      n  |/ G1 B! T, w' d' }# b为选中bi为下一代个体的次数。1 a" S3 j9 K/ M* c
    # U# @# z+ q/ `+ f
    显然.从式(386)可知:
    ' f4 L3 C0 _$ C( b' @$ J' X

    # _6 ?$ J( [0 Q(1)适应度较高的个体,繁殖下一代的数目较多。
    6 b0 w1 U, O. z: X% [; B

    ! w' b: e3 X6 J9 ](2)适应度较小的个体,繁殖下一代的数目较少;甚至被淘汰。) R- j4 Q/ m# h, V& a# [, {

    - ?, m) c; b9 b6 y这样,就产生了对环境适应能力较强的后代。对于问题求解角度来讲,就是选择出和最优解较接近的中间解。! w# D' d3 B4 @" |1 ]7 x
    " c8 J2 n0 j. s5 \* L$ m% s
    3.交叉1 I, B5 G& b. G: u, A
    对于选中用于繁殖下一代的个体,随机地选择两个个体的相同位置,按交叉概率P。在选中的位置实行交换。这个过程反映了随机信息交换;目的在于产生新的基因组合,也即产生新的个体。交叉时,可实行单点交叉或多点交叉。$ y- I% ^# a# F1 l) s- D
    2 N- D1 p  W1 }9 H) `
    例如有个体
    $ _- A, @- C4 u$ c/ ~
    9 T; g) b; W) l3 H& y: I7 t% ~
    S1=100101 # L/ C* S( H- x% H
    , t' f' b' r& d; _
    S2=010111
    1 h: K' s- S1 Y& _
    ' e! ?0 J( m. `% z
    选择它们的左边3位进行交叉操作,则有8 i3 k) \" L! G) L) H% t* z
    ! Q6 G0 s  w" p" K, A
    S1=010101 ; B! G" {6 F# O2 [" e

    ' P3 P1 A  v) p9 V1 j8 BS2=100111
    / S$ l  Y0 ~3 U5 C' Y9 }

    9 H( ?0 U4 P2 X4 c. z& D7 k一般而言,交 婊显譖。取值为0.250.75
    4 |9 r: C, @+ S

      u2 L' G% }- ?9 Z/ t, a4.变异- ]) a' B  I0 {+ X% Q6 P6 X9 M
    3 u4 ~  z6 Z/ L" ]7 V# {+ u7 Q
    根据生物遗传中基因变异的原理,以变异概率Pm对某些个体的某些位执行变异。在变异时,对执行变异的串的对应位求反,即把1变为0,把0变为1。变异概率Pm与生物变异极小的情况一致,所以,Pm的取值较小,一般取0.01-0.2
    8 J4 G: q5 h- d
    " D  {4 U3 Q6 e: Q
    例如有个体S101011
    " H- X1 Y  B2 Q. `1 X, w0 i$ q

    2 m8 G4 G. b+ y" @# ~7 b8 [/ d对其的第14位置的基因进行变异,则有+ b- }" }1 |) _$ Z  n+ t9 U7 K
    + x! l9 M& F8 n
    S'=001111
    6 G" R1 [! g; Q( g
    ! u  P$ s- T+ `3 y5 N$ |. G
    单靠变异不能在求解中得到好处。但是,它能保证算法过程不会产生无法进化的单一群体。因为在所有的个体一样时,交叉是无法产生新的个体的,这时只能靠变异产生新的个体。也就是说,变异增加了全局优化的特质。
    : Q# V7 t# {- S% c% d' J6 @8 z$ n

    3 _  y) v5 D6 C( u5.全局最优收敛(Convergence to the global optimum) 8 G9 J. n1 w8 f/ z# S. f) k2 }

    ) |6 ?- _" O+ h& ^* R- B当最优个体的适应度达到给定的阀值,或者最优个体的适应度和群体适应度不再上升时,则算法的迭代过程收敛、算法结束。否则,用经过选择、交叉、变异所得到的新一代群体取代上一代群体,并返回到第2步即选择操作处继续循环执行。0 t; |1 p4 R. V5 C7 n
    7 j4 j' V$ r1 D) i- o; y1 G
    37中表示了遗传算法的执行过程。
    + J! u6 e4 u' a3 E  X1 o) ^$ G; T1 V% E4 h. n
    1 z) P* Z8 c9 x

    7 d3 h* C0 [* b/ A  B& j
    6 L2 {* P4 b+ Q4 d% C* X3-7 遗传算法原理
    - J. g1 O+ n, |5 f. h& }# u+ C

    % R1 u  Q# y" h* [$ W9 k323遗传算法的应用) R7 x  q( t  ^  @% W
    9 L8 ?8 c4 M% o
    遗传算法在很多领域都得到应用;从神经网络研究的角度上考虑,最关心的是遗传算法在神经网络的应用。在遗传算法应用中,应先明确其特点和关键问题,才能对这种算法深入了解,灵活应用,以及进一步研究开发。6 n2 N8 X0 X) U9 f3 k
    % J- h( m- E: s6 r/ S) M
    一、遗传算法的特点  x$ R5 G+ X8 e8 A' d. S* {& N* ~
    # k. S$ `& `8 V' i
    1.遗传算法从问题解的中集开始嫂索,而不是从单个解开始。; W$ d% c* H- q; o& ]

    0 S4 H7 e/ W  D% T; Q% i* t这是遗传算法与传统优化算法的极大区别。传统优化算法是从单个初始值迭代求最优解的;容易误入局部最优解。遗传算法从串集开始搜索,复盖面大,利于全局择优。; z2 A: s. {9 G! R" n: R$ z9 B* v

    , U- ^- E) ^" u; e- B* U2.遗传算法求解时使用特定问题的信息极少,容易形成通用算法程序。+ x+ @/ g4 U! l; k  _& {
    6 L& s  g, y2 K; \4 h' [' H
    由于遗传算法使用适应值这一信息进行搜索,并不需要问题导数等与问题直接相关的信息。遗传算法只需适应值和串编码等通用信息,故几乎可处理任何问题。
    # Q6 C) l& r% w( z" f$ Z

    ; ^! a$ @* V9 r( g; i3.遗传算法有极强的容错能力
    $ y+ R2 d& p" {
    $ `" [" @/ Y  ]6 P4 Y
    遗传算法的初始串集本身就带有大量与最优解甚远的信息;通过选择、交叉、变异操作能迅速排除与最优解相差极大的串;这是一个强烈的滤波过程;并且是一个并行滤波机制。故而,遗传算法有很高的容错能力。4 Z8 p$ W2 P6 S! H' U

    * M) a" ]7 a. R- P3 R0 f- _& s+ h) o4.遗传算法中的选择、交叉和变异都是随机操作,而不是确定的精确规则。( g9 Q$ u; i& J% e
    5 Y& s5 \& }2 S6 L, ]
    这说明遗传算法是采用随机方法进行最优解搜索,选择体现了向最优解迫近,交叉体现了最优解的产生,变异体现了全局最优解的复盖。5 x8 T) Z% W. Z+ \
    - I- I( |6 C. G8 W9 w- z
    5.遗传算法具有隐含的并行性
    6 N5 V# G/ S% N6 R
    . O, ], o2 m2 g5 f0 X: l, `
    遗传算法的基础理论是图式定理。它的有关内容如下:+ m. D" l& A' t, l- b, k' E

    # l. A  S& m  {* a2 J' T: t(1)图式(Schema)概念
    : p: Y4 U3 r9 _+ `% ^# @* u1 m

    : m1 S7 j$ F4 @+ G  ^7 z一个基因串用符号集{01*}表示,则称为一个因式;其中*可以是01。例如:H=1xx 0 x x是一个图式。* D8 L5 Z+ P: k# O# t9 D2 C
    3 ^3 m0 |$ B2 i; @8 Q" X
    (2)图式的阶和长度) E- M8 h( Y( e8 B4 J6 z
    - m& l3 n; c2 u# W1 J
    图式中01的个数称为图式的阶,并用0(H)表示。图式中第1位数字和最后位数字间的距离称为图式的长度,并用δ(H)表示。对于图式H1x x0x x,有0(H)2,δ(H)4
    5 t0 j# Y+ e) \4 }

    + @3 o1 p* r; l2 o0 N* j4 j(3)Holland图式定理# B0 T; X+ ^* ]1 U, X$ _* j: T$ F

    % X/ v/ S+ w% f# N& o/ {  X' P低阶,短长度的图式在群体遗传过程中将会按指数规律增加。当群体的大小为n时,每代处理的图式数目为0(n3)/ m9 @7 [& {8 p& Q3 Z5 x9 N/ o: Q
    # }1 x5 M+ E7 y' x
    遗传算法这种处理能力称为隐含并行性(Implicit Parallelism)。它说明遗传算法其内在具有并行处理的特质。
    % g9 e1 ~2 {; U
    & r! X' T# M- k: B8 \
    二、遗传算法的应用关键2 K0 c4 M$ Z' i# o

    & o3 u) y* ^" e) T, K- {遗传算法在应用中最关键的问题有如下3" l2 o2 E# T2 i  X

    " u; t( B1 Z7 t( e1 R8 b1.串的编码方式
    0 J( ^: |2 u# n) \8 l+ W

    2 `" F2 j" n# C  o  E  p$ d这本质是问题编码。一般把问题的各种参数用二进制编码,构成子串;然后把子串拼接构成“染色体”串。串长度及编码形式对算法收敛影响极大。
    & X' I9 p8 {/ C( g, u& [
    . k- K, Y- B( Z  L- E, t
    2.适应函数的确定
    # P: S! g2 A9 P+ i; K6 s
    8 R+ e! F  [, H9 l5 [
    适应函数(fitness function)也称对象函数(object function),这是问题求解品质的测量函数;往往也称为问题的“环境”。一般可以把问题的模型函数作为对象函数;但有时需要另行构造。5 P/ F- Y. D/ ~/ P" g% q

    , A0 z: D0 g2 i* {7 k) [& u: ]" k3 c3.遗传算法自身参数设定
    % E  |$ R' m; w* U2 ^$ K# l

    9 S2 W3 K5 q2 d& g遗传算法自身参数有3个,即群体大小n、交叉概率Pc和变异概率Pm
    + q$ ~* k0 @, O* F* m
    ' [$ q  J( Z. k' t: o
    群体大小n太小时难以求出最优解,太大则增长收敛时间。一般n30-160。交叉概率Pc太小时难以向前搜索,太大则容易破坏高适应值的结构。一般取Pc=0.25-0.75。变异概率Pm太小时难以产生新的基因结构,太大使遗传算法成了单纯的随机搜索。一般取Pm00102' D' t2 C) r# J
    8 r1 A% b% t8 E1 t' I( m
    三、遗传算法在神经网络中的应用
    9 [' T3 A/ @' B
    ! X; b% h1 i9 i
    遗传算法在神经网络中的应用主要反映在3个方面:网络的学习,网络的结构设计,网络的分析。' |- x* f$ B% o! J: _

    1 n6 F  c% r) U2 E" ^! V4 o1.遗传算法在网络学习中的应用
    3 A1 [& u/ k0 e% i+ Y/ e! y& e
    + p  c% c+ N8 b3 U# c( k# k$ H
    在神经网络中,遗传算法可用于网络的学习。这时,它在两个方面起作用  h% {" }0 M- [! g3 H3 F+ Z% O" \9 @' e

    7 x* X/ l; ?4 r0 f1 }" c; |(1)学习规则的优化5 U$ z1 c" T; A+ q

    & ]: ^- y+ T5 H  ]  i& j, c# E用遗传算法对神经网络学习规则实现自动优化,从而提高学习速率。
    - I) X$ ]7 Z, i0 Q

    ! \1 W5 s! I5 I1 O. h(2)网络权系数的优化
    / w  i$ }) \9 P% _: G8 M; N

    . T$ K: C& l! F) n5 y5 ~7 `& d用遗传算法的全局优化及隐含并行性的特点提高权系数优化速度。
    ! A2 o! F: D4 ~2 g* c2 X% ^
    ( F/ `" s/ p5 k
    2.遗传算法在网络设计中的应用
    ) }% @3 y0 S- b9 l+ j8 t& ?# S8 F
    ( b2 P, K+ @; h% ^6 g: @" J/ w
    用遗传算法设计一个优秀的神经网络结构,首先是要解决网络结构的编码问题;然后才能以选择、交叉、变异操作得出最优结构。编码方法主要有下列3种:
      d9 Y+ ]+ I: Y' S3 ?- Q3 I: o; O/ ^

    3 u5 \" }& n, A" _8 B(1)直接编码法
    3 X2 }0 K* E! f3 l  ?, y7 N
    ( j# q  z7 `6 _6 ~( U
    这是把神经网络结构直接用二进制串表示,在遗传算法中,“染色体”实质上和神经网络是一种映射关系。通过对“染色体”的优化就实现了对网络的优化。; I8 S5 k1 @) D3 N

    9 v+ @: Q$ d) j5 t( x8 {# D! l(2)参数化编码法
    5 i8 E* ]3 t& C) g

    , A' _7 H  E9 u4 |  y+ Q参数化编码采用的编码较为抽象,编码包括网络层数、每层神经元数、各层互连方式等信息。一般对进化后的优化“染色体”进行分析,然后产生网络的结构。
    ' j/ [; w! I2 R# }$ D
    ! {4 r" X( T; X  ?
    (3)繁衍生长法3 ~3 S  V( U) {$ i1 k

    $ L0 a! C# X9 b0 I9 D* G  K5 g这种方法不是在“染色体”中直接编码神经网络的结构,而是把一些简单的生长语法规则编码入“染色体”中;然后,由遗传算法对这些生长语法规则不断进行改变,最后生成适合所解的问题的神经网络。这种方法与自然界生物地生长进化相一致。$ O# ^, z, d, z
    & S6 J- [2 X3 F/ f9 |4 ?$ o$ Q" z7 f
    3.遗传算法在网络分析中的应用
    7 D& H% f3 ?  J" l
    2 x# L* M% q1 x7 a: S  c
    遗传算法可用于分析神经网络。神经网络由于有分布存储等特点,一般难以从其拓扑结构直接理解其功能。遗传算法可对神经网络进行功能分析,性质分析,状态分析。
    5 Y- W- B, W* c+ @7 q. R7 t

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

    连续签到: 1 天

    [LV.2]偶尔看看I

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

    连续签到: 1 天

    [LV.1]初来乍到

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

    连续签到: 1 天

    [LV.6]常住居民II

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

    该用户从未签到

    尚未签到

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

    本版积分规则

    招聘斑竹

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

    GMT+8, 2025-6-8 04:18

    Powered by Discuz! X3.5 Licensed

    © 2001-2025 Discuz! Team.

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