3

我最近才开始学习遗传算法,现在正尝试在物理模拟中的 2D 形状优化中实现它们。模拟为每个形状生成一个标量。(我想这有点类似于 boxcar2d http://boxcar2d.com/

二维形状实际上是几个二维“子形状”的结合。每个子形状都存储为角度/半径列表。然后将 2D 形状存储为子形状列表的列表。这是我现在的染色体。

现在为了健身,我可能会使用模拟产生的标量。我的问题是,我应该如何进行选择和繁殖过程?锦标赛会更合适,还是我想将截断与比例选择结合使用?另外,你如何找到一个好的突变率/种群大小等

抱歉这么多问题,但提前谢谢。我真的不知道从哪里开始。

4

1 回答 1

1

在我看来,最好的方法是在进化过程中使用自适应繁殖策略:在第一步(让我们命名 - “计算的第一阶段”)你可能会设置高突变概率,在这个阶段你应该找到足够好的解决方案. 在算法的“第二阶段”,您可以设置每隔几步降低突变概率- 在此阶段您应该改进您的解决方案。但有时在我的实践中,我注意到在优化的第二阶段(当每个染色体与其他染色体非常相似时)人口退化 - 这会影响优化性能的极端减慢,所以我的解决方案是改进具有高价值突变随机的算法扰动它有帮助。

另外,我建议您阅读有关差分进化算法的信息- http://en.wikipedia.org/wiki/Differential_evolution。至于我,它的性能比遗传算法快得多。

于 2011-07-16T09:35:00.820 回答