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

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

转(遗传算法)

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

    连续签到: 1 天

    [LV.2]偶尔看看I

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

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

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

    ×
    生物的进化是一个奇妙的优化过程,它通过选择淘汰,突然变异,基因遗传等规律产生适应环境变化的优良物种。遗传算法是根据生物进化思想而启发得出的一种全局优化算法。7 @: A; V4 C$ N

    ! U1 ?" X" w' A( |% F7 }8 {" x( r! w遗传算法的概念最早是由Bagley J.D1967年提出的;而开始遗传算法的理论和方法的系统性研究的是1975年,这一开创性工作是由Michigan大学的J.H.Holland所实行。当时,其主要目的是说明自然和人工系统的自适应过程。
    + _. K3 G, Q2 F6 G' z9 ?
    ' Q: A/ S1 ~5 E9 K
    遗传算法简称GA(Genetic Algorithm),在本质上是一种不依赖具体问题的直接搜索方法。遗传算法在模式识别、神经网络、图像处理、机器学习、工业优化控制、自适应控制、生物科学、社会科学等方面都得到应用。在人工智能研究中,现在人们认为“遗传算法、自适应系统、细胞自动机、混沌理论与人工智能一样,都是对今后十年的计算技术有重大影响的关键技术”。3 }5 g8 [: y( B4 l

      ?& ~, v& `- d  V2 v* F# O321 遗传算法的基本概念  x8 s7 v2 V  m# g9 J' ?- q2 G

    4 u: J0 H' k& M2 T) D- E遗传算法的基本思想是基于Darwin进化论和Mendel的遗传学说的。6 |& {3 o+ K, l# H

    2 n5 L: S- q6 t. o# z: q! wDarwin进化论最重要的是适者生存原理。它认为每一物种在发展中越来越适应环境。物种每个个体的基本特征由后代所继承,但后代又会产生一些异于父代的新变化。在环境变化时,只有那些熊适应环境的个体特征方能保留下来。0 O; ]6 t$ H7 u6 l2 l$ P- H0 o

    . N' |" C: A! \+ r- L- ~; EMendel遗传学说最重要的是基因遗传原理。它认为遗传以密码方式存在细胞中,并以基因形式包含在染色体内。每个基因有特殊的位置并控制某种特殊性质;所以,每个基因产生的个体对环境具有某种适应性。基因突变和基因杂交可产生更适应于环境的后代。经过存优去劣的自然淘汰,适应性高的基因结构得以保存下来。
    : b$ b' |0 f9 I' x7 s! X
    + k+ j% b+ V- Y4 Y
    由于遗传算法是由进化论和遗传学机理而产生的直接搜索优化方法;故而在这个算法中要用到各种进化和遗传学的概念。这些概念如下:
    ( G& v' E' R& D3 S" M

    - ]9 N5 z$ o* \* D0 m  j一、串(String)
    , N: M+ {1 P6 ^& N7 }
    ) I( H4 j; G( M; w8 l
    它是个体(Individual)的形式,在算法中为二进制串,并且对应于遗传学中的染色体(Chromosome)2 O2 N1 Z# w3 _7 c' ]

    3 U1 K' {  d  R1 N7 Z' K! X( y6 J% {3 I二、群体(Population)
    2 r- Y. A  T- Y8 Z
    $ f9 g1 M/ K: S7 d/ v
    个体的集合称为群体,串是群体的元素
    9 l7 w, p, _! S5 s5 ]! C& ?

    ( C# ^  l- W( y5 ~4 t4 @9 y三、群体大小(Population Size) : q# I# v% {7 v9 J6 k4 ?

    " O. P, V( P' t1 ^在群体中个体的数量称为群体的大小。2 y" _( j3 K: C$ C$ V/ }3 n

    , a+ e+ ^- L  T+ a7 w四、基因(Gene) & j' x" u1 m( V) I/ j9 R& j' o

    2 A/ B& j% }2 E1 w基因是串中的元素,基因用于表示个体的特征。例如有一个串S1011,则其中的10114个元素分别称为基因。它们的值称为等位基因(Alletes)" G  i1 d5 K/ `& R: \& P, A
    ( s: a! {3 M* _
    、基因位置(Gene Position) , P! y" B1 {1 l$ m7 e
    , ?% C  e  f: G, l6 _7 D2 `
    一个基因在串中的位置称为基因位置,有时也简称基因位。基因位置由串的左向右计算,例如在串S1101中,0的基因位置是3。基因位置对应于遗传学中的地点(Locus)
    . I9 `, Q+ I. D/ |9 {+ N2 t4 U2 U

      B* o3 `8 b( Y2 f6 c4 a' T六、基因特征值(Gene Feature)
    # m6 ?9 A7 Z+ t  z" M

    5 m( r# |/ j7 @( e4 i: J在用串表示整数时,基因的特征值与二进制数的权一致;例如在串S=1011中,基因位置3中的1,它的基因特征值为2;基因位置1中的1,它的基因特征值为8
    8 L. k6 T- A4 t& h. X0 W3 m1 n
    9 U3 Y" ^* T* s/ q9 Q7 Q4 _" c8 i) k
    七、串结构空间SS 2 C+ U, W+ |. d) G  Y2 ]
    ' B4 P9 o" K; ^  w2 @5 d6 V9 X
    在串中,基因任意组合所构成的串的集合。基因操作是在结构空间中进行的。串结构空间对应于遗传学中的基因型(Genotype)的集合。
    ! y) Q- o: K3 }5 |1 N

    4 q6 Y+ U- P6 q" r5 f" {八、参数空间SP ! W/ v- U+ |0 q
    9 Q+ \0 Z* k2 k' B
    这是串空间在物理系统中的映射,它对应于遗传学中的表现型(Phenotype)的集合。) a! ~& t7 c# k- d5 o; _* \2 g6 h. m8 f
    9 [$ G/ k. T6 z
    九、非线性
    ( `1 U* x' _3 p

    & I0 r2 H' I" ^% Y* a它对应遗传学中的异位显性(Epistasis) ; A% f+ a5 ?4 Q0 C3 k9 n

    , P' X" v! e7 l. S* L. w十、适应度(Fitness) / N3 h$ a( I# O* h( C$ h9 V+ C# h

    - i8 |1 I2 u4 o0 a" {9 s表示某一个体对于环境的适应程度。
    : N3 [" i  {. L7 p% a, g4 r: U

    / F* I( D& i9 t3 ]7 O8 q) Q遗传算法还有一些其它的概念,这些概念在介绍遗传算法的原理和执行过程时,再进行说明。. i) S: c. l' \' p. s+ C3 U& C* h

    ; Q% S( v2 y0 a# ]8 c322遗传算法的原理' n  D/ Q8 Y3 b  k8 S

    0 \) D5 w6 g$ w% K  I6 a  o遗传算法GA把问题的解表示成“染色体”,在算法中也即是以二进制编码的串。并且,在执行遗传算法之前,给出一群“染色体”,也即是假设解。然后,把这些假设解置于问题的“环境”中,并按适者生存的原则,从中选择出较适应环境的“染色体”进行复制,再通过交叉,变异过程产生更适应环境的新一代“染色体”群。这样,一代一代地进化,最后就会收敛到最适应环境的一个“染色体”上,它就是问题的最优解。2 w& H) [  R5 m6 N

    ; n+ o4 k9 L0 x- c$ I% ?# I一、遗传算法的目的* W8 S& v3 G7 x3 r" }" `8 }" \8 h
    9 w% ]* c& d  A1 \3 C( U+ Z
    典型的遗传算法CGA(Canonical Genetic Algorithm)通常用于解决下面这一类的静态最优化问题:
    , Q' {, l8 Y& M- R- r+ a3 ~
    ' D2 w) E/ n+ v) o) c* e
    考虑对于一群长度为L的二进制编码bii12,…,n;有8 _" \  U9 K, |
    7 H; l+ x4 C) K
    bi{0,1}L        (3-84)
    % i* K3 U( Y+ |' {2 ]. j

    5 r9 m: M" K9 X; I给定目标函数f,有f(bi),并且
    * @% P# `( ?8 p6 u, D
    ' f9 u( f' ~1 f+ |+ j8 n3 g
    0<F(BI)<< P>
    . y* F+ ^( z" q+ @1 h

    % N7 n. n( {' W/ O. _& a同时/ R. g1 [) ]5 I  |. _

    ( D6 h6 x% U6 B" k" D; Kf(bi)f(bi+1)   x$ K6 @8 J& Z4 u: r3 m$ l& M3 I( @
      i- r+ L3 ]) N- F9 y/ }
    求满足下式' Z/ X7 s* O  Y

    7 C% ~0 y! n% Umax{f(bi)|bi{0,1}L} : {- s1 x: ^- w
    & U, E7 f, k0 f& P2 |/ J
    bi& k4 J* g1 a- k( s. l5 J
    + ]7 b$ p7 _8 Z0 F& g0 c
    很明显,遗传算法是一种最优化方法,它通过进化和遗传机理,从给出的原始解群中,不断进化产生新的解,最后收敛到一个特定的串bi处,即求出最优解。. O4 ~( l9 g4 ]# Z1 F( Y" T
    " u) T6 l  a1 z0 g) [, P, O! N
    二、遗传算法的基本原理
    + a1 O0 @; U# I% f! A' C8 w
    & _2 u6 u" M# ^0 l( ~! g
    长度为Ln个二进制串bi(i12,…,n)组成了遗传算法的初解群,也称为初始群体。在每个串中,每个二进制位就是个体染色体的基因。根据进化术语,对群体执行的操作有三种:
    2 S, \4 ~* h( \: [* \

    2 g$ ^/ r, [2 Q+ |1.选择(Selection) 3 t1 Q: l. D7 |1 E
    & e. s0 f1 f  I+ ~" l
    这是从群体中选择出较适应环境的个体。这些选中的个体用于繁殖下一代。故有时也称这一操作为再生(Reproduction)。由于在选择用于繁殖下一代的个体时,是根据个体对环境的适应度而决定其繁殖量的,故而有时也称为非均匀再生(differential reproduction)
    7 B9 J/ N, C1 |) M) |$ a
    # X6 S3 \0 Y9 H
    2.交叉(Crossover)
    6 i/ x: C" g- w0 B! J

    0 f* o) r, ^, O% ~# r! L9 u3 T& L这是在选中用于繁殖下一代的个体中,对两个不同的个体的相同位置的基因进行交换,从而产生新的个体。
    0 ^" z- y; y4 O2 y7 B
    9 l. S3 G- c# C2 a" G+ H
    3.变异(Mutation) 7 m4 K8 f, q  D" j6 x4 h
    . Z* }5 Y6 j& w# h
    这是在选中的个体中,对个体中的某些基因执行异向转化。在串bi中,如果某位基因为1,产生变异时就是把它变成0;反亦反之。* x2 Y6 E3 U# q5 o

    ; J3 o6 I! a6 R$ |2 E" i遗传算法的原理可以简要给出如下:
    4 O( j' S6 E4 q

    8 D- e( E+ m, x6 Uchoose an intial population / r0 k4 y- L3 x
    + L$ \% m1 M9 t( M8 v! s+ J2 t: g
    determine the fitness of each individual ; ^0 s8 e7 a3 ~: }

    # C: H2 ~+ C8 u( K$ bperform selection - E: @5 S: l# F5 O1 K" ~6 _

    . i- O: ]- I' c% Prepeat
    - e" N5 V& A$ P" k

    ! P8 }, ]7 ~( \3 X7 y+ u    perform crossover
    , B9 l2 ?2 Q  b* \1 Z

    0 v7 O; G- Q0 @- L1 P7 `    perform mutation : L+ D" p) O, g5 P
    $ v: n7 r' U6 Q# P7 N
        determine the fitness of each individual 2 Z& ~& }) a& }7 ^' ]7 i/ F0 u" f

    6 e0 [- T# c& W6 B+ ~0 g, ?    perform selection
    ' a& D1 e- m; G
    8 [/ a, s) R. @$ ~
    until some stopping criterion applies 9 R8 f5 E) D5 ^# V' {5 Y
    ! }6 @! n2 O5 i
    这里所指的某种结束准则一般是指个体的适应度达到给定的阀值;或者个体的适应度的变化率为零。
    3 u) X1 d0 H- `. H0 ]' @* X
    三、遗传算法的步骤和意义( p/ w! O1 Y) f! B, z3 k2 @

    9 U0 K2 O7 W* B1 S3 Z6 F1.初始化
    . b' H& L1 {7 K

    ) E7 p1 C) d: ^6 U1 C1 |选择一个群体,即选择一个串或个体的集合bii=12...n。这个初始的群体也就是问题假设解的集合。一般取n30-1606 S3 P' \) [, F" i2 q

    3 P0 ], {5 b5 Q7 M( b) n& s( E' b! W通常以随机方法产生串或个体的集合bi,i12...n。问题的最优解将通过这些初始假设解进化而求出。  [" T1 ~9 c% o3 w" @. s( q% M

    2 D6 }$ j9 l( v/ P7 @2.选择5 T1 E0 P* f% S1 r0 {4 J" g4 p

    " C. j+ x- I# A( s8 W! M# i% M根据适者生存原则选择下一代的个体。在选择时,以适应度为选择原则。适应度准则体现了适者生存,不适应者淘汰的自然法则。* p1 D9 n- I, B3 t' O1 \! B

    & S  Q4 ~3 z! a2 U给出目标函数f,则f(bi)称为个体bi的适应度。以% Z  H. k. j! `
    9 v! Q7 h! z- Q5 F) m$ v1 e

    - X! X( @5 O9 R  j 6.2.ht40.gif
    + ^+ ]* I8 [: y为选中bi为下一代个体的次数。  N5 J$ V: l1 i1 r6 R

    ( i4 ~$ L# |; l显然.从式(386)可知:
    , N, v( L$ {1 G9 V9 _- S7 t

    ; q" _% C7 g# u6 T: s(1)适应度较高的个体,繁殖下一代的数目较多。2 ]1 k# B9 h! U" I9 l8 S  R
    % ~! `/ C, ]+ ^  {
    (2)适应度较小的个体,繁殖下一代的数目较少;甚至被淘汰。3 }; F" K7 }9 z
    $ K# z, L7 ^2 o& b
    这样,就产生了对环境适应能力较强的后代。对于问题求解角度来讲,就是选择出和最优解较接近的中间解。* Z$ H/ G: n* ~- V

    9 B: }: Z- s# n, {+ O( t3.交叉/ X1 z0 {2 E# l
    对于选中用于繁殖下一代的个体,随机地选择两个个体的相同位置,按交叉概率P。在选中的位置实行交换。这个过程反映了随机信息交换;目的在于产生新的基因组合,也即产生新的个体。交叉时,可实行单点交叉或多点交叉。+ @# h) ]- W" e
    6 k: A( @6 d. \+ Y7 P6 {0 t% H
    例如有个体
    2 _* q4 H$ Y2 ?! _7 a

    4 B' i% z! H3 @; m! l0 y; f) aS1=100101
    " e- h  L. W2 \, w
    9 }- [" w1 _' G8 O+ q" \: ?2 o
    S2=010111
    $ D. R0 a) v2 \5 p9 j: R

      k6 Y! C; l0 `0 ]+ M# r; j8 W3 d选择它们的左边3位进行交叉操作,则有
    $ Z' W2 Z5 F8 m# s* m' U3 t

    5 R3 u/ m% J5 q! ^1 B, N+ DS1=010101 " _( a( a: J' s  g; F) D
    4 e- `: i$ b/ S
    S2=100111
    + t3 K+ c: I) D+ t4 _

    5 A5 L. M# ^# G1 r- [. k一般而言,交 婊显譖。取值为0.250.75  o( v; v' v4 d9 `- J0 {, s* ?

    0 I8 `; y. s1 V6 N' s, m8 I4.变异, F+ h- a9 e, {4 N  m/ ?

    2 c6 n! [. o; Q  S) @根据生物遗传中基因变异的原理,以变异概率Pm对某些个体的某些位执行变异。在变异时,对执行变异的串的对应位求反,即把1变为0,把0变为1。变异概率Pm与生物变异极小的情况一致,所以,Pm的取值较小,一般取0.01-0.2
    7 s6 @8 t: [% c) Q* R5 l0 P9 I
    # y, S$ H; H9 f6 n# I: |
    例如有个体S101011
    ! @2 S& X! Y% k; a( Q5 n" x8 z0 E

    , E8 w  l0 E. S对其的第14位置的基因进行变异,则有' J, J4 n7 O0 o3 z7 _

    ) P6 R6 g4 M% S/ X8 z8 [6 CS'=001111
    1 V9 p5 f3 V( s9 }4 F4 h) J, w
    . G2 B) M: {/ I' i+ }; Z+ o9 j5 f$ J
    单靠变异不能在求解中得到好处。但是,它能保证算法过程不会产生无法进化的单一群体。因为在所有的个体一样时,交叉是无法产生新的个体的,这时只能靠变异产生新的个体。也就是说,变异增加了全局优化的特质。6 n4 B, F/ s9 F6 L* U8 }- b
    0 d1 |% d$ D3 h& b, O, X2 I
    5.全局最优收敛(Convergence to the global optimum) 2 r. r) z+ \$ m; P

    . H# X. `  d' b当最优个体的适应度达到给定的阀值,或者最优个体的适应度和群体适应度不再上升时,则算法的迭代过程收敛、算法结束。否则,用经过选择、交叉、变异所得到的新一代群体取代上一代群体,并返回到第2步即选择操作处继续循环执行。
    3 P2 l3 z& _0 W
      U; \& T. k* {7 q
    37中表示了遗传算法的执行过程。
    ! ^( T# Y8 {8 {8 P1 x6 @( y+ m
    4 Y2 b- v) L8 ?+ h) Q  i" o7 A: P: e+ X! C
    Genetic_Algorithm.gif
    ( r6 X2 J9 R$ G' u6 ~( o6 f+ ~5 s) X& e7 ^  P4 j- m
    3-7 遗传算法原理( u% n) @: W( a

    ; m/ m6 r# {' L! I# x) y/ G7 e7 i323遗传算法的应用5 M2 Z) h8 v0 F; V
      {+ I6 h0 b% C; J
    遗传算法在很多领域都得到应用;从神经网络研究的角度上考虑,最关心的是遗传算法在神经网络的应用。在遗传算法应用中,应先明确其特点和关键问题,才能对这种算法深入了解,灵活应用,以及进一步研究开发。/ u( ~, A/ n  a6 i: H! g
    " m7 s/ b$ m3 p5 {" B1 a
    一、遗传算法的特点" D# v# B4 g3 W

    * }' ?3 X8 H( S1.遗传算法从问题解的中集开始嫂索,而不是从单个解开始。# i/ _/ P8 }1 ~: Q6 m0 h

    : N' L6 S6 f9 m这是遗传算法与传统优化算法的极大区别。传统优化算法是从单个初始值迭代求最优解的;容易误入局部最优解。遗传算法从串集开始搜索,复盖面大,利于全局择优。% w# B; W( R1 Z3 P1 K

    8 {* `* H; c! E- ?7 T' P% D2.遗传算法求解时使用特定问题的信息极少,容易形成通用算法程序。; g5 v) H/ Q$ i  z3 K  |2 G5 j

    : t- u3 ?$ E1 T+ @# |4 R4 ?5 y& {由于遗传算法使用适应值这一信息进行搜索,并不需要问题导数等与问题直接相关的信息。遗传算法只需适应值和串编码等通用信息,故几乎可处理任何问题。
    , O. r% z! h& G  f- [7 [/ i0 _

    2 r& r9 O3 J; U6 D0 T3.遗传算法有极强的容错能力
    1 `+ f9 T: \& [8 s) Z% \

    3 {, W5 q( r1 L遗传算法的初始串集本身就带有大量与最优解甚远的信息;通过选择、交叉、变异操作能迅速排除与最优解相差极大的串;这是一个强烈的滤波过程;并且是一个并行滤波机制。故而,遗传算法有很高的容错能力。0 w: a; B* ~) i; N( l2 }( `
    # g, V$ }* [# S+ |# g' f" Z% h; r, e
    4.遗传算法中的选择、交叉和变异都是随机操作,而不是确定的精确规则。
    / N) {) {! _; W- C. k
    : Z0 G' r; Q. P" X
    这说明遗传算法是采用随机方法进行最优解搜索,选择体现了向最优解迫近,交叉体现了最优解的产生,变异体现了全局最优解的复盖。) r( q4 R/ G. y8 G. H/ f' l; N" y& @

    4 A' V- P+ P9 U3 [# g4 j5.遗传算法具有隐含的并行性
    5 v' S3 R. q: Y$ x1 t# o% t
    - Q3 \+ B4 J8 l" X' m
    遗传算法的基础理论是图式定理。它的有关内容如下:+ L1 U8 S& ?1 J' H

      O: u+ |3 A, k, a. x(1)图式(Schema)概念
    : K" u* \+ I# B( ^7 U- n& N( E
    1 h0 @0 h' P) }; F+ }
    一个基因串用符号集{01*}表示,则称为一个因式;其中*可以是01。例如:H=1xx 0 x x是一个图式。9 `1 ?0 ?7 ^  p9 }+ @# F0 i

    0 P% V, t' @) C( a% |9 ?(2)图式的阶和长度
    7 a! q4 t0 w  J) W2 o% s) o5 N
    9 H+ U+ p. n$ w8 _/ v( X
    图式中01的个数称为图式的阶,并用0(H)表示。图式中第1位数字和最后位数字间的距离称为图式的长度,并用δ(H)表示。对于图式H1x x0x x,有0(H)2,δ(H)4% m! d- f. ~, ^9 R6 @+ H8 w& x, x
    7 O: v$ q0 g' D' D% `9 N
    (3)Holland图式定理
    2 G: O2 _% B, }3 Q$ W
    - F6 ~; c3 i# }$ |- g( L
    低阶,短长度的图式在群体遗传过程中将会按指数规律增加。当群体的大小为n时,每代处理的图式数目为0(n3)2 M1 V$ m* F, E# V% d7 s
    " k3 b8 x  U3 T4 X# {
    遗传算法这种处理能力称为隐含并行性(Implicit Parallelism)。它说明遗传算法其内在具有并行处理的特质。
    1 y. O( Y8 B* o1 V7 f  {% c4 k

    0 J0 u9 `8 d$ E; o二、遗传算法的应用关键) ^' c7 L  G1 }/ L2 J) C
    0 X! _% H' X" T. j7 d
    遗传算法在应用中最关键的问题有如下3
    / k& N  B7 t1 E: N
    7 z4 C' {5 \0 _  j# w; i1 M
    1.串的编码方式
    " h; q6 e- P! l4 E0 s8 b' `

    8 z) s/ b& _# U这本质是问题编码。一般把问题的各种参数用二进制编码,构成子串;然后把子串拼接构成“染色体”串。串长度及编码形式对算法收敛影响极大。3 a/ T$ k/ ?' t$ ^& }& ~6 ?

    # _7 k! m1 |# J$ q, p' J% W/ C2.适应函数的确定
    0 U: W/ B5 L% y6 P" n

    ( @& A) u7 y' I! l; C适应函数(fitness function)也称对象函数(object function),这是问题求解品质的测量函数;往往也称为问题的“环境”。一般可以把问题的模型函数作为对象函数;但有时需要另行构造。8 `- D' V) ]8 h- {! ?
    & R2 p. v, v, `+ Y
    3.遗传算法自身参数设定) x! F* q2 w1 }) D) }. |

    / w- j7 t6 U# L1 d: J遗传算法自身参数有3个,即群体大小n、交叉概率Pc和变异概率Pm
    $ G- F9 J# Z% g  L
    # _% W0 l2 E2 c  X* m1 C( E
    群体大小n太小时难以求出最优解,太大则增长收敛时间。一般n30-160。交叉概率Pc太小时难以向前搜索,太大则容易破坏高适应值的结构。一般取Pc=0.25-0.75。变异概率Pm太小时难以产生新的基因结构,太大使遗传算法成了单纯的随机搜索。一般取Pm00102
    1 F3 G: L9 ]5 Z$ F

    9 G; x" u6 u$ U% c8 N三、遗传算法在神经网络中的应用
    3 c. {9 e$ G$ ^# `  \
    $ y8 I7 ~' q) Y2 e; ~
    遗传算法在神经网络中的应用主要反映在3个方面:网络的学习,网络的结构设计,网络的分析。
    1 \8 ~! k6 p7 j+ F, Z7 U( ~
    $ o8 ?) Z8 L; q# n- y, c0 E" ]) ]
    1.遗传算法在网络学习中的应用5 m2 n8 i8 O! v0 y4 q0 Y- b8 G

      w) [8 `. [; Q8 E在神经网络中,遗传算法可用于网络的学习。这时,它在两个方面起作用% @+ t( I+ v" `$ S) n4 `
    ( y! K9 C* G  c; g& ?: Q
    (1)学习规则的优化
    6 D# L! h2 ?8 y3 ~
    5 x; n3 Q! A0 i2 `0 _# |
    用遗传算法对神经网络学习规则实现自动优化,从而提高学习速率。
    6 f$ _7 N/ Y) X: T

    4 N& m. x8 h( z1 G8 `(2)网络权系数的优化' a& E! e5 @$ x4 O5 w# H' |  z
    ; E. k7 q6 N6 l: P+ v: l
    用遗传算法的全局优化及隐含并行性的特点提高权系数优化速度。8 o8 ~1 j7 P' e3 k

    + I7 i- ~+ W" P$ q' ~+ ?+ J$ ?2.遗传算法在网络设计中的应用
    1 K, l8 n/ n5 @

    * C# Q! s7 j6 J: U6 G用遗传算法设计一个优秀的神经网络结构,首先是要解决网络结构的编码问题;然后才能以选择、交叉、变异操作得出最优结构。编码方法主要有下列3种:
    7 m$ {' q1 I, Z, s1 f/ g

    $ E4 o3 u% x5 C6 M  Y( U(1)直接编码法% ]: l7 @; r# d. Y
    % m$ {& Y! D  {$ e* e
    这是把神经网络结构直接用二进制串表示,在遗传算法中,“染色体”实质上和神经网络是一种映射关系。通过对“染色体”的优化就实现了对网络的优化。( E  _. Y2 ~; s
    ( c( X4 F# g7 F) O: n6 n
    (2)参数化编码法
      L8 g0 ?+ K9 z1 w

    / |6 p' h  y: a2 F参数化编码采用的编码较为抽象,编码包括网络层数、每层神经元数、各层互连方式等信息。一般对进化后的优化“染色体”进行分析,然后产生网络的结构。
    % _1 L5 P6 N* a8 y1 j) u

    % o5 \4 a  X6 Z/ P9 O$ d: `1 j(3)繁衍生长法
    / f/ h# p5 o/ v+ L* X

      }* g1 ]4 A5 l+ m, a, d这种方法不是在“染色体”中直接编码神经网络的结构,而是把一些简单的生长语法规则编码入“染色体”中;然后,由遗传算法对这些生长语法规则不断进行改变,最后生成适合所解的问题的神经网络。这种方法与自然界生物地生长进化相一致。; u/ Q7 u7 \$ q/ e# t: U: }8 [

    & r7 Z  T6 _# W- v3.遗传算法在网络分析中的应用4 U2 \0 P: p8 k$ R% t# Z. J4 N

    9 Q& v, F7 i1 r+ x3 M  n4 ~9 D遗传算法可用于分析神经网络。神经网络由于有分布存储等特点,一般难以从其拓扑结构直接理解其功能。遗传算法可对神经网络进行功能分析,性质分析,状态分析。# D- p8 B( W8 x- J0 Y" v  E
    $ N* V8 \& N9 s$ G/ l& V% O0 v+ O
    遗传算法虽然可以在多种领域都有实际应用,并且也展示了它潜力和宽广前景;但是,遗传算法还有大量的问题需要研究,目前也还有各种不足。首先,在变量多,取值范围大或无给定范围时,收敛速度下降;其次,可找到最优解附近,但无法精确确定最扰解位置;最后,遗传算法的参数选择尚未有定量方法。对遗传算法,还需要进一步研究其数学基础理论;还需要在理论上证明它与其它优化技术的优劣及原因;还需研究硬件化的遗传算法;以及遗传算法的通用编程和形式等。
    9 m5 p- d0 q* U; d

    : D2 r4 V$ ^4 U# ^- d! r: R


    8 g6 L1 b: h% t+ }* \; E( L& T三、遗传算法的步骤和意义/ L5 k0 M" L  G1 M0 q, D( D! c
    6 C' M7 [- J* ^% A6 ?
    1.初始化' L' [+ P1 ]3 e6 n. c/ ~' j  \

    1 F' [! a) r( B9 O& `, ]选择一个群体,即选择一个串或个体的集合bii=12...n。这个初始的群体也就是问题假设解的集合。一般取n30-160
    ) P+ x6 t$ ?* C/ l& A

    # L2 _$ N2 S. k' A  l通常以随机方法产生串或个体的集合bi,i12...n。问题的最优解将通过这些初始假设解进化而求出。- @2 U9 Z) |( O2 @

    0 }; J/ S$ {" k" Q, ~2.选择
    ! R3 B$ I% M- m( u. o9 @3 Z4 b$ w

    + b/ U2 u( u1 a$ Z9 _根据适者生存原则选择下一代的个体。在选择时,以适应度为选择原则。适应度准则体现了适者生存,不适应者淘汰的自然法则。
    , v3 j7 F/ L6 ~* h& T; U$ `& @
    / j, k) r! P- C
    给出目标函数f,则f(bi)称为个体bi的适应度。以# Q" e0 u# L0 |/ r
    5 k6 @. e: R, k5 }, c3 @. @
    5 d% a! R3 y: s7 _  `! a
    0 ?$ T6 z4 I/ Q9 d4 K/ M
    为选中bi为下一代个体的次数。
    + L+ R4 K# H8 L4 Q. D: e1 r, Q4 v
      N$ \8 ]. f6 w$ Q& L: e+ g, [
    显然.从式(386)可知:
    ' f0 o; o; s( b2 e! }" n9 V
    - F; b# w' E5 a$ `
    (1)适应度较高的个体,繁殖下一代的数目较多。; I! G' l  ~' B2 j, a/ R

    ; a. u8 L! A, b, a8 {5 k(2)适应度较小的个体,繁殖下一代的数目较少;甚至被淘汰。
    & y; v2 F0 J$ P8 G8 A
    ) x/ }. i" @2 W3 b- _% i
    这样,就产生了对环境适应能力较强的后代。对于问题求解角度来讲,就是选择出和最优解较接近的中间解。
    . f  h6 m& z  E, u. C8 o6 D
    5 _+ H/ Y2 g) T4 p" |2 j/ ^1 n  r3 o
    3.交叉. t$ t% f3 c0 t+ k: v) Z; _
    对于选中用于繁殖下一代的个体,随机地选择两个个体的相同位置,按交叉概率P。在选中的位置实行交换。这个过程反映了随机信息交换;目的在于产生新的基因组合,也即产生新的个体。交叉时,可实行单点交叉或多点交叉。7 ^4 ?1 d9 J: R: W, a
    & P  w3 y- u7 [2 z! w
    例如有个体9 G3 }& M! N8 o$ f: I6 h. m

    5 L! K6 H7 l+ ]! pS1=100101
    7 P' u- w! W, B) J$ G. e: F+ N

    & a- ^1 L; c  VS2=010111 - ]* f( L' z3 x6 [8 Q! X

    7 X5 M0 e" _5 g$ J选择它们的左边3位进行交叉操作,则有: U8 N" `2 u0 x/ P; H
    5 p7 r& _1 A% i  _. i6 b8 d
    S1=010101
    7 ^' i2 F9 l# d0 |6 ?

    ! `8 a0 {4 T) f! n7 e+ AS2=100111 ; Y5 A: o' I8 b$ }3 y/ S4 y5 _; ]

    / g+ w9 t; `. C一般而言,交 婊显譖。取值为0.250.75
    4 Z3 b/ D' S  T; f# f$ y: k1 F

    0 ?2 T6 s/ Y8 s& M4.变异
    9 y/ `) B+ b4 t) c( @
    , t! _! ?3 l( g$ X; d. h
    根据生物遗传中基因变异的原理,以变异概率Pm对某些个体的某些位执行变异。在变异时,对执行变异的串的对应位求反,即把1变为0,把0变为1。变异概率Pm与生物变异极小的情况一致,所以,Pm的取值较小,一般取0.01-0.24 Z  u: i; y0 i" B; j8 P4 H

    0 K& t* i2 a3 Z8 c例如有个体S101011% f; T5 t; Q% p4 X
    + `* L+ f$ p8 O, a* C; i9 T# S! T
    对其的第14位置的基因进行变异,则有/ P2 K; ^& \* M- B* k' I$ R

      ]/ u% ]6 e' B$ W) V9 j! c- i- KS'=001111
    0 R- ]6 x# V" J& ]3 h8 {

    + S2 k3 S5 |; m: ?8 m4 \/ X单靠变异不能在求解中得到好处。但是,它能保证算法过程不会产生无法进化的单一群体。因为在所有的个体一样时,交叉是无法产生新的个体的,这时只能靠变异产生新的个体。也就是说,变异增加了全局优化的特质。
    ' t+ _4 a4 o# e

    6 i, m, y) B" U7 ?* x0 F9 c5 L5.全局最优收敛(Convergence to the global optimum)
    / X0 R$ G% @& C$ D0 _6 X* n. F6 g

    9 o( f; X0 G, K' V' B当最优个体的适应度达到给定的阀值,或者最优个体的适应度和群体适应度不再上升时,则算法的迭代过程收敛、算法结束。否则,用经过选择、交叉、变异所得到的新一代群体取代上一代群体,并返回到第2步即选择操作处继续循环执行。( c/ }. \4 ~1 j+ U; {

    & {' {# o7 ]! A/ Y37中表示了遗传算法的执行过程。& N: Y; |4 j; \6 u1 |' |0 s) |
    4 w% N2 X2 o9 K1 T& r
    $ b& A  J; }  C7 q/ T0 O% Z

    9 o+ u- t& T7 |% @6 d% u8 G2 ?7 U4 ?4 j3 H3 [
    3-7 遗传算法原理& X( {8 N1 _+ d/ r0 v# e1 ]
    , Z$ h0 g# n# g+ o. L. r& T$ L" B4 y
    323遗传算法的应用# m! @6 S; Z+ a& w2 z3 R
    , X/ A+ a. [) e; a8 I
    遗传算法在很多领域都得到应用;从神经网络研究的角度上考虑,最关心的是遗传算法在神经网络的应用。在遗传算法应用中,应先明确其特点和关键问题,才能对这种算法深入了解,灵活应用,以及进一步研究开发。
    % }/ v' s, N) @8 a
    ( T4 l' K3 g% f3 X* j) K% n
    一、遗传算法的特点
    ' t2 P3 X3 E8 \  G! J! ]

    / x" w/ w4 R/ _# \1.遗传算法从问题解的中集开始嫂索,而不是从单个解开始。  E7 s$ L+ v, r* V3 h! s- T

    # n- @; l3 R+ K6 ^  C1 t这是遗传算法与传统优化算法的极大区别。传统优化算法是从单个初始值迭代求最优解的;容易误入局部最优解。遗传算法从串集开始搜索,复盖面大,利于全局择优。
    6 x. h  V4 c! S% Y

      O: e' C3 d" Q2.遗传算法求解时使用特定问题的信息极少,容易形成通用算法程序。( Y$ l1 Z5 R& o/ Q' f

    ' J; @% K% v, K' p& [0 o9 [由于遗传算法使用适应值这一信息进行搜索,并不需要问题导数等与问题直接相关的信息。遗传算法只需适应值和串编码等通用信息,故几乎可处理任何问题。3 z. I, p& n4 O; C

    # M3 U! y" \+ Y  t3.遗传算法有极强的容错能力8 p. e5 ~7 T% s. z6 N; |

    + i$ A! k2 L: p8 X遗传算法的初始串集本身就带有大量与最优解甚远的信息;通过选择、交叉、变异操作能迅速排除与最优解相差极大的串;这是一个强烈的滤波过程;并且是一个并行滤波机制。故而,遗传算法有很高的容错能力。% ?* _+ o- \, a3 C0 U/ T

    ) P7 }; s1 U) Q4.遗传算法中的选择、交叉和变异都是随机操作,而不是确定的精确规则。& O- s; E% ]/ e8 p# ?
    # d' w& Q# I$ d9 h, a1 V
    这说明遗传算法是采用随机方法进行最优解搜索,选择体现了向最优解迫近,交叉体现了最优解的产生,变异体现了全局最优解的复盖。1 U$ N4 ?/ K2 x% {9 x% z6 }
    - n' c& `, `* E( I
    5.遗传算法具有隐含的并行性
    4 [; d% f. {. \8 Y
    9 U! d% U- u$ i7 `& v+ T+ {
    遗传算法的基础理论是图式定理。它的有关内容如下:
    % E$ r6 O+ z. E. F5 S2 o

    6 a  V- m" R2 p; C; n# r(1)图式(Schema)概念
    % @: R9 n3 D6 r& R/ ^& F( q) S

    . f9 d' g7 w# `/ G一个基因串用符号集{01*}表示,则称为一个因式;其中*可以是01。例如:H=1xx 0 x x是一个图式。" j4 J1 q8 b; n2 \9 G
    . U( y, ?+ r; }/ {
    (2)图式的阶和长度
    9 f1 H1 Y) g8 O4 ]2 E, X
    ' X2 Q, g; F6 g' J' W, y
    图式中01的个数称为图式的阶,并用0(H)表示。图式中第1位数字和最后位数字间的距离称为图式的长度,并用δ(H)表示。对于图式H1x x0x x,有0(H)2,δ(H)4# B3 V! w2 M7 a
    7 f9 ^; W7 z# V
    (3)Holland图式定理
    ) l0 f; b, F6 ^( ^- r% B, R$ ]

    , K4 T& Z) b6 |7 W5 E低阶,短长度的图式在群体遗传过程中将会按指数规律增加。当群体的大小为n时,每代处理的图式数目为0(n3)
    4 H7 G, o. L' ^& x6 @) G$ \3 P
    . _0 H& d$ o& G  k2 _- S
    遗传算法这种处理能力称为隐含并行性(Implicit Parallelism)。它说明遗传算法其内在具有并行处理的特质。- m  D( o( N2 {* I4 K! `
    ) }" D' ?. D9 o& X5 z0 T
    二、遗传算法的应用关键
    9 w0 `. E8 q  F$ f# S

    9 j3 z2 n* N% I/ @$ j& I遗传算法在应用中最关键的问题有如下3
    ; J- s0 d+ ?0 P' g4 d5 r# M! O
    : z6 _. K" h7 r8 k+ T' _  O6 z! J
    1.串的编码方式; Z8 j- r5 ]# [' b$ Z/ R
    1 ]/ Q+ e( `( J
    这本质是问题编码。一般把问题的各种参数用二进制编码,构成子串;然后把子串拼接构成“染色体”串。串长度及编码形式对算法收敛影响极大。- `8 L# \1 S" r, k$ b
    ; K* P4 ~! R/ V. T2 N: J
    2.适应函数的确定
    8 B3 y  l" ]) a# j* X" W' X9 i' c1 e

    - X% g9 _# D4 a! R, _适应函数(fitness function)也称对象函数(object function),这是问题求解品质的测量函数;往往也称为问题的“环境”。一般可以把问题的模型函数作为对象函数;但有时需要另行构造。( R$ M! n6 v! a$ q
    % K  }' z4 U/ Y1 F* e4 Y
    3.遗传算法自身参数设定
    ( T) W* s( z& }. r6 X" S( p  D% V

    % Z5 K9 [1 v5 ?5 W遗传算法自身参数有3个,即群体大小n、交叉概率Pc和变异概率Pm, t- S7 G% y  a( A0 N

    # O' D" P/ I, ]6 d群体大小n太小时难以求出最优解,太大则增长收敛时间。一般n30-160。交叉概率Pc太小时难以向前搜索,太大则容易破坏高适应值的结构。一般取Pc=0.25-0.75。变异概率Pm太小时难以产生新的基因结构,太大使遗传算法成了单纯的随机搜索。一般取Pm00102: f, Z7 c2 J5 V8 o) q* H9 E  g
    - z5 `$ v" Y: }& n% L' a
    三、遗传算法在神经网络中的应用
    ! X/ i! }- }8 p
    & ^# Q' U$ q; a' p7 f  V- v
    遗传算法在神经网络中的应用主要反映在3个方面:网络的学习,网络的结构设计,网络的分析。* u* d  R, |4 ~- t+ T( t: g; }
    / P, V& o3 Z% J' B" b9 `2 ]( N
    1.遗传算法在网络学习中的应用: c0 T1 b9 q8 V

    / N$ k" p' v% j6 \+ s5 V  G2 y. n) t在神经网络中,遗传算法可用于网络的学习。这时,它在两个方面起作用9 F! A/ u/ k1 E0 a
    ' t, I4 X- h- l
    (1)学习规则的优化
    8 c: V8 [- t8 _. }& c
    . _0 P5 v' S& [; e7 u/ `% I
    用遗传算法对神经网络学习规则实现自动优化,从而提高学习速率。
    % Y' L' m$ ~2 K: b- S2 l
    " U; \) a8 W) N( z1 _* D
    (2)网络权系数的优化
    3 r: r9 Q, l/ M  }

    + ]! z) S  l0 I/ E" B# w用遗传算法的全局优化及隐含并行性的特点提高权系数优化速度。- Y# I  M  q& N6 W+ J1 d
    6 v  r" x$ M2 M' A  z. R6 ]
    2.遗传算法在网络设计中的应用
    1 k' t* _8 L6 |" Q2 w# Y) p7 I
    / f/ [+ D+ t+ L7 O5 E; f" N* g1 `. P
    用遗传算法设计一个优秀的神经网络结构,首先是要解决网络结构的编码问题;然后才能以选择、交叉、变异操作得出最优结构。编码方法主要有下列3种:
    * N5 [8 d) _0 w  y7 q" u. L, B  z
    % N+ d& }' u/ W
    (1)直接编码法
    ' \* A' Z. s% h* \" b' n5 S  |4 n

    4 o- T- c- y/ |0 d8 @# e4 x. ?' G% Z这是把神经网络结构直接用二进制串表示,在遗传算法中,“染色体”实质上和神经网络是一种映射关系。通过对“染色体”的优化就实现了对网络的优化。) k/ B  x# o* U
    " W. a. i0 P) k/ @4 u
    (2)参数化编码法& A4 L- j; y5 ^; R# r

    $ I5 n1 Y1 F6 {1 Z/ n; K" ~参数化编码采用的编码较为抽象,编码包括网络层数、每层神经元数、各层互连方式等信息。一般对进化后的优化“染色体”进行分析,然后产生网络的结构。
    / @: @$ J9 l7 |$ ?
    3 z& o. X0 Z$ R4 Y, h3 b9 m' D6 I* j7 ^% a
    (3)繁衍生长法/ u3 E3 a. i4 U

    ; ?( v+ [* H8 `这种方法不是在“染色体”中直接编码神经网络的结构,而是把一些简单的生长语法规则编码入“染色体”中;然后,由遗传算法对这些生长语法规则不断进行改变,最后生成适合所解的问题的神经网络。这种方法与自然界生物地生长进化相一致。/ x) c; E5 P8 E; Y3 _
    % e* }* N& M6 H( ?; [
    3.遗传算法在网络分析中的应用
    6 u& Q" T4 f8 \% [5 x" m2 u9 I  K: ?( C
    ; r) _- s1 ^4 e! c4 y! }$ I& s9 S5 X
    遗传算法可用于分析神经网络。神经网络由于有分布存储等特点,一般难以从其拓扑结构直接理解其功能。遗传算法可对神经网络进行功能分析,性质分析,状态分析。
    " o: l% Q! {7 C% N0 H8 l7 T, W9 h

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

    Powered by Discuz! X3.5 Licensed

    © 2001-2026 Discuz! Team.

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