1、遗传算法的理解并不复杂,为了更好的理解,并在学习遗传算法后进行编程,第一步,我们先要了解遗传算法的5个基本步骤,下图提供了中英文对照,在后续写程序时,可以命名相应的函数名称,保证代码的可读性。
2、第一步,我们先要选取不同的参数来构成不同的解答。其中基因对应的就是实际问题中的参数,染色体对应的就是所有基因组成的一个解。然后总体对应的就是所有解的可能性。
3、第二步是,构建Fitness Function(适应方程),将刚才咱们组成的染色体中的参数带入到适应方程中,比较不同染色体的适应程度,这一步我们可以得出一个适应值通过适应值(Fitness Score),适应值高的可以进行下一步的繁殖(reproduction)。
4、第三步,基因传递,这是遗传算法中最重要的一步,我们通过随机选择可以得到交互点,交互点左侧的部分进行参数的互换,从而得到新的染色体组,然后把它们加入到总体中。
5、第四步,基因变异基因变异是很有意思的一步,这一步的含义就是,我们随机变化一些参数的值,这个目的是保证基因的多样性,同时避免了基因交换过早闭合。
6、第五步,结束在不停的交换之后,最终获得最合适生存的样本,算法结束。这其实是一个比较残酷的算法,真的有点适者生存的感觉,老的适应值低的样本会逐渐死去,然后适应值高的样本会存活下来,在数十代的交换和变异滞后,都只有最适合生存的样本存活下来。