遗传算法简介
维基百科上的概念如下
遗传算法(英语:genetic algorithm (GA) )是计算数学中用于解决最优化的搜索算法,是进化算法的一种。进化算法最初是借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传、突变、自然选择以及杂交等。
遗传算法通常实现方式为一种计算机模拟。对于一个最优化问题,一定数量的候选解(称为个体)可抽象表示为染色体,使种群向更好的解进化。传统上,解用二进制表示(即0和1的串),但也可以用其他表示方法。进化从完全随机个体的种群开始,之后一代一代发生。在每一代中评价整个种群的适应度,从当前种群中随机地选择多个个体(基于它们的适应度),通过自然选择和突变产生新的生命种群,该种群在算法的下一次迭代中成为当前种群。
这看起来是不是很抽象?没关系,我们举一个例子
比如你家住的那一块地方有一群老鼠,有一些跑得快而且也聪明,有一些傻得大白天在你面前跳舞,然后理所当然就被你捕获然后进行土葬。故那群跑得快而且也聪明自然活下来的概率比傻的大的多,我们称老鼠是否活下来为适应度,适应度高的更容易在你手上活下来,而低的更容易被你土葬。活下来的老鼠们,它们中大多都是适应度高的,它们进行交配繁殖,老鼠子类大多都是继承了老鼠父母的特点,当然也存在一定几率变异,变异数除以总体老鼠为变异率,变异率一般都不是很大的常数。但总体来说,由于淘汰机制,故所产生的鼠类比起它们的父类,平均来说更为聪明。通过一代代的优化,使得老鼠越来越聪明,而你越来越抓不到老鼠。这就是遗传算法的核心。
遗传算法的步骤
1.编码
编码有多种,如二进制编码,浮点数编码,格雷码等。最常见的是二进制编码和浮点数编码。
二进制编码
二进制编码方法是使用二值符号集{0,1},它所构成的个体基