GA 遗传算法总结

191 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第13天,点击查看活动详情


遗传算法

遗传算法(Genetic Algorithm, GA)的核心是达尔文优胜劣汰适者生存的进化理论的思想。

  • 直接对结构对象进行操作,不存在求导和函数连续性的限定
  • 具有内在的隐并行性和更好的全局寻优能力
  • 采用概率化的寻优方法,不需要确定的规则就能自动获取和指导优化的搜索空间,自适应地调整搜索方向

流程

遗传算法主要包括种群初始化,交叉,变异和环境选择四个主要操作。

编码,初始化种群

编码可以使用实数编码或者二进制编码

  • 实数编码:用实数表示基因,容易理解且不需要解码过程,但容易过早收敛,从而陷入局部最优
  • 二进制编码:稳定性高,种群多样性大,但需要的存储空间大,需要解码且难以理解

随机生成 M 个个体作为初始种群

计算个体适应度

计算种群中各个体的适应度:适应度越大,被选择的几率就越大。

选择

选择的目的是筛选出适应度高的个体,将他们的基因传递给下一代,以产生更高适应度的个体。

通常采用轮盘赌选择方法,适应度越大的个体被选中的几率越高。该方法具有随机性,在选择的过程中可能会丢失较好的个体。也可以采用精英机制,直接选择适应度最高的一组个体。

交叉

将原个体按某种方式两两交换部分基因。包括单点交叉,均匀交叉等。

交叉的意义在于在当前较优的个体中产生更优的个体,相比于变异,交叉产生更优个体的概率更大,但适应度的提升是有限的。

变异

变异指将个体染色体编码串中的某些基因座上的基因值用该基因座上的其它等位基因来替换,从而形成新的个体。包括基本位变异,均匀变异等。

变异有可能产生出非常优秀的个体。但概率很低。能够在一定程度上求得全局最优解。