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

步骤
- 编码 – 创造染色体
- 适应度函数
- 遗传算子
- 选择
- 交叉
- 变异
可用参数
- 是否选用精英操作
- 种群大小
- 最大迭代次数
- 交叉概率
- 变异概率
编码问题
编码问题可以理解为将一个解空间的问题映射到编码空间进行运算
![[/images/ga_space.png]]
常见编码方式
实数编码
优点:直接用实数表示基因,容易理解且不需要解码过程
缺点:容易过早收敛,从而陷入局部最优
二进制编码
优点:稳定性高,种群多样性大
缺点:需要的存储空间大,需要解码且难以理解
过程
在刚开始时,遗传算法会先初始化一个种群,即一组X,种群的个体(即每个X)都以编码的形式存在
染色体交换
我们称两个解之间交换部分编码产生新的个体的的过程
基因突变
指对于单个解进行大胆的修改
适者生存(适应度函数 fitness function)
适应度函数通常是问题的目标函数,可能需要转换以适合遗传算法的求解过程。例如,对于最大化问题,可以直接使用目标函数值作为适应度;对于最小化问题,可以使用目标函数值的负值或其倒数作为适应度。
轮盘赌选择法
将不同样本的适应度进行归一化之后使用概率随机选择
锦标赛选择法
想象一个淘汰赛,每次从种群中随机挑选几个个体进行比较,选择其中最好的个体进入下一轮
排名选择
将所有个体按照适应度排序,分配一个排名。排名越高的个体,选择的概率越大(只看排名,不看数据的差距)
精英选择
直接将适应度最高的一些个体保留下来,确保这些最优个体不会被下一代丢失
这个强调直接保留最前面的几个,剩下的样本数量使用轮盘或者锦标赛思路选择
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
