基础概念
- 种群:生物的进化是以群体形式进行,一定数量的个体组成了群体,群体中个体的数量叫做群体大小;
- 个体:种群的内任意一个对象,是群体的基本组成单位;
- 基因:基因是串中的元素,基因用于表示个体的特征,也成为遗传因子;
- 染色体:一组基因;
- 遗传操作:遗传操作包括以下三个基本遗传算子:选择;交叉;变异。
- 最优解:局部最优解和全局最优解;
- 适应度:各个个体对环境的适应程度叫做适应度。为了体现染色体的适应能力,引入了对问题中的每一个染色体都能进行度量的函数,叫适应度函数。
理论基础
遗传算法的理论是根据达尔文进化论而设计出来的算法,即人类是朝着好的方向(最优解)进化,进化过程中,会自动选择优良基因,淘汰劣等基因。
基本流程
遗传算法思想
遗传算法通过将实际问题模拟为一个生物进化的过程,通过选择,交叉以及变异等操作逐步选取出较优解,而淘汰掉较差的解,以寻求出近似最优解。此处的较优与较差均建立在适应度函数的基础上,不同的适应度函数选取,可能会有不同的结果。
编码
编码是应用遗传算法时要解决的首要问题,也是设计遗传算法时的一个关键步骤。编码方法影响到交叉算子、变异算子等遗传算子的运算方法,大很大程度上决定了遗传进化的效率。编码方式主要可以分为三大类:二进制编码法、浮点编码法、符号编码法。
二进制编码
二进制编码是由二进制符号0和1所组成的二值符号集,其编解码的实现方式简单,交叉变异时的操作简便,但是在进行连续函数的优化时,其局部搜索能力较差,而对于高精度问题,当解接近于最优解时,变异操作会映入较大的变化,导致远离最优解。
格雷码是另一种形式的二进制编码,其相邻码元的码距保持为1,能够有效的避免上述二进制编码潜在的问题。它们的转化形式如下。
假设二进制码元为:
B=bmbm−1....b2b1
G=gmgm−1....g2g1
- 二进制转格雷码
gm=bm,gi=bi+1⊕bi,i=1,2,...