我刚刚开始学习遗传算法,现在正尝试在物理模拟中的二维形状优化中实现它们。模拟为每个形状生成单个标量。 (我想这有点类似于boxcar2d http://boxcar2d.com/)
2D形状实际上是几个2D“子形状”的结合。每个子形状都存储为角度/半径列表。然后将2D形状存储为子形状列表的列表。这就是我现在的染色体。
现在对于健身,我可能会使用模拟产生的标量。我的问题是,我该如何进行选择和复制过程?锦标赛会更合适,还是我想将截断与比例选择结合使用?另外,您如何找到良好的突变率/种群大小等
抱歉这么多问题,但提前谢谢。我真的不知道从哪里开始。答案 0 :(得分:1)
在我看来,最好的方法是在进化过程中使用自适应再现策略:在第一步(让它命名 - “计算的第一阶段”)你可以设置高变异概率,在这个阶段你应该找到足够好的解决方案。在算法的“第二阶段”,你可以设置每隔几个步骤降低变异概率 - 在这个阶段你应该改进你的解决方案。但有时候在我的实践中,我已经注意到在优化的第二阶段(当每条染色体与其他染色体非常相似时)的种群退化 - 这会影响优化性能的极端减慢,所以我的解决方案是用高值突变随机扰动改进算法,它有帮助。
另外,我建议您阅读差分进化算法 - http://en.wikipedia.org/wiki/Differential_evolution。至于我,它的性能比遗传算法快得多。