遗传算法的实现主要包含以下7个重要问题:
1、染色体的编码
2、群体初始化
3、适应值评估
4、选择种群
5、种群交配
6、种群变异
7、算法流程
下面分别简单的介绍
1、染色体编码
解决问题解的表示就是染色体的编码方式,编码方式的选择会对后面的操作造成重要影响,常用的比较简单的编码方法
有二进制编码方法(Binary Representation)和浮点数编码方法(Float Point Representation)
2、群体初始化
采用随机数初始化的方法,对染色体的每一维变量进行初始化赋值。
3、适应值评价
评估函数用于评估各个染色体的适应值,进而区分优劣,评估函数常常根据问题的优化目标来确定。
4、选择算子
遗传算法的传统选择算子的作用 是根据适应值函数的值从种群中选出优秀的个体, 包括轮盘赌选择和锦标赛选择。
5、交配算子
交配算子是获取新的优秀个体的重要手段,两个父体通过交配操作交换各自优秀的基因,从而获得更加优秀的个体。
交配算子有:部分匹配交配、顺序交配(OX交配)、循环交配和边重组等。
6、变异算子
变异操作发生在某个染色体的某个基因上,它将可变性引入群体中,增强了群体的多样性,从而提供了从局部最优
中跳出来的一种手段。变异方法也是一个随机的、盲目的变异,因此需要使用比较小的变异概率(pm)来控制以避免造
成种群的破坏。经常使用的变异算子有“基于位置的变异”和“基于次序的变异”。
7、算法流程
step1:初始化规模为N的群体,其中染色体的每个基因的值采用随机数产生。当前进化代数g=0
step2:采用评估函数对群体所有染色体进行评价,计算每个染色体的适应值,保存适应值最大的染色体best。
step3:采用合适的选择算法对群体的染色体进行选择操作,产生同规模的种群。
step4:按给定的交配概率从种群中选择染色体进行交配,没有交配的染色体直接复制进入新的种群。
step5:按给定的变异概率对新种群染色体的基因进行变异操作,变异后的染色体取代原有染色体进入新群体,未变异
的染色体直接进入新群体。
step6:变异后的新种群取代原有群体,重新计算染色体的适应值,若群体最大适应值高于best的适应值,则群体最大
适应值对应的染色体替代best。
step7:当前进化代数g加1,如果g达到规定的最大进化代数或者best达到规定的误差要求,算法结束,否则返回step3
在后面的博客中会写遗传算法的应用,初步决定是解方程和TSP问题。