我正在做关于遗传算法的最后一年项目 - 特别是 Dawkins Weasel 类型。我已经完成了轮盘赌选择和锦标赛选择,仍然要做稳态选择,但我不确定它到底是什么,我在网上找到的参考资料都很模糊。
有谁知道应该如何实施?任何指针都会很棒。
非常感谢。
我正在做关于遗传算法的最后一年项目 - 特别是 Dawkins Weasel 类型。我已经完成了轮盘赌选择和锦标赛选择,仍然要做稳态选择,但我不确定它到底是什么,我在网上找到的参考资料都很模糊。
有谁知道应该如何实施?任何指针都会很棒。
非常感谢。
通常,遗传算法的运行分为几代——每一代你的选择和繁殖过程都会替换所有(或至少大部分)种群。在稳态遗传算法中,您一次只能替换几个人。
使用标准选择技术来挑选父母来生产这几个后代。然后随机选择相同数量的个体,将它们杀死,并用后代替换它们(你可以选择不适合死亡的个体,但这可能会在一个不平凡的问题中消除种群多样性)。
您应该只对每个人评估一次适合度 - 在评估适合度之后,保存它,然后在将来重复使用该数字。Protip:当创建一个新个体时,将其标记为未评估,然后在第一次需要时对其进行评估(这样,如果一个个体被创建,然后在使用前随机选择死亡,您就不会花费时间评估它的适应度)。
一个基本的实现应该相当简单,但您可以查看Essentials of Metaheuristics(第 45-46 页,免费提供电子书)。