遗传算法轮盘赌选择返回双亲染色体

2024-09-28 22:23:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在遗传算法中实现轮盘赌的选择。我试着遵循指南https://stackoverflow.com/a/5315710/536474,但它返回的是新的群体,而不是2个最好的父母。假设我已经找到了初始种群的适应度得分,现在我需要根据它们的适应度为一个种群选择两个亲本染色体。更进一步的是交叉和变异过程。在下面的例子中,我如何根据轮盘赌的选择找到2个最适合交叉的父母?在

population = [[text1],[text2],[text3],.....[textnum]]
fitnesses = [0.8057515980834005, 1.2151126619653638, 0.6429369518995411, ... 0.805412427797966]
num = 50

Tags: httpscom过程指南轮盘stackoverflow交叉群体
1条回答
网友
1楼 · 发布于 2024-09-28 22:23:22

它不会传回一个新的群体,只是num父母。如果您想让两个家长打电话给roulette_select,请这样做:

roulette_select(population, fitnesses, 2)

遗传算法的交叉算子通常期望有两个父类,但有许多父类的变化(例如Genetic algorithms with multi-parent recombination - A.E. Eiben, P-E. Raué, Zs. Ruttkay)。在

也有自交叉算子。在

因此,有一个num输入参数是有意义的。在

相关问题 更多 >