【发布时间】:2014-05-25 11:41:25
【问题描述】:
我正在尝试实现轮盘选择。我找到了一些伪代码并且我已经实现了它,但是关于 0 适应度的基因组,我有些不明白。
我找到的伪代码是这样的
for each genome in population:
totalFitness = totalFitness + genome.fitness
x = random(0, totalFitness)
currentCount = 0
for each genome in population:
currentCount = currentCount + genome.fitness
if currentCount >= x:
parent = genome
break
我担心的是:假设我有 5 个基因组,它们的适应度如下
G1 = 11
G2 = 0
G3 = 0
G4 = 0
G5 = 0
根据上面的算法,肯定只有 G1 会被选中,这会杀死遗传多样性....我理解对了吗?
【问题讨论】:
-
考虑到人口,我会说
G1赢了,其余的都输了,对吧?如果一个基因组完全没有适应度,你为什么指望它能够存活?
标签: algorithm genetic-algorithm genetic-programming roulette-wheel-selection