在遗传算法中仅选择前 x% 进行选择

发布于 2024-10-07 06:55:28 字数 413 浏览 4 评论 0原文

我目前正在开发 StringEvolver ,我不太确定可能使用的特定术语气体。

在遗传算法中,精英主义指的是直接晋升到下一代的人口子集;正确的?

但是是否有一个特定的术语来表示仅使用当前群体中的前 75% 而不是整个群体来进行选择、交叉和突变过程?基本上,那个 x% 比率叫什么?

我的意思是,我不使用整个种群进行轮盘赌选择过程,而是只使用最高的 x%(即仅在最好的 x% 中进行繁殖)的人口)


我问的原因是因为我注意到当使用人口的前 10-25% 进行选择、交叉和突变过程来推进一代而不是使用时,性能显着提高(更快的收敛)全部人口。

I am currently working on a StringEvolver and I'm not quite sure about a specific term which may be used in GAs.

In genetic algorithms, elitism refers to that subset of the population that get promoted to the next generation directly; correct?

But is there a specific term for using only, for example, the top 75% of the current population for the selection, crossover and mutation process rather than the whole population? Basically, what is that x% rate called?

What I mean is that instead of using the whole population for say, a roulette-selection process, I only use the top x% (i.e. breed only amongst the best x% of the population)


The reason I ask is because I have noticed significant performance improvements (quicker convergence) when using, for example, the top 10-25% of the population for the selection, crossover and mutation processes for advancing the generation rather than using the full population.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

像极了他 2024-10-14 06:55:28

简单地丢弃较弱候选者的简单选择策略有时称为截断选择。对于许多问题,它会导致过早收敛,尽管我发现它对于旅行商问题非常有效。

听起来你有一个两阶段策略,首先使用截断选择来消除弱候选者,然后应用更复杂的策略(轮盘赌?)来最终确定选择。

与其完全消除弱候选人生存的可能性,不如选择一种允许您调整该概率的选择策略。例如,通过锦标赛选择,您可以调整阈值来确定较弱的候选者而不是较强的候选者生存的可能性。

A naive selection strategy in which you simply discard the weaker candidates is sometimes called Truncation Selection. For many problems it leads to premature convergence, though I have found it works quite well for the Travelling Salesman problem.

Sounds like you have a two phase strategy, firstly using truncation selection to eliminate the weak candidates and then applying a more sophisticated strategy (roulette wheel?) to finalise the selection.

Rather than completely eliminate the possibility of weak candidates surviving, it might be better to choose a selection strategy that allows you to tweak that probability. For example, with tournament selection you can adjust the threshold to determine how likely it is that a weak candidate survives instead of a stronger one.

大姐,你呐 2024-10-14 06:55:28

听起来你只是在谈论一种具体的选择方法。您可以通过缩放适应度函数以更高的速率而不是线性地增加来完成大致相同的事情。

也就是说,我会警告不要每次都扔掉人口中的底部部分。对于较小的 GA,这将使您能够更快地收敛,但对于现实世界的问题,这通常会使您陷入局部最小值,从而降低解决方案的质量。

也就是说,有一个术语称为抽取。这是当你在交叉和突变之前扔掉人口中底部 X% 的时候。这通常不是每一代都完成的。通常,您会从一个难以处理的庞大种群开始,以便覆盖更大的搜索空间,然后在 X 代之后进行大量杀伤,因为 GA 往往在前 100 个世代左右获得最大收益。然后,您可以继续处理规模较小、更容易处理的群体。

希望这有帮助。

It sounds like you're just talking about a specific selection methodology. You could do roughly the same thing by scaling your fitness function to increase at higher rates rather than linearly.

That said, I would caution against throwing out the bottom portions of your population each time. For smaller GA's this will allow you to converge more quickly but for real-world problems this will often strand you in local minima, degrading the quality of your solutions.

That said, there is a term called decimation. This is when you throw out the bottom X% of your population before crossover and mutation. This is generally not done each generation. You will typically start with an intractably large population in order to cover a greater search space and then decimate after X generations, as GA's often make their greatest gains in the first 100 gens or so. You then proceed with the smaller, more easily handled population.

Hope this helps.

月亮坠入山谷 2024-10-14 06:55:28

没有特定术语将选择限制为前 x% 元素,这只是实施选择策略时必须设置的因素之一。

在某些限制 x% 数字的情况下,您可能会获得更快的收敛速度,但我建议尝试使用不同长度的字符串,看看这如何影响收敛。我以前做过这个(参见this这个 项目,都是关于不断进化的字符串),如果在选择个体时将基因库设置得太小,那么陷入困境的概率可能会随着字符串的长度而急剧上升,原因是你严重损害了多样性。

There's no specific term for restricting selection to the top x% elements, it's just one of the factors you have to set when implementing a selection strategy.

You may get faster convergence in some cases restricting that x% figure, but I would suggest trying with strings of different length and see how this affects convergence. I've done this before (see this and this projects, both on evolving strings), and if you make the gene pool too small when selecting individuals the probability of getting stuck may skyrocket in relation to the length of the string, the reason being that you're seriously compromising diversity.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文