进化算法:变异操作、约束处理与自适应策略
在进化算法的领域中,变异操作的设计、约束处理以及自适应策略是至关重要的环节。下面将详细探讨这些方面的内容。
1. 变异操作的设计
在进化算法里,变异操作的设计是一个关键问题。可以使用泊松随机变量,依据其设定的平均速率,通过该随机变量的样本确定要应用的变异操作数量。这也引出了让进化过程学习应用多少变异的概念。
在应用进化算法进行优化时,人们往往会形成一些基本的方案。一些人选择在父代之间进行高交叉率和低突变率的方案;另一些人则完全不采用交叉或其他重组形式,仅使用突变,除非当前问题表明仅靠突变是不足或低效的。然而,实际上这两种方法通常都不是最优的。我们应该富有想象力地思考如何设计变异算子,结合所选的表示方式和选择类型,充分利用被搜索的目标函数的特性。
不同的变异算子在进化优化过程的不同阶段可能会有不同的效果。例如,重组可能在优化早期最为有效,而突变则在后期用于微调优化。或者,在相同的种群和适应度标准下,突变和重组实际上可能产生非常相似的预期进展速率。
使用静态概率来应用变异算子的效用是有限的。相比之下,让进化算法通过强化学习机制调整自身搜索的概念已被证明是有用的。
2. 约束处理
几乎所有现实世界的问题都是受约束的问题。以公交公司设计最优调度为例,存在多个约束条件,如现有公交车的数量、购买新车的预算、不同类型公交车的合格司机数量、每辆公交车的有限容量等。还可能有其他约束,如车辆维护要求、可使用和不可使用的道路、每个司机每周的可用工作时间等。
在应用进化算法时,考虑如何处理问题的约束非常重要。这些约束有些是目标的一部分,有些是解决方案参数的一部
超级会员免费看
订阅专栏 解锁全文
13

被折叠的 条评论
为什么被折叠?



