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