目录
一、遗传算法的简介
遗传算法(Genetic Algorithm,GA)是一类借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的随机化搜索方法,是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。
遗传算法是从代表问题可能潜在的解集的一个种群开始的,而一个种群则由经过基因编码的一定数目的个体组成。每个个体实际上是染色体带有特征的实体。染色体作为遗传物质的主要载体,即多个基因的集合,其内部表现(即基因型)是某种基因组合,它决定了个体的形状的外部表现。
在遗传算法中,被优化的问题的解称为个体,它表示的是一个变量的一组序列,叫做基因串或者染色体。染色体通常被表达为简单的字符串或者数字串,也有其他的针对特殊的问题的采用的表示方法,这个过程称为编码。首先,算法会随机生成一定数量的个体,也可以人为地设定,这样可以提高初始种群的质量。在每一代中,所有的个体都被评价,并通过计算适应度函数得到一个适应度数值,依照适应度,对种群中的个体进行排序。然后,产生一个新的个体种群,也就是选择和繁殖,繁殖包括交配和突变。初始的数据便可以通过这样的选择原则组成一个相对优化的群体。之后,被选择的个体进入交配过程。
经过这一系列的过程(选择、交配和突变),产生的新一代个体不同于初始的一代,并一代一代向增加整体适应度的方向发展,因为最好的个体总是更多的被选择去产生下一代,而适应度低的个体逐渐被淘汰掉。过程不断重复:每个个体被评价,计算出适应度,两个个体交配,然后突变,产生第三代......直到满足终止条件为止。
二、算法流程
(1)初始化规模为 N的群体,其中染色体每个基因的值采用随机数产生器生成并满足问题定义的范围。当前进化代数Generation=0。
(2)采用评估函数对群体中所有染色体进行评价,分别计算每个染色体的适应值,保存适应值最大的染色体Best。
(3)采用轮盘赌选择算法对群体的染色体进行选择操作,产生规模同样为N的种群。
(4)按照概率Pc 从种群中选择染色体进行交配。每两个进行交配的父代染色体,交换部分基因,产生两个新的子代染色体,子代染色体取代父代染色体进入新种群。没有进行交配的染色体直接复制进入新种群。
(5)按照概率 Pm对新种群中染色体的基因进行变异操作。发生变异的基因数值发生改变。变异后的染色体取代原有染色体进入新群体,未发生变异的染色体直接讲入新群体。
(6)变异后的 新群体取代原有群体,重新计算群体中各个染色体的适应值。倘若群体的最大适应值大于Best的适应值,则以该最大适应值对应的染色体替代Best。
(7)当 前进化代数Generation加1。如果Generation超过规定的最大进化代数或Best达到规定的误差要求,算法结束;否则返回第(3)步。