02-生物学背景知识
5.1 生物学背景知识
在生物学中,进化论解释了基因突变与环境约束一起,如何导致生物随时间的推移而发生变化(包括物种的形成——新物种的产生)。适应能力强的生物获得成功,适应能力弱的生物走向失败,这种机制被称为自然选择(natural selection)。每一代物种将包含带有差异特性(有时是新特性)的个体,这些差异特性是通过基因突变产生的。为了生存,所有个体都要竞争有限的资源,因为个体数量超过了资源的供给,所以有一些个体必须牺牲。
带有变异基因的个体更适于生存,生存和繁殖的概率会更高。随着时间的推移,一定环境下适应能力更强的个体将有更多的后代,并通过遗传将变异传给这些后代。因此,利于生存的变异最终可能在种群中发展壮大。
举个例子,如果细菌会被某种抗生素杀死,而细菌种群中有某个细菌带有对抗生素更具抵抗力的基因变异,则它更有可能存活并繁殖下去。如果随着时间的推移不断施用抗生素,则那些遗传了抵抗抗生素基因的细菌的后代将更有可能繁殖并拥有自己的后代。因为抗生素的持续攻击会杀死没有变异的个体,所以最终整个种群都可能会带有变异。抗生素不会导致变异的发展,但它确实会导致变异个体的增殖。
自然选择理论已在生物学以外的领域得到应用。社会达尔文主义(Social Darwinism)就是应用于社会理论领域的自然选择。在计算机科学中,遗传算法是对自然选择的模拟,用来应对计算科学领域的挑战。
遗传算法包含了名为染色体(chromosome)的个体组成的种群。所有染色体都要竞争解决一些问题,每条染色体都由定义其特性的基因组成。染色体解决问题的能力由适应度函数(fitness function)定义。
遗传算法要经历很多代(generation)。在每一代中,适应力较强的染色体更有可能被选中进行繁殖。每一代中还有可能发生两条染色体的基因合并,这被称为交换(crossover)。此外,每一代都有一种重要的可能性,即染色体中的基因可能会随机发生变异(mutate)。
当种群中某些个体的适应度函数超过某个指定阈值后,或者算法运行了指定数量的代之后,将会返回表现最佳的个体(适应度函数中得分最高的个体)。
遗传算法并不是解决所有问题的好办法。它们依赖3种部分或完全随机的操作:选择、交换和变异。因此,它们可能无法在合理的时间内找到最优解。对大多数问题而言,更具确定性的算法会更有保证,但是有些问题不存在快速的确定性算法,在这些情况下,遗传算法就是一个不错的选择。