Computer science 进化算法:最优再种群分解

Computer science 进化算法:最优再种群分解,computer-science,artificial-intelligence,genetic-algorithm,genetic-programming,evolutionary-algorithm,Computer Science,Artificial Intelligence,Genetic Algorithm,Genetic Programming,Evolutionary Algorithm,这确实都在标题中,但这里有一个对进化算法感兴趣的人的分类: 在EA中,基本前提是随机生成一定数量的有机体(实际上只是一组参数),针对问题运行它们,然后让表现最好的有机体存活下来 然后用幸存者的杂交、幸存者的突变以及一定数量的新随机生物的组合重新繁殖 这样做几千次,有效的有机体就会出现 有些人还做一些事情,比如引入多个“岛”的生物体,它们是分开的种群,允许偶尔杂交一次 所以,我的问题是:什么是最佳的再繁殖百分比 我一直保持着前10%的表现,并用30%的杂交和30%的突变重新繁殖。剩下的30%用于新

这确实都在标题中,但这里有一个对进化算法感兴趣的人的分类:

在EA中,基本前提是随机生成一定数量的有机体(实际上只是一组参数),针对问题运行它们,然后让表现最好的有机体存活下来

然后用幸存者的杂交、幸存者的突变以及一定数量的新随机生物的组合重新繁殖

这样做几千次,有效的有机体就会出现

有些人还做一些事情,比如引入多个“岛”的生物体,它们是分开的种群,允许偶尔杂交一次

所以,我的问题是:什么是最佳的再繁殖百分比

我一直保持着前10%的表现,并用30%的杂交和30%的突变重新繁殖。剩下的30%用于新生物

我也尝试过多岛理论,我对你们的结果也很感兴趣

我并不认为这正是EA可以解决的问题类型。你知道有人这样做吗


提前谢谢

你知道你能做什么。。。您可以编写一个遗传算法来确定最优分布


但是,通常我会保留前12%和28%的杂交后代;其他人各占30%。

我为GA和EA找到的最好的资源是约翰·科扎(John Koza)的相关书籍。他深入讨论了这个主题——基因组编码技术、随机突变、育种、调整适应度函数

就我个人而言,我只为教学目的编写了一小部分模拟器。我发现我如何调整这些百分比与我使用的适应度函数的细节有关,我引入了多少随机变异,以及我尝试进行变异和繁殖的“聪明程度”——我发现我尝试进行变异和交叉逻辑的“聪明程度”越低,人群的适应度得分提高得越快——我还发现我在突变概率上过于保守——我最初的跑步达到了局部最大值,很难摆脱它们

所有这些都没有给出具体的答案,但我认为没有具体的答案,遗传算法本质上是不可预测的,调整这些类型的参数可能仍然是一门艺术。当然,你可以尝试一个元遗传算法,使用这些参数作为染色体,搜索在你运行的基本遗传算法中产生更快适应度的设置

这取决于你想要获得的“元”的方式。

这是一个(在文献和实践中)激烈争论的话题,似乎是非常特定于领域的。适用于一种类型的具有n个参数的问题的方法几乎不会适用于另一个问题、另一个域或另一个参数集

所以,正如《创伤学》所建议的,针对你正在解决的每一个问题自己调整它,或者写一些东西为你优化它。你能做的最好的事情就是跟踪你所有的“旋钮旋转”和微调实验,这样你就可以绘制出解决方案的地形图,并感受到如何在该空间内快速优化。也可以尝试其他的技巧,比如爬山,这样你就可以有一个底线


@凯尔·伯顿:交给GAs和GPs的每一类问题中,交叉率和变异率也是一样的。

假设你有一种方法来量化前X%的表现者,我建议您不要使用硬编码的阈值,而是分析性能分布,并在性能第一次大幅度下降的范围内进行截断,然后调整交叉阅读、突变和新生物体以填补空白。这样,如果你有一个非常“富有成效”的运行,其中许多变化是成功的,你不会抛出大量的高性能。此外,如果你有一个“非生产性”的运行,你可以废弃更多的现有生物,而代之以更新的生物。

我最初试图模拟我认为的有机系统。最终认为这不好,于是采取了更具攻击性的做法,10%保留,20%变异,60%杂交,10%随机

然后我注意到我的前10%都大致相同。所以我把随机数增加到30%。这帮助了一些人,但不多

我确实尝试过多岛、跳代和重新播种,结果更好,但仍然非常不令人满意,前10%的变异很小,疯狂的长代数才能得到任何结果。大部分代码学习了如何破解我的体能评估

很容易找到表现最好的人,所以不要担心留下太多的人。杂交有助于减少正面和负面的特征,所以它们是有用的,但实际上你想要得到的是大量好的随机繁殖。关注突变和新的随机性以引入特征,让杂交种和表现最好的品种跟踪最好的品种,并更缓慢地改进它们。IE:基于上一代的东西只是找到一个更好的局部极大值,随机数找到更好的全局极大值

我仍然相信,通过观察自然现象可以找到你问题的最佳答案,比如在最近一篇关于果蝇飞行路径随机性的文章中,这样可能会成功


也许最好的答案是运行它并调整它,不要害怕对它进行大量调整,人口是强大的。确保您实现了一种保存并继续的方法。

似乎有一些答案建议使用第二个GA来确定第一个GA的最佳参数,但没有提到如何确定第二个GA的最佳参数。我忍不住想知道那些建议这种方法的人的宗教信仰…

我通过设置突变和CRO成功地增加了人口的多样性