一、TASK
compute the maximum value:
二、实现过程
1. 编码与解码
编码:
在编码之前需要确定求解的精度,设定求解的精度为小数点后六位,即10^6。这样可以将每个自变量x的解空间划分为(1-0)*10^6=1000000个等分。使n满足 (1-0)*10^6<2^n-1,这里n表示使上式成立的最小整数,即表示自变量x的基因串的长度。因为2^19<40000<2^20 ,所以n取20。解码:
二进制基因串转变成十进制:例如基因串 可以翻译为:
x=0+decimal( ) 。
2. 初始化种群
设种群大小为pop_size,每个染色体或个体的长度为chromo_size,假设生成的初始种群为(v1, v2, …, vpop_size)。
3. 选择操作
选择操作即从前代种群中选择个体到下一代种群的过程。一般根据个体适应度的分布来选择个体。以初始种群(v1, v2, …, vpop_size)为例,假设每个个体的适应度为(fitness(v1), fitness(v2),…,fitness(vpop_size)),一般适应度可以按照解码的过程进行计算。以轮盘赌的方式选择个体。
随机转动一下轮盘,当轮盘停止转动时,若指针指向某个个体,则该个体被选中。很明显,具有较高适应度的个体比具有较低适应度的个体更有机会被选中。但是这种选择具有随机性&