Replace 人口更替

Replace 人口更替,replace,population,pyevolve,Replace,Population,Pyevolve,寻找一种方法,在不同的GA迭代中重复使用50%的先前种群最佳个体 例如,在进程内的当前迭代结束时,执行“population=ga.getPopulation()”。下一次迭代初始化该pop的50% 有人知道如何处理人口结果吗 应用于此问题的代码片段 所需功能: def createOwnGen(self , ga_engine): gen = ga_engine.getCurrentGeneration() if gen == 0 and self.previo

寻找一种方法,在不同的GA迭代中重复使用50%的先前种群最佳个体

例如,在进程内的当前迭代结束时,执行“population=ga.getPopulation()”。下一次迭代初始化该pop的50%


有人知道如何处理人口结果吗

应用于此问题的代码片段

所需功能:

def createOwnGen(self , ga_engine):
        gen = ga_engine.getCurrentGeneration()
        if gen == 0 and self.previous_population != []:
            population = ga_engine.getPopulation()
            popSize = len(population)
            for i in xrange(popSize/2):
                population[popSize/2+i] = self.previous_population[i]
            population.sort()
        return False
stepCallback(pyevolve的本机函数)在每一代中都被调用

....
ga.stepCallback.set(self.createOwnGen)
....
bestIndividue = ga.bestIndividual()
population = ga.getPopulation()
self.previous_population = population.internalPop
....

您可以使用方法
setElistismReplacement
()来定义Elistism将使用的个人数量。

仅用于记录。SetElistismReplacement将是一个很好的解决方案,以防指定 1 GA完整运行中精英化的个人数量。在每一代人中,只有那么多的个体会被选为下一代

我的意思是在不同的运行中,存储所有代中实现的最佳总体,并重用以前最佳结果的50%来初始化下一次运行

无论如何,已经发布了一个示例