变异(mutation):在有性生殖过程中,染色体的复制不一定会完全一样,在不可知 的条件下有很小的几率发生了染色体的异变,异变的结果是不定向且不可控的,异变的 遗传基因也会造成个体具有了与父体不一样的特性。
编码(coding):使用一种规律或者语言对染色体上遗传信息进行编码,编码是对遗 传信息的另一种表现,遗传算法需要先对父个体进行编码,才能进行遗传操作。
解码(decoding):与编码过程的相反,在最后完成遗传操作并获得最终所需的结果 时,将最终结果解码成子个体的形式,这样就获得了最优解。
遗传算法是从代表问题潜在解集的一个种群开始的,而一个种群则由经过基因编码 的一定数目的个体组成[16]。遗传算法采用自然进化模型,在选择、交叉、变异的遗传操 作下,对种群进行一代代地择优处理,并最终获得最优解。
图 2-1 遗传算法原理图
2。3 遗传算法的特点
在介绍遗传算法的特点之前,首先介绍一下传统的优化算法:即枚举法、启发式算 法和搜索算法[11]。
(1)枚举法:枚举法也被我们称为穷举法,主要方法是将所有与问题相关的解一 一列出,分别求出结果,以找到最优解。若碰到背包问题使用枚举法也是一种方法,但 是当碰到连续函数时,这种方法需要先对其进行离散化处理,然后再对离散后的情况一 一进行枚举。但在离散处理的过程中有可能使问题的最优解丢失,以至于无法找到最优 解。另外,如果需要枚举的可行解域较大时,枚举法的效率会变得特别低,甚至即使使 用先进的计算工具也难以求解。
(2)启发式解法:首先寻求一种能够产生可行解的启发式规则,以找到一个最优 解或近似解。算法的求解效率得到大幅度提高,但在面对不同的问题时,由于问题的启 发式规则千差万别,要想解决不同的问题就需要找出相对于的启发式规则,因为启发式 规则无法通用于不同问题,所以这种方法不适合用来对不同问题进行求解。
(3)搜索算法:首先对搜索空间内的一小部分进行搜索,以找到问题的最优解或 是近似最优解。使用该方法搜索的部分有可能不包含问题的最优解,所以有可能因此错 过了对最优解的搜索。但是如果先使用启发式解法的知识预先求得一个近似最优解,并 对近似最优解附近的子集进行搜索,就有可能获得寻找到最优解。
随着问题种类的不同以及问题规模的扩大,以上的算法已经难以满足我们能够快速 有效获得最优解的要求,这时我们需要寻求更加强大的算法。遗传算法正是一个符合这 样条件的算法之一,它拥有强大的搜索能力,以及能够解决不同优化问题的能力。遗传 算法主要有以下几个特点:
1.自主学习和适应的能力(智能性)。
2.遗传算法的本质并行性。
3.遗传算法不需要外界知识的引用和外界信息的介入,它只需要目标函数决定方 向的目标函数以及适应度函数对个体进行评价。
4.遗传算法强调概率转换规则,而不是确定的转换规则[10]。
5.遗传算法有可能得到的是很多潜在解,由使用者自行决定选择哪一个作为最终解。
2。4 遗传算法的基本操作
2。4。1 选择
选择是按照一定的选择方式确定即将进行交叉操作的个体,并且决定被选个体所产 生子个体的数量。
①首先计算适应度
②基于适应度对父代个体进行选择