Python DEAP:健身似乎随着时间的推移而下降 - 我该如何解决这个问题?

Python DEAP: Fitness seems to go down over time - how do I fix this?

我的个人是调整多阶段过程所需的五个参数的串联。第一个群体是通过随机分配这些参数各自范围内的值并将其转换为二进制字符串来创建的。前 25 代的图表通常如下所示:

DEAP 代码如下所示:

# Create the individuals
creator.create('FitnessMax', base.Fitness, weights=(1.0, ))
creator.create('Individual', list, fitness=creator.FitnessMax)

# Initialize the containers
toolbox = base.Toolbox()
toolbox.register('individual', get_random_contour_ind)
toolbox.register('population', tools.initRepeat, list, toolbox.individual)

# Initialize the operators
toolbox.register('evaluate', get_total_max_ratio)
toolbox.register('mate', tools.cxUniform, indpb=0.10)
toolbox.register('mutate', tools.mutFlipBit, indpb=0.10)
toolbox.register('select', tools.selBest)

运行 花了很长时间,但我 运行 在其他评估器上使用了相同的 DEAP 代码,并且我注意到了相同的模式。我该如何解决这个问题?

问题是求值器是不确定的,所以我采纳了 paddymccrudden 的建议并添加了一个装饰器来强制执行随机适应性。现在适应度图如下所示:

如您所见,平均适应度随着世代的增长而增加。