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

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

[分享] 转(遗传算法)

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

    连续签到: 1 天

    [LV.2]偶尔看看I

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

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

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

    ×
    生物的进化是一个奇妙的优化过程,它通过选择淘汰,突然变异,基因遗传等规律产生适应环境变化的优良物种。遗传算法是根据生物进化思想而启发得出的一种全局优化算法。# R, |" V$ g2 V  A9 f
    ; }; `9 t+ |. R6 _3 p$ Z9 c
    遗传算法的概念最早是由Bagley J.D1967年提出的;而开始遗传算法的理论和方法的系统性研究的是1975年,这一开创性工作是由Michigan大学的J.H.Holland所实行。当时,其主要目的是说明自然和人工系统的自适应过程。
    ( p% X' l- D! M6 I  g# @* d
    % F! U- r0 {: C/ m: K
    遗传算法简称GA(Genetic Algorithm),在本质上是一种不依赖具体问题的直接搜索方法。遗传算法在模式识别、神经网络、图像处理、机器学习、工业优化控制、自适应控制、生物科学、社会科学等方面都得到应用。在人工智能研究中,现在人们认为“遗传算法、自适应系统、细胞自动机、混沌理论与人工智能一样,都是对今后十年的计算技术有重大影响的关键技术”。
    & x4 n3 H6 t" B5 ~7 L9 s* H1 G
    # a0 L# H8 i( E8 y4 t( O9 J
    321 遗传算法的基本概念
    7 k4 ?; n9 @. ~; g4 b5 Z! g- X

    2 S, o% |; f8 A; U" Z% H8 P遗传算法的基本思想是基于Darwin进化论和Mendel的遗传学说的。) t3 W! f! m9 s" Z% _8 r1 Q0 ]; b

    , E, D' z2 F9 C- x3 U+ |Darwin进化论最重要的是适者生存原理。它认为每一物种在发展中越来越适应环境。物种每个个体的基本特征由后代所继承,但后代又会产生一些异于父代的新变化。在环境变化时,只有那些熊适应环境的个体特征方能保留下来。
    4 f, T4 \% p, P

    + g& D2 [* \& x1 T# A: a) C/ |Mendel遗传学说最重要的是基因遗传原理。它认为遗传以密码方式存在细胞中,并以基因形式包含在染色体内。每个基因有特殊的位置并控制某种特殊性质;所以,每个基因产生的个体对环境具有某种适应性。基因突变和基因杂交可产生更适应于环境的后代。经过存优去劣的自然淘汰,适应性高的基因结构得以保存下来。
    ; |6 O6 q2 r: U$ f" k, V' |
    - n$ r7 C! Y& t9 O
    由于遗传算法是由进化论和遗传学机理而产生的直接搜索优化方法;故而在这个算法中要用到各种进化和遗传学的概念。这些概念如下:' q: `$ j- I( D* a% N5 T

    # W# |& {5 T8 X+ U+ f+ W一、串(String) ; T' T% R$ B; a4 G  p
    ) P- d, ~- _/ D7 s- @! ]
    它是个体(Individual)的形式,在算法中为二进制串,并且对应于遗传学中的染色体(Chromosome)
    " r8 E4 I3 c4 a

    & A1 [7 b* @# V' n5 V- q二、群体(Population)
    / P7 V5 [! P% V; ?# ?( J8 F
    / C9 k2 e( H1 k: V5 G
    个体的集合称为群体,串是群体的元素
    ! C' r4 D' F8 ?

    : i/ F  J/ P' w( d/ X三、群体大小(Population Size)
    0 \8 _/ e5 u1 l, R! Q  R
    & I0 J% Q4 Q" o
    在群体中个体的数量称为群体的大小。
    # Y7 `" L; r' N% K9 j

    ) R" F. P& L0 d# i" [, M8 I" M四、基因(Gene) : f- a& G5 [. n
    ; |2 b7 E4 p5 L+ w! a3 T4 `
    基因是串中的元素,基因用于表示个体的特征。例如有一个串S1011,则其中的10114个元素分别称为基因。它们的值称为等位基因(Alletes)% u  Y7 R, Y/ G  v+ u7 [$ U' `9 ?
    8 F6 }1 V5 {% ]( S' @5 L
    、基因位置(Gene Position)
    6 E" n) c/ i: D) F
    , M8 p- }: Z$ m1 N/ D
    一个基因在串中的位置称为基因位置,有时也简称基因位。基因位置由串的左向右计算,例如在串S1101中,0的基因位置是3。基因位置对应于遗传学中的地点(Locus)3 p% Q) A3 u. w) M
    ' I/ e; c- p8 J1 g% Y# D7 K
    六、基因特征值(Gene Feature)
    / d7 `  [2 U5 Y0 T9 _
    # Z7 t! k0 L# f
    在用串表示整数时,基因的特征值与二进制数的权一致;例如在串S=1011中,基因位置3中的1,它的基因特征值为2;基因位置1中的1,它的基因特征值为8
    7 K( X( c; [, c8 C4 v6 `( z
    5 N( V, \+ I8 E
    七、串结构空间SS + ?: o+ b4 U/ P4 `9 j

    $ I4 i5 d5 c7 m9 [- o/ e在串中,基因任意组合所构成的串的集合。基因操作是在结构空间中进行的。串结构空间对应于遗传学中的基因型(Genotype)的集合。
    ( U4 Q# |9 }6 L4 G7 ~" ^$ r' |9 B

    " }1 v7 t7 Q& T( T' Z八、参数空间SP
    8 B3 ]3 O8 A6 Z+ q& [: |

    , J6 i9 A4 p8 S$ A3 [9 a, u: {这是串空间在物理系统中的映射,它对应于遗传学中的表现型(Phenotype)的集合。; G! V7 l0 }) v
    ) G6 V' @/ y" v
    九、非线性7 n: N9 O4 |2 i: ]# C) b+ N/ S
    " A3 N& @! Y5 O! e" v& M! Y9 y
    它对应遗传学中的异位显性(Epistasis) ) k$ ~  _, {  q$ X" N

    ) {1 A# K  C; o" Q! q3 [+ ~9 o十、适应度(Fitness)
    5 v& e: t' Q6 ]6 N

    / \/ K% A' g0 B" v0 G* }表示某一个体对于环境的适应程度。
    3 q( x9 @1 {4 O$ i
    + e+ p1 T6 q7 R
    遗传算法还有一些其它的概念,这些概念在介绍遗传算法的原理和执行过程时,再进行说明。$ f' Z! d1 [( q3 |/ @( L* X1 M. r
    $ W0 K$ K. N: L) Q* q/ x8 E
    322遗传算法的原理
    $ B4 l, D7 e& g7 A9 H

    + e9 A. F" N% }) I遗传算法GA把问题的解表示成“染色体”,在算法中也即是以二进制编码的串。并且,在执行遗传算法之前,给出一群“染色体”,也即是假设解。然后,把这些假设解置于问题的“环境”中,并按适者生存的原则,从中选择出较适应环境的“染色体”进行复制,再通过交叉,变异过程产生更适应环境的新一代“染色体”群。这样,一代一代地进化,最后就会收敛到最适应环境的一个“染色体”上,它就是问题的最优解。
    ( ^! U/ Y( ~: H
    * o) W6 b" \, `( a! [; c1 j0 m
    一、遗传算法的目的
    1 K& }/ M7 X+ R; _
    8 r7 ]2 m% j' j# |' ]* u
    典型的遗传算法CGA(Canonical Genetic Algorithm)通常用于解决下面这一类的静态最优化问题:
    # r7 q3 e, q8 \& b6 T
    ( n# o. N- y& W/ O
    考虑对于一群长度为L的二进制编码bii12,…,n;有3 ]% U& k" k! u0 e, Q) ^6 t

    . O% D; w- k* v" d4 I) Q$ I& Zbi{0,1}L        (3-84) : ?/ `- o$ l! k" Q9 \
    7 T4 W$ O5 ~  i4 e
    给定目标函数f,有f(bi),并且& Y. w  X/ R+ h3 N* P0 X

    + }0 B& n  E  h: A0 ~0<F(BI)<< P> 1 G, R5 Q; G/ X) X$ Y  {

    : A: d  F  y9 k( L  q6 \2 Y2 f同时8 ~- _( O" A. E! V3 {3 q
    $ f! ]: Q* w9 b: r& _" g, _" l
    f(bi)f(bi+1)
    % J6 g9 s: Q* d7 x) \

    * q$ p" J% L6 w! ~+ [求满足下式& B6 ~9 j) v$ U7 h3 S% b+ |
    % W7 l9 y  W# U* A4 m
    max{f(bi)|bi{0,1}L} 2 N# Y. ?# {: o. t

    : a$ J+ w- \+ T" }bi: w- W- I# E* F+ [: E) S- u$ k
    - g9 f" V, R/ X- n; @: `$ Q  [
    很明显,遗传算法是一种最优化方法,它通过进化和遗传机理,从给出的原始解群中,不断进化产生新的解,最后收敛到一个特定的串bi处,即求出最优解。$ a' P$ s( I$ t8 _3 y& B; G
    % i) ?# P8 V2 X% L( e
    二、遗传算法的基本原理  L* Q; h7 D( p/ j& U5 c

    9 w; W/ h; B/ I7 P; K' o/ m长度为Ln个二进制串bi(i12,…,n)组成了遗传算法的初解群,也称为初始群体。在每个串中,每个二进制位就是个体染色体的基因。根据进化术语,对群体执行的操作有三种:
    9 F" D! K0 D8 t
    3 o4 K% z/ c& M# Q6 X2 _( o
    1.选择(Selection)
    * S( D/ m9 [6 \' H8 J5 G, G( i! f

    5 ?# R, S. v' F; c这是从群体中选择出较适应环境的个体。这些选中的个体用于繁殖下一代。故有时也称这一操作为再生(Reproduction)。由于在选择用于繁殖下一代的个体时,是根据个体对环境的适应度而决定其繁殖量的,故而有时也称为非均匀再生(differential reproduction)1 R. }* g  a" Q/ W; o8 f

    + ~+ d+ |9 j# g( D" a, n% d$ A0 h2.交叉(Crossover) 9 V9 E% C* Z' y% ?- }1 ]
    , ~0 {4 h  s) i( q- k! g
    这是在选中用于繁殖下一代的个体中,对两个不同的个体的相同位置的基因进行交换,从而产生新的个体。- d9 i; h1 q" s: {& a" J- A9 G5 Y) z
    4 {) e+ S6 [8 V# J# [4 a. S  w$ I4 w  E
    3.变异(Mutation)
    " |3 C9 j2 T& p
    6 E8 K$ D* \# l8 A) L, V7 b1 `
    这是在选中的个体中,对个体中的某些基因执行异向转化。在串bi中,如果某位基因为1,产生变异时就是把它变成0;反亦反之。
    ) }  X6 i0 r% v) x$ h, ^9 Y7 B4 ]
    ' K8 X2 I- m: U- d$ O5 T/ Z
    遗传算法的原理可以简要给出如下:: u- l0 u' X0 x9 {
    1 b3 u) W4 Y+ q
    choose an intial population 9 _! U' p9 R% {, R' B

    6 h0 @- U! r" Y+ k. Vdetermine the fitness of each individual
    " S" L$ |0 s+ ?. Q

    " |/ x( o6 o* n: ~perform selection 8 M$ @" K% h( I& b
    4 x; d7 j7 X3 P" ]9 [0 x. M- h+ s
    repeat % Z1 k( [: n& E' W1 D: Z& B

    ( R3 c5 }% V* W& S+ K5 m    perform crossover
    " [" {7 L7 Q/ L  T$ n/ V6 o% {

    $ J% e, e7 J: k    perform mutation   V+ O' `0 ?! w& X* ]
    : V; {4 j; ]; G+ A7 k/ i
        determine the fitness of each individual , W, t' ?/ s. O- n
    ) s6 W& W& ]4 A, F+ E* [
        perform selection 2 r3 h- a6 Y3 M) w! o( g' S

    - {+ q6 k/ X$ g. r& J# h  tuntil some stopping criterion applies + g' K$ ?! {1 M5 `

    4 |  j9 Y! t- [( J3 j这里所指的某种结束准则一般是指个体的适应度达到给定的阀值;或者个体的适应度的变化率为零。. p6 P% L5 |, Q% ?
    三、遗传算法的步骤和意义8 i  \+ b( U/ p7 b5 N7 h; F

    " j; B+ T3 P0 J) ?: g' Y1.初始化
    * f8 ^% t2 ~8 D# y. T$ Y$ S

    : c  C7 M/ h; K: Y选择一个群体,即选择一个串或个体的集合bii=12...n。这个初始的群体也就是问题假设解的集合。一般取n30-160
    9 |* A6 ]& R& x$ k5 Q
    " u: s" E3 h) ]( `$ j! I) n
    通常以随机方法产生串或个体的集合bi,i12...n。问题的最优解将通过这些初始假设解进化而求出。' u4 N, Q9 E& e: l1 v4 m
    0 [% l6 W0 G+ M2 I5 V; X" _& h/ G
    2.选择7 N- u3 P' r" }) b
    ( z, L1 ~+ f) O) }; B; ]: i
    根据适者生存原则选择下一代的个体。在选择时,以适应度为选择原则。适应度准则体现了适者生存,不适应者淘汰的自然法则。- q  H, V% K$ v/ C8 k. J

    3 `4 p8 q* U! c7 L给出目标函数f,则f(bi)称为个体bi的适应度。以
    ( D2 O2 B6 W! h9 l
    ) g# o7 ~9 ~- N% @: \( ?+ Q

    $ x( g8 ]9 ], Z2 i2 K" ~% }# k1 _$ Q 6.2.ht40.gif
      s; N* v! _4 T# ]; w3 a) o; i为选中bi为下一代个体的次数。6 P9 l, L/ S' t. Q$ ^. U
    3 A2 `) U. h+ a3 U8 y+ G
    显然.从式(386)可知:
    ( e' {2 {7 a8 z- L

    : q: |8 \, l/ A- x  M: p; A: m% m(1)适应度较高的个体,繁殖下一代的数目较多。
    1 |) k# k! y+ P& j; S
      v/ @& o% j: E
    (2)适应度较小的个体,繁殖下一代的数目较少;甚至被淘汰。
    * Z1 O  {& X; r- i0 h) O
    $ a' C% B, [: m% a/ T0 }
    这样,就产生了对环境适应能力较强的后代。对于问题求解角度来讲,就是选择出和最优解较接近的中间解。5 O4 Q. _) S& t/ W
    / Q- _9 \# i" ^0 P
    3.交叉2 h- V# h" t+ i
    对于选中用于繁殖下一代的个体,随机地选择两个个体的相同位置,按交叉概率P。在选中的位置实行交换。这个过程反映了随机信息交换;目的在于产生新的基因组合,也即产生新的个体。交叉时,可实行单点交叉或多点交叉。! x! n0 f" C; l

    4 I# e/ O, P+ `+ ^1 u. {4 k例如有个体
    , Q5 V: W! T# h' ?* C+ p4 T
    * C# Y8 W! Q0 J9 ^" _+ Q
    S1=100101
    & i2 u1 C, b+ ?$ ~4 u
    1 F' j8 @8 y  g- u) L
    S2=010111 & R* d; Z) K/ P) a

    2 c( ?% w, j7 s. s4 p选择它们的左边3位进行交叉操作,则有* K( Z# I0 J5 [' c! F1 j

    : r- H1 |: z6 b7 I& NS1=010101 9 b2 j2 C6 n$ K  |  D- `
    " Q( r/ B, ]8 t8 Q
    S2=100111
    9 d4 i0 z9 z$ B/ v% B6 a* }4 a
    2 M9 ^! Y# y5 o) |" }
    一般而言,交 婊显譖。取值为0.250.758 j. c* r& J7 d; D4 P2 \

    5 a, _- K( U+ ~1 V0 L8 _4.变异! m6 ]& c6 J- L7 d) H. v+ M7 P  r
    ) N* r4 b3 F2 T5 x! v% Y4 ~+ Y
    根据生物遗传中基因变异的原理,以变异概率Pm对某些个体的某些位执行变异。在变异时,对执行变异的串的对应位求反,即把1变为0,把0变为1。变异概率Pm与生物变异极小的情况一致,所以,Pm的取值较小,一般取0.01-0.2
    ; J3 _9 G, v$ ]3 Z3 T
    + \5 P  w; M2 C1 ?! G+ W
    例如有个体S101011
    ' j% P: Y9 A3 F+ [) G

    % E" y, E$ _! s对其的第14位置的基因进行变异,则有: Y6 J  U+ t  @( V5 n
    , O0 Q# b& }0 F4 J% @# r  ~: L
    S'=001111 ) ?# [! Y. {: ?/ ]% X* f
    ; D3 d2 U* B: q' T& {9 C6 w, v1 z5 i
    单靠变异不能在求解中得到好处。但是,它能保证算法过程不会产生无法进化的单一群体。因为在所有的个体一样时,交叉是无法产生新的个体的,这时只能靠变异产生新的个体。也就是说,变异增加了全局优化的特质。
    4 s- r5 E# ^( o, L
    ! y0 M/ x. l" D; |, Z
    5.全局最优收敛(Convergence to the global optimum) . f" C" D( g3 V1 e7 b) f

    . ]' I# y8 B  W  y: t4 k+ p. d2 ?+ [) \当最优个体的适应度达到给定的阀值,或者最优个体的适应度和群体适应度不再上升时,则算法的迭代过程收敛、算法结束。否则,用经过选择、交叉、变异所得到的新一代群体取代上一代群体,并返回到第2步即选择操作处继续循环执行。' k( q/ u) L# i' w; [  h
    ; E7 E$ t2 q) P+ a# M' {7 O( Z
    37中表示了遗传算法的执行过程。& d1 l0 Z6 o& e  a
    % q( m, w8 d9 P

    8 z, ^- Z5 E( M. [! @ Genetic_Algorithm.gif ) b) O7 R% G$ [7 s$ e

    - B, e/ k. v8 T' v, E: I3 h, k3-7 遗传算法原理
    * x0 t6 O3 Q3 o  Q9 I
    - \! n# E* k; V# p
    323遗传算法的应用
    7 w4 v* E- w- Y1 S# w2 m/ M

    0 n$ z* l6 k8 x/ j6 o1 t1 \3 k- n遗传算法在很多领域都得到应用;从神经网络研究的角度上考虑,最关心的是遗传算法在神经网络的应用。在遗传算法应用中,应先明确其特点和关键问题,才能对这种算法深入了解,灵活应用,以及进一步研究开发。$ }8 b% g2 ^1 }" L$ U9 C

    ! I5 s2 G3 d( _" h2 T一、遗传算法的特点
    . A; H* j# i. F
    ) C& ~' W- M6 r5 @" u8 l
    1.遗传算法从问题解的中集开始嫂索,而不是从单个解开始。4 J9 z: b% d$ Z. \

    ) j5 I* }, _7 |& v这是遗传算法与传统优化算法的极大区别。传统优化算法是从单个初始值迭代求最优解的;容易误入局部最优解。遗传算法从串集开始搜索,复盖面大,利于全局择优。
    4 c! N9 {) m. N$ e2 P2 N3 A
    ; ]4 Y* n8 C! r
    2.遗传算法求解时使用特定问题的信息极少,容易形成通用算法程序。- f1 y( ?1 m5 ?0 Y8 ]9 ]: r2 j
    ) y1 ~% c9 I5 x/ ~7 s6 J- j& T
    由于遗传算法使用适应值这一信息进行搜索,并不需要问题导数等与问题直接相关的信息。遗传算法只需适应值和串编码等通用信息,故几乎可处理任何问题。
      `6 M. S- T4 t
    4 E& e7 k: Y( @9 s: [2 p- b: Y
    3.遗传算法有极强的容错能力
    9 V) }8 z6 q$ Q# I9 z

    1 _) J' O5 ~- b  b3 S7 M) [1 o遗传算法的初始串集本身就带有大量与最优解甚远的信息;通过选择、交叉、变异操作能迅速排除与最优解相差极大的串;这是一个强烈的滤波过程;并且是一个并行滤波机制。故而,遗传算法有很高的容错能力。
    7 J' U; |5 n1 r0 O& \

    9 ~2 S6 S+ F- R3 B) `4.遗传算法中的选择、交叉和变异都是随机操作,而不是确定的精确规则。
    3 E' P' m: d$ E3 E, H; S

    ' S9 X2 z$ ?7 B) q这说明遗传算法是采用随机方法进行最优解搜索,选择体现了向最优解迫近,交叉体现了最优解的产生,变异体现了全局最优解的复盖。" r& w/ H. X! E  F& B
    $ w' y+ h/ J( f+ a. ^0 t, @
    5.遗传算法具有隐含的并行性
    7 s' l7 d, v/ H& O
    ( f5 d/ ~4 F4 X3 u7 A
    遗传算法的基础理论是图式定理。它的有关内容如下:
      H2 G5 k/ T$ t4 z, J, G. f( o

    / r# m7 h; n& l(1)图式(Schema)概念
    6 ]! i! i3 H2 C0 S2 m" ^

    * `  M% z  G5 m一个基因串用符号集{01*}表示,则称为一个因式;其中*可以是01。例如:H=1xx 0 x x是一个图式。3 h# Q" v3 s( A
    $ w# U, ?* I3 H- ^  v! g
    (2)图式的阶和长度
    * v! j0 j& p( u, g9 O) U( ~
    9 R) m, ~$ s; N5 i8 A
    图式中01的个数称为图式的阶,并用0(H)表示。图式中第1位数字和最后位数字间的距离称为图式的长度,并用δ(H)表示。对于图式H1x x0x x,有0(H)2,δ(H)4, m$ J0 }' |4 ~2 V

    / ?7 z- B" ]. r8 R+ V/ N(3)Holland图式定理# _, K, o$ |' _

    0 Q5 \" o8 `3 j5 g低阶,短长度的图式在群体遗传过程中将会按指数规律增加。当群体的大小为n时,每代处理的图式数目为0(n3)
    7 H2 Z5 I7 n0 S' r4 H$ \

    2 o9 T0 [0 G& v) p# d遗传算法这种处理能力称为隐含并行性(Implicit Parallelism)。它说明遗传算法其内在具有并行处理的特质。
    + q. t8 W& w* A% J* s( I3 T  X

    ; a1 X: \0 P6 }! f- x二、遗传算法的应用关键- ~9 B% e" A; {& Q$ v% d# j

    * i( q$ c2 v2 A+ t% K遗传算法在应用中最关键的问题有如下3
    $ D- ?# b$ O* E  q( m
    ; ^+ m1 J; l/ @3 k2 `
    1.串的编码方式
    0 V7 F% S* M' O# M; z' t

    ( r  B# I) v/ n6 F: `6 B这本质是问题编码。一般把问题的各种参数用二进制编码,构成子串;然后把子串拼接构成“染色体”串。串长度及编码形式对算法收敛影响极大。
    8 R. r# S" P5 I7 S6 q
    : q% P0 J' m1 C: n  t
    2.适应函数的确定
    # K. H  t3 w3 |" @) a* Y+ x4 g! o
    $ j+ ]1 s: Z  O' X1 W: ^+ V
    适应函数(fitness function)也称对象函数(object function),这是问题求解品质的测量函数;往往也称为问题的“环境”。一般可以把问题的模型函数作为对象函数;但有时需要另行构造。6 W* u% p2 t- \4 X/ A) {

    6 ~6 Q; q$ P' n+ Q2 E6 t" D, F8 e, M3.遗传算法自身参数设定8 O& q) s, X8 E6 b! c
      C, m& R% X& E$ l9 i# N
    遗传算法自身参数有3个,即群体大小n、交叉概率Pc和变异概率Pm
    , ^, p5 [8 T/ P

    , W! ^9 `6 Z. ~3 _; A群体大小n太小时难以求出最优解,太大则增长收敛时间。一般n30-160。交叉概率Pc太小时难以向前搜索,太大则容易破坏高适应值的结构。一般取Pc=0.25-0.75。变异概率Pm太小时难以产生新的基因结构,太大使遗传算法成了单纯的随机搜索。一般取Pm00102
    # D5 c, v) `0 q8 g4 @5 r. K) x

    ( c; o3 n. W$ l! |- X: N- _三、遗传算法在神经网络中的应用: c+ C9 J( k1 E, U
    + C' H* |4 ]2 u* \
    遗传算法在神经网络中的应用主要反映在3个方面:网络的学习,网络的结构设计,网络的分析。; G! z, e$ D1 R% T# q" b

    # _/ G2 a( w! C" Y! `+ ~1.遗传算法在网络学习中的应用
    5 Z8 T# u, V' R' f: e- N
    / i: b7 E' N1 |$ ?) }5 W
    在神经网络中,遗传算法可用于网络的学习。这时,它在两个方面起作用
    4 z+ F* ]- J; v
    % X& \8 Z0 E) K" l* z( `+ Z5 s
    (1)学习规则的优化
    $ r: j4 Z+ j5 @1 ?" r/ v6 v: S

    " t# C4 E% u; {4 U& O用遗传算法对神经网络学习规则实现自动优化,从而提高学习速率。- p1 ~1 ^9 I) U  N) _

    " ?1 R8 N9 f! G) f1 E(2)网络权系数的优化4 H! A& x+ |2 R" e! W! o7 \

    5 I$ o5 Y; a, v+ T. G( F4 |: P用遗传算法的全局优化及隐含并行性的特点提高权系数优化速度。
    2 g7 P7 _9 C- g' s+ f$ D

    2 B! S8 l, d1 |. E3 m' \5 q  {/ m# o- c! r2.遗传算法在网络设计中的应用& _. u& C4 M' ?6 {

    " e, m" t6 G" R& Z用遗传算法设计一个优秀的神经网络结构,首先是要解决网络结构的编码问题;然后才能以选择、交叉、变异操作得出最优结构。编码方法主要有下列3种:1 r. k- J3 e( Z

    & e3 P. t6 I: y3 o2 X(1)直接编码法# C% l' p1 V2 }/ L* u

    + N/ C- j1 `- S/ w; E' F3 Q这是把神经网络结构直接用二进制串表示,在遗传算法中,“染色体”实质上和神经网络是一种映射关系。通过对“染色体”的优化就实现了对网络的优化。8 m$ j* o6 _) B4 }( z

    1 H) w6 C7 I' v6 D5 S& \(2)参数化编码法
    0 G4 v( q$ S4 F: F. s

    3 a* z+ i6 v$ d0 C$ _4 k参数化编码采用的编码较为抽象,编码包括网络层数、每层神经元数、各层互连方式等信息。一般对进化后的优化“染色体”进行分析,然后产生网络的结构。% ~$ G+ F8 V8 y% e" U" j
    ! r& U" q3 R, l) U: J- f
    (3)繁衍生长法& j5 |9 O. @- f/ g( t
    2 e* ~0 H* z# t9 X  b) {! x0 h: [
    这种方法不是在“染色体”中直接编码神经网络的结构,而是把一些简单的生长语法规则编码入“染色体”中;然后,由遗传算法对这些生长语法规则不断进行改变,最后生成适合所解的问题的神经网络。这种方法与自然界生物地生长进化相一致。
    ) X0 V8 m1 x; o* y, o  M. _  w/ c
    . ?: S) C' m8 A7 Q
    3.遗传算法在网络分析中的应用
    - h$ i1 w, }4 D0 I/ d! N; T
    / W& L- k* J% u7 r5 `5 |6 f
    遗传算法可用于分析神经网络。神经网络由于有分布存储等特点,一般难以从其拓扑结构直接理解其功能。遗传算法可对神经网络进行功能分析,性质分析,状态分析。8 t3 z2 }7 W& s' \

    6 z) T& B: S! X& Q& C遗传算法虽然可以在多种领域都有实际应用,并且也展示了它潜力和宽广前景;但是,遗传算法还有大量的问题需要研究,目前也还有各种不足。首先,在变量多,取值范围大或无给定范围时,收敛速度下降;其次,可找到最优解附近,但无法精确确定最扰解位置;最后,遗传算法的参数选择尚未有定量方法。对遗传算法,还需要进一步研究其数学基础理论;还需要在理论上证明它与其它优化技术的优劣及原因;还需研究硬件化的遗传算法;以及遗传算法的通用编程和形式等。
    & Y* l) X6 k4 b# c& s

    + R5 Y$ d& Q6 Q  F6 c, H

    0 d! R6 s; T8 @3 k& m5 X7 Z
    三、遗传算法的步骤和意义$ Y9 J/ y9 F! w9 `
    & D" w' O) }1 G% k) W
    1.初始化8 S- \0 d9 ]: J

    6 }% B! A0 `0 m' n- P) _+ [选择一个群体,即选择一个串或个体的集合bii=12...n。这个初始的群体也就是问题假设解的集合。一般取n30-160
    ) z* M1 c8 f. f$ w" F9 s' r2 z) E
    3 g; w' J: k7 D6 u8 s  c, B5 {8 C) U+ c
    通常以随机方法产生串或个体的集合bi,i12...n。问题的最优解将通过这些初始假设解进化而求出。4 e7 ^$ ]* x+ Z" e3 Q
    " S7 p! n- t0 Y- R3 O6 V# _5 H
    2.选择- V. E) {& X, B+ F2 c$ K9 J

    ' Y! W% `  f, W4 b4 z: s% {根据适者生存原则选择下一代的个体。在选择时,以适应度为选择原则。适应度准则体现了适者生存,不适应者淘汰的自然法则。; z" U% O6 u' M2 |: X
      Q9 H: Z' S- ?5 ?- G& `
    给出目标函数f,则f(bi)称为个体bi的适应度。以
    2 f1 n" W' q, s* Z7 u' h  A

    " l9 Z0 U8 }% F3 {; Q% s/ T" k3 F; @/ {+ J" m7 [* i" Q

    6 x4 n) D1 `0 ^% O为选中bi为下一代个体的次数。
    * B: }! q) j0 |* w6 Y8 S) q

    ! i# U7 o. t, l9 G# e! j; Z) }显然.从式(386)可知:6 `/ }. H& f( c$ p) n2 n
    / w( }( r1 ?: Q. N
    (1)适应度较高的个体,繁殖下一代的数目较多。
    ) r+ ?& n0 ^6 w( T* X6 n  p. H

    # |3 o3 `/ w5 L5 P& D# ~% d1 V(2)适应度较小的个体,繁殖下一代的数目较少;甚至被淘汰。% V: I5 ^4 M) j9 l/ g

    5 d4 i9 R% S9 d4 O8 q5 ?这样,就产生了对环境适应能力较强的后代。对于问题求解角度来讲,就是选择出和最优解较接近的中间解。
    ! K! W% s; @0 }+ t  A: G

    * Z3 ^1 H1 ~# E2 b  M$ p* }/ N+ ?3.交叉
    # |8 j' ?/ m8 d9 I- q& R, H; V对于选中用于繁殖下一代的个体,随机地选择两个个体的相同位置,按交叉概率P。在选中的位置实行交换。这个过程反映了随机信息交换;目的在于产生新的基因组合,也即产生新的个体。交叉时,可实行单点交叉或多点交叉。
    6 c, ~  D+ e) E6 U5 W1 i9 s, F* s

    0 D0 _4 |( W2 s( U例如有个体. Q8 ~+ k5 t' _/ C( b1 b  s
    * n6 [' h& @3 B; s1 c. Q+ W2 y" d1 Z
    S1=100101 9 z& Z, a2 y8 A6 D6 ^& @! r6 M# V
    8 Q3 W0 `% O' c: [9 q- p) ~
    S2=010111
    4 ^8 `! q, i* C7 P

    * p0 }; {2 `& q- }) W选择它们的左边3位进行交叉操作,则有5 A* [  ~* `% d. `# m! |

    5 z6 I% ^8 `; W% F, C+ US1=010101   u: V6 l9 k$ n: e* H9 M

    & X! S) }( r/ \1 A2 vS2=100111
    ) z$ V: o9 y! z" N, R; G1 W3 q

    9 z; O# L0 j7 `) f- l' |' }一般而言,交 婊显譖。取值为0.250.75
    , }& f: t) H% {4 `3 C

    * Y* X% p% o' Y- H) u2 ]4.变异6 a6 d* t; P4 B8 B( r1 ]# Q
    9 b: q2 _5 n( r+ x9 p* Z; M1 [+ b7 H& ]
    根据生物遗传中基因变异的原理,以变异概率Pm对某些个体的某些位执行变异。在变异时,对执行变异的串的对应位求反,即把1变为0,把0变为1。变异概率Pm与生物变异极小的情况一致,所以,Pm的取值较小,一般取0.01-0.2
    ; H3 ~0 l/ C# Q7 i, F" M+ x

    2 i. m3 t* \! i例如有个体S101011
    ! j* B; \" Y2 ?; I! ?+ K' e

    $ u- \( h8 p: a2 Q0 l  u对其的第14位置的基因进行变异,则有
    , J% a1 i4 d# k

    * b' A1 S9 X3 X4 u4 ^+ G; D7 ]S'=001111
    ( }, o4 g0 g* b; [; N# \- n5 Y
    $ R) v$ c2 r; a  ^: Y  ^
    单靠变异不能在求解中得到好处。但是,它能保证算法过程不会产生无法进化的单一群体。因为在所有的个体一样时,交叉是无法产生新的个体的,这时只能靠变异产生新的个体。也就是说,变异增加了全局优化的特质。+ _  z  [3 D* c$ C! u
    ' _$ P+ h: \7 M2 d
    5.全局最优收敛(Convergence to the global optimum) & s6 D( L# W- F

    9 w, r/ G* g7 }+ b- |) n+ E当最优个体的适应度达到给定的阀值,或者最优个体的适应度和群体适应度不再上升时,则算法的迭代过程收敛、算法结束。否则,用经过选择、交叉、变异所得到的新一代群体取代上一代群体,并返回到第2步即选择操作处继续循环执行。
    $ h. k; N) q; D: B
    ( p& ?6 k8 d/ c- f/ e6 s9 W
    37中表示了遗传算法的执行过程。
    4 N0 {4 H( n* o8 D% g* R
    " W5 k* H1 v( y4 B$ \% B
    " r7 ~" O5 z' Z5 }& o; T' k1 e' |1 Y/ \
    $ N/ Y2 N- x- N  Z& B- k
    3-7 遗传算法原理% k, O) C" a, k* [5 X; B! E/ u, V
    % S' H; k8 |/ b# O* x
    323遗传算法的应用8 j7 ~0 i' E# P1 V% F0 Q+ [% }

    * D5 P7 w9 N; H8 \& N0 h1 S' l遗传算法在很多领域都得到应用;从神经网络研究的角度上考虑,最关心的是遗传算法在神经网络的应用。在遗传算法应用中,应先明确其特点和关键问题,才能对这种算法深入了解,灵活应用,以及进一步研究开发。
    * v2 W7 V8 t8 r* \3 Z; r
    $ G- u" q- ^' Y0 x% R4 e
    一、遗传算法的特点
    0 x4 `) z" w* K9 Q5 h2 _

    # `% a' w' N/ t& t7 y4 l0 e' L1.遗传算法从问题解的中集开始嫂索,而不是从单个解开始。- J6 G+ c& J& S# V5 y4 c

    ' j9 P7 s1 c/ @5 Q- A3 i这是遗传算法与传统优化算法的极大区别。传统优化算法是从单个初始值迭代求最优解的;容易误入局部最优解。遗传算法从串集开始搜索,复盖面大,利于全局择优。
    ; n+ l2 h5 t: Z% d% g6 d4 p

    : E6 ~4 H6 d% f2.遗传算法求解时使用特定问题的信息极少,容易形成通用算法程序。4 `6 X$ x8 z3 g! C; k

    . n4 u: ?& G8 |: A# r5 g由于遗传算法使用适应值这一信息进行搜索,并不需要问题导数等与问题直接相关的信息。遗传算法只需适应值和串编码等通用信息,故几乎可处理任何问题。% j2 k; J2 a. j% ~" A' f

    . `! H' R" y0 p4 n: c" q3.遗传算法有极强的容错能力2 ]/ w' K- G8 N, C7 S: T
    ; t) T" q' r8 L( V5 X1 t1 j% K! c% l
    遗传算法的初始串集本身就带有大量与最优解甚远的信息;通过选择、交叉、变异操作能迅速排除与最优解相差极大的串;这是一个强烈的滤波过程;并且是一个并行滤波机制。故而,遗传算法有很高的容错能力。; B# u- _6 g4 L( N
    3 P" G$ ^  l- _; U
    4.遗传算法中的选择、交叉和变异都是随机操作,而不是确定的精确规则。) K: B+ e! b4 ~& m0 J! k; l# G

    4 d# O5 N, M0 v! a. e: n  Z这说明遗传算法是采用随机方法进行最优解搜索,选择体现了向最优解迫近,交叉体现了最优解的产生,变异体现了全局最优解的复盖。% h! U  ~, u: y) `2 ?  U1 k8 n

    0 n* p# a- G9 t5.遗传算法具有隐含的并行性; p4 u: |7 x3 r! H1 t0 z" a# _. w

    8 V- ^/ }6 g2 J& `& o3 l遗传算法的基础理论是图式定理。它的有关内容如下:% Z! {5 A& b  @' s4 D' L+ C, t

    5 v( @; h9 z" Y(1)图式(Schema)概念
    2 i+ j9 _8 S6 a/ Q9 k3 d+ R/ y

    5 o1 @$ A% R* Y# _+ a( _( g; J一个基因串用符号集{01*}表示,则称为一个因式;其中*可以是01。例如:H=1xx 0 x x是一个图式。
    ( G& L( a2 P7 A& Y& h9 e) `

    3 W7 F1 i" C& Q7 v(2)图式的阶和长度
    , o. b: F; ]/ s% a( w
    : t$ S' S; k  Z* {  j# m
    图式中01的个数称为图式的阶,并用0(H)表示。图式中第1位数字和最后位数字间的距离称为图式的长度,并用δ(H)表示。对于图式H1x x0x x,有0(H)2,δ(H)4
    7 j3 h# O& p0 f/ @( ?) [1 h2 |  I
    9 M9 m6 ~' T* A
    (3)Holland图式定理
    7 V- e' D2 q5 s: P/ z
    * ?9 B, Z5 M) a
    低阶,短长度的图式在群体遗传过程中将会按指数规律增加。当群体的大小为n时,每代处理的图式数目为0(n3)( r% D  |3 q; {5 V
    $ U8 o$ d5 j( B' u8 Z( ~$ H, k
    遗传算法这种处理能力称为隐含并行性(Implicit Parallelism)。它说明遗传算法其内在具有并行处理的特质。
    . U0 d8 e  ~! L. ^2 O  W! l0 x

    " K3 V6 ?# B( v4 u二、遗传算法的应用关键
    ) u9 t5 X/ P8 d; Q" Z6 w/ J
    ! N/ n; L/ t) s1 ^5 @
    遗传算法在应用中最关键的问题有如下3
    " o. w$ W  o2 a1 Y& @  I
    # j" J+ n1 ~2 H/ ^( E9 d* H9 U
    1.串的编码方式
    ' q0 P) |1 t  _7 _
    " W5 z& [5 z: ]' `$ x3 }
    这本质是问题编码。一般把问题的各种参数用二进制编码,构成子串;然后把子串拼接构成“染色体”串。串长度及编码形式对算法收敛影响极大。
    - {( c8 }3 @- U& [7 x
    : o5 _: V% e9 S2 E, `6 ~
    2.适应函数的确定) b7 Q7 e  v9 j: F, ~9 i( K

    ' d0 Y' M/ }/ d8 g$ H: R% e& A适应函数(fitness function)也称对象函数(object function),这是问题求解品质的测量函数;往往也称为问题的“环境”。一般可以把问题的模型函数作为对象函数;但有时需要另行构造。2 g* P2 }, p1 D' l4 B9 v* `

    4 e) y6 T  K  ~2 v: Q8 U; B3.遗传算法自身参数设定
    + b: e# D/ Y" A
    3 e$ c3 @; `6 s0 F, ]3 \) R
    遗传算法自身参数有3个,即群体大小n、交叉概率Pc和变异概率Pm& d( N# z5 g% u3 ?
    7 d. e- t$ k. o2 e
    群体大小n太小时难以求出最优解,太大则增长收敛时间。一般n30-160。交叉概率Pc太小时难以向前搜索,太大则容易破坏高适应值的结构。一般取Pc=0.25-0.75。变异概率Pm太小时难以产生新的基因结构,太大使遗传算法成了单纯的随机搜索。一般取Pm00102
      P5 }3 b# h( V; ]" s+ ^+ G
    + T' l  s0 J5 ~# T. y5 F
    三、遗传算法在神经网络中的应用
    # A8 C8 ?& |' L" L0 Z( h* K

    : ^: T9 Z! C) [. a! k: C, b遗传算法在神经网络中的应用主要反映在3个方面:网络的学习,网络的结构设计,网络的分析。# S: m0 R/ W/ n5 E
    8 u# E8 O/ \' Y. O+ Z
    1.遗传算法在网络学习中的应用
    * H4 s) z. a& F5 ~8 l& E7 q  A2 M
    6 v* K, K6 [+ ~) u  {
    在神经网络中,遗传算法可用于网络的学习。这时,它在两个方面起作用$ u0 v! C1 l9 s) x

    $ B0 r3 V1 A! Y' K6 I0 t- `/ z(1)学习规则的优化
    ( \: G- W4 W; Y/ u: K; ~# t

    . E9 A" i* h7 D; I* S+ Y用遗传算法对神经网络学习规则实现自动优化,从而提高学习速率。
    5 t8 |' q" {  j/ N! y

    ) e$ i' Y/ _" ^  w' ^(2)网络权系数的优化
    3 G. i; J, ~& \( x) s0 o

    ) s" Q; J. k, U0 x用遗传算法的全局优化及隐含并行性的特点提高权系数优化速度。. u' J& i$ \( Y5 Y/ k$ ~
    " M( \7 u! r9 F/ b2 {1 T
    2.遗传算法在网络设计中的应用
      m% E* V# C- g  O

    2 a: B% v  }+ D# l; O* y5 T用遗传算法设计一个优秀的神经网络结构,首先是要解决网络结构的编码问题;然后才能以选择、交叉、变异操作得出最优结构。编码方法主要有下列3种:
    : [  C  [, c7 f0 T5 k
    * |2 {# B/ N/ `
    (1)直接编码法
      G% H3 H# C! z; J" [( G

    : ~: r. O# r( L2 d8 I: I这是把神经网络结构直接用二进制串表示,在遗传算法中,“染色体”实质上和神经网络是一种映射关系。通过对“染色体”的优化就实现了对网络的优化。
    . e* L% G8 T$ o  j+ Y( p

    5 P% K0 M! i7 P+ o' X(2)参数化编码法
    ' o9 ?, H3 N" R/ L% i) \) [9 K7 b
    4 v$ r) o$ l$ ^9 |
    参数化编码采用的编码较为抽象,编码包括网络层数、每层神经元数、各层互连方式等信息。一般对进化后的优化“染色体”进行分析,然后产生网络的结构。
    & O+ P1 ~; k6 T! U% R
    8 Y8 Q- d4 z7 D8 s, ]) i
    (3)繁衍生长法8 }9 s& b7 @. p5 K% |/ E8 G( S

    1 z& O, B2 l& _3 C' X这种方法不是在“染色体”中直接编码神经网络的结构,而是把一些简单的生长语法规则编码入“染色体”中;然后,由遗传算法对这些生长语法规则不断进行改变,最后生成适合所解的问题的神经网络。这种方法与自然界生物地生长进化相一致。
    ( g  L! |( m. e$ _. I$ J: @
      M$ C% T& `- u. e, j
    3.遗传算法在网络分析中的应用/ ?1 K1 r% g, q' i; q" ?% D( L$ J
    ; e6 H) V0 H3 T% ^5 U9 y
    遗传算法可用于分析神经网络。神经网络由于有分布存储等特点,一般难以从其拓扑结构直接理解其功能。遗传算法可对神经网络进行功能分析,性质分析,状态分析。3 N  `. ]2 R& F- g
    5 [+ s% e8 ?+ q6 Q# |# t
    遗传算法虽然可以在多种领域都有实际应用,并且也展示了它潜力和宽广前景;但是,遗传算法还有大量的问题需要研究,目前也还有各种不足。首先,在变量多,取值范围大或无给定范围时,收敛速度下降;其次,可找到最优解附近,但无法精确确定最扰解位置;最后,遗传算法的参数选择尚未有定量方法。对遗传算法,还需要进一步研究其数学基础理论;还需要在理论上证明它与其它优化技术的优劣及原因;还需研究硬件化的遗传算法;以及遗传算法的通用编程和形式等。
    * _' N- g# C" A. _/ n
    更多图片 小图 大图
    组图打开中,请稍候......
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    楼主热帖
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • 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-3-19 11:07

    Powered by Discuz! X3.5 Licensed

    © 2001-2025 Discuz! Team.

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