在DEAP example(Python的框架)有一个代码:地图,然后迭代 - 为什么?
# Evaluate the entire population
fitnesses = list(map(toolbox.evaluate, pop))
for ind, fit in zip(pop, fitnesses):
ind.fitness.values = fit
为什么他们使用map
,然后for
?为什么不只是:
for ind in pop:
ind.fitness.values = toolbox.evaluate(ind)
我能想到的唯一原因是,在分配给任何“ind”之前评估所有对“toolbox.evaluate()”的调用可能很重要.fitness.values'必须发生。也许是并发问题?或分配有副作用? – Alfe
也许只是遗体黑客的代码。也许在旧版本有使用'fitnesses'用于不同的目的两条线之间的东西。 – Alfe