我正在构建一个遗传算法来最大化一个数学函数。初始种群是随机选择的,比如说 20 个人。最好的留给下一代。进行了18场比赛,之后可以随机选择个人形成九对。从九对中,九个孩子“出生”。这是我的问题。这些孩子中有几个不符合可接受的标准。我决定从下一代中删除这些元素。我需要的建议是关于替换因不可接受而被移除的个人。我曾想过随机生成新个体。你有其他想法吗?
路易斯
我正在构建一个遗传算法来最大化一个数学函数。初始种群是随机选择的,比如说 20 个人。最好的留给下一代。进行了18场比赛,之后可以随机选择个人形成九对。从九对中,九个孩子“出生”。这是我的问题。这些孩子中有几个不符合可接受的标准。我决定从下一代中删除这些元素。我需要的建议是关于替换因不可接受而被移除的个人。我曾想过随机生成新个体。你有其他想法吗?
路易斯
为什么不实施某种临时交叉以生成“可接受的”后代?
这是标准做法。但如果这个建议不合适,您能否阐明您所说的“不可接受”是什么意思?
取决于你想要做什么,你可以继续生成随机对,直到你得到 9 个“可接受的”“孩子”,或者你可以把它们扔掉,只让“可接受的”孩子前进。那将更具进化性。
我不使用有性生殖,我认为这就是你正在做的。我让好人保持不变地存活到下一代,坏人被好人的突变所取代(通常从每个人中创造出“孩子”,顺序好于一个阈值,所以孩子们并不都是相关的对同一个“好”个人)。请注意,通过突变,我的意思是对一个好的“生物”的属性进行随机的小改动,而不是创建一个新的完全随机的个体。至少在我看来,这模拟了无性繁殖的个体,并将少量突变引入儿童的 DNA。弄清楚需要多少突变是您必须尝试的事情。