有效实施

GA 本质上非常通用,仅将其应用于任何优化问题都不会产生良好的结果。在本节中,我们将介绍一些有助于 GA 设计人员或 GA 实施人员开展工作的要点。

引入问题特定领域的知识

据观察,我们在 GA 中融入的问题特定领域知识越多,我们获得的目标值就越好。可以通过使用问题特定的交叉或突变运算符、自定义表示等来添加问题特定信息。

下图显示了 Michalewicz (1990) 对 EA 的看法 −

Effective Implementation

减少拥挤

当高度适应的染色体大量繁殖时,就会发生拥挤,在几代之内,整个种群中充满了具有相似适应度的类似解决方案。这会降低多样性,而多样性是确保 GA 成功的一个非常关键的因素。有很多方法可以限制拥挤。其中一些是 −

  • 突变以引入多样性。

  • 切换到等级选择锦标赛选择,对于具有相似适应度的个体,它们比适应度比例选择具有更大的选择压力。

  • 适应度共享 − 在这种情况下,如果种群已经包含相似的个体,则个体的适应度会降低。

随机化有帮助!

实验观察到,最佳解决方案是由随机染色体驱动的,因为它们为种群带来了多样性。 GA 实施者应注意保持种群中足够的随机性和多样性,以获得最佳结果。

将 GA 与局部搜索混合

局部搜索是指检查给定解决方案附近的解决方案以寻找更好的目标值。

将 GA 与局部搜索混合有时可能很有用。下图显示了可以在 GA 中引入局部搜索的各个位置。

Hybridize GA

参数和技术的变化

在遗传算法中,没有"一刀切"或适用于所有问题的神奇公式。即使在初始 GA 准备就绪之后,仍然需要花费大量的时间和精力来调整诸如种群大小、突变和交叉概率等参数,以找到适合特定问题的参数。