首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >种群替换进化

种群替换进化
EN

Stack Overflow用户
提问于 2013-10-20 14:38:50
回答 3查看 323关注 0票数 3

寻找在不同的GA迭代中重用50%以前的最佳个体的方法。

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

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-21 11:05:55

应用于此问题的代码片段。

所需职能:

代码语言:javascript
复制
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 (本机函数)在每一代都被调用。

代码语言:javascript
复制
....
ga.stepCallback.set(self.createOwnGen)
....
bestIndividue = ga.bestIndividual()
population = ga.getPopulation()
self.previous_population = population.internalPop
....
票数 0
EN

Stack Overflow用户

发布于 2013-10-22 11:38:23

您可以使用setElitismReplacement (请看这里)方法来定义精英主义将使用的个人数量。

票数 1
EN

Stack Overflow用户

发布于 2013-10-23 10:31:14

只是为了记录下。setElitismReplacement将是一个很好的解决方案,如果指定数量的个人精英主义在1 GA完全运行。在每一代人中,只有这个数目的人将被选为下一代人。

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19478642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档