你好!我是陪你一起进阶人生的普大帝!愿你成才!祝你成长!8 _9 ^9 X4 [# H7 N
2.1 基本遗传算法描述( ~# o0 @0 \( H
遗传算法在自然与社会现象模拟、工程计算等方面得到了广泛的应用。在各个不同的应用领域,为了取得更好的结果,人们对GA进行了大量的改进,为了不至于混淆,我们把Holland提出的算法称为基本遗传算法,简称 GA、SGA(Simple Genetic Algorithm )、CGA(Canonical Genetic Algorithm),将其它的“GA类”算法称为GAs(Genetic Algorithms),可以把GA看作是GAs的一种特例。 $ ?1 z @7 U: }+ a6 p f- T1 E4 q4 R; m. P
2.1.1 基本遗传算法的构成要素 $ I1 c0 B1 |% [) C- R$ { (1) 染色体编码方法& o4 B& T+ B) E7 V) N# h2 R
基本遗传算法使用固定长度的二进制符号串来表示群体中的个体,其等位基因由二值符号集{0,1}组成。初始群体中各个个体的基因值用均匀分布的随机数来生成。如: x;100111001000101101就可表示一个个体,该个体的染色体长度是 l=18。 : N5 Q0 D; i/ K, Q+ M' j) A / ?1 Z8 v1 p- @ X(2) 个体适应度评价; {# t" b2 t6 d+ }8 @( N: a
基本遗传算法按与个体适应度成正比的概率来决定当前群体中每个个体遗传到下一代群体中的机会多少。为正确计算这个概率,这里要求所有个体的适应度必须为正数或零。这样,根据不同种类的问题,必须预先确定好由目标函数值到个体适应度之间的转换规则,特别是要预先确定好当目标函数值为负数时的处理方法。& n1 @3 t: m% s7 ^- U& `2 p/ q
" a/ a. M C" K. j+ F(3) 遗传算子) l1 O m. Q, M4 w: p$ M: S
基本遗传算法使用下述三种遗传算子:4 i3 a' N. M7 L9 P
• 选择运算:使用比例选择算子; / W2 R3 _/ a) Q7 H# K, z4 u • 交叉运算:使用单点交叉算子; 9 V0 L2 o3 K3 i2 i& Y • 变异运算:使用基本位变异算子。4 q( ]: y9 W) t7 P; S
0 f% F- D( G6 z# \- p(4) 基本遗传算法的运行参数 5 x) x1 [/ X* K 基本遗传算法有下述4个运行参数需要提前设定: . t# y- B, Y+ h* d • M:群体大小,即群体中所含个体的数量,一般取为20 ~ 100。 " U, G8 {& }- C) q • T:遗传运算的终止进化代数,一般取为100 ~ 500, f k3 N. ], I) p2 \) U4 V
• pc:交叉概率,一般取为0.4 ~ 0.99 & x6 c+ B3 |) H- d& T# H • pm:变异概率,一般取为 0.0001 ~ 0.1 j# J$ [2 M3 E' j* f' {. I8 t
[说明]. n2 u U% z/ M5 V2 x6 b( D
这4个运行参数对遗传算法的求解结果和求解效率都有一定的影响,但目前. t4 x5 c9 t, w$ c. B6 W
尚无合理选择它们的理论依据。在遗传算法的实际应用中,往往需要经过多次试- n9 W+ l3 M# |! M, s# ^/ F6 m
算后才能确定出这些参数合理的取值大小或取值范围。 9 A+ @" q0 `+ E% e6 Q, r* |7 w " p; i; D6 P8 w$ }2.1.2 基本遗传算法的形式化定义/ v g1 y( @ q/ r! d
基本遗传算法可定义为一个7元组:, N) q% ?, Q* \
GA= (M, F, s, c, m, pc, pm ) ' Q. V6 S/ U) C* f6 X! i* ? % b; H" Z! Z, D, i( f& D: a, ] M——群体大小; 8 D$ n* y7 b& ]" L2 F. P+ } F——个体适应度评价函数; 6 S! _" ]3 c \ s——选择操作算于;# p6 _% q* I6 a! o
c——交叉操作算子:$ W' s+ p7 C4 G0 ]
m——变异操作算于; & C- i$ v9 ?" T: D0 E$ O! P pc——交叉概率; H2 j. ~/ F0 x. S" U% A pm——变异概率;; h6 o9 c, S" K$ I- n
! T8 {7 a) n7 L* F/ `/ f' V* t2 b( ^# s5 u! b* [$ w& \/ B