1 遗传算法' {3 h; F5 e% z e. q
遗传算法(Genetic Algorithm)是模拟生物学上达尔文进化论的自然选择、遗传和变异现象的算法模型,它可以通过模拟自然进化过程来搜索一个优化问题的最优解.遗传算法仿照基因编码的工作把优化问题的决策变量进行编码,如二进制编码,所有变量的编码合成染色体.遗传算法从代表问题可能的解集的一个种群开始,这里一个种群是由经过基因编码的一定数目的个体即染色体组成.染色体内部表现,即基因型,是某种基因组合,它决定了个体的形状的外部表现,在优化问题中即最优性.从初代种群开始,通过遗传或者变异,也就是各种算法操作,产生以后的各代种群:各代种群按照适者生存和优胜劣汰的原理,以最优性来比较,逐代演化出越来越好的近似解.这个过程将导致种群像自然进化一样而产生的后生代种群比前代更加适应于环境,末代种群中的最优个体经过解码,可以作为原问题的近似最优解.& V' _1 ~# W6 C) d$ A$ G
以TSP问题为例,我们可以进行如下的编码.TSP问题的每个可能的解是1~N的一个排列,因此一个编码就是这样的一个排列,而一代中的种群就是若干个不同排列的集合.0 k; a' A& R9 j3 _' n# M
一个排列的适应度可以很容易地定义为该排列对应的总行程的倒数,这样总行程越小的排列,其适应度越高.4 w* e( c: J' F
那么,不同编码组如何进行遗传和变异呢?比如,父代有两个个体,如下所示(N=7).( l. c, c! K D" y' H