1 q6 g. L" s( V, H7 A(2)其他编码方法3 F$ d, N) W: m. w. P! c4 @
2 @. H( J2 q [2 C* `- h. ]1 k1 \! I) X y5 `. V4 L8 \
格雷码、浮点数编码、符号编码、多参数编码等8 V! Z( U9 g/ r1 j, A
8 v; ^/ V$ v: V1 K
' J. }; i( ~; x& a |
2.适应度函数$ x3 h! J1 z" y; `8 J
适应度函数要有效反映每一个染色体与问题的最优解染色体之间的差距。& y1 a" M8 E3 e. D$ x; }
) u6 s2 w3 V# M: ?+ T5 o
7 o/ q2 R/ E1 F
3.选择算子3 T2 @( `6 i. x( T5 t f
通过选择算子模拟“优胜劣汰”,适应度高的个体被遗传到下一代的概率较大,适应度低的算子被遗传到下一代的概率较小。 7 m0 u# M6 e& J / b, O; R. U1 G9 P/ S) H" O$ `, E( `! X
常用的选择算法:轮盘赌选择法,即令表示群体的适应度函数值的总和,表示群体中第i个染色体的适应度值,则它产生后代的能力刚好为其适应度值所占的份额# x5 \3 |& Y% M3 r! Y: d; b
/ R6 D1 ^/ H% x( Q. b
! `2 G4 ]$ d# q; C \ X: K6 H# c4.交叉算子2 v6 N' v+ o6 P+ W G' B
交叉运算是指对两个相互配对的染色体按某种方式相互交换其部分基因,从而形成两个新的个体; ( u7 e+ A. @5 E交叉运算是遗传算法区别于其他进化算法的重要特征,是产生新个体的主要方法。% D2 I. B( f3 P, ?1 B
在交叉之前需要将群体中的个体进行配对,一般采取随机配对原则。 + q& w+ n8 u; Y# c$ Z. N ) t+ p' I3 z! a% s8 _ / \: Q2 Z( i9 a7 Z常用的交叉方式:% |( g2 U+ _, Q+ L2 _+ r/ s
5 r7 V i$ z( U) v' _. ?$ d3 V* D7 d0 t: m8 W1 y6 U
单点交叉 7 ^5 h- T- u+ U9 W# ~ J1 G3 ]& f- {双点交叉(多点交叉,交叉点数越多,个体的结构被破坏的可能性越大,一般不采用多点交叉的方式)& w& q* W1 | ^$ `6 @
均匀交叉 ! W$ w& X r* x# M" y+ O7 U算术交叉 4 R" a, W% |" D: s2 B6 c5.变异算子5 y4 \+ t, u3 s$ {! B
遗传算法中的变异运算是指将个体染色体编码串中的某些基因座上的基因值用该基因座的其他等位基因来替换,从而形成一个新的个体。4 e7 t' v. H! b: e4 ~6 g
- I" l+ G" x. o2 K, H
' Q7 h3 e) O4 y4 N
就遗传算法运算过程中产生新个体的能力方面来说,交叉运算是产生新个体的主要方法,它决定了遗传算法的全局搜索能力;而变异运算只是产生新个体的辅助方法,但也是必不可少的一个运算步骤,它决定了遗传算法的局部搜索能力。交叉算子与变异算子的共同配合完成了其对搜索空间的全局搜索和局部搜索,从而使遗传算法能以良好的搜索性能完成最优化问题的寻优过程。+ @' R& z+ p, r
- ?2 {8 m( o3 i$ I3 m+ _3 j9 Y( l" Y: _. M) E# x y
6.运行参数$ M" D7 i- f* C* A" b
编码长度。编码长度取决于问题解的精度,精度越高,编码越长; 1 h. G' S2 T% ~: L2 }种群规模。规模小,收敛快但降低了种群的多样性,; : @6 d+ Z/ g; C! T8 l# x交叉概率。较大的交叉概率容易破坏种群中已形成的优良结构,使搜索具有太大随机性;较小的交叉概率发现新个体的速度太慢,一般取值为$ R9 M' `3 t6 b4 N, ]& u* Q
变异概率。变异概率太小,则变异操作产生新个体的能力和抑制早熟现象的能力会较差;变异概率过高随机性过大,一般建议取值范围为0.005~0.01& K8 b- J, V1 e1 E, ?9 ]
终止进化代数。算法运行结束的条件之一,一般取100~10004 O" ^# x- V$ ?* b/ ? N
四、遗传算法的基本原理: r. ~( ~! \6 }3 H% p" y3 s0 Y
4.1 模式定理 ) t# g# {: r5 {1 H' ]* k定义1:模式H是由{0,1,*}中的元素组成的一个编码串,其中“*”表示通配符,既能被当作0,也能被当作1。e.g. H=10**1. q8 ]- |9 Z. Z% ?4 t2 x+ O
4 g. W# H& Q7 O( h8 Q7 i: Z0 W2 m6 b( @& m
定义2:模式的阶,是指模式中所含有0,1的数量,记作O(H) e.g. O(11*00**)=4" e K3 @" L; u* e- Z
* j# r( t1 H$ X/ |9 ] I. X7 X# |+ P) n" j1 m& Q
定义3:模式的矩,即模式的长度,是指模式中从左到右第一个非*位和最后一个非*位之间的距离,记作 + T1 W, F" K4 {. b$ Y " i, d# q' A! z1 U+ h6 b9 G/ _+ k, M+ q+ z
e.g. 6 W) q0 x" S2 `# _! w& g5 h! X
( q- ~0 j, y T5 `% _
% ~3 ~8 I# f! s$ N+ u
定义4:模式的适应度值,是群体中所包含的全部个体的适应度值的平均值。. e0 L- u7 D5 r$ h, l
9 }& n. p- L& [; B7 q/ d f : a2 @& O, {! ~- o' T$ O定义5:在选择、交叉、变异遗传算子的作用下,低阶、长度短、超过群体平均适应值的模式的生存数量,将随迭代次数以指数规律增长。 S0 V2 {5 ?# v' d' x3 i$ D
5 [% ?1 d. ~1 `( S2 m5 ?" V
6 A, E$ X; Y3 C, ]9 t# H7 K
模式定理不仅说明基因块的样本呈指数增长,也说明用遗传算法寻求最优样本的可能性,但它并未指出遗传算法一定能够寻求到最优解,积木块假设说明了遗传算法的寻找最优解的能力。" b" p' v' i$ D9 ]1 |
( c% C0 `9 d8 Z9 t: ~ t7 `0 t4 @9 d% B3 S# }1 S' `
4.2 积木块假设# a# @' j" s8 g( X Z! R |9 j9 S
具有低阶、定义长度短,且适应度值高于群体平均适应度值的模式称为基因块或积木块。( _; T" N, q+ @ C& G0 k' ~
' b0 g6 Q2 K( x' \3 m Y1 b( W8 g- {3 D$ H2 R# v" C$ b/ ~: L$ v
积木块假设:个体的基因块通过选择、交叉、变异等遗传算子的作用,能够相互拼接在一起,形成适应度更高的个体编码串。 / |* [) K: q$ q2 B1 a1 I0 A; V( z N! f: O/ d8 C7 ^ X
( v2 {; O9 n1 p( l0 ]
积木块假设说明了用遗传算法求解各类问题的基本思想,即通过积木块直接相互拼接在一起能够产生更好的解。 4 z* V+ s& u! s1 H1 u . l6 U) K9 l% X6 q/ `! H1 L3 v8 Z: x/ |: J5 c- X) p$ ~
五、遗传算法编程实例(MATLAB) 1 v- S+ |/ q, m! m# Z9 Shttps://github.com/strawberry-magic-pocket/Genetic-Algorithm.git4 N+ X7 c9 N! `
————————————————) o/ Q& q( h( k& l0 M1 p
版权声明:本文为CSDN博主「草莓酱土司」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。9 \ J: X' ]) D! V) C J) w% K
原文链接:https://blog.csdn.net/qq_34554039/article/details/90521834 , t. u q% i* y$ x( V1 Q, z 5 f6 l* `( { F. W1 N* ]7 d1 ~$ D 7 W' d$ z# O F