遗传算法是由美国密歇根大学的 Holland教授创立于20世纪六七十年代,受达尔文“进化论”思想的启发而设计实现。遗传算法不是通过暴力搜索解的方法,而是通过模拟种群的基因交叉和突变,经过种群一代一代的适者生存的方式寻找问题优解的方法,这在解决组合优化时解空间组合爆炸中应用广泛。
一、如何理解遗传算法
我们可以这样形象地理解遗传算法,假设我们现在需要找到一个最能抵抗寒冷的人类,那么遗传算法是这样设计的:首次创造一个较寒冷生活环境(问题的限制条件),在这个环境中投入一批各种各样的人类(初始种群),让人类在这种寒冷的环境中生存。人类一代一代的生活,周围环境也设置得越来越寒冷,同时人类在产生下一代的时候也伴随着基因的交叉和变异(遗传算法的迭代过程)。正是随着基因交叉和突变,慢慢的产生了极少数可以抵抗寒冷的基因,慢慢的拥有可以抵抗寒冷基因的人更加适应环境而得以发展,慢慢的能够适应寒冷的人类生存了下来,其它不适应环境的被淘汰了,这个过程就是解空间的慢慢趋于优的过程,遗传算法就是模拟这一过程 。