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

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

[分享] 转(遗传算法)

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

    连续签到: 1 天

    [LV.2]偶尔看看I

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

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

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

    ×
    生物的进化是一个奇妙的优化过程,它通过选择淘汰,突然变异,基因遗传等规律产生适应环境变化的优良物种。遗传算法是根据生物进化思想而启发得出的一种全局优化算法。
    4 j7 `( z1 B9 h$ [, r9 i

      @6 f' B. k7 S0 m, Q9 T' ^  G2 z遗传算法的概念最早是由Bagley J.D1967年提出的;而开始遗传算法的理论和方法的系统性研究的是1975年,这一开创性工作是由Michigan大学的J.H.Holland所实行。当时,其主要目的是说明自然和人工系统的自适应过程。
    6 w/ l' e: o4 \5 `$ m4 I# k4 w

    # r0 Y9 h  _. Y  b, a& W% J遗传算法简称GA(Genetic Algorithm),在本质上是一种不依赖具体问题的直接搜索方法。遗传算法在模式识别、神经网络、图像处理、机器学习、工业优化控制、自适应控制、生物科学、社会科学等方面都得到应用。在人工智能研究中,现在人们认为“遗传算法、自适应系统、细胞自动机、混沌理论与人工智能一样,都是对今后十年的计算技术有重大影响的关键技术”。8 u+ f8 h+ A$ m7 ]# k3 K# o

    ' p6 M8 ~4 {) `, S6 b321 遗传算法的基本概念4 j% v; ~' e5 v; i

    5 l/ F9 @& f  g2 g/ _! i遗传算法的基本思想是基于Darwin进化论和Mendel的遗传学说的。
    ' L. Z8 k4 E" j- o  [! q, s

    + x4 O, ]# k  g; k: D3 V) zDarwin进化论最重要的是适者生存原理。它认为每一物种在发展中越来越适应环境。物种每个个体的基本特征由后代所继承,但后代又会产生一些异于父代的新变化。在环境变化时,只有那些熊适应环境的个体特征方能保留下来。1 \$ L% X- v* I; I' Y* X

    ' l# |) c( K+ ?7 ?* qMendel遗传学说最重要的是基因遗传原理。它认为遗传以密码方式存在细胞中,并以基因形式包含在染色体内。每个基因有特殊的位置并控制某种特殊性质;所以,每个基因产生的个体对环境具有某种适应性。基因突变和基因杂交可产生更适应于环境的后代。经过存优去劣的自然淘汰,适应性高的基因结构得以保存下来。
    8 P) Y, W% g. a6 h$ J
    " z9 s5 v1 ^4 n. g$ o* z- F
    由于遗传算法是由进化论和遗传学机理而产生的直接搜索优化方法;故而在这个算法中要用到各种进化和遗传学的概念。这些概念如下:  F2 m. o5 Y+ x% b, p# H1 e

    % v# C4 e/ r/ L+ q) l" d; g7 a! y一、串(String)
      t, K  `3 @+ z' o0 m
    / G: I1 t% D5 O( {6 _
    它是个体(Individual)的形式,在算法中为二进制串,并且对应于遗传学中的染色体(Chromosome)# s4 h0 S, a, ~/ f
    ; e% @8 U1 o4 L7 `7 |' g8 F
    二、群体(Population)
    1 V2 Q! J) Q/ }. |) w# K! p/ h* O/ o4 G

    # {1 d- _& k& ~个体的集合称为群体,串是群体的元素
    6 W! Z8 E" e, A

    ' u8 o( m7 s/ x4 i7 J& W8 @! o三、群体大小(Population Size) 0 n( q  n" q% p: m
    3 l! e# X0 O! j
    在群体中个体的数量称为群体的大小。" P4 l+ b# Y( B% l( W* k' u0 K
    ; S  @+ G, r3 U; C2 p" F7 x) O
    四、基因(Gene) 0 g$ B8 ^4 U. Q1 j0 E, i

    5 c; I! r4 u0 X2 N3 z& X/ U基因是串中的元素,基因用于表示个体的特征。例如有一个串S1011,则其中的10114个元素分别称为基因。它们的值称为等位基因(Alletes)
    1 r2 n( O/ y( y. C

    2 q7 J; L" _! |( ?5 H' X$ G# _ 、基因位置(Gene Position)
    4 f# u, h% n* `3 T- O' p

      i8 t& j- g, H" N' s6 S& e1 I6 |一个基因在串中的位置称为基因位置,有时也简称基因位。基因位置由串的左向右计算,例如在串S1101中,0的基因位置是3。基因位置对应于遗传学中的地点(Locus)
    . F" y9 M$ Y8 F  h5 s
    , a% o8 F0 W& j; ]0 ?3 D
    六、基因特征值(Gene Feature) 7 l- q4 m; L: N

    ( T4 ]& `5 l6 Q( }& h在用串表示整数时,基因的特征值与二进制数的权一致;例如在串S=1011中,基因位置3中的1,它的基因特征值为2;基因位置1中的1,它的基因特征值为8
    # l$ w' V& h1 J; b

    , K# G9 F1 y1 w5 Q5 d, v七、串结构空间SS
    1 W3 z- `% j' A7 a: |
    ! g: k( V) j% y" |
    在串中,基因任意组合所构成的串的集合。基因操作是在结构空间中进行的。串结构空间对应于遗传学中的基因型(Genotype)的集合。8 J* J. g0 [2 N% \: \- v
      @1 M4 C( C" _; H: t$ E
    八、参数空间SP
    # W- i8 K' H# y7 j$ N# o4 z# _
    1 |) ?1 H* Z# I% }
    这是串空间在物理系统中的映射,它对应于遗传学中的表现型(Phenotype)的集合。
    ( J4 R: |7 {; a4 @: P
    ' H' P; f! R% k5 }
    九、非线性
    $ ?( j/ b* n6 Q/ A7 `7 a4 L8 O& b

    & n% n2 A) `7 o# |- ?" O它对应遗传学中的异位显性(Epistasis) / r: u: z: }4 g/ @
    0 J/ Z2 Y- d" E
    十、适应度(Fitness) 3 H: ], n- {$ _5 x
    , k. q7 X& |5 P
    表示某一个体对于环境的适应程度。! q9 Q9 {/ A+ y
    + ]$ {; c0 w; ]9 p
    遗传算法还有一些其它的概念,这些概念在介绍遗传算法的原理和执行过程时,再进行说明。
    1 F  Q9 k" Q" n; t, r0 V" P

    ; e2 U% w, @9 `$ G% N7 w# A) J322遗传算法的原理2 l% ~, W0 z# i% l2 _' _

    6 `" W, R3 n) C- q7 Z遗传算法GA把问题的解表示成“染色体”,在算法中也即是以二进制编码的串。并且,在执行遗传算法之前,给出一群“染色体”,也即是假设解。然后,把这些假设解置于问题的“环境”中,并按适者生存的原则,从中选择出较适应环境的“染色体”进行复制,再通过交叉,变异过程产生更适应环境的新一代“染色体”群。这样,一代一代地进化,最后就会收敛到最适应环境的一个“染色体”上,它就是问题的最优解。4 |% U0 K% i6 r5 h8 r0 ~* Q

    $ Z! w( e: I$ c, _; a4 y一、遗传算法的目的
    9 M% |5 {, g/ N. ~* O2 S4 G
    % W. v3 m  F' m0 D# Z% x/ a) b
    典型的遗传算法CGA(Canonical Genetic Algorithm)通常用于解决下面这一类的静态最优化问题:
    $ f4 E5 b" V) l) Z* B
    * l' C% O, q) i* m
    考虑对于一群长度为L的二进制编码bii12,…,n;有
    7 S9 u: x; w; p2 }6 ^. y
    % U+ X4 `, {6 x6 e- u4 V+ a; b
    bi{0,1}L        (3-84)
    : b# j, w7 e5 b. d: y+ Q. p& R: z, G. c

    0 w6 D' u6 a2 }! ?% Z* a$ g- a7 W给定目标函数f,有f(bi),并且" K' ^5 K1 B; z, x4 x
    " t1 W4 `* u1 e/ @
    0<F(BI)<< P> 7 B0 |1 e3 ?$ h9 S# ^0 d
    ) d. h: G, G: y; ^+ L  W. o4 H
    同时
    0 G0 b) L, q: }' @
    $ ?8 e3 Y( J& k" o6 g0 X5 x" a" x8 I
    f(bi)f(bi+1)
    # F7 }' {, j7 I% t& C
    5 b: Q& u9 L" {1 \/ a
    求满足下式
      f! N4 H  t5 J7 b( E

    $ \3 s- ~' `- p# G- J) Amax{f(bi)|bi{0,1}L} / R3 g9 @9 O* j& C% Q8 S9 ~  ?8 h
    , L+ R3 H! c9 p
    bi4 W( \- S3 E- r. Z! O" y: j7 E
    ) g" @7 ]3 a, B; e1 }# ^' k/ W7 G
    很明显,遗传算法是一种最优化方法,它通过进化和遗传机理,从给出的原始解群中,不断进化产生新的解,最后收敛到一个特定的串bi处,即求出最优解。
    / N: t. p% o+ [# v. @

    * S4 e4 O' o5 |' [二、遗传算法的基本原理" U9 }9 P+ z7 a

    , _; z6 ^7 Z" l+ q" p, B长度为Ln个二进制串bi(i12,…,n)组成了遗传算法的初解群,也称为初始群体。在每个串中,每个二进制位就是个体染色体的基因。根据进化术语,对群体执行的操作有三种:" A3 i4 v5 x' p+ Y! u; r) {6 x1 M
    ( j6 \% t, T& P6 j
    1.选择(Selection)
    0 @4 }0 s3 u5 f0 {& \
    : f! t' e" n$ m4 M( c
    这是从群体中选择出较适应环境的个体。这些选中的个体用于繁殖下一代。故有时也称这一操作为再生(Reproduction)。由于在选择用于繁殖下一代的个体时,是根据个体对环境的适应度而决定其繁殖量的,故而有时也称为非均匀再生(differential reproduction)
    ( C. C3 A, H! @0 Y" _" d3 f

    : w7 \* E9 {) c  l5 U- ?- r2.交叉(Crossover) ' ?9 J( r1 G' M; [4 u* g
    1 e: P) ^+ w& g8 |' H) b$ u  ]
    这是在选中用于繁殖下一代的个体中,对两个不同的个体的相同位置的基因进行交换,从而产生新的个体。
    5 F) ~* q9 j0 H$ Y' |
    - V. ~3 Y- e: ]3 _
    3.变异(Mutation) 7 r$ U6 A+ w# H+ k4 h  Y
    + {. b: |8 D1 F5 s3 j6 O& ^& b
    这是在选中的个体中,对个体中的某些基因执行异向转化。在串bi中,如果某位基因为1,产生变异时就是把它变成0;反亦反之。
    ; i% h3 T7 c4 K
    $ }7 Z' [: H; m# \. \
    遗传算法的原理可以简要给出如下:4 n" E, a) B! H  Z+ y0 L
    $ C5 Q; q2 V3 q: N
    choose an intial population
    : j# W$ k- L# L, x6 L7 w7 |+ T
    + D; H: d, T% I  ?! I
    determine the fitness of each individual
    ( M+ E* X6 X* ^0 ~% N' f' i+ k

    9 f7 `3 y! Y, |perform selection 2 U) A4 [& u3 i2 |) b" t1 e+ o
    4 p6 ^5 V0 A& `  B$ i8 e
    repeat
    . C3 c4 U2 m* u2 d: C4 |
    ( D& e3 R' `. C' V# u- W9 ?* E+ z- D
        perform crossover 1 v; {6 B' z! A: Y& H. g0 W

    % ?+ Y" p+ e5 E: ~% q8 Y    perform mutation
    % ]) Y& z5 x% ]5 h: W  v+ u& p

    ! I( j3 J9 o4 B" z  S4 Y# h    determine the fitness of each individual 4 g1 E: S8 |/ k) ~" a- f% Y8 V8 n3 ~

    " M. c, j0 t6 ^* |    perform selection ; f$ N4 G7 f) A- r0 A
    ' x3 C* e! o6 V- |+ W
    until some stopping criterion applies 4 |5 ^( J7 a( ]9 B2 C% q

    ; u! [2 E0 ^1 i+ I& d% x) s这里所指的某种结束准则一般是指个体的适应度达到给定的阀值;或者个体的适应度的变化率为零。
    " ?. X4 G1 e- Z/ b. H- E
    三、遗传算法的步骤和意义) O3 ^% m) y. V! m0 H0 l

    , b6 G9 y5 P7 M& h/ Q1.初始化* f1 [4 Y" R& Q8 I$ `/ o

    6 c- ?- W& }% `( h7 M* j选择一个群体,即选择一个串或个体的集合bii=12...n。这个初始的群体也就是问题假设解的集合。一般取n30-160+ s% j$ K8 B7 G% j
    , X* Z/ K1 {0 z6 X3 L% d7 y$ g
    通常以随机方法产生串或个体的集合bi,i12...n。问题的最优解将通过这些初始假设解进化而求出。
    2 x% T1 A" B. d- j( r
    2 P! y' D- C+ ^
    2.选择
    " {+ k& H+ _: w0 @+ e

    3 }. |% W4 ]  F2 A根据适者生存原则选择下一代的个体。在选择时,以适应度为选择原则。适应度准则体现了适者生存,不适应者淘汰的自然法则。
    # P% O- O+ {$ F3 x, M- \# x

    " [2 `( o. L+ t7 u! f+ F# A1 y给出目标函数f,则f(bi)称为个体bi的适应度。以
    ! K5 y' H, |6 ?4 h: [0 N! N! c, E* r

    # L2 c. _9 |1 c( Z: i
    3 J. @: @' B  L* L- p6 v 6.2.ht40.gif
    - M) U8 t1 U; g& a) h+ D2 W为选中bi为下一代个体的次数。# ?/ k4 |  m' n6 X

    2 d1 C( ~0 ]/ L- Z3 o显然.从式(386)可知:9 h  c3 c, H3 \; b- B* h

    6 @, L& o0 f/ y" f, N" _(1)适应度较高的个体,繁殖下一代的数目较多。
    ) P' N" K4 F* T+ ^9 u
    7 n! B6 L2 ^- a- i4 X9 \
    (2)适应度较小的个体,繁殖下一代的数目较少;甚至被淘汰。
    8 n" O, ?) J, U& v' `0 g" K- l- K8 [+ ]
    ; j- T" S  g8 g& ]2 q
    这样,就产生了对环境适应能力较强的后代。对于问题求解角度来讲,就是选择出和最优解较接近的中间解。2 ]3 y: ]5 r6 i3 I* m* A

    ! A; E* F- P3 M. B8 y& R! n4 T3.交叉% |% G: d' {! [) a# N1 \* b; J, U
    对于选中用于繁殖下一代的个体,随机地选择两个个体的相同位置,按交叉概率P。在选中的位置实行交换。这个过程反映了随机信息交换;目的在于产生新的基因组合,也即产生新的个体。交叉时,可实行单点交叉或多点交叉。
    : U+ M$ c, {. `3 x7 u

    * G; S0 e) D, d  W7 R! k例如有个体* M$ q2 q5 c; z' M" I
    , E( {' {- E* q0 c1 a$ @. T
    S1=100101 ) ~$ C+ h& b2 u

    & {8 Z' Z5 v& r5 qS2=010111 : Q! I0 P5 s; c" m6 R& H

    + s0 _6 ?/ k/ x# D$ B6 [( U选择它们的左边3位进行交叉操作,则有
    ! l* ~- _: u) D  b. [2 F
    , H% Z2 o# i2 }
    S1=010101
    4 \4 ?6 M: |9 B; y& y4 k, V. @

    ) H( f4 S9 L- \, E& _S2=100111
    ' t: J0 N6 h) _7 r1 K  A4 s
    7 C) N  N# J9 n8 T
    一般而言,交 婊显譖。取值为0.250.75' P  ?4 L, G& i* m% ?$ ^
    2 N# J) y0 F; z  P# D! p. \( f' c
    4.变异
    " O2 i) l) o9 J
    $ n, f, ^* X' i) l# Q# W
    根据生物遗传中基因变异的原理,以变异概率Pm对某些个体的某些位执行变异。在变异时,对执行变异的串的对应位求反,即把1变为0,把0变为1。变异概率Pm与生物变异极小的情况一致,所以,Pm的取值较小,一般取0.01-0.25 h$ D# J7 L: B: [4 J3 E" f

    9 k2 h' X/ O6 r( T3 ]2 v例如有个体S101011
    4 T' W3 w: E7 w7 s) S  M

    1 F* _! n/ N/ n对其的第14位置的基因进行变异,则有
    4 [& M3 p" F6 l) ~0 V: ?

    ) i& {1 C' e; i5 P+ s1 FS'=001111
    8 l$ L( V8 Y: b* |; n# n

    5 z9 H+ H- `" h单靠变异不能在求解中得到好处。但是,它能保证算法过程不会产生无法进化的单一群体。因为在所有的个体一样时,交叉是无法产生新的个体的,这时只能靠变异产生新的个体。也就是说,变异增加了全局优化的特质。( i& O( }% L7 q: F; c0 z
    5 Z2 }9 k4 ]5 D. q
    5.全局最优收敛(Convergence to the global optimum)
    : l7 z1 S5 P5 q- `: Q5 {/ @7 f( l
    , J- F) q- ]/ i+ l2 U  f  E
    当最优个体的适应度达到给定的阀值,或者最优个体的适应度和群体适应度不再上升时,则算法的迭代过程收敛、算法结束。否则,用经过选择、交叉、变异所得到的新一代群体取代上一代群体,并返回到第2步即选择操作处继续循环执行。
    ( ~# N& \; i' \) A

    + x; m" p6 B9 U0 w5 }37中表示了遗传算法的执行过程。! D8 J! l8 Z7 C1 a+ p

    " J1 p0 p1 e3 X8 E  j- V7 c$ ^, u  Z7 ^6 D: H, O2 s
    Genetic_Algorithm.gif - C9 m0 r# X5 m7 ~& {8 N: q( H
    1 I6 E, I3 D% m3 l! I  k( u0 U; N
    3-7 遗传算法原理- a$ }) ?" _1 h8 e+ i' b8 D7 I

    2 w9 B. F, c6 i323遗传算法的应用
    : ?/ G; D6 q+ Z+ F

    , J$ z8 R! b- v遗传算法在很多领域都得到应用;从神经网络研究的角度上考虑,最关心的是遗传算法在神经网络的应用。在遗传算法应用中,应先明确其特点和关键问题,才能对这种算法深入了解,灵活应用,以及进一步研究开发。( s/ ]( _& d( g- ^4 b' o9 }

    " [2 ^6 c* M( i/ A5 i一、遗传算法的特点+ o4 x2 J0 V$ U# w

    5 z. V" n2 y* ?0 P! G1.遗传算法从问题解的中集开始嫂索,而不是从单个解开始。
    ! I( K; u% Q2 i7 I

    0 c0 a3 H$ U- h' {$ ~这是遗传算法与传统优化算法的极大区别。传统优化算法是从单个初始值迭代求最优解的;容易误入局部最优解。遗传算法从串集开始搜索,复盖面大,利于全局择优。
    " b) @1 [: Z. |' b
    - H  c0 [! E& ]1 c! P
    2.遗传算法求解时使用特定问题的信息极少,容易形成通用算法程序。
    # {8 w) e0 E+ e
    ( y/ k! y1 x* a5 }2 v( l4 K. R
    由于遗传算法使用适应值这一信息进行搜索,并不需要问题导数等与问题直接相关的信息。遗传算法只需适应值和串编码等通用信息,故几乎可处理任何问题。
    / }  Z) f( V% W2 w) U
    + C! O% q4 ]& n5 Z% r) ?! [
    3.遗传算法有极强的容错能力
    , x- D  c) P8 c5 u1 p$ D

    + Z6 M* O2 X, w* y. h: U: ?" E遗传算法的初始串集本身就带有大量与最优解甚远的信息;通过选择、交叉、变异操作能迅速排除与最优解相差极大的串;这是一个强烈的滤波过程;并且是一个并行滤波机制。故而,遗传算法有很高的容错能力。
    ; s3 H' {, s# j8 I+ M

    , Y# B5 O4 }. v1 h+ |# {4.遗传算法中的选择、交叉和变异都是随机操作,而不是确定的精确规则。
    * }1 h+ ?3 O% k7 Y

    ; S9 {* t  u7 `2 }8 V: g这说明遗传算法是采用随机方法进行最优解搜索,选择体现了向最优解迫近,交叉体现了最优解的产生,变异体现了全局最优解的复盖。3 o, K/ }3 L5 u6 M2 i
    7 B9 z" ^; }6 c/ F9 t! B* C: y; t, Y
    5.遗传算法具有隐含的并行性, H0 J6 j6 ^+ K- N5 g

    5 A6 I7 ?0 G' A# C. p8 z8 s# v% E遗传算法的基础理论是图式定理。它的有关内容如下:
    , c& Q; O! f* ~" a8 g0 f% P3 q

    ; g/ e- e, K, S) O. \(1)图式(Schema)概念8 T/ p$ j$ f- u* e6 x" c' s5 {9 X$ E) Z

    + y4 X& Q9 B3 r/ u. S一个基因串用符号集{01*}表示,则称为一个因式;其中*可以是01。例如:H=1xx 0 x x是一个图式。* e& \: w7 s% o5 T( }

    ) z/ g/ u: D4 j% f  O(2)图式的阶和长度
    " Q7 @1 K- }. {8 p5 z! r. L

    ! y0 G: L# L1 u  o+ x4 l8 Q图式中01的个数称为图式的阶,并用0(H)表示。图式中第1位数字和最后位数字间的距离称为图式的长度,并用δ(H)表示。对于图式H1x x0x x,有0(H)2,δ(H)4
    ) I$ \. c* I7 ^; j6 G2 Y4 [
    + c/ x4 y$ H6 r8 x+ \
    (3)Holland图式定理
    + ~. a& D* E5 H7 g$ b( ?% i

    . T3 U/ d' ]0 H& n2 i( R低阶,短长度的图式在群体遗传过程中将会按指数规律增加。当群体的大小为n时,每代处理的图式数目为0(n3)+ y& f- s4 Q$ q" Z- z6 x; ^

    2 |1 r# `4 y8 k8 ?遗传算法这种处理能力称为隐含并行性(Implicit Parallelism)。它说明遗传算法其内在具有并行处理的特质。0 y4 X5 p3 u- k* g* ]% r5 W( a
    # N2 m$ L+ t6 y" ]
    二、遗传算法的应用关键8 K0 ?- p: Q  U# k

    * Z; B9 H9 G, a- d4 K遗传算法在应用中最关键的问题有如下3
    9 j' ~+ y! j2 P: e8 b, v

    3 \5 Y% g  V2 u2 x' b! J( P2 m8 h1.串的编码方式
    & [" H7 y: x7 l( [: x1 K" M) c
      n5 T& j1 b! j: |8 T  I
    这本质是问题编码。一般把问题的各种参数用二进制编码,构成子串;然后把子串拼接构成“染色体”串。串长度及编码形式对算法收敛影响极大。7 i9 l' R9 o7 d$ D: U
    0 ]" w4 _8 h: O  ]3 j$ C, x% x
    2.适应函数的确定6 D- r+ F$ E0 b6 ^* n  u
    / B+ \) e+ ?4 `. F% r" K- i
    适应函数(fitness function)也称对象函数(object function),这是问题求解品质的测量函数;往往也称为问题的“环境”。一般可以把问题的模型函数作为对象函数;但有时需要另行构造。7 E* h; h, B' G8 F9 v7 J" e

    / ~! r( F& h# `3.遗传算法自身参数设定
    9 K- F& s1 X9 x, {

    - ?) l  H( I0 T0 T# ~. N遗传算法自身参数有3个,即群体大小n、交叉概率Pc和变异概率Pm& C$ X4 m% r  X0 l' \5 Z

      q; y+ n  I# d) i群体大小n太小时难以求出最优解,太大则增长收敛时间。一般n30-160。交叉概率Pc太小时难以向前搜索,太大则容易破坏高适应值的结构。一般取Pc=0.25-0.75。变异概率Pm太小时难以产生新的基因结构,太大使遗传算法成了单纯的随机搜索。一般取Pm00102
    . b, k; J1 `2 [  y$ G) C9 G
    1 f3 x  B& I& m0 U" Z; G: v
    三、遗传算法在神经网络中的应用
    2 [4 C8 m: D/ {/ N6 `3 H: O
    8 U$ |+ T5 Y, |# a: ^
    遗传算法在神经网络中的应用主要反映在3个方面:网络的学习,网络的结构设计,网络的分析。" e: U  j/ \( V

    4 O6 X: t% x; b( c  U& @1.遗传算法在网络学习中的应用4 N0 v# T0 F1 L3 n
    7 |/ F9 q( T2 s+ m6 h
    在神经网络中,遗传算法可用于网络的学习。这时,它在两个方面起作用: w4 `+ ?( }- Q2 I5 ^. i" T& h2 T
    - }3 P# O. }5 \9 l( w& m' q
    (1)学习规则的优化* Y0 x' f. u# W* v2 A
    ) `. H% V& I8 B6 h! \. R7 D" v6 \
    用遗传算法对神经网络学习规则实现自动优化,从而提高学习速率。) v2 E; w: M( A8 c

    1 t3 |' x, ^& I7 J8 M. Y# b" I4 e1 C(2)网络权系数的优化( C6 J0 i( y+ ]0 H; ]( a  ~

    + d1 y7 |; [: |2 L  U用遗传算法的全局优化及隐含并行性的特点提高权系数优化速度。$ f: J4 X* z; y6 W0 p5 I

    4 W0 O$ t, J0 O$ f/ Z2.遗传算法在网络设计中的应用
    , Q$ L& E+ O" k% \" Z$ O# C
    : y* o. U1 d& j4 g% h  |
    用遗传算法设计一个优秀的神经网络结构,首先是要解决网络结构的编码问题;然后才能以选择、交叉、变异操作得出最优结构。编码方法主要有下列3种:
    ! I- I, C6 R' Q
    . [2 f" T1 J2 C  @, p7 r; ?
    (1)直接编码法. K5 o: W' J( j

    ( A2 q* E  |* C: J" Z9 W0 A( P. m- c这是把神经网络结构直接用二进制串表示,在遗传算法中,“染色体”实质上和神经网络是一种映射关系。通过对“染色体”的优化就实现了对网络的优化。
    1 C/ J; ?! Y, @7 [( w1 r* S

    " Y/ C7 o. g& ^, ]+ [& D(2)参数化编码法
    " H% ^' r9 R9 i; \) ~
    - l% O1 ]1 g1 o7 \6 D; N
    参数化编码采用的编码较为抽象,编码包括网络层数、每层神经元数、各层互连方式等信息。一般对进化后的优化“染色体”进行分析,然后产生网络的结构。) @& G7 N3 J6 ]0 |. J
    * O; F6 j" t7 I
    (3)繁衍生长法+ `3 H( k' J; D" n7 h- d

    / y5 ~" b( w- Q" S3 x这种方法不是在“染色体”中直接编码神经网络的结构,而是把一些简单的生长语法规则编码入“染色体”中;然后,由遗传算法对这些生长语法规则不断进行改变,最后生成适合所解的问题的神经网络。这种方法与自然界生物地生长进化相一致。
    - a" p2 [  w+ p3 m5 p9 [
    2 L- v. e2 n% n$ q2 }6 M
    3.遗传算法在网络分析中的应用# P: E6 }. K' [- D$ P9 `  j

    5 s0 O7 N" A5 |7 \4 s9 t, n  E4 D遗传算法可用于分析神经网络。神经网络由于有分布存储等特点,一般难以从其拓扑结构直接理解其功能。遗传算法可对神经网络进行功能分析,性质分析,状态分析。
    & C; j. }0 t" P$ a& L& X
    4 @9 l$ X/ e" X; V0 k
    遗传算法虽然可以在多种领域都有实际应用,并且也展示了它潜力和宽广前景;但是,遗传算法还有大量的问题需要研究,目前也还有各种不足。首先,在变量多,取值范围大或无给定范围时,收敛速度下降;其次,可找到最优解附近,但无法精确确定最扰解位置;最后,遗传算法的参数选择尚未有定量方法。对遗传算法,还需要进一步研究其数学基础理论;还需要在理论上证明它与其它优化技术的优劣及原因;还需研究硬件化的遗传算法;以及遗传算法的通用编程和形式等。
    ! Q( I3 P5 f+ L  o' A- E

    : }$ u. F3 `0 X; P) S3 j/ m

    & v! p( H( S! m, t3 t. ^
    三、遗传算法的步骤和意义
    ) Q' m$ N& K9 \! d- t
    ( l) v! r# Q/ M( G7 j, ]/ I
    1.初始化
    % ]" o; K6 ~# k4 p1 L2 J) V

    , y: Z+ ?9 i- h* a0 B选择一个群体,即选择一个串或个体的集合bii=12...n。这个初始的群体也就是问题假设解的集合。一般取n30-160
    1 ?9 O1 F* m4 ~8 H  D$ K) ^& J- p3 O
    ) w0 s" Q+ f; X9 j1 o  T1 `, m
    通常以随机方法产生串或个体的集合bi,i12...n。问题的最优解将通过这些初始假设解进化而求出。0 }+ \" }+ g' G5 w
    # @% d2 H- ^6 m6 L
    2.选择, f2 R1 X) F! B1 x$ g% k
    8 V7 M& w* H; O4 v; }( E
    根据适者生存原则选择下一代的个体。在选择时,以适应度为选择原则。适应度准则体现了适者生存,不适应者淘汰的自然法则。# N0 U, {" ~4 G

    : K, _, c) ~0 m# m: V" \$ J& ^7 U给出目标函数f,则f(bi)称为个体bi的适应度。以0 q0 J! I7 _7 c/ r- l
    : o) v* E. m3 B) X4 B

    % e3 g9 |7 S, X7 ?# Y  q. V4 v& n% F+ i) L4 h
    为选中bi为下一代个体的次数。: `9 A* w) v! @) q
    . l, v+ h4 n* ~8 I& e  z. v9 o
    显然.从式(386)可知:  Q% N) B+ T1 v" [

    5 f) d+ L' U5 Y" e(1)适应度较高的个体,繁殖下一代的数目较多。
    ! J1 L% R4 y: A2 B
    : C) L% R+ ?( a" o: L( v* [
    (2)适应度较小的个体,繁殖下一代的数目较少;甚至被淘汰。8 V- h& [: W5 W. L/ I4 r4 [0 x- r
    7 r) z" h4 x# F9 _3 q
    这样,就产生了对环境适应能力较强的后代。对于问题求解角度来讲,就是选择出和最优解较接近的中间解。
    $ l& U. A$ j3 e  ?
    * Z' k5 l- i) X1 a$ _6 Y7 p6 ~7 Q
    3.交叉
    / U1 J) s. @5 r# [对于选中用于繁殖下一代的个体,随机地选择两个个体的相同位置,按交叉概率P。在选中的位置实行交换。这个过程反映了随机信息交换;目的在于产生新的基因组合,也即产生新的个体。交叉时,可实行单点交叉或多点交叉。
      V0 g/ Y) @2 Q1 q% q1 k  g
    : x( r! x/ t0 {& u1 j
    例如有个体0 W- p0 F% B: O7 W4 Z# G7 y" N

    1 v9 V# T$ K& u& p* kS1=100101
    3 D0 W, q' e6 B. x7 E
    ! x: s. \: A0 `0 Q0 S: u3 U
    S2=010111 4 o" j+ C+ }  L6 m$ F/ W2 D" K
    + Z* u/ y; K# V5 O( l
    选择它们的左边3位进行交叉操作,则有
    ! ^9 O+ z- l/ B5 d* P
    ( `$ e0 B0 k0 h6 ^: i7 e3 @5 A
    S1=010101 4 e" z2 {( [4 m( g/ ?
    7 A. P4 |8 n: M4 T! X6 }
    S2=100111 ! d  e3 [! p, b8 u( s

    ; C' b3 n( V- n4 |2 K一般而言,交 婊显譖。取值为0.250.75* ]1 P0 s# h2 q
    ' ^0 W% P6 z# P
    4.变异
    ( u( r1 Z7 S7 P# p- E% q9 X0 ^
    5 C0 c8 ^. M2 ]. E: l
    根据生物遗传中基因变异的原理,以变异概率Pm对某些个体的某些位执行变异。在变异时,对执行变异的串的对应位求反,即把1变为0,把0变为1。变异概率Pm与生物变异极小的情况一致,所以,Pm的取值较小,一般取0.01-0.2
    ' J- [) X: t, l) k% s5 \

    " a! f2 }+ Y. [) I% Z例如有个体S101011
    2 k8 `$ @0 W) L8 e' x
    & i0 t. L0 L" p( Q
    对其的第14位置的基因进行变异,则有
    ) i4 O3 f3 Y1 W9 l
    : }5 P& @7 B7 n# r
    S'=001111 % ^2 a2 q) F! \2 s0 [' I& f

    % e8 p7 M! n' c单靠变异不能在求解中得到好处。但是,它能保证算法过程不会产生无法进化的单一群体。因为在所有的个体一样时,交叉是无法产生新的个体的,这时只能靠变异产生新的个体。也就是说,变异增加了全局优化的特质。
    $ t5 w9 H1 `) a. Z7 Q- q

    : Q* `$ Q6 A2 _( Y) w5 s2 H5.全局最优收敛(Convergence to the global optimum) 4 e5 ^8 t! U. M) Y0 F1 j- f# \
    5 S0 J! E) y) `
    当最优个体的适应度达到给定的阀值,或者最优个体的适应度和群体适应度不再上升时,则算法的迭代过程收敛、算法结束。否则,用经过选择、交叉、变异所得到的新一代群体取代上一代群体,并返回到第2步即选择操作处继续循环执行。. S3 }! m7 [) I5 N# f! n: [5 y
    / i6 e; i6 |3 x, ]0 y' i! G% |' W8 @
    37中表示了遗传算法的执行过程。& l. Q  z( Z: S% d# ~4 _. E4 u3 M
    . i1 v* ]2 A" X. m; s8 \
    5 N* A* I# K7 `( P. ~) s- @
    ( O; E. u2 {( S+ c# Q) Q" f
    9 I% r+ ]" o8 ^6 O* Z/ a0 |3 J
    3-7 遗传算法原理
    3 _  |2 s; h5 q# ~

    3 ]8 c# l/ a: }$ Z5 @323遗传算法的应用
    / y# F1 R  J) k6 g3 ~: r- g# Z
    3 @5 E5 w& ]7 _# h) s7 J
    遗传算法在很多领域都得到应用;从神经网络研究的角度上考虑,最关心的是遗传算法在神经网络的应用。在遗传算法应用中,应先明确其特点和关键问题,才能对这种算法深入了解,灵活应用,以及进一步研究开发。' N1 t2 ~- Q, v. U$ I' z

    7 m2 Q1 ~; T# t! ]4 z  O一、遗传算法的特点
    - X8 q/ I, H$ T% D& T! Z3 _# P& H
    9 o2 _& X* d: B8 v5 ^  ?9 e1 {
    1.遗传算法从问题解的中集开始嫂索,而不是从单个解开始。
    " |6 v- d  P: H0 \, W& _3 @

      Z! `0 m5 C9 @% b) f9 }这是遗传算法与传统优化算法的极大区别。传统优化算法是从单个初始值迭代求最优解的;容易误入局部最优解。遗传算法从串集开始搜索,复盖面大,利于全局择优。
    0 x4 D; }6 j# v: F+ \2 ~' ]/ ^" t
    + p+ ?" H  _* {( z0 E5 O+ ^, r; n
    2.遗传算法求解时使用特定问题的信息极少,容易形成通用算法程序。4 `4 f6 m0 r' M/ V) O. O2 h: e
      o& r! F* Q" x" T/ I8 o& B" d
    由于遗传算法使用适应值这一信息进行搜索,并不需要问题导数等与问题直接相关的信息。遗传算法只需适应值和串编码等通用信息,故几乎可处理任何问题。
    2 h* v3 W, }: X5 s. N
    ! }; {; O) @# R( y+ {! W: F% Y+ a8 ?
    3.遗传算法有极强的容错能力4 F) `. J' A* i, L9 L

    ( k! d: t' i  L* [( q遗传算法的初始串集本身就带有大量与最优解甚远的信息;通过选择、交叉、变异操作能迅速排除与最优解相差极大的串;这是一个强烈的滤波过程;并且是一个并行滤波机制。故而,遗传算法有很高的容错能力。6 t7 L5 T1 G8 T

    9 Q1 c  f6 C9 H+ t' U4.遗传算法中的选择、交叉和变异都是随机操作,而不是确定的精确规则。
      _! L$ ^3 X8 G' T, H

    * r) T- x* T! F5 x- ]3 }, F这说明遗传算法是采用随机方法进行最优解搜索,选择体现了向最优解迫近,交叉体现了最优解的产生,变异体现了全局最优解的复盖。
    ' d& X+ ]# @. E4 n6 b* ?6 O

    ) y5 `  o, u( b; U: b( P5.遗传算法具有隐含的并行性
    1 r! g: B" v. s3 X: `9 v5 J  l; ~

    0 v/ ~0 }/ Y. y遗传算法的基础理论是图式定理。它的有关内容如下:+ ^2 u/ z, n- ]; S) Y+ k" s

    - T$ @) h, X) w4 c(1)图式(Schema)概念
    1 n' V* J, e/ n" |
    * Z. w. e4 t! X) R4 V1 N9 H
    一个基因串用符号集{01*}表示,则称为一个因式;其中*可以是01。例如:H=1xx 0 x x是一个图式。
    ( a: b( `; s; V: e# p, h2 g

    ' u6 M  \% k. B3 X2 e(2)图式的阶和长度+ V6 t0 g: i6 x1 L2 Y2 T
    # N' L5 V# J$ \8 E- Q/ T
    图式中01的个数称为图式的阶,并用0(H)表示。图式中第1位数字和最后位数字间的距离称为图式的长度,并用δ(H)表示。对于图式H1x x0x x,有0(H)2,δ(H)4
    / C" T% r8 g4 T. y7 m8 g
    5 T& v% T% N- E# {9 k6 u
    (3)Holland图式定理% F$ O# z* u% A

    6 @( Y( a  U$ M9 S# a) s低阶,短长度的图式在群体遗传过程中将会按指数规律增加。当群体的大小为n时,每代处理的图式数目为0(n3)
    * @% R7 v; R0 n" G4 [- p
    + `& R9 }  T; l" O. {( n
    遗传算法这种处理能力称为隐含并行性(Implicit Parallelism)。它说明遗传算法其内在具有并行处理的特质。. U. n  X7 ~! E% b& Y) f
    0 P- S4 H$ m6 N8 i6 W
    二、遗传算法的应用关键
    9 ?2 ^( t2 w7 M9 I2 S) ?8 z' n- p

    8 q& K( F" p! L+ R遗传算法在应用中最关键的问题有如下3
    % w1 C9 f( C% J+ P1 e
    1 D7 g% l( S: O& R# Y6 M
    1.串的编码方式
    " j; m! K+ I% n4 C* Y( J( c
    9 b, G( f  ~" d" y
    这本质是问题编码。一般把问题的各种参数用二进制编码,构成子串;然后把子串拼接构成“染色体”串。串长度及编码形式对算法收敛影响极大。8 I/ {" O! i# e+ Z/ l
    . f6 A# D; c& S5 o- E+ i
    2.适应函数的确定0 F8 e, A  p" `1 {. B

    ; f: k, ]' ~) n3 U适应函数(fitness function)也称对象函数(object function),这是问题求解品质的测量函数;往往也称为问题的“环境”。一般可以把问题的模型函数作为对象函数;但有时需要另行构造。
    4 N: m5 ?& A5 Q  k2 L  |
    ( n0 N6 _6 ^4 ^& g% ^5 B" ^
    3.遗传算法自身参数设定
    : ]' |+ K; J. [5 R' n
    , {! D6 L5 R. f, b" v3 I" E8 }! t
    遗传算法自身参数有3个,即群体大小n、交叉概率Pc和变异概率Pm, J- ?! n2 |% X2 T3 O* s1 Y" z

    * }) z3 \- K  v群体大小n太小时难以求出最优解,太大则增长收敛时间。一般n30-160。交叉概率Pc太小时难以向前搜索,太大则容易破坏高适应值的结构。一般取Pc=0.25-0.75。变异概率Pm太小时难以产生新的基因结构,太大使遗传算法成了单纯的随机搜索。一般取Pm00102
    1 \1 L2 Z! t& C& I# K
    ( ]3 r' P! _/ B/ }: k% n0 o
    三、遗传算法在神经网络中的应用; \9 x+ _$ m7 L4 v; [- d" p% q9 N

      {7 l4 Q) Q( y9 a遗传算法在神经网络中的应用主要反映在3个方面:网络的学习,网络的结构设计,网络的分析。
    ! @1 D" [0 V+ h: @
    6 r: b) Q+ n1 G# N$ `/ k$ Z6 T
    1.遗传算法在网络学习中的应用: c, h8 Q" \; [4 Q% R4 F2 S

    " D. P. w$ H  U4 @1 x- P在神经网络中,遗传算法可用于网络的学习。这时,它在两个方面起作用! M+ L& l, M+ c. J  E$ ]1 M! F
    / O$ }3 S( z4 j; @
    (1)学习规则的优化4 i; R' c# L7 }

    ( V. {3 O+ Y4 b8 K, V用遗传算法对神经网络学习规则实现自动优化,从而提高学习速率。1 k( ?8 i0 {0 V
    , E, A( ]0 R# H; t% K3 }+ G% W
    (2)网络权系数的优化3 n4 _8 K* x+ g7 O( \
    0 ?8 I, }( t  C/ S5 E( D- s
    用遗传算法的全局优化及隐含并行性的特点提高权系数优化速度。& B. R/ q/ ~- g. n0 h
    2 ]  m* u: [6 ]+ u1 j" q: Y
    2.遗传算法在网络设计中的应用; c( f7 c0 I) j0 ]7 D
    ; Y* z2 Y1 `$ i
    用遗传算法设计一个优秀的神经网络结构,首先是要解决网络结构的编码问题;然后才能以选择、交叉、变异操作得出最优结构。编码方法主要有下列3种:
    ) y- T5 ]# g5 s" E5 j+ e9 {7 P/ |! Y4 R
    3 G' L  S4 D6 F
    (1)直接编码法4 n" N: S8 o! O& X* D; u
    . B& g, {8 @. ~
    这是把神经网络结构直接用二进制串表示,在遗传算法中,“染色体”实质上和神经网络是一种映射关系。通过对“染色体”的优化就实现了对网络的优化。, l7 F7 Q; I+ E
      Z7 Y# h# n6 u+ @: u9 ^
    (2)参数化编码法' {  E+ j1 I& h( f2 x( E* f& g. f$ r6 r

    , t6 @1 W  D5 I8 |" Y参数化编码采用的编码较为抽象,编码包括网络层数、每层神经元数、各层互连方式等信息。一般对进化后的优化“染色体”进行分析,然后产生网络的结构。
    : K5 v% _1 P( u3 w- Y/ j
    . x0 ?1 B. {, P$ O- O
    (3)繁衍生长法# Z5 S% `' o; W2 T2 b5 t$ S" t
    0 ~5 m$ c* B* \4 [, U
    这种方法不是在“染色体”中直接编码神经网络的结构,而是把一些简单的生长语法规则编码入“染色体”中;然后,由遗传算法对这些生长语法规则不断进行改变,最后生成适合所解的问题的神经网络。这种方法与自然界生物地生长进化相一致。( D$ z0 ^' v3 N( B, [, A+ Y
    + t4 ^8 \& y0 d2 U1 r, V0 \
    3.遗传算法在网络分析中的应用" q/ A$ R3 k; y1 `
    7 l, c0 h# c4 t) w( S3 }' W% R1 p: y( l
    遗传算法可用于分析神经网络。神经网络由于有分布存储等特点,一般难以从其拓扑结构直接理解其功能。遗传算法可对神经网络进行功能分析,性质分析,状态分析。
    ! E3 g' X% d" Q! ^0 S, F8 L8 C

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

    Powered by Discuz! X3.5 Licensed

    © 2001-2025 Discuz! Team.

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