gpt4 book ai didi

python - 将用户定义的数组设置为 Pyevolve 中的初始个体

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:19:01 24 4
gpt4 key购买 nike

这是我的问题。
Pyevolve是一个很好的基于遗传算法的框架。
不同于random.randint方式生成初始individuals(第一代)。它使用自己的功能来实现:

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 元素列表。

但是如何在 Pyevolve 中使用 genome.setParams 实现它。

如有任何建议,我们将不胜感激。

最佳答案

您可以定义自己的 Initialisator:

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)

关于python - 将用户定义的数组设置为 Pyevolve 中的初始个体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36564018/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com