gpt4 book ai didi

r - 遗传算法中的处理约束 : implementing the death penalty

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:21:00 27 4
gpt4 key购买 nike

我想将“死刑方法”与遗传算法文献中提出的其他惩罚方法进行比较。

我用的是R软件,所以需要写这些惩罚方法的代码。我发现了很多困难,因为我不了解关于死刑函数的一件事:我必须如何处理不可行的后代,因为人口规模通常在遗传算法中是固定的?

我的意思是,我明白,为了适本地使用死刑,我必须用所有可行的解决方案来初始化遗传算法。但即使我在第一代种群 (t=0) 中拥有所有可行的解决方案,我也可能在下一代拥有不可行的解决方案,因为交叉和突变是“盲”算子。

那么,既然死刑拒绝了所有不可行的解决方案,那么会发生什么呢?下一代的种群数量是否会更小(原始尺寸 - 不可行解的数量),或者我必须选择更多的 parent 放入交配池进行繁殖,直到下一代由“原始尺寸”可行的后代组成,或者我必须重新尝试遗传算子,直到t+1中的所有个体都可行吗?

最佳答案

我不知道 R,但死刑理论意味着你应该产生更多的后代。

我会生成以下伪代码(转换为 R):

n=<desired_population_size>;
while (n>0) {
generate n offspring;
eliminate the non feasible ones
add the feasible ones to the new generation
n=<desired population size> - <current new generation population size>
}

这个循环的唯一问题是它可能永远持续下去的风险(如果我们永远不会生成可行的解决方案)。尽管它很小,但如果您想保护自己免受它的影响,您可以使用一个简单的计数器来限制 while 循环中允许的迭代次数。

有一个pretty interesting article Michalewicz 对此进行了讨论。看看。

关于r - 遗传算法中的处理约束 : implementing the death penalty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31952422/

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