我已经使用自己的遗传算法一段时间了,我使用随机选择和精英主义(前10%左右)来获得50%的人口。然后我做交叉以产生接下来的50%,当然接下来是突变。这听起来很奇怪,但它让我在我的问题上走得足够远,现在对此感到满意。
我想开始使用更精细的选择方法,特别是排名选择。我还想使用交叉概率。
我的问题是:
嗯,如果每个个体只被选中一次,你必须复制整个种群来形成新的种群。在排名选择中,您只需根据概率选择与个人排名成比例的概率,并让机会决定是否或哪个个人被复制更多次。
看情况。如果你有一个所谓的代际计划,你总是产生一个全新的人口,完全取代旧的人口。这个新人口的成员来自这四个“来源”:
另一方面,你可以有一个所谓的稳态方案。在这个方案中,在每次迭代中,你只选择足够的个体来执行交叉,交叉(如果概率允许),变异(如果概率允许),然后你以某种方式将它们放回原始种群。这意味着必须有人被扔掉。这可能是父母或孩子(如果其中一个比另一个差),或者根据您的替换策略,是人口中的任意成员。你可以做例如“反向”选择,也就是说,选择概率反过来(最坏的得到最高,而最好的得到最低)。
最后一点——在GAs领域,你想出的几乎任何机制都可能适用于你的特定问题,也可能不适用。你只要试试。毕竟这是一种随机方法。