遗传算法是由美国密执安大学的Holland教授(1969年)提出,后经由DeJong(1975年),Goldberg(1989年)等归纳总结所形成的一类模拟进化算法。具有简单通用、鲁棒性强、适合于并行处理以及应用范围广等特点,是21世纪一种关键的智能计算方法。
生物的进化是一个优化过程,它通过选择淘汰,突然变异,基因遗传等规律产生适应环境变化的优良物种。
遗传算法的最基本思想基于达尔文进化论和孟德尔的遗传学说。达尔文进化论最重要的是适者生存原理。它认为每一物种在发展中越来越适应环境。物种每个个体的基本特征由后代所继承,但后代又会产生一些异于父代的新变化,在环境变化时,只有那些能适应环境的个体特征能保留下来。
孟德尔遗传学说最重要的是基因遗传原理。它认为遗传以密码方式存在细胞中,并以基因形式包含在染色体内。每个基因有特殊的位置并控制某种特殊性质,所以每个基因产生的个体对环境具有某种适应性。基因突变和基因杂交可产生更适应于环境的后代,经过优胜劣汰的自然淘汰,适应性高的基因结构得以保存下来。
遗传算法以生物细胞中的染色体作为生物个体,认为每一代同时存在许多不同染色体。用适应性函数表征染色体的适应性,染色体的保留与淘汰取决于它们对环境的适应能力,优胜劣汰。适应性函数是整个遗传算法极为关键的一部分,其构成与目标函数密切相关,往往是目标函数的变种,由三个算子组合构成:繁殖(选择)、交叉(重组)、变异(突变)。这种算法可起到产生优化后代的作用,这些后代需满足适应值,经若干代遗传,可以得到满足要求的解(问题的解)。遗传算法已在优化计算和分类机器学习等方面发挥了显著作用。(www.daowen.com)
(1)繁殖(选择)算子(Selection Operator)又称复制(reproduction)算子。选择指的是模拟自然选择的操作,从种群中选择生命力强的染色体,产生新的种群的过程。选择的依据是每个染色体的适应值的大小,适应值越大,被选中的概率就越大,其子孙在下一代产生的个数就越多。根据不同的问题,选择的方法可采用不同的方案。最常见的方法有比率法、排列法和比率排列法。
(2)交叉(重组)算子(Crossover Operator)又称配对(breeding)算子。模拟有性繁殖的基因重组操作,当许多染色体相同或后代的染色体与上一代没有多大差别时,可通过染色体重组来产生新一代染色体。染色体重组分为两个步骤进行:首先,在新复制的群体中随机选取两个染色体,每个染色体由多个位(基因)组成;然后,沿着这两个染色体的基因依一定概率(称为交叉概率),取一个位置,两者互换从该位置起的末尾部分基因。例如,有两个用二进制编码的个体A和B,长度L=6,A=a1a2a3a4a5a6;B=b1b2b3b4b5b6。根据交叉概率选择整数k=4,经交叉后变为:A′=a1a2a3b4b5b6;B′=b1b2b3a4a5a6。遗传算法的有效性主要来自选择和交叉操作,尤其是交叉,在遗传算法中起着核心作用。
(3)变异(突变)算子(Mutation Operator)。选择和交叉算子基本上完成了遗传算法的大部分搜索功能,而变异则增加了遗传算法找到接近最优解的能力。变异就是以很小的概率,随机改变字符串某个位置上的值。在二进制编码中,就是将0变成1,将1变成0。变异发生的概率极低(一般取值在0.001~0.01之间)。它本身是一种随机搜索,但与选择、交叉算子结合在一起,就能避免由复制和交叉算子引起的某些信息的永久性丢失,从而保证了遗传算法的有效性。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。