如何更换不允许的解决方案?

时间:2010-09-08 22:06:16

标签: algorithm genetic-algorithm evolutionary-algorithm

我正在构建遗传算法以最大化数学函数。 最初的人口是随机选择的,比如20个人。 最好的是为下一代保留。 进行了18场比赛,以便之后个人可以随机进行 选择形成九对。 从九对中,九个孩子“出生”。 这是我的问题。其中一些孩子不符合规定 标准。 我决定从下一代中删除这些元素。 我需要的建议是更换那些人 由于不可接受而被删除。 我想过随机产生新的个体。 你有其他想法吗?

路易斯

3 个答案:

答案 0 :(得分:1)

取决于你想要做什么,你可以继续产生随机对,直到你得到9'可接受的''孩子',或者你可以把它们扔掉,只让'可接受'的孩子前进。那会更具进化性。

答案 1 :(得分:1)

为什么不实施某种临时交叉,以便产生“可接受的”后代?

这是标准做法。但如果这个建议不合适,请你明白“不可接受”的意思吗?

答案 2 :(得分:0)

我不使用有性生殖,我认为这就是你正在做的事情。我有好的生存到下一代不变,坏的替换为好的突变(通常从序列中的每一个创建“儿童”优于阈值,所以孩子们并非都是相关的对同一个“好”的个人而言。请注意,通过变异,我的意思是对一个好的“生物”的属性进行随机的小改动,而不是创建一个新的完全随机的个体。至少在我看来,这模拟了无性繁殖的个体和引入儿童DNA的少量突变。弄清楚需要多少突变是你必须要试验的东西。具有更多世代和更低突变率的更大种群似乎效果更好,但情况并非总是如此。