这是我的问题。
皮尔赛是一种很好的基于遗传谱的框架。
与生成初始individuals(the的random.randint方法不同,第一代)。它利用自己的职能实现了以下目标:
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上面的代码等于
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) 但是当样本域不在一个连续的范围时。例如:
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.在和中实现呢?
任何建议都将不胜感激。
发布于 2017-01-09 16:27:20
您可以使用以下方法定义您自己的初始化器:
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)https://stackoverflow.com/questions/36564018
复制相似问题