我面临修改数据框的问题。对于人口中的每个个体,将转到函数 chromo_eval 并返回总成本。但是,当我运行“fitness_set”行时,它会返回错误的每个人的总成本。我认为原因是运行完第一个个体后,_data 并没有变回原来的状态,它一直在修改。
有什么方法可以解决这个问题,所以初始数据帧(_data)不被修改吗?
def chromo_eval(_data,TimeWindow,_chromo):
_data=_data.copy(deep=True)
....
return totalcost,
population = toolbox.population(n=num_population)
fitness_set = list(tb.map(tb.evaluate, population))
for ind, fit in zip(population, fitness_set):
ind.fitness.values = fit