gpt4 book ai didi

copy - 繁殖种群。我应该为每个人发送 `deepcopy` 吗?

转载 作者:行者123 更新时间:2023-12-01 15:21:17 24 4
gpt4 key购买 nike

我模拟了 Julia 中不断演变的人口。在我的代码中的某个地方,我随机抽样(样本按个体的适应度加权)以形成下一代。因为同一个体可以被采样多次(替换采样),所以我必须复制个体,而不仅仅是创建指向相同数据的新指针。目前代码如下:

##### Reproduction ######
NewPopulation = Array(Individuals, nb_individuals_in_population)
fitnesses = WeightVec(fitnesses)
for i = 1:nb_individuals_in_population
NewPopulation[i] = deepcopy(sample(OldPopulation, fitnesses))
end

,其中 Individuals 是由两个 true/false 数组组成的 type

是否有更高效(更快)的方法来模拟再现?

我的主要疑问是,当我深度复制时,数据多于我深度复制所需的数据。有些个体只会被采样一次,所以我不需要深度复制它们。我是否应该不进行深度复制,然后在 NewPopulation 中搜索多个副本中的个体,以便进行深度复制?你认为我会赢得时间吗?有更快的解决方案吗?此外,可能还有比我对个体进行抽样的更好的替代方法。

最佳答案

大概只有当不同的副本稍后会以不同的方式发生变异时,您才需要复制。如果只是育种和选择,没有突变,那么引用“复制”个体就足够了。

仅供引用 deepcopy(在当前的 julia 版本中)很慢;如果您需要性能,则应该为您的类型编写特定的 copy 方法。

关于copy - 繁殖种群。我应该为每个人发送 `deepcopy` 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28183232/

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