0

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

前 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 代码,并注意到相同的模式。我该如何解决?

4

1 回答 1

0

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

25代随机健身执法

如您所见,平均适应度在几代人中不断增加。

于 2018-06-06T14:11:54.720 回答