在(μ,λ)自适应类型进化策略算法中,在我的实现过程是:
在1.中,我产生了μ个体的后代。当我看到报纸
http://www.cs.bham.ac.uk/~pxt/NIL/es.pdf
http://ieeexplore.ieee.org/document/5596676/
如果看上去我可以通过克隆μ个体来获得后代,并创造后代。
但我怎么能详细地做到这一点呢?我是否应该用一个常数克隆μ个体,然后用λ= proportion *μ获得后代?
但是这样的话,在突变阶段,我不会得到几个相同的结果吗?在选择阶段,我想我可以得到相同的个体,以同样的健康值。
我如何才能准确地创造出λ的后代?
发布于 2018-01-22 21:58:17
我是否应该用一个常数克隆μ个体,然后用λ= proportion *μ获得后代?
是的,从比例== 2开始,你会得到几次相似的个人。确保只复制n优于(n < μ / (3 * proportion) )个人。因为你将不得不忘记/摧毁n崇拜者个人。
在突变阶段,我会不会得到几个相同的结果?
可能您的错误在克隆步骤中。您必须执行一个完全复制,而不仅仅是一个克隆;一个每个位的真实副本,而不仅仅是一个指针的副本。因此,许多克隆函数都不复制内部引用的对象.在这里,克隆人()这个词只是与生物界的比较。
如果您的个人是整数数组,那么您应该有一个整数数组。然后,将索引i的个体克隆为另一个索引j的个体,必须以类似的方式进行如下操作:
for(k = 0; k < individuals[i].length; k++)
individuals[j][k] = individuals[i][k];算法的第二步将迫使个体以随机的方式进化。因此,如果一个组合被多个个体编码,那么它将有更大的进化机会。因此,个人不能分享记忆,以确保多样性将占上风。
ieee文件不能打开,它要求支付费用。
我如何才能准确地创造出λ的后代?
sort individuals by fitness from best to worst.
for( i = 0 ; i < n ; i++) // **n** best
copy data of individuals[i] into individuals[individuals.length-i] // replace a worst one, by the copy of a good one.此步骤应在常量内存中完成。没有释放(删除),没有错位(新)。
https://stackoverflow.com/questions/48384608
复制相似问题