“物竞天择,适者生存”,是进化论的基本思想。遗传算法就是模拟自然界想做的事。遗传算法
可以很好地用于优化问题,若把它看作对自然过程高度理想化的模拟,更能显出它本身的优
雅——虽然生存竞争是残酷的。
遗传算法以一种群体中的所有个体为对象,并利用随机化技术指导对一个被编码的参数空间进
行高效搜索。其中,选择、交叉和变异构成了遗传算法的遗传操作;参数编码、初始群体的设
定、适应度函数的设计、遗传操作设计、控制参数设定五个要素组成了遗传算法的核心内容。
作为一种新的全局优化搜索算法,遗传算法以其简单通用、健壮性强、适于并行处理以及高
效、实用等显著特点,在各个领域得到了广泛应用,取得了良好效果,并逐渐成为重要的智能
算法之一。
遗传算法的伪码:
procedure genetic algorithm
begin
initialize a group and evaluate the fitness value ; (1)
while not convergent (2)
begin
select; (3)
if random[0,1]<pc then
crossover; (4)
if random (0,1)<pm then
mutation; (5)
end;
end
上述程序中有五个重要的环节:
(1)编码和初始群体的生成:GA 在进行搜索之前先将解空间的解数据表示成遗传空间的基因
型串结构数据,这些串结构数据的不同组合便构成了不同的点。然后随机产生 N 个初始串结构
数据,每个串结构数据称为一个个体, N 个体构成了一个群体。GA 以这 N 个串结构数据作为
初始点开始迭代。
比如,旅行商问题中,可以把商人走过的路径进行编码,也可以对整个图矩阵进行编码。编码
方式依赖于问题怎样描述比较好解决。初始群体也应该选取适当,如果选取的过小则杂交优势
不明显,算法性能很差(数量上占了优势的老鼠进化能力比老虎强),群体选取太大则计算量
太大。
(2)检查算法收敛准则是否满足,控制算法是否结束。可以采用判断与最优解的适配度或者
定一个迭代次数来达到。
(3)适应性值评估检测和选择:适应性函数表明个体或解的优劣性,在程序的开始也应该评
价适应性,以便和以后的做比较。不同的问题,适应性函数的定义方式也不同。根据适应性的
好坏,进行选择。选择的目的是为了从当前群体中选出优良的个体,使它们有机会作为父代为
下一代繁殖子孙。遗传算法通过选择过程体现这一思想,进行选择的原则是适应性强的个体为
下一代贡献一个或多个后代的概率大。选择实现了达尔文的适者生存原则。
(4)杂交:按照杂交概率(pc)进行杂交。杂交操作是遗传算法中最主要的遗传操作。通过
杂交操作可以得到新一代个体,新个体组合了其父辈个体的特性。杂交体现了信息交换的思
想。
可以选定一个点对染色体串进行互换,插入,逆序等杂交,也可以随机选取几个点杂交。杂交
概率如果太大,种群更新快,但是高适应性的个体很容易被淹没,概率小了搜索会停滞。
(5)变异:按照变异概率(pm)进行变异。变异首先在群体中随机选择一个个体,对于选中
的个体以一定的概率随机地改变串结构数据中某个串的值。同生物界一样,GA 中变异发生的
概率很低。变异为新个体的产生提供了机会。
变异可以防止有效基因的缺损造成的进化停滞。比较低的变异概率就已经可以让基因不断变
更,太大了会陷入随机搜索。想一下,生物界每一代都和上一代差距很大,会是怎样的可怕情
形。
就像自然界的变异适和任何物种一样,对变量进行了编码的遗传算法没有考虑函数本身是否可