一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第14天,点击查看活动详情。
1. 遗传算法
本节主要介绍遗传算法的改进策略及改进思路。简单回顾一下遗传算法:遗传算法首先需要把初始解集以某种手段编译成遗传基因序列(染色体),如下图所示就是一个编译完成的染色体,这个染色体代表(对应)着一个初始解。当然,为了涵盖所有种群基因,需要先编译产生很多很多类似的染色体。 然后,很多很多这样的染色体就组成一个初始种群。接下来就开始繁衍,计算出该种群内的每个染色体的优劣程度(适应度)进行比较,淘汰一部分比较差的个体。
对于剩下的个体进行基因重组,两两染色体进行基因序列交换(交叉),组成新的子代染色体序列。对于新的子代染色体序列,有一定几率出现变异(染色体基因序列某几个基因发生改变)。
接下来,这些子代作为父代,再重复以上所有操作,实现了优胜劣汰,经过多代的繁衍,最终省下来的染色体就是找到的最优解。
遗传算法基本概念及思路讲解请参考智能算法-遗传算法(1) - 掘金 (juejin.cn)
遗传算法实例分步详解请参考智能算法-遗传算法(2) - 掘金 (juejin.cn)
遗传算法关键步骤详解请参考智能算法-遗传算法(3) - 掘金 (juejin.cn) 以及 智能算法-遗传算法(4) - 掘金 (juejin.cn)
2. 改进策略
2.1 改进思路
常用的改进方式通常从以下几个方面入手:
- 改变遗传算法的组成成分(从遗传算法关键步骤入手)
- 采用混合遗传算法(结合其他算法)
- 采用动态自适应技术(某些参数随着迭代轮数不断调整)
- 采用非标准的遗传操作算子;
- 采用并行遗传算法;
2.2 跨代精英选择策略
上一代种群与通过新的交叉方法产生的个体群混合起来,从中按一定概率选择较优的个体(相当于从两代中去选择新的子代),这种方法可以很好的保证种群多样性(从两代中选择,选择范围更大)。
即使“新的交叉操作”产生较劣个体偏多,由于原种群大多数个体残留,不会引起个体的评价值降低。
2.3 大变异策略
在进化前期不采取变异操作,当种群进化到一定收敛时期,从最优个体中选择一部分个体进行初始化。(因为此时当前最优解的变化很小,容易陷入局部最优解)
初始化:选择一定比例(扩散率,一般0.35)的基因座,随机地决定它们的位值。
此方法也相当于是丰富种群基因型的一种手段。
2.4 自适应策略
自适应策略主要针对交叉概率和变异概率进行动态调整,使其有规律地变化。
交叉概率和变异概率的选择是影响遗传算法行为和性能的关键,直接影响算法的收敛性;
当种群各个体适应度趋于一致或趋于局部最优时,使和增加(大胆一点,交叉和变异概率都多一些,丰富种群基因);
而当群体适应度比较分散时,使和减少(大家差距很大,小心点,否则错过最优解);
对于适应度较高的个体,对应于较低的和(希望能保留优质基因);而较低适应度的个体,对应于较高的和(差的基因就应该大胆做出改变)。
对于与的理解:
- 越大,新个体产生的速度就越快,但过大会使优秀个体的结构很快被破坏。过小,搜索过程缓慢,以至停止不前;
- 过小,不易产生新个体结构,过大,变成纯粹的随机搜索;
2.5 小生境思想
自然界中往往特征、性状相似的物种相聚在一起,并在同类中交配繁衍后代。遗传算法中的小生境思想主要是将每一代个体划分为若干类,每类选出优秀个体组成一个种群;
小生境的优势:保持解的多样性,提高全局搜索能力,适合复杂多峰函数的优化。
小生境策略中常用手段:
- 预选择机制:
- 当子个体的适应度超过其父个体适应度时,子个体才可以替代父个体,否则父个体仍保留;
- 有效维持种群多样性,造就小生境进化环境。
- 排挤机制:
- 设置排挤因子CF(CF=2或3),随机选取1/CF的个体组成排挤成员,排挤与其相似(用距离来度量)的个体;
- 个体之间的相似性可用个体编码串之间的海明距离来度量。
- 共享机制
- 通过个体之间的相似性程度的共享函数来调整各个体的适应度(共享函数值越大,说明个体越相似);
- 共享函数的目的:将搜索空间的多个峰值在地理上区分开来,每一个峰值处接受一定比例数目的个体,比例数目与峰值高度有关;