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

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

转(遗传算法)

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

    连续签到: 1 天

    [LV.2]偶尔看看I

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

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

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

    ×
    生物的进化是一个奇妙的优化过程,它通过选择淘汰,突然变异,基因遗传等规律产生适应环境变化的优良物种。遗传算法是根据生物进化思想而启发得出的一种全局优化算法。  I; }6 a: p$ U( m! z* X

    ! G% C# M: }$ i" T3 u遗传算法的概念最早是由Bagley J.D在1967年提出的;而开始遗传算法的理论和方法的系统性研究的是1975年,这一开创性工作是由Michigan大学的J.H.Holland所实行。当时,其主要目的是说明自然和人工系统的自适应过程。
    " l8 G/ A' H' ~: A

    0 X/ q( {( X# ~+ B" n) ~: W- U( g遗传算法简称GA(Genetic Algorithm),在本质上是一种不依赖具体问题的直接搜索方法。遗传算法在模式识别、神经网络、图像处理、机器学习、工业优化控制、自适应控制、生物科学、社会科学等方面都得到应用。在人工智能研究中,现在人们认为“遗传算法、自适应系统、细胞自动机、混沌理论与人工智能一样,都是对今后十年的计算技术有重大影响的关键技术”。
    ' m# i3 p7 ^6 }) E5 ]

      H+ ]5 q/ C3 L8 ~3.2.1 遗传算法的基本概念) k. ]3 ]# D. x5 k
    , t6 O) L2 b  u0 o+ a; C5 l
    遗传算法的基本思想是基于Darwin进化论和Mendel的遗传学说的。  X4 \1 o3 \- z/ i$ U+ I

    " m1 [- G/ `/ a2 v4 R  `' ?. L$ a9 T  uDarwin进化论最重要的是适者生存原理。它认为每一物种在发展中越来越适应环境。物种每个个体的基本特征由后代所继承,但后代又会产生一些异于父代的新变化。在环境变化时,只有那些熊适应环境的个体特征方能保留下来。
      P4 Q* e3 J& z, F- B8 q

    " O; p& V( ^0 D+ U1 x- mMendel遗传学说最重要的是基因遗传原理。它认为遗传以密码方式存在细胞中,并以基因形式包含在染色体内。每个基因有特殊的位置并控制某种特殊性质;所以,每个基因产生的个体对环境具有某种适应性。基因突变和基因杂交可产生更适应于环境的后代。经过存优去劣的自然淘汰,适应性高的基因结构得以保存下来。* F6 I* Q( x! P2 J. }" m
    + E* K9 c6 i6 {) m6 m3 ?: M% o
    由于遗传算法是由进化论和遗传学机理而产生的直接搜索优化方法;故而在这个算法中要用到各种进化和遗传学的概念。这些概念如下:
    : L) ?4 H( t; i* o. [
    5 B, D1 o1 C; A* f
    一、串(String)
    8 m' M2 t( {) Y5 F# c
    # A& H8 Z4 Z) D2 z- V- H9 [
    它是个体(Individual)的形式,在算法中为二进制串,并且对应于遗传学中的染色体(Chromosome)。! a" D) v( {  X* `( j
    $ O# Z7 ~, @8 K8 J0 A) p) q4 @
    二、群体(Population) 0 m: Z  d8 k( O2 H

    , z- Q" j. e( z# f个体的集合称为群体,串是群体的元素
    ; P& j7 {7 ^, W9 P% a8 F! K

    ! k+ _, i3 ^3 s! y. T* R! q三、群体大小(Population Size)
    . O# S3 c& u( |" w4 d" s. i: }
    " P; C' P! _; X+ x  J4 n
    在群体中个体的数量称为群体的大小。
    2 a! u" L9 x; d/ @

    : B6 b# j- u$ m- S/ \四、基因(Gene) 6 a$ H8 w8 ^! Y

    * N8 k$ l2 t8 v- a: n/ j2 Y基因是串中的元素,基因用于表示个体的特征。例如有一个串S=1011,则其中的1,0,1,1这4个元素分别称为基因。它们的值称为等位基因(Alletes)。
      w) V0 t, z& _

    ; m' N4 L* _: ?3 e& l1 w五 、基因位置(Gene Position) . l0 ^$ Q6 f5 ~8 {+ G5 \

    1 D5 Z2 G/ y$ Y' C% T* Z- E一个基因在串中的位置称为基因位置,有时也简称基因位。基因位置由串的左向右计算,例如在串S=1101中,0的基因位置是3。基因位置对应于遗传学中的地点(Locus)。
    0 h; D: e) ?- w; l
    0 H( C- [$ _5 o# `# ]# C$ \
    六、基因特征值(Gene Feature) ! s0 v! D6 l  q8 u5 ]
    % J  I" g! s, a; M0 `
    在用串表示整数时,基因的特征值与二进制数的权一致;例如在串S=1011中,基因位置3中的1,它的基因特征值为2;基因位置1中的1,它的基因特征值为8。! f! W3 e+ Y( B

    # ?* ~- i4 ?0 W/ ]  K( \七、串结构空间SS
    : R4 P% Q- L5 o' g1 |: o3 m! r
    8 b$ J+ }; d0 s4 T, ]$ {
    在串中,基因任意组合所构成的串的集合。基因操作是在结构空间中进行的。串结构空间对应于遗传学中的基因型(Genotype)的集合。$ J( Z' Z! `+ Q0 a  O
    & W7 ]/ K  k4 W/ {" l5 E
    八、参数空间SP
    , W8 Y* c% L- [1 W
      g  f  o, S4 b7 z' ^% q+ `
    这是串空间在物理系统中的映射,它对应于遗传学中的表现型(Phenotype)的集合。" T2 s. y7 b9 f$ z* M% S

    ) a" a2 W; N0 Q; {4 e* J九、非线性
    - n$ [/ t1 O( x
      A6 Y  l: u' H8 \/ }7 K6 r
    它对应遗传学中的异位显性(Epistasis)
    0 ]& \$ K. ~' `% A% J

    " d0 Q  g- }) l8 E7 q# B# v十、适应度(Fitness)
    5 D  ~% F7 G; E% @& T5 o& z; b

    ; J. E2 K) J* [$ R表示某一个体对于环境的适应程度。/ z6 a6 [0 G* P1 ]4 Y% [
    * a+ \3 g& q/ z" a2 j
    遗传算法还有一些其它的概念,这些概念在介绍遗传算法的原理和执行过程时,再进行说明。9 M$ Z3 ~+ l" X* y5 p

    + ]  P& e6 Q% Q8 M' E3.2.2遗传算法的原理
    4 J1 x4 f/ }0 n+ N- Z2 f1 N  o
    9 d5 w3 Q9 q2 A6 Q( Q/ q
    遗传算法GA把问题的解表示成“染色体”,在算法中也即是以二进制编码的串。并且,在执行遗传算法之前,给出一群“染色体”,也即是假设解。然后,把这些假设解置于问题的“环境”中,并按适者生存的原则,从中选择出较适应环境的“染色体”进行复制,再通过交叉,变异过程产生更适应环境的新一代“染色体”群。这样,一代一代地进化,最后就会收敛到最适应环境的一个“染色体”上,它就是问题的最优解。+ k; [, B& P0 b! w% T. k- O# [
    ! v! ^# V) e6 t9 h/ u, I
    一、遗传算法的目的
    1 O" c( q6 v8 L" ?8 Q% h& S8 V- \8 ^
    & |& h' {" K- W9 m
    典型的遗传算法CGA(Canonical Genetic Algorithm)通常用于解决下面这一类的静态最优化问题:% s( M. p0 A2 M- G2 M

    ; P6 W% |# i- Y/ Z' }, o考虑对于一群长度为L的二进制编码bi,i=1,2,…,n;有& G" @* Y$ m6 K  R: @3 a4 o+ ~7 M
    . G2 R4 w- c. m5 J7 y+ g
    bi∈{0,1}L        (3-84)
    $ W; w+ G4 w1 \0 ]

    8 B# E! l' i7 ]. s# A给定目标函数f,有f(bi),并且
    9 N" K  ]  B- w/ N2 F

    " t+ F; Q) C. U  y0 a3 ~1 h0<F(BI)<∞< P>
    ; i9 K6 M3 M. K0 \: ~  J% k

    0 Z. j) l! z  h8 F9 e1 F# R8 Z. D4 x8 j同时
    ( g9 ]$ I3 E$ Q7 v$ S0 Q* M
    0 ~' Q6 n9 q' A! N
    f(bi)≠f(bi+1)
    ( T' o3 V+ ^; p2 w4 e) ?
    ; Y, _9 m6 |- y/ ]
    求满足下式
    ! Z5 f" @* Z1 M# c2 I1 K9 `) @
    . Z( W3 R# V& v6 j. w
    max{f(bi)|bi∈{0,1}L} . N1 R& H: i$ z! O1 U
    3 j' K( n* f5 z- B
    的bi。
    3 A; f' n5 ~) [4 X

    4 Z2 C2 K8 A3 H1 F6 l% Y+ }- I$ t很明显,遗传算法是一种最优化方法,它通过进化和遗传机理,从给出的原始解群中,不断进化产生新的解,最后收敛到一个特定的串bi处,即求出最优解。$ f2 J2 i( x$ c' a

    ' I$ r* p4 J  P# T4 G! A二、遗传算法的基本原理
    3 y6 U6 s; A& |6 v  \! B4 `8 e
    ; S8 j) w" _# L
    长度为L的n个二进制串bi(i=1,2,…,n)组成了遗传算法的初解群,也称为初始群体。在每个串中,每个二进制位就是个体染色体的基因。根据进化术语,对群体执行的操作有三种:2 H" A# f/ p9 |1 ?, {* B: x, j( x

    6 B0 |9 X5 W, M1.选择(Selection)
    $ e& `! F- {1 M1 [+ X
    ) }& X1 T7 Q, g+ {# B1 V* H
    这是从群体中选择出较适应环境的个体。这些选中的个体用于繁殖下一代。故有时也称这一操作为再生(Reproduction)。由于在选择用于繁殖下一代的个体时,是根据个体对环境的适应度而决定其繁殖量的,故而有时也称为非均匀再生(differential reproduction)。. [  V8 J$ h6 z

    7 b3 k* B- k* G5 N5 T2.交叉(Crossover) , a" |8 z' \" g/ N
    3 @8 i" i5 t" F; u2 S
    这是在选中用于繁殖下一代的个体中,对两个不同的个体的相同位置的基因进行交换,从而产生新的个体。; g) r$ G* t9 X1 s8 ~3 o
    ( V2 V8 N) P$ y1 |$ G4 @
    3.变异(Mutation)
    2 z- V& p" ?" ]+ C& p
    . |; {* g: A5 m% y! u9 |
    这是在选中的个体中,对个体中的某些基因执行异向转化。在串bi中,如果某位基因为1,产生变异时就是把它变成0;反亦反之。2 D" |" }( j( p4 d

    1 X* l5 Z3 E  Q9 ^0 _遗传算法的原理可以简要给出如下:
    . g! V( K& ?5 W7 |& J2 `4 k( G
    6 g7 O. R3 M% S) _& f1 x
    choose an intial population
    * G! v0 x8 R2 C' H# X/ b

    7 \4 W' f9 Y5 j& M; [- qdetermine the fitness of each individual 2 A9 x  H, w2 s$ j; D1 ~2 N

    0 d* T! k6 H' l0 W/ L- Hperform selection 5 ]+ v- i4 _! j* y- M4 F$ m  _
    * z& \7 H8 m8 X: K/ f1 j
    repeat
      c- q+ x  \3 ^+ o; z& [
      Y1 D8 _2 h( {: d
        perform crossover 7 ~5 L3 \5 Y- X# {1 E) k

    9 b7 _: b& j6 l; s( _9 E% l% T8 h    perform mutation 5 D% d. E' @8 a5 Q; A& h" \0 o
    * |8 m3 Q2 n% i) V) g  I; P
        determine the fitness of each individual 2 g* `6 K, Z" y7 o4 {" H( ^4 I
    , t  G& }- {5 d: {, V4 \) R
        perform selection : {9 Y  P* ]: M( C3 N8 Y) ?0 t

    ; B( T' {" x2 w. f, G5 s, Iuntil some stopping criterion applies
    5 P1 ?0 k4 M; d! m. ?9 r8 k
    2 z4 R' C, E/ l' m. W, h6 \( H
    这里所指的某种结束准则一般是指个体的适应度达到给定的阀值;或者个体的适应度的变化率为零。
    + g0 k& X% s: T# K- T
    三、遗传算法的步骤和意义$ h& ?1 h( c8 {7 o3 m7 {/ s

    , E! w" l5 J8 V5 i$ D1.初始化
    8 k; a( Y) A$ G2 F! j8 W2 Y/ }* X
    8 ]2 d& N2 P* _7 [* z8 |; K
    选择一个群体,即选择一个串或个体的集合bi,i=1,2,...n。这个初始的群体也就是问题假设解的集合。一般取n=30-160。" O- G0 v( Z" F9 }6 c- v
    5 J0 ~5 ]; L" B9 c0 f, h
    通常以随机方法产生串或个体的集合bi,i=1,2,...n。问题的最优解将通过这些初始假设解进化而求出。
    ( G+ z" `: y; B- e' G0 p* T1 d
    1 y' W5 n7 L. t5 C) k( [5 @2 T
    2.选择
    3 s" T# R! S4 K) z8 @! e4 c! Q$ G
    " H/ C$ O0 ?2 c4 p4 U9 K. o6 I# r& O
    根据适者生存原则选择下一代的个体。在选择时,以适应度为选择原则。适应度准则体现了适者生存,不适应者淘汰的自然法则。& c# s! \' N& D- G2 V
    ; [2 x& \, F8 G) D# K) y" {) f
    给出目标函数f,则f(bi)称为个体bi的适应度。以
    5 G# v+ M; R+ j& E2 s. ~+ O& x- h
    ! Z  E6 K" A0 T$ l, C: A, a2 C

    * q9 e% H9 u( D1 D 6.2.ht40.gif 3 K6 y) }% h( K
    为选中bi为下一代个体的次数。
    2 D" {, \" _  n6 j3 L

    1 G& }/ f# T2 H: |( ?2 _, z显然.从式(3—86)可知:
    ; t2 W/ ?' d$ ?2 J9 t
    ( E" N: l* i/ ?( z% ~# d1 ]9 p
    (1)适应度较高的个体,繁殖下一代的数目较多。
    ) d% W, H! [" @( c3 Y/ a

    9 k0 v0 w  c1 [5 |- h9 R/ M& U(2)适应度较小的个体,繁殖下一代的数目较少;甚至被淘汰。3 M% |$ \, c$ Z6 s5 ?
    3 U' r* _2 }1 G) E1 L
    这样,就产生了对环境适应能力较强的后代。对于问题求解角度来讲,就是选择出和最优解较接近的中间解。3 S& P+ {2 {$ L0 H9 s
    ( F- J0 T3 M2 g+ ]3 A6 q: v) K0 g
    3.交叉
    4 e+ j. P" F% c. ~0 r) M对于选中用于繁殖下一代的个体,随机地选择两个个体的相同位置,按交叉概率P。在选中的位置实行交换。这个过程反映了随机信息交换;目的在于产生新的基因组合,也即产生新的个体。交叉时,可实行单点交叉或多点交叉。4 G' e" g) ~1 T4 T
      N+ p  _0 u! Z7 c+ ~, x; v" K
    例如有个体8 u4 B9 e: q" i% M* [

    5 Q' E" K9 A. P9 h% V7 m/ `S1=100101
    - f1 m3 m+ g, o# W* b

    : H$ ~% r2 _- e) f! pS2=010111 8 B) ~( W* a& Y: _0 K; s4 m5 R" L! O
    * `% h) W! \! _6 I7 d. R
    选择它们的左边3位进行交叉操作,则有
    ; \7 J3 ~% z) o' r# m7 ]" ?
    7 m) N  f& r- a$ f3 v
    S1=010101 $ h* ^  k, b2 Q) {! \: k
    % n6 |5 ]% g, R; [# T
    S2=100111 4 @2 r. a3 z& `: v3 W, r  w, f
    1 i% X0 i# e( R" z# ]& m
    一般而言,交 婊显譖。取值为0.25—0.75。
      R0 M6 @+ Y# |0 ~# v, {: Z4 G/ E

    % ]2 }6 H$ [& V/ n4.变异) ?0 r' R$ M3 o5 B' `! P* Z' o
    & T- v0 V1 N4 p8 \/ _
    根据生物遗传中基因变异的原理,以变异概率Pm对某些个体的某些位执行变异。在变异时,对执行变异的串的对应位求反,即把1变为0,把0变为1。变异概率Pm与生物变异极小的情况一致,所以,Pm的取值较小,一般取0.01-0.2。
    3 f- _3 i0 S$ C5 _
    - u1 O! b# F  B! O0 Y( Z
    例如有个体S=101011。( o1 ^- Y9 t- }' f4 k
    " P$ v/ l  h+ ~
    对其的第1,4位置的基因进行变异,则有
    $ `) Y! g4 E- i2 }, D$ h

    7 x, x0 |; _& R( K4 Z  ~S'=001111 . h3 B) L6 a# \2 e( [. o3 h

    , k/ y: C8 L7 B( O+ D/ J2 d0 _9 h8 Y单靠变异不能在求解中得到好处。但是,它能保证算法过程不会产生无法进化的单一群体。因为在所有的个体一样时,交叉是无法产生新的个体的,这时只能靠变异产生新的个体。也就是说,变异增加了全局优化的特质。" X8 ^/ \; u# j2 B
    * u2 B- Q; f, x6 F; t$ D7 g
    5.全局最优收敛(Convergence to the global optimum)
    0 o, a1 t# ?7 y; C: w8 u

    : ]. r+ Z4 r+ |' `& e当最优个体的适应度达到给定的阀值,或者最优个体的适应度和群体适应度不再上升时,则算法的迭代过程收敛、算法结束。否则,用经过选择、交叉、变异所得到的新一代群体取代上一代群体,并返回到第2步即选择操作处继续循环执行。
    ( K- Y: I/ Q% s/ d3 b( J5 h

    ( \( D( `9 B  m图3—7中表示了遗传算法的执行过程。5 \- L' z- T( w0 b! H9 N0 Q

    0 I1 z' Q9 ]% l# t) H* K* ]5 e/ |4 N; x( F6 y
    Genetic_Algorithm.gif
    * E+ y4 o% F9 d2 v
    0 v& v& J  Q6 H1 B- a图3-7 遗传算法原理
    8 e+ D4 l# O+ B1 e9 J0 {! ]! x
    & N% X) D* s; i7 d5 y
    3.2.3遗传算法的应用( M% Y8 y$ p0 J9 g+ U8 C' l2 J
    . w9 q7 a' j1 P% _) |0 e( ?
    遗传算法在很多领域都得到应用;从神经网络研究的角度上考虑,最关心的是遗传算法在神经网络的应用。在遗传算法应用中,应先明确其特点和关键问题,才能对这种算法深入了解,灵活应用,以及进一步研究开发。
    5 v, }1 O1 H9 }5 @

    6 @/ }; Q  H$ P9 E$ `一、遗传算法的特点
    8 A1 v6 }+ ?; D* K

    8 ?& d2 A9 C( A1.遗传算法从问题解的中集开始嫂索,而不是从单个解开始。' z; s* x* v: a# e( w7 |; Z1 o
    $ w8 D! F6 z& L1 j0 R
    这是遗传算法与传统优化算法的极大区别。传统优化算法是从单个初始值迭代求最优解的;容易误入局部最优解。遗传算法从串集开始搜索,复盖面大,利于全局择优。
    $ S9 Y$ Q/ R- [1 F# l

    4 K/ `$ s8 }" r1 X5 u2.遗传算法求解时使用特定问题的信息极少,容易形成通用算法程序。
    ) ^% ]; W' u6 ?4 q9 l
    6 r% h. Q" U3 `" C
    由于遗传算法使用适应值这一信息进行搜索,并不需要问题导数等与问题直接相关的信息。遗传算法只需适应值和串编码等通用信息,故几乎可处理任何问题。
    0 K3 S& d/ w) B9 f% J+ d$ v9 x
    7 M+ Y3 b/ q9 z. w( K6 P" s: [
    3.遗传算法有极强的容错能力
    * d4 \# t, I/ T* }3 x, K- R

    5 }+ O1 \; Y7 L) O- d' c, D遗传算法的初始串集本身就带有大量与最优解甚远的信息;通过选择、交叉、变异操作能迅速排除与最优解相差极大的串;这是一个强烈的滤波过程;并且是一个并行滤波机制。故而,遗传算法有很高的容错能力。
    ; l8 p  r1 c+ D0 ]5 M% N: Y/ E
    ' ]+ y. S$ l7 H/ `
    4.遗传算法中的选择、交叉和变异都是随机操作,而不是确定的精确规则。+ T1 }( ]% n5 B, V

    & I5 X/ M$ r6 F  K& \2 y这说明遗传算法是采用随机方法进行最优解搜索,选择体现了向最优解迫近,交叉体现了最优解的产生,变异体现了全局最优解的复盖。
    : ?  V/ t% `; I3 x
    % N! [) W4 Y" r) s2 a5 Y/ y) h
    5.遗传算法具有隐含的并行性
    8 R4 r$ z' O! O$ ^+ c4 C; m: d

    % C& M7 j4 X& @- E& V遗传算法的基础理论是图式定理。它的有关内容如下:
    - X5 K% b' K, N" e
    8 b6 [4 S; u! ]0 `! V1 X
    (1)图式(Schema)概念
    7 j8 z3 C  O  @, u8 s
    7 f5 |0 X) m: V0 o
    一个基因串用符号集{0,1,*}表示,则称为一个因式;其中*可以是0或1。例如:H=1xx 0 x x是一个图式。4 y4 A& E# e& W2 B* n, D

    ) E- z- W. J; g2 V' I6 l. @(2)图式的阶和长度; |6 `5 `0 R% x$ }8 k
    / w6 |9 G% e  p; L! R
    图式中0和1的个数称为图式的阶,并用0(H)表示。图式中第1位数字和最后位数字间的距离称为图式的长度,并用δ(H)表示。对于图式H=1x x0x x,有0(H)=2,δ(H)=4。/ {. s' n! U6 @
    1 m3 Y4 L8 T) ^2 i% p  M; g5 K
    (3)Holland图式定理
    8 P% Z: D& q+ n8 {6 ~

    . y) l$ Z' X8 |  t# U& Z# k; ]低阶,短长度的图式在群体遗传过程中将会按指数规律增加。当群体的大小为n时,每代处理的图式数目为0(n3)。
    ! Q  Q' O! K  L" w
    * F1 d3 l7 J( y7 C5 a8 k
    遗传算法这种处理能力称为隐含并行性(Implicit Parallelism)。它说明遗传算法其内在具有并行处理的特质。0 w; V, P1 q1 F( C7 {

    , J' p3 O7 g8 W% Q( _; N二、遗传算法的应用关键
    " x, D* i' l+ O. e5 C; r

    3 i; Y" F6 h7 q遗传算法在应用中最关键的问题有如下3个
    ! M1 M* I) q2 z2 n& H8 M3 O
    2 J% D& ^* @) Q  ?& t
    1.串的编码方式
    ( |8 C( F3 {5 t* }) q+ e- F

    ; V; n! d3 N: h# w. j这本质是问题编码。一般把问题的各种参数用二进制编码,构成子串;然后把子串拼接构成“染色体”串。串长度及编码形式对算法收敛影响极大。
    0 E! A/ C& K( C4 J. u/ x  y, @

    / w7 h; q, ^0 |3 R; M3 v$ ?( ?2.适应函数的确定
    - K- j0 T, t( v
    9 e! ^! ?9 t: L. {, J/ u: @/ N  G+ x
    适应函数(fitness function)也称对象函数(object function),这是问题求解品质的测量函数;往往也称为问题的“环境”。一般可以把问题的模型函数作为对象函数;但有时需要另行构造。
    " ~$ Y: U& h5 h  A# A8 w

    4 v1 T; t6 g: R! a# X# ^# |7 p! A3.遗传算法自身参数设定3 P: [8 Q3 d4 o. b" [0 D7 Q
    2 x) N) o6 L: e/ G
    遗传算法自身参数有3个,即群体大小n、交叉概率Pc和变异概率Pm。
    , ~+ [" z( H, I+ {
    2 T0 T* j9 \8 ~
    群体大小n太小时难以求出最优解,太大则增长收敛时间。一般n=30-160。交叉概率Pc太小时难以向前搜索,太大则容易破坏高适应值的结构。一般取Pc=0.25-0.75。变异概率Pm太小时难以产生新的基因结构,太大使遗传算法成了单纯的随机搜索。一般取Pm=0.01—0.2。
    , p; i6 ]  [. h0 E: l  Z1 c

    8 U9 c" p+ c' {: J4 z1 O3 E4 f三、遗传算法在神经网络中的应用
    8 _  b$ L) w+ c3 }  r/ h5 x
    3 w, }& U9 ^3 q/ P: `( h2 l3 w
    遗传算法在神经网络中的应用主要反映在3个方面:网络的学习,网络的结构设计,网络的分析。- B" v3 p$ ]  s
    " k3 u$ ?) Y9 [/ r2 |/ q3 k8 H4 g
    1.遗传算法在网络学习中的应用
    / T2 g( C+ F8 i7 \& x( Q- F

    / ^# k# O" Y" Q7 `5 E* A在神经网络中,遗传算法可用于网络的学习。这时,它在两个方面起作用) b/ W& G7 p* f4 Q, e

    5 ?9 j$ O4 z9 g  y(1)学习规则的优化. p) j: I& G, B/ p& x1 F

    # a0 L6 ]  Y! v3 A1 E/ y用遗传算法对神经网络学习规则实现自动优化,从而提高学习速率。5 U5 d) l8 R; o6 w

    ) p5 T! P4 \! W$ Q( s3 E  t& M(2)网络权系数的优化) n/ l' c, `$ N$ z

    + g  G# B% |4 I( \: y8 n用遗传算法的全局优化及隐含并行性的特点提高权系数优化速度。! e6 u; d- O1 @- G8 `- |6 t- \

    $ s, g% N& ^9 o! d* V# @2.遗传算法在网络设计中的应用
    ( F. u5 Q  e& |4 \

    5 K/ [. ^! Q( f; H) V1 P用遗传算法设计一个优秀的神经网络结构,首先是要解决网络结构的编码问题;然后才能以选择、交叉、变异操作得出最优结构。编码方法主要有下列3种:
    + T% \& W$ p  S) i# |$ D6 ~  V3 L# s3 n

    8 L3 _+ B* a* m0 J. t" T(1)直接编码法
    ! ~, z( I9 \3 T( o: h) W

    + q: y+ O* \% Y& n) M" F+ J# _这是把神经网络结构直接用二进制串表示,在遗传算法中,“染色体”实质上和神经网络是一种映射关系。通过对“染色体”的优化就实现了对网络的优化。& n2 F1 z4 |* V% C/ N6 K: A) i
      g- B0 m6 V' \1 [0 \$ B/ r; R
    (2)参数化编码法; L8 n7 U: i. _
    % u: \, u$ t- j& Z, l  R
    参数化编码采用的编码较为抽象,编码包括网络层数、每层神经元数、各层互连方式等信息。一般对进化后的优化“染色体”进行分析,然后产生网络的结构。; ~$ u8 b4 R! R
    & T  a. S! {1 n' S3 |
    (3)繁衍生长法5 Z, J. M. e! v6 Y! w! f. E
    2 g8 R5 s* P2 y3 Q, n
    这种方法不是在“染色体”中直接编码神经网络的结构,而是把一些简单的生长语法规则编码入“染色体”中;然后,由遗传算法对这些生长语法规则不断进行改变,最后生成适合所解的问题的神经网络。这种方法与自然界生物地生长进化相一致。: c2 T1 Y% P" h- ^* l& H

    " `9 ]# x- V' w1 y3.遗传算法在网络分析中的应用$ e; ~* ]# n3 d8 s

    * j: S7 {6 Z; M* r遗传算法可用于分析神经网络。神经网络由于有分布存储等特点,一般难以从其拓扑结构直接理解其功能。遗传算法可对神经网络进行功能分析,性质分析,状态分析。
    ' r" n2 [% G/ a& n, ^  n

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

    + {- {) A+ v( C- A! o& }% [

    - S& F3 I7 m" i4 M: o5 ]" W8 u
    三、遗传算法的步骤和意义( e0 Y3 a7 C2 i) l, x, `

    " v9 i4 K! W, S  v1.初始化7 T7 T9 L$ r, s
    7 Z. @4 Q" O' z
    选择一个群体,即选择一个串或个体的集合bi,i=1,2,...n。这个初始的群体也就是问题假设解的集合。一般取n=30-160。7 E8 {. S+ V3 k3 j
    ! l1 a  S& V/ F8 Y7 m
    通常以随机方法产生串或个体的集合bi,i=1,2,...n。问题的最优解将通过这些初始假设解进化而求出。: l: O  p, r  c7 `$ J& |
    8 s) P! I$ [' o( F% z0 A# h* ?
    2.选择
    , L& t# U6 Q( o) y& b: Z

    9 U0 y, Q0 @* {根据适者生存原则选择下一代的个体。在选择时,以适应度为选择原则。适应度准则体现了适者生存,不适应者淘汰的自然法则。
    - V" Z4 n$ l5 T+ E
    0 v' c; s$ u% I7 H6 R3 v1 L
    给出目标函数f,则f(bi)称为个体bi的适应度。以
    6 u2 e- V7 [9 K5 Z+ ^

    % k# P6 |6 @' R' q8 k" O/ [
    8 U4 W3 f+ I) x; O) f+ R. `
    - O$ d& h) G3 q1 n- \为选中bi为下一代个体的次数。% R/ ~( F- L) f1 K! m

    , X9 |2 D$ m, W8 U+ S) a显然.从式(3—86)可知:9 K  X6 H/ K3 ~  b# D9 o

    ) t; |+ {/ _# I2 b+ Y- N% S7 e4 p( ?(1)适应度较高的个体,繁殖下一代的数目较多。. v/ l5 F$ @& }2 Q. n/ L

    " |1 R' N+ c" c! o$ `(2)适应度较小的个体,繁殖下一代的数目较少;甚至被淘汰。
    , g: b* m% }4 I; x4 Y$ q
    # @2 }! c/ C6 ^! f; _" J: v2 f# X
    这样,就产生了对环境适应能力较强的后代。对于问题求解角度来讲,就是选择出和最优解较接近的中间解。
    + s, L8 B0 k9 U
    $ i, [1 H/ O7 N5 o
    3.交叉5 z' x- }# B" ^6 b1 a
    对于选中用于繁殖下一代的个体,随机地选择两个个体的相同位置,按交叉概率P。在选中的位置实行交换。这个过程反映了随机信息交换;目的在于产生新的基因组合,也即产生新的个体。交叉时,可实行单点交叉或多点交叉。3 d* V/ x& v  h6 I6 f# A  R  b( B
    ' o. `  A" I, u3 q9 \9 \& Z  e: s
    例如有个体0 i9 X( K2 E, z7 x+ p7 |1 e1 l

    7 B% N; f$ W2 iS1=100101
    1 r5 E) ~1 x% q
    + b0 j- }+ m* L4 m% h) y
    S2=010111 ( G/ P5 t5 ^2 U6 K, z- o  Q1 d

    # K; W  h& Z$ c$ w选择它们的左边3位进行交叉操作,则有
    7 b# G7 Y+ Y% o) I/ o' d
      \$ Y8 e& U9 s/ x% C
    S1=010101 # `* }) X7 v* E4 L
    2 l" R! C$ ^3 ?( |2 ?) g$ W0 }" d$ E
    S2=100111
    ' @# f  H- d! L

      C- ~+ _" i7 z- q+ Z一般而言,交 婊显譖。取值为0.25—0.75。- [) `# q" Z5 {' s! b

    - j1 q8 b- V: a. ~4.变异  ]. v/ i6 G3 `! r/ l- N9 y
    - z& n' @$ h3 r- y& ]# v1 O
    根据生物遗传中基因变异的原理,以变异概率Pm对某些个体的某些位执行变异。在变异时,对执行变异的串的对应位求反,即把1变为0,把0变为1。变异概率Pm与生物变异极小的情况一致,所以,Pm的取值较小,一般取0.01-0.2。
    9 A& K4 P& G$ V3 k
    + c- j; s" ]2 s  G
    例如有个体S=101011。7 F% D: Y7 [( Z/ Y* u. p

    ; i- S6 L6 v/ g* P" n5 L3 K: N对其的第1,4位置的基因进行变异,则有
    , P( `( t6 J/ w4 Z

    4 s8 z, h3 z- v  a; bS'=001111
    ; M% G9 P/ L1 _6 J! w+ j- [
    9 h: y3 P" ]' a9 {' ]
    单靠变异不能在求解中得到好处。但是,它能保证算法过程不会产生无法进化的单一群体。因为在所有的个体一样时,交叉是无法产生新的个体的,这时只能靠变异产生新的个体。也就是说,变异增加了全局优化的特质。3 F9 g. t+ E- D/ Z

    3 D' S$ ]; A) @" x5.全局最优收敛(Convergence to the global optimum)
    0 B: z* Y8 J0 y7 r: C( ^- Q

    * g. Z) S) x6 ?1 q当最优个体的适应度达到给定的阀值,或者最优个体的适应度和群体适应度不再上升时,则算法的迭代过程收敛、算法结束。否则,用经过选择、交叉、变异所得到的新一代群体取代上一代群体,并返回到第2步即选择操作处继续循环执行。
    & z1 Z, [- f" c: x. f
    : u9 G7 e- x+ M& N: L2 ~" H
    图3—7中表示了遗传算法的执行过程。
    7 G& T; Y6 n, r# g1 y: W" g( ]
    3 i) @& T( ]" V; G  `! q" I6 T; R0 f, s& I  C

    5 B  o8 [; r1 y# k$ }
    0 }7 T+ a) _" ~8 b图3-7 遗传算法原理) E- F& o; [6 m8 J; k% l2 i
    ; ?, \$ k, f' W9 C0 @6 K
    3.2.3遗传算法的应用
    6 R' _/ G' e* }: ~( ?7 Z

    7 J' ?6 l6 |. E# d9 l遗传算法在很多领域都得到应用;从神经网络研究的角度上考虑,最关心的是遗传算法在神经网络的应用。在遗传算法应用中,应先明确其特点和关键问题,才能对这种算法深入了解,灵活应用,以及进一步研究开发。, g+ s" @" f% y- N
    ; Q: F- h' ^0 `  n% X
    一、遗传算法的特点+ L3 Q2 B7 z5 r, }9 \  O6 r' L
    % p) E, U6 S& O- s+ _2 h
    1.遗传算法从问题解的中集开始嫂索,而不是从单个解开始。
    7 S$ u2 E/ Z" i- w2 @. C* l

    3 k  u/ @+ `4 r! {7 {5 f+ u; `这是遗传算法与传统优化算法的极大区别。传统优化算法是从单个初始值迭代求最优解的;容易误入局部最优解。遗传算法从串集开始搜索,复盖面大,利于全局择优。
    0 N# G: \. E4 Z  l3 ^

    # `' b3 O3 O( D( ]2.遗传算法求解时使用特定问题的信息极少,容易形成通用算法程序。
    ) H4 x+ T: H  s6 N5 @" \

    2 U  Z* J8 b- X$ q4 C: G由于遗传算法使用适应值这一信息进行搜索,并不需要问题导数等与问题直接相关的信息。遗传算法只需适应值和串编码等通用信息,故几乎可处理任何问题。
    7 o1 n3 o& z2 |
    ; u3 r3 Y6 t/ H6 t2 q) R; I/ s: I
    3.遗传算法有极强的容错能力
    % v/ I! `% k* O" P8 A
    % L3 O! x' S7 K3 N7 s$ B
    遗传算法的初始串集本身就带有大量与最优解甚远的信息;通过选择、交叉、变异操作能迅速排除与最优解相差极大的串;这是一个强烈的滤波过程;并且是一个并行滤波机制。故而,遗传算法有很高的容错能力。
    7 k- R0 O. u* O* ^$ F

    0 y/ D& t( N2 D0 R/ {& G' H4.遗传算法中的选择、交叉和变异都是随机操作,而不是确定的精确规则。
      g( H+ x- Z' A9 h+ a( X

    + T" D, a( k4 A, ^9 C; |这说明遗传算法是采用随机方法进行最优解搜索,选择体现了向最优解迫近,交叉体现了最优解的产生,变异体现了全局最优解的复盖。- l3 t+ S2 b8 D1 M0 J

    9 W0 |( D% a/ T+ X# M1 q5.遗传算法具有隐含的并行性
    3 p  C5 K8 ]9 R" {" R8 Y
    9 @: w( x3 a$ e
    遗传算法的基础理论是图式定理。它的有关内容如下:+ W( w8 J! U. G! t. ~$ y
    * q6 P! N; E4 k5 z
    (1)图式(Schema)概念0 u! L) d) N5 r
      U* j+ v8 }6 @" `, Y7 _
    一个基因串用符号集{0,1,*}表示,则称为一个因式;其中*可以是0或1。例如:H=1xx 0 x x是一个图式。5 n* W7 W1 @# [- J
    # Q# \, f. S' n, y* l# X3 b
    (2)图式的阶和长度
    # c& F% u/ f. B4 _6 I, s$ a
    / X! b' y" b" ?; l3 _0 N6 j
    图式中0和1的个数称为图式的阶,并用0(H)表示。图式中第1位数字和最后位数字间的距离称为图式的长度,并用δ(H)表示。对于图式H=1x x0x x,有0(H)=2,δ(H)=4。
    0 g2 h  G- _2 b- t) H! F. n  Q
    - f' x6 g# B8 |
    (3)Holland图式定理
      x8 x# _6 Y1 l+ R
    0 ]5 R  G7 k7 p' U% y2 P
    低阶,短长度的图式在群体遗传过程中将会按指数规律增加。当群体的大小为n时,每代处理的图式数目为0(n3)。+ l9 g. w2 y4 h* a% i5 \( G1 S/ H

    3 a' N4 l0 `) N9 ~$ P, @. u2 A, m遗传算法这种处理能力称为隐含并行性(Implicit Parallelism)。它说明遗传算法其内在具有并行处理的特质。/ O+ o- f3 i/ {9 ^3 T5 z

    ' B2 b1 X4 q+ q8 W/ F二、遗传算法的应用关键4 R! N: L0 b. D

    9 H/ _' q$ ]7 r/ a) u- E) u遗传算法在应用中最关键的问题有如下3个& t$ @6 G9 r8 [8 X0 z( W7 O6 s3 `
    " M5 h' ~, g1 V- u: I: B! N7 ?
    1.串的编码方式1 R6 e3 O% N5 w% T

    + E+ Z" r/ s, f9 l2 M% E这本质是问题编码。一般把问题的各种参数用二进制编码,构成子串;然后把子串拼接构成“染色体”串。串长度及编码形式对算法收敛影响极大。
    , L2 A: ~5 |* F/ m# {; f

    ( V; r3 U: e$ c6 r$ i6 M4 Z, t2.适应函数的确定. t+ j9 G% A7 L/ e: D" r
    + r$ v! F0 ]0 |
    适应函数(fitness function)也称对象函数(object function),这是问题求解品质的测量函数;往往也称为问题的“环境”。一般可以把问题的模型函数作为对象函数;但有时需要另行构造。- k7 M/ h$ R! Q

    0 \  l' r! b/ \3.遗传算法自身参数设定2 y9 U% [, O) ~- J# @- e
    % U& u: `* @" u% k7 ~
    遗传算法自身参数有3个,即群体大小n、交叉概率Pc和变异概率Pm。: M* I. f% V8 e6 q
    + @% ~* c- K# h
    群体大小n太小时难以求出最优解,太大则增长收敛时间。一般n=30-160。交叉概率Pc太小时难以向前搜索,太大则容易破坏高适应值的结构。一般取Pc=0.25-0.75。变异概率Pm太小时难以产生新的基因结构,太大使遗传算法成了单纯的随机搜索。一般取Pm=0.01—0.2。
    4 Y( Q% W) M- Q7 g
    + V  Z- G. m2 V
    三、遗传算法在神经网络中的应用# C5 u: g  V9 f" w- W- i

      ~4 v1 \  O9 r遗传算法在神经网络中的应用主要反映在3个方面:网络的学习,网络的结构设计,网络的分析。1 N" t. b* l$ T& |

      @& {% B2 X3 P) T% W9 Q$ `  ?1.遗传算法在网络学习中的应用2 E9 i' F$ h. ~2 O

    1 n. e  D+ ?2 y+ e( ^2 h; [在神经网络中,遗传算法可用于网络的学习。这时,它在两个方面起作用
    ) K- q/ b5 a, \" R7 ?# \: i- I% c8 E
    7 i; P3 h: O  @0 K( g8 ]6 R
    (1)学习规则的优化& b) |2 ]8 U: S' X
    : ^, Z8 Q! m( H9 N
    用遗传算法对神经网络学习规则实现自动优化,从而提高学习速率。
    5 w7 n. N- ?- G+ r1 O
    4 z& {) M. n1 U
    (2)网络权系数的优化
    / C  D5 Q) H/ C" a
    6 i1 ?1 q: {) c3 P' K
    用遗传算法的全局优化及隐含并行性的特点提高权系数优化速度。
    - P9 t+ s, m! ?

    6 l1 J8 X6 H7 M' q+ A& D* A* l7 d2.遗传算法在网络设计中的应用
    % H3 f& G; e+ _% [' K
    ) z2 M" V" h  ^3 P" [- P) P
    用遗传算法设计一个优秀的神经网络结构,首先是要解决网络结构的编码问题;然后才能以选择、交叉、变异操作得出最优结构。编码方法主要有下列3种:6 W6 |+ ]  o( R) B( Y

    . N/ W) r; G9 Q. t. I! O2 j(1)直接编码法8 Q' s9 L' v4 ]7 y6 o$ l" \
    5 b! S0 h2 G4 z- N. z
    这是把神经网络结构直接用二进制串表示,在遗传算法中,“染色体”实质上和神经网络是一种映射关系。通过对“染色体”的优化就实现了对网络的优化。
    * I1 I0 E, v* J
    $ k8 J. f& p2 o* n0 U( c6 Z4 R/ A: @9 o2 M
    (2)参数化编码法
    9 {1 b$ u2 B0 @6 J
    1 k) ?, _; h& e5 A9 `
    参数化编码采用的编码较为抽象,编码包括网络层数、每层神经元数、各层互连方式等信息。一般对进化后的优化“染色体”进行分析,然后产生网络的结构。: Q) [' P+ ^1 p; }- G) a" G

    + E) N* l" n: ~4 X1 i: i5 t(3)繁衍生长法1 y  _5 L( n( {& R1 m
    6 o0 N7 u8 m3 E; v% M& T
    这种方法不是在“染色体”中直接编码神经网络的结构,而是把一些简单的生长语法规则编码入“染色体”中;然后,由遗传算法对这些生长语法规则不断进行改变,最后生成适合所解的问题的神经网络。这种方法与自然界生物地生长进化相一致。2 X2 z& n/ y2 w4 O
    / r5 ^# z8 z5 `( E9 Z7 z% y) a/ t
    3.遗传算法在网络分析中的应用9 {1 T6 L# r8 c
    . E; i/ W1 ~/ J+ m2 P
    遗传算法可用于分析神经网络。神经网络由于有分布存储等特点,一般难以从其拓扑结构直接理解其功能。遗传算法可对神经网络进行功能分析,性质分析,状态分析。
    " v0 t& E( g" X6 F" ^! Q
    6 X4 N1 e+ s- C* _# H
    遗传算法虽然可以在多种领域都有实际应用,并且也展示了它潜力和宽广前景;但是,遗传算法还有大量的问题需要研究,目前也还有各种不足。首先,在变量多,取值范围大或无给定范围时,收敛速度下降;其次,可找到最优解附近,但无法精确确定最扰解位置;最后,遗传算法的参数选择尚未有定量方法。对遗传算法,还需要进一步研究其数学基础理论;还需要在理论上证明它与其它优化技术的优劣及原因;还需研究硬件化的遗传算法;以及遗传算法的通用编程和形式等。
    ! D0 i* r8 L; g! c2 f0 Q  m2 `
    更多图片 小图 大图
    组图打开中,请稍候......
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    楼主热帖
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • 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-30 06:02

    Powered by Discuz! X3.5 Licensed

    © 2001-2026 Discuz! Team.

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