几个月前,我发明了一种遗传算法,但在解决任何问题的过程中,我都是一个星期。我最初的目标是在游戏应用中使用遗传算法。
现在,我重新创建了整个过程,并试图从另一个角度看问题。
现在,我将定义下一代的设置步骤。
我的最后一个想法是:
事实证明,这是非常低效的(我不知道为什么),而且计算要求也很高,因为交叉过程已经在所有的基因上循环了好几次。
现在我在想一种新的方法。
基本上,我的目标是维护这些基因,删除“坏”基因,用交叉基因填充基因库。
在一个有1.000个人的基因库里,我会:
我把“世世代代”的概念说得太当真了,让他们都死掉了(期望排名最高的),现在我会让他们都活下去,让他们都死掉。并根据需要重新定居。
我有遗漏什么吗?这个新方法会更好吗?
发布于 2014-12-24 16:23:56
垂直基因转移(传统的世代概念)有一种替代方法,即横向基因转移(参见本论文)。随着基因水平转移,种群规模在整个模拟过程中保持不变。
此外,当你培育基因型(无论你选择哪种方法),你绝对不应该只保留最适合的候选人在整个世代。如果这样做,您发现的解决方案很可能是一个局部最优。每一个基因型都应该有一些机会,使它到下一代,适者生存有一个更好的机会(参见这个答案关于线性等级选择)。
https://stackoverflow.com/questions/27527971
复制相似问题