遗传算法

遗传算法

遗传算法(Genetic Algorithm, GA)起源于对生物系统所进行的计算机模拟研究。它是模仿自然界生物进化机制发展起来的随机全局搜索和优化方法,借鉴了达尔文的进化论和孟德尔的遗传学说。其本质是一种高效、并行、全局搜索的方法,能在搜索过程中自动获取和积累有关搜索空间的知识,并自适应地控制搜索过程以求得最佳解。

1.      编码

编码策略是遗传算法的基础,是个体表示问题,即对于给定的问题,设计一个适当的基因表示形式,把一个问题的可行解从其解空间转换到遗传算法所能处理的搜索空间的转换方法,反之称为译码或解码。

2.      初始化种群

种群初始化就是针对具体的编码策略和遗传算子实现方法,生成一个包含一定数量个体的初始种群。初始种群个体生成的第一种思想是随机由编码组合生成解空间的个体,该方法实现简单,但生成的个体可能在问题空间中没有相对应的解,可能不具有实际意义;初始种群个体生成的第二种思想是考虑具体问题与编码的对应关系,将问题空间中具有实际意义的解转换到编码空间,该方法能保证个体具有实际意义,但实现相对复杂。

3.      适应度函数

在遗传算法中评价值被称为适应度函数,适应度函数描述每一个体的适宜程度,它的选择决定着遗传算法的搜索效率和收敛速度。遗传算法在进化搜索过程中基本上不用外部信息,仅用适应度函数为依据,以个体适应度值的大小决定该个体被遗传到下一代种群中的概率。个体的适应度值越大,该个体被遗传到下一代的概率也越大,反之亦然。

4.      选择算子

选择算子也称为复制算子,就是从种群中选择优秀个体,淘汰劣质个体的操作,他与编码方式无关,只是基于个体的适应度值。

目前常用的选择算子有以下几种:

1)  比例选择法(轮盘赌方法)

设种群大小为m,其中个体i的适应度值为fi,则fi被选择的概率Psi为:

         

个体的适应度值越大,其被选择的概率就越高,反之亦然

2)  保留最佳个体方法

首先计算种群中所以个体的适应度值,然后将当前种群中适应度值最高的个体直接复制到下一代种群中。其主要优点是能保证遗传算法终止时得到的最后结果是历代出现过的最高适应度值的个体。也隐含了一种危机,即局部最优个体的遗传基因会急速增加而使进化有可能限于局部解。也就是说,该方法的全局搜索能力差,它更适合单峰性质的空间搜索,而不是多峰性质的空间搜索。

3)  期望值方法

4)  排序选择方法

5)  联赛选择方法

6)  排挤方法

5.      交叉算子

交叉算子就是把两个父代个体按照某种方式相互交换部分基因而生成新个体的操作。通过交叉操作,使基因重组而产生新的优良品种,遗传算法的搜索能力得以大幅提高。常用的交叉算子有下面几种形式:

1)  单点交叉

2)  二点交叉

3)  多点交叉

4)  均匀交叉

6.      变异算子

变异操作可以保持种群的多样性,实现多路径搜索,避免局部收敛和未成熟收敛现象出现:同时还可以恢复丢失的或寻找尚未找到的优良信息,在当前解的附近找到更好的解。当遗传算法通过交叉算子己接近最优解领域时,利用变异算子的这种局部随机搜索能力可以加速向最优解收敛。最常用的变异算子有以下几种:

1)  基本位变异

基本位变异操作是以变异概率随机指定个体编码中的某一位或某几位基因座上的值作变异运算,对每一个指定的变异点,对其基因值作取反运算或其他等位基因值来代替,从而产生出新一代的个体。

2)  均匀变异

均匀变异操作是依次指定个体编码中的每个基因座为变异点,对每一个变异点,以较小的变异概率从对应基因的取值范围内取一随机值来替代原有值。均匀变异操作特别适合应用于遗传算法的初级运行阶段,它使得搜索点可以在整个搜索空间内自由地移动,从而可以增加种群的多样性,使算法处理更多的模式。

你可能感兴趣的:(算法,生物,算法)