智能算法-遗传算法(5)

305 阅读5分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第14天,点击查看活动详情

1. 遗传算法

本节主要介绍遗传算法的改进策略及改进思路。简单回顾一下遗传算法:遗传算法首先需要把初始解集以某种手段编译成遗传基因序列(染色体),如下图所示就是一个编译完成的染色体,这个染色体代表(对应)着一个初始解。当然,为了涵盖所有种群基因,需要先编译产生很多很多类似的染色体。 然后,很多很多这样的染色体就组成一个初始种群。接下来就开始繁衍,计算出该种群内的每个染色体的优劣程度(适应度)进行比较,淘汰一部分比较差的个体。

image.png

对于剩下的个体进行基因重组,两两染色体进行基因序列交换(交叉),组成新的子代染色体序列。对于新的子代染色体序列,有一定几率出现变异(染色体基因序列某几个基因发生改变)。

接下来,这些子代作为父代,再重复以上所有操作,实现了优胜劣汰,经过多代的繁衍,最终省下来的染色体就是找到的最优解。

遗传算法基本概念及思路讲解请参考智能算法-遗传算法(1) - 掘金 (juejin.cn)

遗传算法实例分步详解请参考智能算法-遗传算法(2) - 掘金 (juejin.cn)

遗传算法关键步骤详解请参考智能算法-遗传算法(3) - 掘金 (juejin.cn) 以及 智能算法-遗传算法(4) - 掘金 (juejin.cn)

2. 改进策略

2.1 改进思路

常用的改进方式通常从以下几个方面入手:

  • 改变遗传算法的组成成分(从遗传算法关键步骤入手)
  • 采用混合遗传算法(结合其他算法)
  • 采用动态自适应技术(某些参数随着迭代轮数不断调整)
  • 采用非标准的遗传操作算子;
  • 采用并行遗传算法;

2.2 跨代精英选择策略

上一代种群与通过新的交叉方法产生的个体群混合起来,从中按一定概率选择较优的个体(相当于从两代中去选择新的子代),这种方法可以很好的保证种群多样性(从两代中选择,选择范围更大)。
即使“新的交叉操作”产生较劣个体偏多,由于原种群大多数个体残留,不会引起个体的评价值降低。

2.3 大变异策略

在进化前期不采取变异操作,当种群进化到一定收敛时期,从最优个体中选择一部分个体进行初始化。(因为此时当前最优解的变化很小,容易陷入局部最优解)
初始化:选择一定比例(扩散率,一般0.35)的基因座,随机地决定它们的位值。
此方法也相当于是丰富种群基因型的一种手段。

2.4 自适应策略

自适应策略主要针对交叉概率PcPc和变异概率PmPm进行动态调整,使其有规律地变化。

交叉概率PcPc和变异概率PmPm的选择是影响遗传算法行为和性能的关键,直接影响算法的收敛性;

当种群各个体适应度趋于一致或趋于局部最优时,使PcPcPmPm增加(大胆一点,交叉和变异概率都多一些,丰富种群基因);

而当群体适应度比较分散时,使PcPcPmPm减少(大家差距很大,小心点,否则错过最优解);

对于适应度较高的个体,对应于较低的PcPcPmPm(希望能保留优质基因);而较低适应度的个体,对应于较高的PcPcPmPm(差的基因就应该大胆做出改变)。

对于PcPcPmPm的理解:

  • PcPc越大,新个体产生的速度就越快,但过大会使优秀个体的结构很快被破坏。PcPc过小,搜索过程缓慢,以至停止不前;
  • PmPm过小,不易产生新个体结构,PmPm过大,变成纯粹的随机搜索;

2.5 小生境思想

自然界中往往特征、性状相似的物种相聚在一起,并在同类中交配繁衍后代。遗传算法中的小生境思想主要是将每一代个体划分为若干类,每类选出优秀个体组成一个种群;

小生境的优势:保持解的多样性,提高全局搜索能力,适合复杂多峰函数的优化。

小生境策略中常用手段:

  1. 预选择机制:
  • 当子个体的适应度超过其父个体适应度时,子个体才可以替代父个体,否则父个体仍保留;
  • 有效维持种群多样性,造就小生境进化环境。
  1. 排挤机制:
  • 设置排挤因子CF(CF=2或3),随机选取1/CF的个体组成排挤成员,排挤与其相似(用距离来度量)的个体;
  • 个体之间的相似性可用个体编码串之间的海明距离来度量。
  1. 共享机制
  • 通过个体之间的相似性程度的共享函数来调整各个体的适应度(共享函数值越大,说明个体越相似);
  • 共享函数的目的:将搜索空间的多个峰值在地理上区分开来,每一个峰值处接受一定比例数目的个体,比例数目与峰值高度有关;