首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将用户定义的数组设置为“化简”中的初始个体

将用户定义的数组设置为“化简”中的初始个体
EN

Stack Overflow用户
提问于 2016-04-12 05:05:54
回答 1查看 144关注 0票数 0

这是我的问题。

皮尔赛是一种很好的基于遗传谱的框架。

与生成初始individuals(the的random.randint方法不同,第一代)。它利用自己的职能实现了以下目标:

代码语言:javascript
复制
genome = G1DList.G1DList(8)
# Sets the range max and min of the 1D List
genome.setParams(rangemin=0, rangemax=1000)   
# pyevolve will generate 80 different individuals as default

上面的代码等于

代码语言:javascript
复制
def individual(NUMBER):
    loc = random.sample(np.arange(1000), NUMBER)
    return loc
def population(GENSIZE, NUMBER):
    ## GENSIZE--> population scale
    ## NUMBER --> 8-elements list
    return [ individual(NUMBER) for x in np.arange(GENSIZE) ]

pop = population(80, 8)   

但是当样本域不在一个连续的范围时。例如:

代码语言:javascript
复制
LIST = np.arange([1,3,4,5,6,7,9,10, 12, 14,16,17,18]) ## some number are missing on purpose

使用sample = random.sample(LIST,8),我仍然可以得到一个随机的8元素列表。

但是如何用genome.setParams.在中实现呢?

任何建议都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2017-01-09 16:27:20

您可以使用以下方法定义您自己的初始化器:

代码语言:javascript
复制
def my_initialisator(genome):
    def individual(NUMBER):
        loc = random.sample(np.arange(1000), NUMBER)
        return loc
    genome.genomeList = [ individual(NUMBER) for x in np.arange(GENSIZE) ]

genome.initializator.set(my_initialisator)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36564018

复制
相关文章

相似问题

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