遗传算法 - 什么是稳态选择?
我正在做一个关于遗传算法的最后一年的项目——特别是道金斯黄鼠狼类型的算法。我已经完成了轮盘赌选择和锦标赛选择,仍在进行稳态选择,但我不确定它到底是什么,而且我在网上找到的参考资料都非常模糊。
有谁知道应该如何实施?任何指点都会很棒。
非常感谢。
I'm doing a final year project on genetic algorithms - specifically of the Dawkins Weasel type. I've done roulette selection and tournament selection, still to do steady state selection, but I'm not sure exactly what it is and references I find online are all pretty vague.
Does anyone know how it should be implemented? Any pointers would be great.
Many thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
通常,遗传算法的运行分为几代 - 每一代您的选择和繁殖过程都会替换所有(或至少大部分)群体。在稳态遗传算法中,一次只能替换几个个体。
使用标准选择技术来挑选父母来产生这少数后代。然后随机选择相同数量的个体,杀死它们,并用后代代替它们(你可以选择不适合死亡的个体,但这可能会消除一个不平凡的问题中的种群多样性)。
您应该只对每个人的适合度进行一次评估 - 评估适合度后,保存它,然后在将来重复使用该数字。专业提示:当创建一个新个体时,将其标记为未评估,然后在第一次需要时对其进行评估(这样,如果创建了一个个体,然后在使用前随机选择死亡,则无需花费时间评估它的健身)。
基本实现应该相当简单,但您可以查看元启发式精要(第 45-46 页,电子书免费提供)。
Typically, the run of a genetic algorithm is divided into generations - each generation your selection and reproduction process replaces all (or at least most) of the population. In a steady state genetic algorithm you only replace a few individuals at a time.
Use a standard selection technique to pick parents to produce these few offspring. Then randomly select the same number of individuals, kill them off, and replace them with the offspring (you could select unfit individuals for death, but that may wipe out population diversity in a non-trivial problem).
You should only evaluate fitness once per individual - after you evaluate the fitness, save it and then reuse that number in the future. Protip: when a new individual is created, flag it as being unevaluated, and then evaluate it the first time it's needed (this way, if an individual is created and then randomly selected for death before being used, you don't consume time evaluating its fitness).
A basic implementation should be fairly simple, but you can check out Essentials of Metaheuristics (pages 45-46, ebook available free).