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

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

转(遗传算法)

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

    连续签到: 1 天

    [LV.2]偶尔看看I

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

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

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

    ×
    生物的进化是一个奇妙的优化过程,它通过选择淘汰,突然变异,基因遗传等规律产生适应环境变化的优良物种。遗传算法是根据生物进化思想而启发得出的一种全局优化算法。
    1 X) C. C/ G1 `0 {6 W' x) u$ s9 q

    ; E6 l5 X7 x% y" H* b; s" p遗传算法的概念最早是由Bagley J.D在1967年提出的;而开始遗传算法的理论和方法的系统性研究的是1975年,这一开创性工作是由Michigan大学的J.H.Holland所实行。当时,其主要目的是说明自然和人工系统的自适应过程。* W6 X$ B: R" |5 H& H: e

    ' w& A$ v* A. d& i- C$ v遗传算法简称GA(Genetic Algorithm),在本质上是一种不依赖具体问题的直接搜索方法。遗传算法在模式识别、神经网络、图像处理、机器学习、工业优化控制、自适应控制、生物科学、社会科学等方面都得到应用。在人工智能研究中,现在人们认为“遗传算法、自适应系统、细胞自动机、混沌理论与人工智能一样,都是对今后十年的计算技术有重大影响的关键技术”。
    3 T$ B: Z) Z/ K) W6 J' z

    - n6 e! g2 t/ q- m3.2.1 遗传算法的基本概念; v. b  F: l) A  J6 I
    6 n5 J" j  n- Z0 m
    遗传算法的基本思想是基于Darwin进化论和Mendel的遗传学说的。
    - \2 x% g' h9 ~1 L1 G) P
    3 V4 r& _; _3 W! |. {% o" A! `
    Darwin进化论最重要的是适者生存原理。它认为每一物种在发展中越来越适应环境。物种每个个体的基本特征由后代所继承,但后代又会产生一些异于父代的新变化。在环境变化时,只有那些熊适应环境的个体特征方能保留下来。
    5 P. ^5 ]9 u" a7 T# z. U1 u

    8 X6 g( o. U" s1 K- @2 tMendel遗传学说最重要的是基因遗传原理。它认为遗传以密码方式存在细胞中,并以基因形式包含在染色体内。每个基因有特殊的位置并控制某种特殊性质;所以,每个基因产生的个体对环境具有某种适应性。基因突变和基因杂交可产生更适应于环境的后代。经过存优去劣的自然淘汰,适应性高的基因结构得以保存下来。
    0 d! @2 Q, M0 c

    / t' m5 {) l" D3 K0 r$ d由于遗传算法是由进化论和遗传学机理而产生的直接搜索优化方法;故而在这个算法中要用到各种进化和遗传学的概念。这些概念如下:2 j! D. a9 p5 y1 {: P8 i/ ^7 M

    2 `. l# l( q; I6 s7 @* q一、串(String) ! w" c2 X: H8 P' x9 `" C6 I6 ^& ^
    2 ]4 `' v; i' i: ~9 I
    它是个体(Individual)的形式,在算法中为二进制串,并且对应于遗传学中的染色体(Chromosome)。/ W3 b: D/ d9 a- c' Y
    * [5 v4 E4 u: j8 h
    二、群体(Population) " d* k# H* J' f; I" q% f0 U
    2 R+ F7 q) T; d4 Y) g
    个体的集合称为群体,串是群体的元素( N# v7 v9 H/ X! N3 i7 T1 o

    . c1 M5 `7 z' z3 w三、群体大小(Population Size)
    $ F) _3 L! k0 e% D0 c/ A: n( F

    - X9 K$ v  T* `" W9 O: f在群体中个体的数量称为群体的大小。
    7 ?5 {0 V, {# B6 K

    ! g$ Z! S7 E! m) z- C* Y四、基因(Gene)
    4 @# C  B3 ?( B
    6 T2 M: G* ?3 h# o/ u
    基因是串中的元素,基因用于表示个体的特征。例如有一个串S=1011,则其中的1,0,1,1这4个元素分别称为基因。它们的值称为等位基因(Alletes)。+ L) T% k- ~! r8 w4 I) n  X
    , t% d. q" T3 a1 }8 b
    五 、基因位置(Gene Position)
    : z' ~( P- E: k
    ) U' a" R* @  N( _* `5 I& k
    一个基因在串中的位置称为基因位置,有时也简称基因位。基因位置由串的左向右计算,例如在串S=1101中,0的基因位置是3。基因位置对应于遗传学中的地点(Locus)。
    * _$ u& f; c. z) J! z, {
      ]; A* s4 Z! t# _. r5 u3 ?* ~9 U
    六、基因特征值(Gene Feature) ! q6 E8 @4 B, ^. R0 N

    ' q8 A5 @/ w: ]. n3 A( o在用串表示整数时,基因的特征值与二进制数的权一致;例如在串S=1011中,基因位置3中的1,它的基因特征值为2;基因位置1中的1,它的基因特征值为8。
      U& }* q$ q& Y/ k& z$ g3 W- u

      w7 }, J/ B) ~七、串结构空间SS
    + u( d5 P+ S3 R
    1 C/ ~$ _  G7 r6 P- Y
    在串中,基因任意组合所构成的串的集合。基因操作是在结构空间中进行的。串结构空间对应于遗传学中的基因型(Genotype)的集合。( M9 l. r) k6 o7 @, l  j* S( v
    6 T' l& \, D1 k9 w: b6 j. |+ T
    八、参数空间SP
    + E2 ], {, u" ^) Q/ n' k

    $ `8 k; {  V* i这是串空间在物理系统中的映射,它对应于遗传学中的表现型(Phenotype)的集合。3 M* w, s- d7 T, X) E; s

    4 [0 X3 K* F( d1 A+ K" O九、非线性
    9 ]( Q1 M" o) Z# J- q3 X
    * F0 }- G! g4 |" M# V+ ^3 m, q
    它对应遗传学中的异位显性(Epistasis)
    ! H0 g. ?9 w$ c" e

    - F' R+ Z% M6 r# `+ o+ p9 y十、适应度(Fitness) " r; m5 p, z5 g; ~

    3 Z1 U; w( ^" E! X: ?: x& ]; L4 n# u表示某一个体对于环境的适应程度。/ c! y9 Z2 f" D! l$ S

    ; e/ [8 y* k9 b! L* t遗传算法还有一些其它的概念,这些概念在介绍遗传算法的原理和执行过程时,再进行说明。" s& Y! {% e6 Z- ]# I% Q
    8 C" J0 T2 [, u& N) W
    3.2.2遗传算法的原理) d% t" p) b8 u+ z  m

    6 c* d6 z* e4 u& l. P+ R* c7 G; W( {遗传算法GA把问题的解表示成“染色体”,在算法中也即是以二进制编码的串。并且,在执行遗传算法之前,给出一群“染色体”,也即是假设解。然后,把这些假设解置于问题的“环境”中,并按适者生存的原则,从中选择出较适应环境的“染色体”进行复制,再通过交叉,变异过程产生更适应环境的新一代“染色体”群。这样,一代一代地进化,最后就会收敛到最适应环境的一个“染色体”上,它就是问题的最优解。
    # g9 P9 E7 \" k  _, f+ C; e* d

    ' d4 N8 y* k. K4 w& r; }一、遗传算法的目的! g; y, E" I! A) z% b; g5 m+ e

    5 h9 R# `+ Y4 U9 t' U# F典型的遗传算法CGA(Canonical Genetic Algorithm)通常用于解决下面这一类的静态最优化问题:
    8 c, O( V" r: B3 L5 X: B
    ; h* w! Z  B% J6 `
    考虑对于一群长度为L的二进制编码bi,i=1,2,…,n;有
    % g( y- a- Z7 w! _. ]

    $ z3 N9 M+ m4 j* Ybi∈{0,1}L        (3-84) 8 E  @) c- p: W0 Z+ T" g: Z

    % h2 O9 q8 M* p8 ~: c9 H1 r给定目标函数f,有f(bi),并且$ w2 J% e7 }( z! [0 e  p( F! ^
    9 e6 |8 j7 P9 B: p& Q
    0<F(BI)<∞< P> 6 a1 u$ V2 O! O  u/ f: p
    " w! b7 K, u6 \& h* ?) U
    同时
    4 G& \8 V, z8 s* ^) @

    2 u/ P6 Z1 y3 Z" E( R. X1 k5 ^f(bi)≠f(bi+1) ! Q) w" N/ H4 u* y3 j2 z6 c  ~
      H; f& h3 N5 D6 b
    求满足下式- z& j# {/ l, a1 L. T

    ' E8 U/ V' b9 e4 z" Fmax{f(bi)|bi∈{0,1}L}
    6 L3 ]4 y0 ]. e" ^
    6 R9 t  ~7 J" `, |
    的bi。4 Y' B# w2 r7 ~" o; S

    6 _' K, S) K+ K" C4 B很明显,遗传算法是一种最优化方法,它通过进化和遗传机理,从给出的原始解群中,不断进化产生新的解,最后收敛到一个特定的串bi处,即求出最优解。
    , Z; C  p7 z) w) d

    6 p; N/ p$ |$ ^% k- z二、遗传算法的基本原理- B3 ^- A  M! l7 V- l+ S5 c
    ! h# X  s& J  j
    长度为L的n个二进制串bi(i=1,2,…,n)组成了遗传算法的初解群,也称为初始群体。在每个串中,每个二进制位就是个体染色体的基因。根据进化术语,对群体执行的操作有三种:3 V1 G; Z! |* ]3 q2 M

    5 F. }* d$ V* h$ _$ q1.选择(Selection) : K3 C1 }! D0 H

    $ Y, t5 R2 Z) ^9 \- b* p这是从群体中选择出较适应环境的个体。这些选中的个体用于繁殖下一代。故有时也称这一操作为再生(Reproduction)。由于在选择用于繁殖下一代的个体时,是根据个体对环境的适应度而决定其繁殖量的,故而有时也称为非均匀再生(differential reproduction)。4 z) ^3 T, R# V/ T0 e
      N6 W! N  p5 w0 y: n- J
    2.交叉(Crossover)
    % O: f4 d, {7 A: s+ R+ k

    / ?3 k) B- H1 M9 i8 N7 l& M这是在选中用于繁殖下一代的个体中,对两个不同的个体的相同位置的基因进行交换,从而产生新的个体。
    1 a, q, L, Q$ k. Z7 r+ e
    , {1 c# h; @1 x( m9 L: ~/ t/ p
    3.变异(Mutation) % `# [  i- s  h1 d
    % x' `  D2 m! U# [: f
    这是在选中的个体中,对个体中的某些基因执行异向转化。在串bi中,如果某位基因为1,产生变异时就是把它变成0;反亦反之。
    8 F- [% g+ b1 D- \+ u# i6 W

    " ?1 I( `, G# L* U; [& t& I( s1 ]遗传算法的原理可以简要给出如下:# U" S# j2 g3 S8 R. R" g
    ; x5 i+ v( H( A, Y+ q, V
    choose an intial population
    % K8 z" }" t6 _5 T$ U8 I8 o# b
    ; n) M3 i9 h: A, l0 w/ b3 n) y! H
    determine the fitness of each individual
    . _7 a% Z- B. K% U: }# {% @; Y

    8 G2 A2 N/ n5 `" b$ J# _4 xperform selection
    8 S. t8 t2 @' H3 L

    8 j- S+ [% o, K/ q5 M; vrepeat
    ; ]! D" L$ O- a' X: l8 i
    4 ?0 e3 R% m/ ]4 o
        perform crossover
    & l0 c, `. C8 k' L( C2 y$ q

    ' V9 f) F, a4 I$ p( M* H" |    perform mutation 9 r3 C  S/ Z& K8 h1 B: B
    6 M& b" Q( `( N4 s1 y$ o7 [
        determine the fitness of each individual 6 v' u" D- e( M' z' x5 V

    ' ^/ X' m5 n" C% v    perform selection
    % n. e& s6 [- T3 F# s' ^! D8 Y6 R

    : T( O2 q9 }+ M* K: X# uuntil some stopping criterion applies   R" T. s. M5 j  y5 M
    ( \1 @. ]: W! O9 @& d, J
    这里所指的某种结束准则一般是指个体的适应度达到给定的阀值;或者个体的适应度的变化率为零。
    & _) f6 u9 a. }. H- A7 o5 a
    三、遗传算法的步骤和意义
    1 {/ u7 l0 ]7 W

    # P( ]7 X1 r: ^' h/ o1.初始化
    % `' k) R* }4 J+ u/ m

    1 a0 C- C7 L% z! L选择一个群体,即选择一个串或个体的集合bi,i=1,2,...n。这个初始的群体也就是问题假设解的集合。一般取n=30-160。
    + L  t7 s! v) j1 S4 G( r  I
    8 P, l1 v) x# T& T2 R& r9 \, i* V
    通常以随机方法产生串或个体的集合bi,i=1,2,...n。问题的最优解将通过这些初始假设解进化而求出。" Y, s/ c& {! z; M# K- W

    3 z1 Y7 M- P8 F4 d3 }0 K; t2.选择
    + g! j, g( }0 [" F

    / s9 ]4 }& O2 v7 Q根据适者生存原则选择下一代的个体。在选择时,以适应度为选择原则。适应度准则体现了适者生存,不适应者淘汰的自然法则。; Y! r3 i! I( g  q- e
    ; x% b5 g& E2 H
    给出目标函数f,则f(bi)称为个体bi的适应度。以
    : i; I) g0 [- `! J/ I
    ! A0 b7 r" }0 `2 T$ i8 O6 |: h
    $ D: ~7 n4 w! p; Q9 c' j8 |/ b  a
    6.2.ht40.gif
    6 U/ o  J4 y" v4 o为选中bi为下一代个体的次数。) l3 @& t! l  p0 U$ C

    ! Z3 p* ]+ ~" I% r" D2 S* k" X- J显然.从式(3—86)可知:
    ' h$ z- \9 K9 [$ g/ I+ q  F

    ( X( ?8 ^7 _. V- H$ ^( ^2 X  A(1)适应度较高的个体,繁殖下一代的数目较多。  G7 Z6 B* v) |+ S6 k
    2 {! K- l0 ], a* \( s
    (2)适应度较小的个体,繁殖下一代的数目较少;甚至被淘汰。
    ' @6 Q) u) \+ c0 C5 q: }8 ?; ~
    " p( Q7 X3 V7 T3 C8 n8 y
    这样,就产生了对环境适应能力较强的后代。对于问题求解角度来讲,就是选择出和最优解较接近的中间解。: _- V3 E" c8 U9 Z6 X

    3 F9 z/ m/ y9 \( Z8 _3.交叉* W, W4 R* y- l' t" N7 p- X+ B/ R
    对于选中用于繁殖下一代的个体,随机地选择两个个体的相同位置,按交叉概率P。在选中的位置实行交换。这个过程反映了随机信息交换;目的在于产生新的基因组合,也即产生新的个体。交叉时,可实行单点交叉或多点交叉。
    8 z$ I+ n. g/ ^
    : W: c3 \' B9 w. B3 t  ~8 I# W: \
    例如有个体; v2 W$ @( @: Q7 R6 a/ s# [3 x
    4 J- p1 a) N  a5 F- Y
    S1=100101 6 A" H5 S/ W% k: z) T% g' m

      ^) d. x4 i7 `0 ]6 zS2=010111
    $ {% [7 |) t7 [: V" Y; _5 i
    ! F! W7 p: z& h+ k5 {
    选择它们的左边3位进行交叉操作,则有
    / U. h1 r" B- v  N0 G! f: _+ ?1 K

    % }3 Z) T. |2 d8 p0 e: u% MS1=010101 + ?9 @5 N7 I. ^5 v/ B' f& L
    : y5 L9 w0 X2 M8 D1 k$ \
    S2=100111 ( O0 Z. z; N3 B2 b2 [3 w: G
    7 H  d* r& C. y9 t/ Q- G/ y
    一般而言,交 婊显譖。取值为0.25—0.75。
    9 {" Z* u0 ]" q' L5 y; k' Z& d: K

    7 ^: [! V  [# r( P2 D& X9 \4.变异) c" b  K; W' _3 |) f, A( Y

    + X5 m* P! x6 w: ~) y根据生物遗传中基因变异的原理,以变异概率Pm对某些个体的某些位执行变异。在变异时,对执行变异的串的对应位求反,即把1变为0,把0变为1。变异概率Pm与生物变异极小的情况一致,所以,Pm的取值较小,一般取0.01-0.2。, x% e" ?4 r; o4 \4 Q+ G; U  S+ e

    ; o& R6 s& Z! [$ P7 K1 b  ?1 w例如有个体S=101011。8 ?, |7 F" I# ~
    # P2 b; I' ]) ^- k9 m4 V+ x
    对其的第1,4位置的基因进行变异,则有
    9 w  D8 `1 l$ N- {8 O. h
    - y, ^# a0 L6 v+ C. o
    S'=001111
    * A8 u& H, L$ `* H# x" P
    8 F( n5 F8 e/ {& g4 U
    单靠变异不能在求解中得到好处。但是,它能保证算法过程不会产生无法进化的单一群体。因为在所有的个体一样时,交叉是无法产生新的个体的,这时只能靠变异产生新的个体。也就是说,变异增加了全局优化的特质。
    9 n3 E8 u: E4 u* v9 ]3 A& l( B4 |5 |

    & k) H6 }4 x/ x- x6 i. \5.全局最优收敛(Convergence to the global optimum)
    ( V4 k% w* l" R; g6 i$ z9 C
    . N* ?) T+ X+ x( o# y
    当最优个体的适应度达到给定的阀值,或者最优个体的适应度和群体适应度不再上升时,则算法的迭代过程收敛、算法结束。否则,用经过选择、交叉、变异所得到的新一代群体取代上一代群体,并返回到第2步即选择操作处继续循环执行。/ J5 {% L( d8 B0 o
      T9 z% M  K# k; f  _
    图3—7中表示了遗传算法的执行过程。
    # p0 `" f. w0 @- B
    ; I1 X5 H1 K. a8 t" m2 P2 a/ i8 ?3 j' z) }# o
    Genetic_Algorithm.gif # ?- V" \" \4 X8 q# X" l- u

    & r2 M- ]$ t* ^图3-7 遗传算法原理4 @% z# H: y5 [  S. P* @
    5 m; Z5 S8 s& T) W
    3.2.3遗传算法的应用( ^6 R8 W* g  f, N+ r  m
    5 R, |/ j. m5 g
    遗传算法在很多领域都得到应用;从神经网络研究的角度上考虑,最关心的是遗传算法在神经网络的应用。在遗传算法应用中,应先明确其特点和关键问题,才能对这种算法深入了解,灵活应用,以及进一步研究开发。
    + z2 r6 i0 {7 g, q0 ?

    8 X3 s/ I" C! O3 [0 G一、遗传算法的特点
    7 y+ x4 s1 @( A6 \. j% M

    ) X% o9 y! U1 R! U- b/ r1.遗传算法从问题解的中集开始嫂索,而不是从单个解开始。7 p# }: v1 Q/ n
    # [5 `: |# H7 ^6 k; @) @
    这是遗传算法与传统优化算法的极大区别。传统优化算法是从单个初始值迭代求最优解的;容易误入局部最优解。遗传算法从串集开始搜索,复盖面大,利于全局择优。% ~5 E- [" k0 }! F

    # {" l  c7 h: M) s2.遗传算法求解时使用特定问题的信息极少,容易形成通用算法程序。' I' Z# Z3 ^5 P) J+ t, G

    " [* e. `( M8 J8 B3 k5 S& ~由于遗传算法使用适应值这一信息进行搜索,并不需要问题导数等与问题直接相关的信息。遗传算法只需适应值和串编码等通用信息,故几乎可处理任何问题。
    3 H1 O# h+ B5 a' C
    7 o% S: Y9 l9 @+ |, s5 T
    3.遗传算法有极强的容错能力: @( z) J& N+ W0 a- v

    - _7 Y7 U2 v" r: n$ |遗传算法的初始串集本身就带有大量与最优解甚远的信息;通过选择、交叉、变异操作能迅速排除与最优解相差极大的串;这是一个强烈的滤波过程;并且是一个并行滤波机制。故而,遗传算法有很高的容错能力。
    . B7 Z; Q* x6 z

    0 D* \) B. O1 ~1 A) f4.遗传算法中的选择、交叉和变异都是随机操作,而不是确定的精确规则。
    ! P8 m! n+ g  \0 G8 c5 q

    , y$ F( }+ O3 q: `这说明遗传算法是采用随机方法进行最优解搜索,选择体现了向最优解迫近,交叉体现了最优解的产生,变异体现了全局最优解的复盖。
    ) C' C& u% E  p4 x: R  V5 K% w  ^

    5 X1 {  ?; I6 w8 O/ W5.遗传算法具有隐含的并行性
    4 a8 f; W7 e5 [7 h

    7 n% [  T+ T2 a4 P& R) G遗传算法的基础理论是图式定理。它的有关内容如下:
    2 v( ~$ K% U6 X& c1 r3 ]+ V2 t! j

    2 |" G: x. R# T(1)图式(Schema)概念
    & A+ h# e# I, Z8 E7 V

    1 V5 b+ B+ U5 P0 }% p# \5 A6 K一个基因串用符号集{0,1,*}表示,则称为一个因式;其中*可以是0或1。例如:H=1xx 0 x x是一个图式。4 b+ ?. ?' N- r( ?5 d( }3 j

    6 f" h& h7 W8 T+ G1 j/ a(2)图式的阶和长度
    7 g/ T. f/ K+ ^2 S
    . y# F5 K5 \# M$ Y: u2 I
    图式中0和1的个数称为图式的阶,并用0(H)表示。图式中第1位数字和最后位数字间的距离称为图式的长度,并用δ(H)表示。对于图式H=1x x0x x,有0(H)=2,δ(H)=4。
    3 n8 {$ a( W1 X  b& S
    : u: h, q/ n) a- l
    (3)Holland图式定理- w' j- A3 y0 o: e
    - D" m- O" Q1 ^. _
    低阶,短长度的图式在群体遗传过程中将会按指数规律增加。当群体的大小为n时,每代处理的图式数目为0(n3)。
    $ S' e4 ?9 k6 q$ [2 i

    . b, U) m0 F# G- i" F+ j8 T3 C遗传算法这种处理能力称为隐含并行性(Implicit Parallelism)。它说明遗传算法其内在具有并行处理的特质。6 ^7 R* v! }) E& j2 t) l! j

      E" K2 E) ^, l( F" _: ]- P5 r, z& A二、遗传算法的应用关键2 ]+ g- F' s. X0 o

    / N3 r! d9 H: o" `- M遗传算法在应用中最关键的问题有如下3个
    5 D, X% ~% A: _+ v$ U% t

    6 L+ P$ @, Y+ A( z% |1.串的编码方式
    ; K8 i, [5 j+ e: ^2 K

    ; G: C' z: {- ]: P; J这本质是问题编码。一般把问题的各种参数用二进制编码,构成子串;然后把子串拼接构成“染色体”串。串长度及编码形式对算法收敛影响极大。2 K& H6 d6 q- U9 b  e9 c
    0 f5 X4 Q. t7 f2 @: T/ W/ J
    2.适应函数的确定
    . |5 ~- E4 f" e! ~4 @
    ; W$ D) n+ a+ U. Q& Z
    适应函数(fitness function)也称对象函数(object function),这是问题求解品质的测量函数;往往也称为问题的“环境”。一般可以把问题的模型函数作为对象函数;但有时需要另行构造。
    6 K" Q+ ?* g3 A

    , M/ ?' p; X8 b/ G0 y3.遗传算法自身参数设定
    1 k3 x, o9 M* ]9 k7 Y9 ^
    0 ?2 x7 f: [% u* Q+ Y+ p
    遗传算法自身参数有3个,即群体大小n、交叉概率Pc和变异概率Pm。3 O" J  |( w) `8 K& c0 W

    2 N& x: Q& f; g5 ~群体大小n太小时难以求出最优解,太大则增长收敛时间。一般n=30-160。交叉概率Pc太小时难以向前搜索,太大则容易破坏高适应值的结构。一般取Pc=0.25-0.75。变异概率Pm太小时难以产生新的基因结构,太大使遗传算法成了单纯的随机搜索。一般取Pm=0.01—0.2。
    " t! |# H3 J% ?- R( X! o* I

    5 T5 s# \1 k0 Y1 ^- _4 w/ e三、遗传算法在神经网络中的应用! g) l$ ^& M, }8 D( ?4 u( j& K; c

    6 F  p' h% X6 U7 ~) d8 R遗传算法在神经网络中的应用主要反映在3个方面:网络的学习,网络的结构设计,网络的分析。) U) Z* Y2 |& G6 z6 e
    & w& }0 C. q, ]2 H& F$ n
    1.遗传算法在网络学习中的应用2 T3 ?, L' _* d# |" H
    4 H9 k' e8 }9 I% J; B( @
    在神经网络中,遗传算法可用于网络的学习。这时,它在两个方面起作用
    ) `5 {: R% q7 f8 R/ s% Z) |
    7 s- _4 u4 y' Z
    (1)学习规则的优化% e& ~1 r0 T( Y6 l) A# o. J. d* u
    3 f. f6 u6 h/ P& w$ k; e1 B
    用遗传算法对神经网络学习规则实现自动优化,从而提高学习速率。
    & E- q' l  ~; u# Z
    3 O% W4 i' _: E" ~' U
    (2)网络权系数的优化( G, L. Z( z% v) R) \* z8 Q+ O0 D

    - j! @, [6 z, ]# B, {" `用遗传算法的全局优化及隐含并行性的特点提高权系数优化速度。
    ( O7 B8 D2 n  q$ _
    4 k. f$ I! ~3 ^2 g: a7 h/ Q. r
    2.遗传算法在网络设计中的应用
      d6 A6 d! V. A
    2 I7 X5 s4 R. m' L) j  W" m; A9 N+ i
    用遗传算法设计一个优秀的神经网络结构,首先是要解决网络结构的编码问题;然后才能以选择、交叉、变异操作得出最优结构。编码方法主要有下列3种:4 y( Y7 Z, ?* s+ ~

    + e" Y* p1 A7 k(1)直接编码法( T$ A( p& o# T; }
    4 y9 ^5 b4 o) o8 i0 v
    这是把神经网络结构直接用二进制串表示,在遗传算法中,“染色体”实质上和神经网络是一种映射关系。通过对“染色体”的优化就实现了对网络的优化。2 \( `& k" z/ X( D8 Z
    $ h% f/ e1 V8 {0 }: ~
    (2)参数化编码法
    - O1 s7 [) J' H: D8 _

    ) Q# `, K* g0 y" g7 J1 L: D参数化编码采用的编码较为抽象,编码包括网络层数、每层神经元数、各层互连方式等信息。一般对进化后的优化“染色体”进行分析,然后产生网络的结构。: p$ J5 n. {, P9 K4 m# j% X1 Y! `' m

    0 z) h0 W1 @8 F5 n2 h& d3 k; b9 J) v(3)繁衍生长法$ @% g* O7 F( Z  l
    * _5 o9 o3 E/ d
    这种方法不是在“染色体”中直接编码神经网络的结构,而是把一些简单的生长语法规则编码入“染色体”中;然后,由遗传算法对这些生长语法规则不断进行改变,最后生成适合所解的问题的神经网络。这种方法与自然界生物地生长进化相一致。
      a6 W) Y3 Q. n& u
    6 n4 ?- |: r5 h, l* J5 X$ A) P
    3.遗传算法在网络分析中的应用, i! L- j5 D( j% l. _
    $ h- W8 ^* A2 W: w( o8 r
    遗传算法可用于分析神经网络。神经网络由于有分布存储等特点,一般难以从其拓扑结构直接理解其功能。遗传算法可对神经网络进行功能分析,性质分析,状态分析。
    3 O2 r$ J1 h3 t9 ^4 W1 J* s( u! U3 G

    ' C# e6 g5 @3 n" A. @* p+ {3 S- X1 p遗传算法虽然可以在多种领域都有实际应用,并且也展示了它潜力和宽广前景;但是,遗传算法还有大量的问题需要研究,目前也还有各种不足。首先,在变量多,取值范围大或无给定范围时,收敛速度下降;其次,可找到最优解附近,但无法精确确定最扰解位置;最后,遗传算法的参数选择尚未有定量方法。对遗传算法,还需要进一步研究其数学基础理论;还需要在理论上证明它与其它优化技术的优劣及原因;还需研究硬件化的遗传算法;以及遗传算法的通用编程和形式等。
    ( Z6 x) O4 C7 Z. Y

    0 E8 N- q8 n; y9 }8 S3 {

    " |4 M$ |8 e3 a3 Q
    三、遗传算法的步骤和意义
    % L! a4 \# q/ R
    1 Q4 n# p( `' c) y' {; N) B
    1.初始化
    ; W# u4 m' G' E) N" B

    0 r% O# S- C0 K4 H7 S0 @- ], L选择一个群体,即选择一个串或个体的集合bi,i=1,2,...n。这个初始的群体也就是问题假设解的集合。一般取n=30-160。! ]3 E8 b- Y/ k4 f

    ) M3 i) r1 P5 K/ O通常以随机方法产生串或个体的集合bi,i=1,2,...n。问题的最优解将通过这些初始假设解进化而求出。
    & Z8 E! z/ _( U* a
    , ~8 d/ @) x/ _; g' Q; A# o
    2.选择* h, [+ c( L( O1 n3 j. T
    % \4 p, l4 @: M0 ~
    根据适者生存原则选择下一代的个体。在选择时,以适应度为选择原则。适应度准则体现了适者生存,不适应者淘汰的自然法则。
    ! q- G7 U$ l* B2 \6 y. y: N
    % o1 R: d) f# B  p; Q( C: l' X  B
    给出目标函数f,则f(bi)称为个体bi的适应度。以
    0 y! g  y1 u' H( H- U$ H# ~* f
    7 X) }( f. Q  }2 @. _4 d2 j- [4 |: a

    / S' X2 X  H) q0 o* d& Q3 r1 a' e% t" U% c2 c# u
    为选中bi为下一代个体的次数。" {9 h) [; q4 H% D1 u0 g- N( n! l, Q

    8 p6 T% [$ X7 ~2 }# K/ n显然.从式(3—86)可知:
    2 X) I0 y: N  x

    % T' V  b5 s  W+ e( K! o(1)适应度较高的个体,繁殖下一代的数目较多。6 s+ Z; J. p. b0 T
    3 X. B  a3 o1 y9 K% K
    (2)适应度较小的个体,繁殖下一代的数目较少;甚至被淘汰。
    0 i4 h4 y# R! P6 Z

    ' `% D1 C0 g7 [" _9 d这样,就产生了对环境适应能力较强的后代。对于问题求解角度来讲,就是选择出和最优解较接近的中间解。% a1 A/ S: {2 ?. X# e. b* G) P
    $ \! N1 X, F: s" n9 b- ?
    3.交叉
    0 f$ S) e8 h* U/ O& V对于选中用于繁殖下一代的个体,随机地选择两个个体的相同位置,按交叉概率P。在选中的位置实行交换。这个过程反映了随机信息交换;目的在于产生新的基因组合,也即产生新的个体。交叉时,可实行单点交叉或多点交叉。( g% x! v8 B$ \- H" o" |

    7 @" J* J, X# s$ ^) Q3 p例如有个体6 E9 \4 \3 s) [8 K2 l1 `1 O
    - c4 Y# @7 B% k" S1 d) m& L7 W& ^
    S1=100101 5 ~, I( N/ w/ m* Y' U$ g

    , L4 W/ @' U, U* `( b0 C$ f! US2=010111 * x0 j1 \* A/ Z5 T7 f

      M0 a4 {$ e! \$ F. ?8 g选择它们的左边3位进行交叉操作,则有' H8 d6 z6 @) V6 E6 D4 H
    ; ?5 ^5 t6 I! Y6 N3 Y0 m+ i
    S1=010101 " P6 n* h) g# g* h! N* t, E
    # V( r2 L- F( w  Q+ t# O
    S2=100111
    " X6 {8 i9 ?: p" [# v, `

    8 j4 z! e. m5 `; A一般而言,交 婊显譖。取值为0.25—0.75。
    $ a2 [/ C7 w6 A1 p; I) c

    - y: ]' `1 b3 m% P+ {! y' @* K4.变异; F& Y6 Q, U3 u! A+ h6 e

    " Z! o$ u; l' G& f4 c根据生物遗传中基因变异的原理,以变异概率Pm对某些个体的某些位执行变异。在变异时,对执行变异的串的对应位求反,即把1变为0,把0变为1。变异概率Pm与生物变异极小的情况一致,所以,Pm的取值较小,一般取0.01-0.2。
    $ [/ g+ m! P( L' E! A) V

    ; g1 Y" ]: F9 Z) S- d# v! _3 d例如有个体S=101011。
    , L. O: k9 X. l0 l+ k8 X
    ) ~" F+ l9 m+ r4 G
    对其的第1,4位置的基因进行变异,则有
      J4 V# g2 ^3 [

    ( t8 v( M* f2 T) K3 ^S'=001111
    , L% E2 ^8 |1 K- l. j9 r. t9 U% S
    ' T: C7 e. n6 ^2 x. _+ v
    单靠变异不能在求解中得到好处。但是,它能保证算法过程不会产生无法进化的单一群体。因为在所有的个体一样时,交叉是无法产生新的个体的,这时只能靠变异产生新的个体。也就是说,变异增加了全局优化的特质。
    0 X# c, U+ q* ]( [
    5 a/ e* t& t( k8 H: y1 M  d0 M* a
    5.全局最优收敛(Convergence to the global optimum) 4 `2 x9 ^1 L- w9 ?
      H3 w8 I" R8 ]; r/ b4 A4 ^0 L
    当最优个体的适应度达到给定的阀值,或者最优个体的适应度和群体适应度不再上升时,则算法的迭代过程收敛、算法结束。否则,用经过选择、交叉、变异所得到的新一代群体取代上一代群体,并返回到第2步即选择操作处继续循环执行。
    ( a3 Z: y7 J; s) c

    % M3 a% Q6 A9 N& i/ }% A  [, E图3—7中表示了遗传算法的执行过程。
    9 s; }/ O$ \/ }+ a& d( O* m9 w
    + h& F: ^; Y6 N8 T
    - B9 C" s% K) l  ]6 M
    # I/ {6 v) G/ s' \. L% F* T$ X
    4 R; }% e' d4 a7 k# ^7 D1 `0 F图3-7 遗传算法原理1 d( Z  y8 C+ R  c* l
    6 P* Q- f$ |+ Q+ K
    3.2.3遗传算法的应用
    / M; S; S8 H$ c5 u" D9 Q3 B

    - I* n9 G  j; Y遗传算法在很多领域都得到应用;从神经网络研究的角度上考虑,最关心的是遗传算法在神经网络的应用。在遗传算法应用中,应先明确其特点和关键问题,才能对这种算法深入了解,灵活应用,以及进一步研究开发。/ F) v- e( T- f

    $ e% j  g8 }! V) p/ i2 M, p) |# l一、遗传算法的特点
    0 g6 v' Y- o1 t5 {* k! A) ^3 i) h
    7 Z5 }; o9 r# o
    1.遗传算法从问题解的中集开始嫂索,而不是从单个解开始。
    * p. q) N" F0 E0 H# j, z0 ~
    7 ], y; m+ }  \0 b$ A2 l
    这是遗传算法与传统优化算法的极大区别。传统优化算法是从单个初始值迭代求最优解的;容易误入局部最优解。遗传算法从串集开始搜索,复盖面大,利于全局择优。6 G& w' f! n% p: ?
    5 R" t7 A# ~$ U" U6 y6 u. u
    2.遗传算法求解时使用特定问题的信息极少,容易形成通用算法程序。$ Z( _$ F7 Z* f

    6 Q* e. N5 J( `# Z$ k$ c, q由于遗传算法使用适应值这一信息进行搜索,并不需要问题导数等与问题直接相关的信息。遗传算法只需适应值和串编码等通用信息,故几乎可处理任何问题。% M' T9 t: `& e0 H
    5 }. K" B5 Q) {- T. p4 V2 R& n
    3.遗传算法有极强的容错能力) y: w5 V. r( j+ d  b/ x
    $ ~2 |5 o7 K9 z, G8 j5 B& b' ^
    遗传算法的初始串集本身就带有大量与最优解甚远的信息;通过选择、交叉、变异操作能迅速排除与最优解相差极大的串;这是一个强烈的滤波过程;并且是一个并行滤波机制。故而,遗传算法有很高的容错能力。
    7 K% N! i7 M  K. n' `& L9 z

    # ?' e# i/ m$ O8 d7 C4 R4.遗传算法中的选择、交叉和变异都是随机操作,而不是确定的精确规则。9 q  B2 ?. q' s( T# M

    ( {( x/ G+ v9 E; v5 T* u这说明遗传算法是采用随机方法进行最优解搜索,选择体现了向最优解迫近,交叉体现了最优解的产生,变异体现了全局最优解的复盖。, R% V0 `8 O) B1 a

    " g. w. z, x( \7 _+ g; b2 k* y& G" w5.遗传算法具有隐含的并行性
    $ q( [+ `2 C; {8 y: w+ F1 i" b4 R

    0 `/ K' l& g  N4 x遗传算法的基础理论是图式定理。它的有关内容如下:# C, W2 D+ p+ H2 b

    # y8 l1 f* Q# O/ y6 |(1)图式(Schema)概念: Z- e9 _5 `. o+ q5 ]) J
    ; k: m9 ?6 \' }# c7 E
    一个基因串用符号集{0,1,*}表示,则称为一个因式;其中*可以是0或1。例如:H=1xx 0 x x是一个图式。
    ; y% j% W; A8 b7 k( r

    ! ?8 z6 [2 G' }! J" Y1 X1 u(2)图式的阶和长度
    / h3 q: D9 O6 A9 n5 N; q9 \
      j6 E$ |' c7 Y5 }( a
    图式中0和1的个数称为图式的阶,并用0(H)表示。图式中第1位数字和最后位数字间的距离称为图式的长度,并用δ(H)表示。对于图式H=1x x0x x,有0(H)=2,δ(H)=4。
    * j. v1 W7 i+ x5 d' p3 Z
    5 F2 M+ G' Y& C2 A% I; h! q# \
    (3)Holland图式定理
    & S2 ?' H, C% L/ d% y. _4 P

    9 A% c; t6 ?- }5 w低阶,短长度的图式在群体遗传过程中将会按指数规律增加。当群体的大小为n时,每代处理的图式数目为0(n3)。# m# a+ ?8 R6 g% Z/ B' M

    + Z9 u& }& Q" y: K遗传算法这种处理能力称为隐含并行性(Implicit Parallelism)。它说明遗传算法其内在具有并行处理的特质。; s2 Q5 a4 c; I. I# k. Q3 B7 q

    9 l- |0 r7 ?4 p0 R% _二、遗传算法的应用关键, {  B$ C( Z2 P! c
    % N* V; v$ ~) E6 s! d4 _! T
    遗传算法在应用中最关键的问题有如下3个
    " m: R  C3 |9 h5 k+ @8 u" H

    3 g" A4 H5 T7 A! ~1.串的编码方式
    % t" l$ b: ^8 v# J& ^  O

    / B: W( l. c1 T4 M1 k' Y1 c; t( w这本质是问题编码。一般把问题的各种参数用二进制编码,构成子串;然后把子串拼接构成“染色体”串。串长度及编码形式对算法收敛影响极大。
    ( P# Z- i/ H0 V% U- x
    : k" D& c1 `3 J9 \$ U5 H
    2.适应函数的确定
      N: j, F2 I, B: Q7 N% n) |

    2 [; V2 ?+ ~/ M* W9 j6 g# m: q6 J* {适应函数(fitness function)也称对象函数(object function),这是问题求解品质的测量函数;往往也称为问题的“环境”。一般可以把问题的模型函数作为对象函数;但有时需要另行构造。7 }2 {3 s4 k' \' m
    $ ]' A2 n8 G7 Q7 U
    3.遗传算法自身参数设定  j) @* f. M/ D2 F9 Z& k. _

    3 H- ?  |: R4 X% U, \0 X遗传算法自身参数有3个,即群体大小n、交叉概率Pc和变异概率Pm。: r) z/ e8 m- [  \, K

    - |6 \3 c) ~$ ~/ l群体大小n太小时难以求出最优解,太大则增长收敛时间。一般n=30-160。交叉概率Pc太小时难以向前搜索,太大则容易破坏高适应值的结构。一般取Pc=0.25-0.75。变异概率Pm太小时难以产生新的基因结构,太大使遗传算法成了单纯的随机搜索。一般取Pm=0.01—0.2。2 s4 _" o  v# d) l# t8 _" |

    9 J( b0 w7 j% q1 o! P% H三、遗传算法在神经网络中的应用2 n$ p, E$ t/ d/ X5 _5 i& [0 Z

    # c$ |- P0 K% T$ Z4 A遗传算法在神经网络中的应用主要反映在3个方面:网络的学习,网络的结构设计,网络的分析。
    7 X0 s. |0 Z  I
    : F( C& j+ s6 u3 z
    1.遗传算法在网络学习中的应用2 c7 n6 h. {/ w% Z
    " A, W2 a" b( Z1 k4 v* U" Y
    在神经网络中,遗传算法可用于网络的学习。这时,它在两个方面起作用
    + v, b3 l' m$ q6 R

    ) E7 L" h" a5 E! P- X(1)学习规则的优化- a  h# t, n/ |- t+ s0 u

    4 r: c/ |' o% C! V0 a用遗传算法对神经网络学习规则实现自动优化,从而提高学习速率。
    3 r* l2 J- p9 u& N8 h/ C. w

    ( \# O$ m4 g5 t* o' W: {(2)网络权系数的优化
    7 v1 u1 c# W6 s0 k: q. o* ~+ J/ `

    ' Z9 ]* y! J/ L0 R用遗传算法的全局优化及隐含并行性的特点提高权系数优化速度。6 I% Z# R: v, w" ?, K

    + {8 v# o) [. @3 J. t  V. R2.遗传算法在网络设计中的应用
    & q7 Z: O. |' @. H6 D( m; k

    8 ?6 N8 d* O+ g8 b用遗传算法设计一个优秀的神经网络结构,首先是要解决网络结构的编码问题;然后才能以选择、交叉、变异操作得出最优结构。编码方法主要有下列3种:
    . D/ n  c; a3 @+ e: V
    - o7 b0 Q2 m- D# y
    (1)直接编码法
    ! a' T( \; o2 b* F# I/ }

    + P3 |7 @8 M) N  y/ w, p2 r这是把神经网络结构直接用二进制串表示,在遗传算法中,“染色体”实质上和神经网络是一种映射关系。通过对“染色体”的优化就实现了对网络的优化。( J9 g: s. U6 t: V& @9 R1 N; T" Y

    8 d4 V: g2 r: ]0 d0 O2 G$ m: y(2)参数化编码法* P: f9 K3 O$ X; a
    " Q, }1 l% t* j. C' P
    参数化编码采用的编码较为抽象,编码包括网络层数、每层神经元数、各层互连方式等信息。一般对进化后的优化“染色体”进行分析,然后产生网络的结构。7 m* B( Q5 F8 F7 _
    + C# u7 j* G+ b2 n* O
    (3)繁衍生长法# c# N6 D5 |9 P5 L

    * }) a1 v. R( i8 t7 M1 b这种方法不是在“染色体”中直接编码神经网络的结构,而是把一些简单的生长语法规则编码入“染色体”中;然后,由遗传算法对这些生长语法规则不断进行改变,最后生成适合所解的问题的神经网络。这种方法与自然界生物地生长进化相一致。
    + K) v8 }4 z4 ]& l) u
    , |9 A; [% N- t' J
    3.遗传算法在网络分析中的应用; H+ G' Z. _, |) W. g" L
    7 J, a0 C6 a6 \8 }) h
    遗传算法可用于分析神经网络。神经网络由于有分布存储等特点,一般难以从其拓扑结构直接理解其功能。遗传算法可对神经网络进行功能分析,性质分析,状态分析。
    + u  j5 }' |- L

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

    Powered by Discuz! X3.5 Licensed

    © 2001-2026 Discuz! Team.

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