遗传算法中最优种群大小,突变率和配合率
我写了一个竞赛游戏程序,它依赖于16个浮点“常量”。 改变常数可以并且将会对运动风格和成功率产生巨大影响。
我还写了一个简单的遗传算法来生成常量的最佳值。 但是该算法不会生成“最佳”常数。
可能的原因是:
算法如下所示:
我目前的设置:
什么是更好的人口规模,变异率和配偶率?
猜测是值得欢迎的,预计不会有确切的值! 此外,如果您有类似的遗传算法的见解,您会喜欢分享,请这样做。
PS:有问题的游戏比赛,如果有人感兴趣:http://ai-contest.com/
你的突变规模惊人地高。 它也有一些固有的偏见 - 当前值越大,突变就越大。
你可以考虑
RA Fisher曾将突变尺寸与显微镜聚焦进行了比较。 如果你改变了重点,你可能会朝着正确的方向或错误的方向前进。 但是,如果你相当接近最佳状态并将其转化为很多 - 要么你会走错方向,否则你会超出目标。 所以更微妙的调整通常更好!
使用GAUL框架,它非常容易,所以你可以提取你的目标函数来插入GAUL。 如果你有一个多核心机器,那么你在编译时要使用omp(openMP)来并行化你的评估(我认为这是时间消耗)。 这样你可以有更大的人口规模。 http://gaul.sourceforge.net/
通常他们使用高交叉和低突变。 既然你想创造力我建议你高突变和低交叉。 = RSS
在你的变异函数中真正小心,留在你的空间搜索(在0.75,1.25内)。 使用GAUL随机函数,如random_double(min,max)。 他们设计得很好。 建立你自己的变异功能。 确保父母死亡!
那么你可能希望将它与一个包含在GAUL中的单形(Nelder-Mead)相结合,因为具有低交叉的遗传编程将找到一个非最优解。
链接地址: http://www.djcxy.com/p/48863.html上一篇: Optimal population size, mutate rate and mate rate in genetic algorithm