遗传算法(Genetic Algorithm, GA)是一种基于自然群体遗传演化机制的高效探索算法,它是美国学者Holland于1975年首先提出来的。

它摒弃了传统的搜索方式,模拟自然界生物进化过程,采用人工进化的方式对目标空间进行随机化搜索。它将问题域中的可能解看作是群体的一个个体或染色体,并将每一个体编码成符号串形式,模拟达尔文的遗传选择和自然淘汰的生物进化过程,对群体反复进行基于遗传学的操作(遗传,交叉和变异),根据预定的目标适应度函数对每个个体进行评价,依据适者生存,优胜劣汰的进化规则,不断得到更优的群体,同时以全局并行搜索方式来搜索优化群体中的最优个体,求得满足要求的最优解。

Holland创建的遗传算法是一种概率搜索算法,它是利用某种编码技术作用于称为染色体的数串,其基本思想是模拟由这些组成的进化过程。跗算法通过有组织地然而是随机地信息交换重新组合那些适应性好的串,在每一代中,利用上一代串结构中适应好的位和段来生成一个新的串的群体;作为额外增添,偶尔也要在串结构中尝试用新的位和段来替代原来的部分。

遗传算法是一类随机化算法,但是它不是简单的随机走动,它可以有效地利用已经有的信息处理来搜索那些有希望改善解质量的串,类似于自然进化,遗传算法通过作用于染色体上的基因,寻找好的染色体来求解问题。与自然界相似,遗传算法对待求解问题本身一无所知,它所需要的仅是对算法所产生的每个染色体进行评价,并基于适应度值来造反染色体,使适用性好的染色体比适应性差的染色体有更多的繁殖机会。

基因:组成染色体的单元,可以表示为一个二进制位,一个整数或一个字符等。

染色体或个体:表示待求解问题的一个可能解,由若干基因组成,是GA操作的基本对象。

群体:一定数量的个体组成了群体,表示GA的遗传搜索空间。

适应度或适度:代表一个个体所对应解的优劣,通常由某一适应度函数表示。

选择:GA的基本操作之一,即根据个体的适应度,在群体中按照一定的概论选择可以作为父本的个体,选择依据是适应度大的个体被选中的概率高。选择操作体现了适者生存,优胜劣汰的进化规则。

交叉:GA的基本操作之一,即将父本个体按照一定的概率随机地交换基因形成新的个体。

变异:GA的基本操作之一,即即按一定概率随机改变某个体的基因值。

串行遗传算法基本步骤

(1) 对待解决问题进行编码;
(2) 随机初始化群体X(0):=(x1, x2, … xn);
(3) 对当前群体X(t)中每个个体xi计算其适应度F(xi),适应度表示了该个体的性能好坏;
(4) 应用选择算子产生中间代Xr(t);
(5) 对Xr(t)应用其它的算子,产生新一代群体X(t+1),这些算子的目的在于扩展有限个体的覆盖面,体现全局搜索的思想;
(6) t:=t+1;如果不满足终止条件继续(3)。