遗传算法的总体框架
选择算子(轮盘赌选择)
交叉算子(单点交叉)
变异算子
遗传算法的代码实现
遗传算法的编码与解码方法
- 编码:把个体的性状变为遗传信息
- 解码:把遗传信息变为性状
- 编码举例:对于变量x,假设x变量的范围为:[-1,12],则区间的长度为12- (-1) = 13,假设我们要求精度为小数点后四位,则进行进制转换 65536 = 2 16 < 13 × 1 0 4 < 2 17 = 131072 65536=2^{16}<13\times 10^4<2^{17}=131072 65536=216<13×104<217=131072则我们的二进制编码长度为17位
- 解码方法:若x的区间为[a,b],x的二进制编码为(a_0,a_1,…a_n-1,a_n)则长度为n+1,那么十进制数为 ( a 0 a 1 . . . a n − 1 a n ) 2 = ( ∑ i = 0 n a i × 2 i ) 10 = s u m (a_0a_1...a_{n-1}a_n)_2=(\sum_{i=0}^{n}a_i\times2^i)_{10}=sum (a0a1...an−1a