概述

遗传算法模拟一个人工种群的进化过程,通过选择(Selection)、交叉(Crossover)以及变异(Mutation)等机制,在每次迭代中都保留一组候选个体,重复此过程,种群经过若干代进化后,理想情况下其适应度达到近似最优的状态
group_ga

步骤

  1. 编码 – 创造染色体
  2. 适应度函数
  3. 遗传算子
    1. 选择
    2. 交叉
    3. 变异

可用参数

  1. 是否选用精英操作
  2. 种群大小
  3. 最大迭代次数
  4. 交叉概率
  5. 变异概率

编码问题

编码问题可以理解为将一个解空间的问题映射到编码空间进行运算
![[/images/ga_space.png]]

常见编码方式

实数编码

优点:直接用实数表示基因,容易理解且不需要解码过程
缺点:容易过早收敛,从而陷入局部最优

二进制编码

优点:稳定性高,种群多样性大
缺点:需要的存储空间大,需要解码且难以理解

过程

在刚开始时,遗传算法会先初始化一个种群,即一组X,种群的个体(即每个X)都以编码的形式存在

染色体交换

我们称两个解之间交换部分编码产生新的个体的的过程

基因突变

指对于单个解进行大胆的修改

适者生存(适应度函数 fitness function

适应度函数通常是问题的目标函数,可能需要转换以适合遗传算法的求解过程。例如,对于最大化问题,可以直接使用目标函数值作为适应度;对于最小化问题,可以使用目标函数值的负值或其倒数作为适应度。

轮盘赌选择法

将不同样本的适应度进行归一化之后使用概率随机选择

锦标赛选择法

想象一个淘汰赛,每次从种群中随机挑选几个个体进行比较,选择其中最好的个体进入下一轮

排名选择

将所有个体按照适应度排序,分配一个排名。排名越高的个体,选择的概率越大(只看排名,不看数据的差距)

精英选择

直接将适应度最高的一些个体保留下来,确保这些最优个体不会被下一代丢失
这个强调直接保留最前面的几个,剩下的样本数量使用轮盘或者锦标赛思路选择